From 05f1a54ebe3fb7fde3deec2b46c0b2efb0687360 Mon Sep 17 00:00:00 2001 From: "alexander.shenshin" Date: Tue, 6 Dec 2022 21:37:55 +0300 Subject: [PATCH 1/7] Add workaround for mediator messages delivery on iOS --- packages/core/src/agent/MessageReceiver.ts | 8 + yarn.lock | 406 +++++++++------------ 2 files changed, 183 insertions(+), 231 deletions(-) diff --git a/packages/core/src/agent/MessageReceiver.ts b/packages/core/src/agent/MessageReceiver.ts index 33fd597b04..fbf0dbade2 100644 --- a/packages/core/src/agent/MessageReceiver.ts +++ b/packages/core/src/agent/MessageReceiver.ts @@ -83,6 +83,14 @@ export class MessageReceiver { { session }: { session?: TransportSession; connection?: ConnectionRecord } ) { this.logger.debug(`Agent ${this.config.label} received message`) + + // Workaround for delivery message parsing issue on iOS + // See https://github.com/sicpa-dlab/cbdc-projects/issues/1727 + if (typeof inboundMessage !== 'object') { + inboundMessage = JSON.parse(inboundMessage as string) + this.logger.warn(`Caught non-object message ${JSON.stringify(inboundMessage)}`) + } + try { if (this.isEncryptedMessage(inboundMessage)) { return await this.receivePackedMessage( diff --git a/yarn.lock b/yarn.lock index bf4f8f5993..ee4f3cd026 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,51 +41,12 @@ web-did-resolver "^2.0.8" "@aries-framework/core@file:packages/core": - version "0.3.5" - dependencies: - "@multiformats/base-x" "^4.0.1" - "@sicpa-dlab/value-transfer-common-ts" "0.3.4" - "@sicpa-dlab/value-transfer-protocol-ts" "0.3.6" - "@sicpa-dlab/witness-gossip-types-ts" "0.3.4" - "@stablelib/ed25519" "^1.0.2" - "@stablelib/sha256" "^1.0.1" - "@stablelib/uuid" "^1.0.1" - "@types/async-lock" "^1.1.5" - "@types/indy-sdk" "^1.16.16" - "@types/node-fetch" "^2.5.10" - "@types/ws" "^7.4.6" - abort-controller "^3.0.0" - async-lock "^1.3.2" - bloom-filters "^3.0.0" - bn.js "^5.2.0" - borc "^3.0.0" - buffer "^6.0.3" - class-transformer "0.5.1" - class-validator "0.13.1" - did-resolver "3.1.3" - didcomm "0.3.4" - fast-json-patch "^3.1.1" - lru_map "^0.4.1" - luxon "^1.27.0" - make-error "^1.3.6" - object-inspect "^1.10.3" - query-string "^7.0.1" - reflect-metadata "^0.1.13" - rxjs "^7.2.0" - tsyringe "^4.5.0" - uuid "^8.3.2" - varint "^6.0.0" - web-did-resolver "2.0.8" - -"@aries-framework/core@npm:@sicpa-dlab/aries-framework-core@0.3.0": - version "0.3.0" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/aries-framework-core/0.3.0/4730082f2287ff0e51c618aa3d49be8eb84d8937#4730082f2287ff0e51c618aa3d49be8eb84d8937" - integrity sha512-d6CtqXZOP67kVffSeynZ6hfuRU+CBhHUDds1TXmSGwFXWkmhcS/BJGZsjrkiO756JNa1Zorf1gWxPhZ3PDOrNQ== + version "0.4.1" dependencies: "@multiformats/base-x" "^4.0.1" - "@sicpa-dlab/value-transfer-common-ts" "0.3.1" - "@sicpa-dlab/value-transfer-protocol-ts" "0.3.1" - "@sicpa-dlab/witness-gossip-types-ts" "0.3.1" + "@sicpa-dlab/value-transfer-common-ts" "0.3.5" + "@sicpa-dlab/value-transfer-protocol-ts" "0.4.1" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.5" "@stablelib/ed25519" "^1.0.2" "@stablelib/sha256" "^1.0.1" "@stablelib/uuid" "^1.0.1" @@ -116,15 +77,15 @@ varint "^6.0.0" web-did-resolver "2.0.8" -"@aries-framework/core@npm:@sicpa-dlab/aries-framework-core@0.3.5": - version "0.3.5" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/aries-framework-core/0.3.5/1f2115a371914c47c6e1966958db46e96ce73bd1#1f2115a371914c47c6e1966958db46e96ce73bd1" - integrity sha512-zuIIRvf/GfkPcNaRG5hmqnqI49LZhBt1+wq4GSxBTTzjnTCmNdIgsEMboI+QEZh/DzoFu2ruc2CMd+ZE2XAW6w== +"@aries-framework/core@npm:@sicpa-dlab/aries-framework-core@0.4.1": + version "0.4.1" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/aries-framework-core/0.4.1/abe1d39c66c9173fb39f2b850f9642f7ea456c2f#abe1d39c66c9173fb39f2b850f9642f7ea456c2f" + integrity sha512-l1GLYeElhmM+uDjb8KQpXCWpvCai29ExxljlKH22DBd5Z84prLTkgu46bsUJUDGePxwA1zvpVdwxV68VgNE62g== dependencies: "@multiformats/base-x" "^4.0.1" - "@sicpa-dlab/value-transfer-common-ts" "0.3.4" - "@sicpa-dlab/value-transfer-protocol-ts" "0.3.6" - "@sicpa-dlab/witness-gossip-types-ts" "0.3.4" + "@sicpa-dlab/value-transfer-common-ts" "0.3.5" + "@sicpa-dlab/value-transfer-protocol-ts" "0.4.1" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.5" "@stablelib/ed25519" "^1.0.2" "@stablelib/sha256" "^1.0.1" "@stablelib/uuid" "^1.0.1" @@ -169,12 +130,12 @@ ws "^7.5.3" "@aries-framework/node@file:packages/node": - version "0.3.6" + version "0.4.1" dependencies: - "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.3.5" - "@sicpa-dlab/value-transfer-common-ts" "0.3.4" - "@sicpa-dlab/witness-gossip-protocol-ts" "0.3.7" - "@sicpa-dlab/witness-gossip-types-ts" "0.3.4" + "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.4.1" + "@sicpa-dlab/value-transfer-common-ts" "0.3.5" + "@sicpa-dlab/witness-gossip-protocol-ts" "0.3.9" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.5" buffer "^6.0.3" class-transformer "0.5.1" class-validator "0.13.1" @@ -206,37 +167,37 @@ "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" + integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" + integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" + "@babel/generator" "^7.20.5" "@babel/helper-compilation-targets" "^7.20.0" "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" + "@babel/helpers" "^7.20.5" + "@babel/parser" "^7.20.5" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.5.0", "@babel/generator@^7.7.2": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" - integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== +"@babel/generator@^7.20.5", "@babel/generator@^7.5.0", "@babel/generator@^7.7.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" + integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.20.5" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -266,9 +227,9 @@ semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz#3c08a5b5417c7f07b5cf3dfb6dc79cbec682e8c2" - integrity sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06" + integrity sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" @@ -279,12 +240,12 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" - integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" + integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" + regexpu-core "^5.2.1" "@babel/helper-define-polyfill-provider@^0.3.3": version "0.3.3" @@ -412,14 +373,14 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== +"@babel/helpers@^7.20.5": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" + integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== dependencies: "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" @@ -430,10 +391,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" - integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== "@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.1.0": version "7.18.6" @@ -621,9 +582,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.0.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz#f59b1767e6385c663fd0bce655db6ca9c8b236ed" - integrity sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz#401215f9dc13dc5262940e2e527c9536b3d7f237" + integrity sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -727,9 +688,9 @@ "@babel/helper-replace-supers" "^7.18.6" "@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.1": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz#7b3468d70c3c5b62e46be0a47b6045d8590fb748" - integrity sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz#f8f9186c681d10c3de7620c916156d893c8a019e" + integrity sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -773,12 +734,12 @@ "@babel/types" "^7.19.0" "@babel/plugin-transform-regenerator@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" + integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" + "@babel/helper-plugin-utils" "^7.20.2" + regenerator-transform "^0.15.1" "@babel/plugin-transform-runtime@^7.0.0": version "7.19.6" @@ -868,11 +829,11 @@ source-map-support "^0.5.16" "@babel/runtime@^7.8.4": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" - integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" + integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== dependencies: - regenerator-runtime "^0.13.10" + regenerator-runtime "^0.13.11" "@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" @@ -883,26 +844,26 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.7.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" + integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" + "@babel/generator" "^7.20.5" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/parser" "^7.20.5" + "@babel/types" "^7.20.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" + integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -2313,52 +2274,33 @@ resolved "https://npm.pkg.github.com/download/@sicpa-dlab/didcomm-react-native/0.0.19/bccfb6081f048d9218f27a2d92cb52e02f99cf8f#bccfb6081f048d9218f27a2d92cb52e02f99cf8f" integrity sha512-Y6oeeZVFt9kkWj0we61HeHSzb6tbniZrZKLSUJYMfXLA1QnpBQ/eMwGnQGdKnBHzYjEed6Wii7mYD3mVW3zD2A== -"@sicpa-dlab/value-transfer-common-ts@0.3.1", "@sicpa-dlab/value-transfer-common-ts@^0.3.1-alpha.4": - version "0.3.1" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-common-ts/0.3.1/c7abb3f4d315c6dd5b3840e822b264e6aba35714#c7abb3f4d315c6dd5b3840e822b264e6aba35714" - integrity sha512-b65CIkinkfy5OY3pW0kX1r1hhXzQUDVmYBnqkte9/Ly05ongYEFdnrZSdJdcNBItYCa34INgNrI7vdG8SVKeVw== +"@sicpa-dlab/value-transfer-common-ts@0.3.5": + version "0.3.5" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-common-ts/0.3.5/be5cfbbde83650fb2f9b502f5f2608e56a59eb1f#be5cfbbde83650fb2f9b502f5f2608e56a59eb1f" + integrity sha512-YDTNqOe3dDSAry8IvjoRTC2DKY3qKi542CY3KyVIpa92tNC7yHPopLxXRO5MTmb0I+PKrR6cMQEMQThMcama7w== dependencies: "@stablelib/sha256" "^1.0.1" buffer "^6.0.3" class-transformer "^0.5.1" reflect-metadata "^0.1.13" -"@sicpa-dlab/value-transfer-common-ts@0.3.4", "@sicpa-dlab/value-transfer-common-ts@^0.3.4": - version "0.3.4" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-common-ts/0.3.4/1330a92a8dae22cccfda4a4933bbc1829111467f#1330a92a8dae22cccfda4a4933bbc1829111467f" - integrity sha512-aeS1tBNzZgyPJ4By1kLGHqMh66JCGJPsZvf/mfy+g4g2ILQgCgzc5Ws3d3qJR2HGfkSHrwRex6hNhFgK8s4akQ== +"@sicpa-dlab/value-transfer-common-ts@^0.3.5", "@sicpa-dlab/value-transfer-common-ts@^0.3.7": + version "0.3.7" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-common-ts/0.3.7/cbe277e937747307ce958492f7879f80847eebca#cbe277e937747307ce958492f7879f80847eebca" + integrity sha512-EMWkwUX6y3b7c7utQ59KWMud1TzzsNnmNHl/8MIndz/6O9AZILod94JsEWMVxivm8X8FrW7Y8Hvvd3q5Znf2KQ== dependencies: "@stablelib/sha256" "^1.0.1" buffer "^6.0.3" class-transformer "^0.5.1" reflect-metadata "^0.1.13" -"@sicpa-dlab/value-transfer-protocol-ts@0.3.1": - version "0.3.1" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-protocol-ts/0.3.1/166a3b4113c2dced0aa927c65bb0f0bb0f2d6753#166a3b4113c2dced0aa927c65bb0f0bb0f2d6753" - integrity sha512-AEvQ559oAn1A0zILMvvNDabrsva7GPVrvidDtH/acL9VbuR0oY5GWYYKrwGgLk5TBmXp1d7/nkwvbJUqFS3LYg== - dependencies: - "@sicpa-dlab/value-transfer-common-ts" "^0.3.1-alpha.4" - "@sicpa-dlab/witness-gossip-types-ts" "^0.3.1-alpha.8" - "@stablelib/sha256" "^1.0.1" - "@stablelib/uuid" "^1.0.1" - class-transformer "^0.5.1" - class-validator "^0.13.2" - currency-codes "^2.1.0" - fast-json-patch "^3.1.1" - iso-639-language "^1.0.1" - query-string "^7.1.1" - reflect-metadata "^0.1.13" - ulid "^2.3.0" - url "^0.11.0" - -"@sicpa-dlab/value-transfer-protocol-ts@0.3.6": - version "0.3.6" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-protocol-ts/0.3.6/30c7f44b9d3d3f0f7ea78e53f0be44193ebf72bd#30c7f44b9d3d3f0f7ea78e53f0be44193ebf72bd" - integrity sha512-qPmBqsSwbnf+aMJ0paGeQdekr7/tGq40068DCjuWB0rBUWrKXNS5lbestYWbKvg5yVz/K/Nqqno+C6F8RGZABw== +"@sicpa-dlab/value-transfer-protocol-ts@0.4.1": + version "0.4.1" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-protocol-ts/0.4.1/1d526c934d2623aef48b44ab88cb99e0596b2df6#1d526c934d2623aef48b44ab88cb99e0596b2df6" + integrity sha512-TYHiJKAhgzBdwqEF+ttd1YW9+7guLUA4/tu05FEB0KQxAJ23lxErtLO1rsyoAVFX3iUdCms6iNluy2geWrvBCQ== dependencies: - "@sicpa-dlab/value-transfer-common-ts" "^0.3.4" - "@sicpa-dlab/witness-gossip-types-ts" "^0.3.4" + "@sicpa-dlab/value-transfer-common-ts" "^0.3.5" + "@sicpa-dlab/witness-gossip-types-ts" "^0.3.5" "@stablelib/sha256" "^1.0.1" "@stablelib/uuid" "^1.0.1" class-transformer "^0.5.1" @@ -2371,16 +2313,16 @@ ulid "^2.3.0" url "^0.11.0" -"@sicpa-dlab/witness-gossip-protocol-ts@0.3.7": - version "0.3.7" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-protocol-ts/0.3.7/2fd798f940d90892ecaa65e99723c987563f1430#2fd798f940d90892ecaa65e99723c987563f1430" - integrity sha512-Mk0yXw26PAO6Q3bZxNDkBNdiHprfZucBQiEicsrll5slsD2AUgJcJitQkUrM/FIF4eRB/QwE/YgfsCDr75LrXw== +"@sicpa-dlab/witness-gossip-protocol-ts@0.3.9": + version "0.3.9" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-protocol-ts/0.3.9/9de7d2c5a3815ed127129e459d888e151f31615b#9de7d2c5a3815ed127129e459d888e151f31615b" + integrity sha512-JRCwHXrc94MgJNsUxjPqCzuHEoYW5ujFqc7Sc6064vJunJqILiogktXzwx/leDAHIk/Wvpk9ZTg3ii0slQ4OUQ== dependencies: "@mikro-orm/core" "^5.5.2" "@mikro-orm/postgresql" "^5.5.2" "@mikro-orm/sqlite" "^5.5.2" - "@sicpa-dlab/value-transfer-common-ts" "^0.3.4" - "@sicpa-dlab/witness-gossip-types-ts" "^0.3.4" + "@sicpa-dlab/value-transfer-common-ts" "^0.3.5" + "@sicpa-dlab/witness-gossip-types-ts" "^0.3.5" "@stablelib/uuid" "^1.0.1" class-transformer "^0.5.1" class-validator "^0.13.2" @@ -2388,24 +2330,24 @@ reflect-metadata "^0.1.13" rxjs "^7.5.6" -"@sicpa-dlab/witness-gossip-types-ts@0.3.1", "@sicpa-dlab/witness-gossip-types-ts@^0.3.1-alpha.8": - version "0.3.1" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-types-ts/0.3.1/3e53f37812b79a279f99a1eee32f8e997e38fab0#3e53f37812b79a279f99a1eee32f8e997e38fab0" - integrity sha512-lFRBUW6Av/3rC8tvWoO3nBZhecjZlg7KbHptqy/bDFxxTF+q1eYfB80iFmXnDsvD9F0+bcIHWPkf2JXTQ4oQAA== +"@sicpa-dlab/witness-gossip-types-ts@0.3.5": + version "0.3.5" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-types-ts/0.3.5/6b9e31d4fa56b85d1d99f8fde08d5f03383dd2e0#6b9e31d4fa56b85d1d99f8fde08d5f03383dd2e0" + integrity sha512-URmmlY3V51cZy4V3yhTdMpnZTEsCjgKIv3fp5OvCO8LIv53YR6b1X4zwD3wEZUIo8OQnQLLrwAlLYDmjeXf1UA== dependencies: - "@sicpa-dlab/value-transfer-common-ts" "^0.3.1-alpha.4" + "@sicpa-dlab/value-transfer-common-ts" "^0.3.5" "@stablelib/uuid" "^1.0.1" buffer "^6.0.3" class-transformer "^0.5.1" class-validator "^0.13.2" reflect-metadata "^0.1.13" -"@sicpa-dlab/witness-gossip-types-ts@0.3.4", "@sicpa-dlab/witness-gossip-types-ts@^0.3.4": - version "0.3.4" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-types-ts/0.3.4/c2bc959aba0aea3d40a55293bdaaac4aeb32f374#c2bc959aba0aea3d40a55293bdaaac4aeb32f374" - integrity sha512-YCGZT9vh/lmMMi4TYB0zyuSeImSC8Ydj7osvxo/sUSDLRQNGs9pExGy3o0Z8I2ewiGQTL4s5i3Iz2Ri4yzw9MA== +"@sicpa-dlab/witness-gossip-types-ts@^0.3.5": + version "0.3.9" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-types-ts/0.3.9/75f2d220b6224ff5b3d76b61427fc74e378e7123#75f2d220b6224ff5b3d76b61427fc74e378e7123" + integrity sha512-P/v6bUxN4mk2CyFP/FA0zgiRDzc4e0pyf2OUWfQjXNp7xxgP8TsaYk8ahHIkTttX/Mt7w118Zv7F4gR6g0Gxtg== dependencies: - "@sicpa-dlab/value-transfer-common-ts" "^0.3.4" + "@sicpa-dlab/value-transfer-common-ts" "^0.3.7" "@stablelib/uuid" "^1.0.1" buffer "^6.0.3" class-transformer "^0.5.1" @@ -2430,9 +2372,9 @@ integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== "@sinonjs/commons@^1.7.0": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.5.tgz#e280c94c95f206dcfd5aca00a43f2156b758c764" - integrity sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA== + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== dependencies: type-detect "4.0.8" @@ -2581,9 +2523,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== dependencies: "@babel/types" "^7.3.0" @@ -2610,9 +2552,11 @@ "@types/node" "*" "@types/cors@^2.8.10": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + version "2.8.13" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94" + integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA== + dependencies: + "@types/node" "*" "@types/eslint@^7.2.13": version "7.29.0" @@ -2652,9 +2596,9 @@ "@types/serve-static" "*" "@types/ffi-napi@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/ffi-napi/-/ffi-napi-4.0.6.tgz#cd1c65cc9e701de664e640ccb17a2e823a674d44" - integrity sha512-yrBtqeVD1aeVo271jXVEo3iAtbzSGVGRssJv9W9JlUfg5Z5FgHJx2MV88GRwVATu/XWg6zyenW/cb1MNAuOtaQ== + version "4.0.7" + resolved "https://registry.yarnpkg.com/@types/ffi-napi/-/ffi-napi-4.0.7.tgz#b3a9beeae160c74adca801ca1c9defb1ec0a1a32" + integrity sha512-2CvLfgxCUUSj7qVab6/uFLyVpgVd2gEV4H/TQEHHn6kZTV8iTesz9uo0bckhwzsh71atutOv8P3JmvRX2ZvpZg== dependencies: "@types/node" "*" "@types/ref-napi" "*" @@ -2808,16 +2752,16 @@ csstype "^3.0.2" "@types/ref-napi@*", "@types/ref-napi@^3.0.4": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/ref-napi/-/ref-napi-3.0.5.tgz#8db441d381737af5c353d7dd89c7593b5f2080c8" - integrity sha512-u+L/RdwTuJes3pDypOVR/MtcqzoULu8Z8yulP6Tw5z7eXV1ba1llizNVFtI/m2iPfDy/dPPt+3ar1QCgonTzsw== + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/ref-napi/-/ref-napi-3.0.6.tgz#56f95b10e7698dced16e05b2bd10b6a46cf90f20" + integrity sha512-yLbSiZkLQB9Bv6m46+c4Gdv5Xmw34ehdUagQCfc88FvqHLamaGpYInHbFQ3+sawFonAQ0GDysQIEdZmSOmMh3A== dependencies: "@types/node" "*" "@types/ref-struct-di@*": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@types/ref-struct-di/-/ref-struct-di-1.1.7.tgz#85e0149858a81a14f12f15ff31a6dffa42bab2d3" - integrity sha512-nnHR26qrCnQqxwHTv+rqzu/hGgDZl45TUs4bO6ZjpuC8/M2JoXFxk63xrWmAmqsLe55oxOgAWssyr3YHAMY89g== + version "1.1.8" + resolved "https://registry.yarnpkg.com/@types/ref-struct-di/-/ref-struct-di-1.1.8.tgz#df8cbf7b9bbbc03f476dcbe1958f92bf443f17d9" + integrity sha512-t5jwtHlEH6c3rgBRtMQTAtysROr1gWt/ZfcytolK+45dag747fUdgmZy/iQs5q41jinMnr62nxwI0Q8GkdK9TA== dependencies: "@types/ref-napi" "*" @@ -3541,9 +3485,9 @@ big-integer@1.6.x: integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== bignumber.js@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== + version "9.1.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" + integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== bindings@^1.3.1: version "1.5.0" @@ -3842,9 +3786,9 @@ camelcase@^6.0.0, camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001400: - version "1.0.30001434" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz#ec1ec1cfb0a93a34a0600d37903853030520a4e5" - integrity sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA== + version "1.0.30001436" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz#22d7cbdbbbb60cdc4ca1030ccd6dea9f5de4848b" + integrity sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg== capture-exit@^2.0.0: version "2.0.0" @@ -3899,9 +3843,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.6.1.tgz#7594f1c95cb7fdfddee7af95a13af7dbc67afdcf" - integrity sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w== + version "3.7.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" + integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -4447,9 +4391,9 @@ dateformat@^3.0.0: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.8.15: - version "1.11.6" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb" - integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ== + version "1.11.7" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" @@ -4491,14 +4435,14 @@ decamelize@^1.1.0, decamelize@^1.2.0: integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decimal.js@^10.2.1: - version "10.4.2" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" - integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== +decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== dedent@^0.7.0: version "0.7.0" @@ -5269,9 +5213,9 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== dependencies: reusify "^1.0.4" @@ -5416,9 +5360,9 @@ flatted@^3.1.0: integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== flow-parser@0.*: - version "0.193.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.193.0.tgz#8d705fc2d6b378a24bae189014f6f0320d040c4f" - integrity sha512-x7ZoArE1UO3Nk2rkq/KK/Tkp714QDMVzEsxIyK2+p7Alx+88LY7KgqmeQZuiAG8TCHucmYuHefbk3KsVFVjouA== + version "0.194.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.194.0.tgz#3d226aca8473593ad90167ae1e14dbb3cbcb6a8b" + integrity sha512-3dipGWKnXmE4LEE5yCPHJrSlMYOPAYU7wMBecfKiWPQSZp1CvkpJ59dfuuUIeM2TSttKGSatep77vGG9cjkeqg== flow-parser@^0.121.0: version "0.121.0" @@ -6000,9 +5944,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + version "5.2.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" + integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== image-size@^0.6.0: version "0.6.3" @@ -7974,9 +7918,9 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: brace-expansion "^1.1.7" minimatch@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + version "5.1.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" + integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== dependencies: brace-expansion "^2.0.1" @@ -8053,9 +7997,9 @@ minipass-sized@^1.0.3: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" @@ -8991,9 +8935,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^2.3.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + version "2.8.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9" + integrity sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA== pretty-format@^26.0.0, pretty-format@^26.5.2, pretty-format@^26.6.2: version "26.6.2" @@ -9137,11 +9081,11 @@ query-string@^6.13.8: strict-uri-encode "^2.0.0" query-string@^7.0.1, query-string@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" - integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== + version "7.1.3" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" + integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== dependencies: - decode-uri-component "^0.2.0" + decode-uri-component "^0.2.2" filter-obj "^1.1.0" split-on-first "^1.0.0" strict-uri-encode "^2.0.0" @@ -9182,9 +9126,9 @@ raw-body@2.5.1: unpipe "1.0.0" react-devtools-core@^4.6.0: - version "4.26.1" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.26.1.tgz#2893fea58089be64c5356d5bd0eebda8d1bbf317" - integrity sha512-r1csa5n9nABVpSdAadwTG7K+SfgRJPc/Hdx89BkV5IlA1mEGgGi3ir630ST5D/xYlJQaY3VE75YGADgpNW7HIw== + version "4.27.0" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.27.0.tgz#b57eb69df273c88daa3dc1577177ea9bbdd0a67d" + integrity sha512-9dfVBf/9yquz5deUUCi9kA/JA4+2MTUxfKRv6IqizR0B26/28CxJedXb0kXtPD/cRKce8ecU1KhfJiDzUkOOaQ== dependencies: shell-quote "^1.6.1" ws "^7" @@ -9472,12 +9416,12 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.2: +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.2: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-transform@^0.15.0: +regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== @@ -9506,7 +9450,7 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^5.1.0: +regexpu-core@^5.2.1: version "5.2.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw== @@ -9688,9 +9632,9 @@ rxjs@^6.6.0: tslib "^1.9.0" rxjs@^7.2.0, rxjs@^7.5.6: - version "7.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" - integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.6.0.tgz#361da5362b6ddaa691a2de0b4f2d32028f1eb5a2" + integrity sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ== dependencies: tslib "^2.1.0" From 78881f34e11a5d5a00f9ec82057ac40876809b19 Mon Sep 17 00:00:00 2001 From: "alexander.shenshin" Date: Tue, 6 Dec 2022 22:09:27 +0300 Subject: [PATCH 2/7] Fix GossipService and update packages versions --- demo/package.json | 2 +- packages/core/package.json | 8 +- packages/node/package.json | 10 +-- .../modules/gossip/services/GossipService.ts | 2 +- packages/react-native/package.json | 4 +- yarn.lock | 82 +++++++------------ 6 files changed, 43 insertions(+), 65 deletions(-) diff --git a/demo/package.json b/demo/package.json index 8ad7ed872d..91df160a01 100644 --- a/demo/package.json +++ b/demo/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@aries-framework/core": "file:../packages/core", "@aries-framework/node": "file:../packages/node", - "@sicpa-dlab/value-transfer-protocol-ts": "0.4.1", + "@sicpa-dlab/value-transfer-protocol-ts": "0.4.5", "@types/figlet": "^1.5.4", "@types/inquirer": "^8.1.3", "clear": "^0.1.0", diff --git a/packages/core/package.json b/packages/core/package.json index 707cb1ecce..d2188efba6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -2,7 +2,7 @@ "name": "@sicpa-dlab/aries-framework-core", "main": "build/index", "types": "build/index", - "version": "0.4.1", + "version": "0.4.5", "files": [ "build" ], @@ -24,9 +24,9 @@ }, "dependencies": { "@multiformats/base-x": "^4.0.1", - "@sicpa-dlab/value-transfer-common-ts": "0.3.5", - "@sicpa-dlab/value-transfer-protocol-ts": "0.4.1", - "@sicpa-dlab/witness-gossip-types-ts": "0.3.5", + "@sicpa-dlab/value-transfer-common-ts": "0.3.7", + "@sicpa-dlab/value-transfer-protocol-ts": "0.4.5", + "@sicpa-dlab/witness-gossip-types-ts": "0.3.9", "@stablelib/ed25519": "^1.0.2", "@stablelib/sha256": "^1.0.1", "@stablelib/uuid": "^1.0.1", diff --git a/packages/node/package.json b/packages/node/package.json index 372b3d664d..ef56fed71d 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -2,7 +2,7 @@ "name": "@sicpa-dlab/aries-framework-node", "main": "build/index", "types": "build/index", - "version": "0.4.1", + "version": "0.4.5", "files": [ "build", "bin" @@ -28,10 +28,10 @@ "test": "jest" }, "dependencies": { - "@aries-framework/core": "npm:@sicpa-dlab/aries-framework-core@0.4.1", - "@sicpa-dlab/witness-gossip-protocol-ts": "0.3.9", - "@sicpa-dlab/witness-gossip-types-ts": "0.3.5", - "@sicpa-dlab/value-transfer-common-ts": "0.3.5", + "@aries-framework/core": "npm:@sicpa-dlab/aries-framework-core@0.4.5", + "@sicpa-dlab/witness-gossip-protocol-ts": "0.3.13", + "@sicpa-dlab/witness-gossip-types-ts": "0.3.9", + "@sicpa-dlab/value-transfer-common-ts": "0.3.7", "class-transformer": "0.5.1", "class-validator": "0.13.1", "didcomm-node": "0.3.4", diff --git a/packages/node/src/modules/gossip/services/GossipService.ts b/packages/node/src/modules/gossip/services/GossipService.ts index fe935bd175..de3d9c4678 100644 --- a/packages/node/src/modules/gossip/services/GossipService.ts +++ b/packages/node/src/modules/gossip/services/GossipService.ts @@ -68,7 +68,7 @@ export class GossipService implements GossipInterface { this.gossipingStarted = true } - public stop(): void { + public stop(): Promise { return this.gossip.stop() } diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 59eb1d270e..342b681d01 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -2,7 +2,7 @@ "name": "@sicpa-dlab/aries-framework-react-native", "main": "build/index", "types": "build/index", - "version": "0.4.1", + "version": "0.4.5", "files": [ "build" ], @@ -24,7 +24,7 @@ "test": "jest" }, "dependencies": { - "@aries-framework/core": "npm:@sicpa-dlab/aries-framework-core@0.4.1", + "@aries-framework/core": "npm:@sicpa-dlab/aries-framework-core@0.4.5", "@azure/core-asynciterator-polyfill": "^1.0.0", "events": "^3.3.0" }, diff --git a/yarn.lock b/yarn.lock index ee4f3cd026..ff638ea0e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,12 +41,12 @@ web-did-resolver "^2.0.8" "@aries-framework/core@file:packages/core": - version "0.4.1" + version "0.4.5" dependencies: "@multiformats/base-x" "^4.0.1" - "@sicpa-dlab/value-transfer-common-ts" "0.3.5" - "@sicpa-dlab/value-transfer-protocol-ts" "0.4.1" - "@sicpa-dlab/witness-gossip-types-ts" "0.3.5" + "@sicpa-dlab/value-transfer-common-ts" "0.3.7" + "@sicpa-dlab/value-transfer-protocol-ts" "0.4.5" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" "@stablelib/ed25519" "^1.0.2" "@stablelib/sha256" "^1.0.1" "@stablelib/uuid" "^1.0.1" @@ -77,15 +77,15 @@ varint "^6.0.0" web-did-resolver "2.0.8" -"@aries-framework/core@npm:@sicpa-dlab/aries-framework-core@0.4.1": - version "0.4.1" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/aries-framework-core/0.4.1/abe1d39c66c9173fb39f2b850f9642f7ea456c2f#abe1d39c66c9173fb39f2b850f9642f7ea456c2f" - integrity sha512-l1GLYeElhmM+uDjb8KQpXCWpvCai29ExxljlKH22DBd5Z84prLTkgu46bsUJUDGePxwA1zvpVdwxV68VgNE62g== +"@aries-framework/core@npm:@sicpa-dlab/aries-framework-core@0.4.5": + version "0.4.5" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/aries-framework-core/0.4.5/973384da1d5d57a374ee915ba515ba1f83f34234#973384da1d5d57a374ee915ba515ba1f83f34234" + integrity sha512-vgGG2BglXJybicDZPvCy7RIsn35JqZLAUdruBSTAl1mviLYcKw6YASIX0ys8ExCPCKvbJiWFTLfccZPKJLs1dA== dependencies: "@multiformats/base-x" "^4.0.1" - "@sicpa-dlab/value-transfer-common-ts" "0.3.5" - "@sicpa-dlab/value-transfer-protocol-ts" "0.4.1" - "@sicpa-dlab/witness-gossip-types-ts" "0.3.5" + "@sicpa-dlab/value-transfer-common-ts" "0.3.7" + "@sicpa-dlab/value-transfer-protocol-ts" "0.4.5" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" "@stablelib/ed25519" "^1.0.2" "@stablelib/sha256" "^1.0.1" "@stablelib/uuid" "^1.0.1" @@ -130,12 +130,12 @@ ws "^7.5.3" "@aries-framework/node@file:packages/node": - version "0.4.1" + version "0.4.5" dependencies: - "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.4.1" - "@sicpa-dlab/value-transfer-common-ts" "0.3.5" - "@sicpa-dlab/witness-gossip-protocol-ts" "0.3.9" - "@sicpa-dlab/witness-gossip-types-ts" "0.3.5" + "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.4.5" + "@sicpa-dlab/value-transfer-common-ts" "0.3.7" + "@sicpa-dlab/witness-gossip-protocol-ts" "0.3.13" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" buffer "^6.0.3" class-transformer "0.5.1" class-validator "0.13.1" @@ -2274,17 +2274,7 @@ resolved "https://npm.pkg.github.com/download/@sicpa-dlab/didcomm-react-native/0.0.19/bccfb6081f048d9218f27a2d92cb52e02f99cf8f#bccfb6081f048d9218f27a2d92cb52e02f99cf8f" integrity sha512-Y6oeeZVFt9kkWj0we61HeHSzb6tbniZrZKLSUJYMfXLA1QnpBQ/eMwGnQGdKnBHzYjEed6Wii7mYD3mVW3zD2A== -"@sicpa-dlab/value-transfer-common-ts@0.3.5": - version "0.3.5" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-common-ts/0.3.5/be5cfbbde83650fb2f9b502f5f2608e56a59eb1f#be5cfbbde83650fb2f9b502f5f2608e56a59eb1f" - integrity sha512-YDTNqOe3dDSAry8IvjoRTC2DKY3qKi542CY3KyVIpa92tNC7yHPopLxXRO5MTmb0I+PKrR6cMQEMQThMcama7w== - dependencies: - "@stablelib/sha256" "^1.0.1" - buffer "^6.0.3" - class-transformer "^0.5.1" - reflect-metadata "^0.1.13" - -"@sicpa-dlab/value-transfer-common-ts@^0.3.5", "@sicpa-dlab/value-transfer-common-ts@^0.3.7": +"@sicpa-dlab/value-transfer-common-ts@0.3.7", "@sicpa-dlab/value-transfer-common-ts@^0.3.7": version "0.3.7" resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-common-ts/0.3.7/cbe277e937747307ce958492f7879f80847eebca#cbe277e937747307ce958492f7879f80847eebca" integrity sha512-EMWkwUX6y3b7c7utQ59KWMud1TzzsNnmNHl/8MIndz/6O9AZILod94JsEWMVxivm8X8FrW7Y8Hvvd3q5Znf2KQ== @@ -2294,13 +2284,13 @@ class-transformer "^0.5.1" reflect-metadata "^0.1.13" -"@sicpa-dlab/value-transfer-protocol-ts@0.4.1": - version "0.4.1" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-protocol-ts/0.4.1/1d526c934d2623aef48b44ab88cb99e0596b2df6#1d526c934d2623aef48b44ab88cb99e0596b2df6" - integrity sha512-TYHiJKAhgzBdwqEF+ttd1YW9+7guLUA4/tu05FEB0KQxAJ23lxErtLO1rsyoAVFX3iUdCms6iNluy2geWrvBCQ== +"@sicpa-dlab/value-transfer-protocol-ts@0.4.5": + version "0.4.5" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-protocol-ts/0.4.5/b3aa7a3cd21befa90e86aa467f8888748c9436ad#b3aa7a3cd21befa90e86aa467f8888748c9436ad" + integrity sha512-Q0Gp6kPVhc5klLIYJ5RkwKJjyPb4Cf/G8UocmikBH02TwWnaCkDwyH+mLnWQNTSRJu4ABE2Z4YL7bUhJiwBvSQ== dependencies: - "@sicpa-dlab/value-transfer-common-ts" "^0.3.5" - "@sicpa-dlab/witness-gossip-types-ts" "^0.3.5" + "@sicpa-dlab/value-transfer-common-ts" "^0.3.7" + "@sicpa-dlab/witness-gossip-types-ts" "^0.3.9" "@stablelib/sha256" "^1.0.1" "@stablelib/uuid" "^1.0.1" class-transformer "^0.5.1" @@ -2313,16 +2303,16 @@ ulid "^2.3.0" url "^0.11.0" -"@sicpa-dlab/witness-gossip-protocol-ts@0.3.9": - version "0.3.9" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-protocol-ts/0.3.9/9de7d2c5a3815ed127129e459d888e151f31615b#9de7d2c5a3815ed127129e459d888e151f31615b" - integrity sha512-JRCwHXrc94MgJNsUxjPqCzuHEoYW5ujFqc7Sc6064vJunJqILiogktXzwx/leDAHIk/Wvpk9ZTg3ii0slQ4OUQ== +"@sicpa-dlab/witness-gossip-protocol-ts@0.3.13": + version "0.3.13" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-protocol-ts/0.3.13/06d4925d44c25c222af1f2c862686547c4a8aef9#06d4925d44c25c222af1f2c862686547c4a8aef9" + integrity sha512-9/g42lpjfn51pvyjXo8quJ46Lq+E65a11W4gZzTlcyJEpMoFsviNeR7iI3Hs/k3wYmT7K3qXUa6jo+b/axaOCg== dependencies: "@mikro-orm/core" "^5.5.2" "@mikro-orm/postgresql" "^5.5.2" "@mikro-orm/sqlite" "^5.5.2" - "@sicpa-dlab/value-transfer-common-ts" "^0.3.5" - "@sicpa-dlab/witness-gossip-types-ts" "^0.3.5" + "@sicpa-dlab/value-transfer-common-ts" "^0.3.7" + "@sicpa-dlab/witness-gossip-types-ts" "^0.3.9" "@stablelib/uuid" "^1.0.1" class-transformer "^0.5.1" class-validator "^0.13.2" @@ -2330,19 +2320,7 @@ reflect-metadata "^0.1.13" rxjs "^7.5.6" -"@sicpa-dlab/witness-gossip-types-ts@0.3.5": - version "0.3.5" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-types-ts/0.3.5/6b9e31d4fa56b85d1d99f8fde08d5f03383dd2e0#6b9e31d4fa56b85d1d99f8fde08d5f03383dd2e0" - integrity sha512-URmmlY3V51cZy4V3yhTdMpnZTEsCjgKIv3fp5OvCO8LIv53YR6b1X4zwD3wEZUIo8OQnQLLrwAlLYDmjeXf1UA== - dependencies: - "@sicpa-dlab/value-transfer-common-ts" "^0.3.5" - "@stablelib/uuid" "^1.0.1" - buffer "^6.0.3" - class-transformer "^0.5.1" - class-validator "^0.13.2" - reflect-metadata "^0.1.13" - -"@sicpa-dlab/witness-gossip-types-ts@^0.3.5": +"@sicpa-dlab/witness-gossip-types-ts@0.3.9", "@sicpa-dlab/witness-gossip-types-ts@^0.3.9": version "0.3.9" resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-types-ts/0.3.9/75f2d220b6224ff5b3d76b61427fc74e378e7123#75f2d220b6224ff5b3d76b61427fc74e378e7123" integrity sha512-P/v6bUxN4mk2CyFP/FA0zgiRDzc4e0pyf2OUWfQjXNp7xxgP8TsaYk8ahHIkTttX/Mt7w118Zv7F4gR6g0Gxtg== From 1f8688d7bcd5d6fd88cf07e66fb5b787a97963a5 Mon Sep 17 00:00:00 2001 From: "alexander.shenshin" Date: Wed, 7 Dec 2022 11:27:56 +0300 Subject: [PATCH 3/7] Remove message parsing workaround --- packages/core/src/agent/MessageReceiver.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/core/src/agent/MessageReceiver.ts b/packages/core/src/agent/MessageReceiver.ts index fbf0dbade2..96212bf34c 100644 --- a/packages/core/src/agent/MessageReceiver.ts +++ b/packages/core/src/agent/MessageReceiver.ts @@ -84,13 +84,6 @@ export class MessageReceiver { ) { this.logger.debug(`Agent ${this.config.label} received message`) - // Workaround for delivery message parsing issue on iOS - // See https://github.com/sicpa-dlab/cbdc-projects/issues/1727 - if (typeof inboundMessage !== 'object') { - inboundMessage = JSON.parse(inboundMessage as string) - this.logger.warn(`Caught non-object message ${JSON.stringify(inboundMessage)}`) - } - try { if (this.isEncryptedMessage(inboundMessage)) { return await this.receivePackedMessage( From 6908f0d5e06e279f6bb9525aea26df169d9f7c62 Mon Sep 17 00:00:00 2001 From: "alexander.shenshin" Date: Wed, 7 Dec 2022 11:33:57 +0300 Subject: [PATCH 4/7] Clean up --- packages/core/src/agent/MessageReceiver.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/src/agent/MessageReceiver.ts b/packages/core/src/agent/MessageReceiver.ts index 96212bf34c..33fd597b04 100644 --- a/packages/core/src/agent/MessageReceiver.ts +++ b/packages/core/src/agent/MessageReceiver.ts @@ -83,7 +83,6 @@ export class MessageReceiver { { session }: { session?: TransportSession; connection?: ConnectionRecord } ) { this.logger.debug(`Agent ${this.config.label} received message`) - try { if (this.isEncryptedMessage(inboundMessage)) { return await this.receivePackedMessage( From 2e82a696ca5c868eadd9e5f264b1997febb882ee Mon Sep 17 00:00:00 2001 From: "alexander.shenshin" Date: Wed, 7 Dec 2022 15:36:14 +0300 Subject: [PATCH 5/7] Return message parsing workaround --- packages/core/src/agent/MessageReceiver.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/core/src/agent/MessageReceiver.ts b/packages/core/src/agent/MessageReceiver.ts index 33fd597b04..fbf0dbade2 100644 --- a/packages/core/src/agent/MessageReceiver.ts +++ b/packages/core/src/agent/MessageReceiver.ts @@ -83,6 +83,14 @@ export class MessageReceiver { { session }: { session?: TransportSession; connection?: ConnectionRecord } ) { this.logger.debug(`Agent ${this.config.label} received message`) + + // Workaround for delivery message parsing issue on iOS + // See https://github.com/sicpa-dlab/cbdc-projects/issues/1727 + if (typeof inboundMessage !== 'object') { + inboundMessage = JSON.parse(inboundMessage as string) + this.logger.warn(`Caught non-object message ${JSON.stringify(inboundMessage)}`) + } + try { if (this.isEncryptedMessage(inboundMessage)) { return await this.receivePackedMessage( From abfc48a16813b03b24e33a1fae0704c96dbd8a2e Mon Sep 17 00:00:00 2001 From: Artemkaaas Date: Thu, 8 Dec 2022 13:00:59 +0800 Subject: [PATCH 6/7] Extracted gossip module into independent package --- README.md | 1 + demo/package.json | 1 + demo/src/CentralBankWitness.ts | 2 + demo/src/GlobalBankWitness.ts | 2 + demo/src/LocalBankWitness.ts | 2 + package.json | 4 +- packages/core/src/agent/Agent.ts | 6 +- packages/core/src/index.ts | 1 + packages/gossip/README.md | 38 ++++++++++ packages/gossip/jest.config.ts | 13 ++++ packages/gossip/package.json | 40 ++++++++++ .../gossip => gossip/src}/GossipModule.ts | 0 .../src}/handlers/WitnessMessageHandler.ts | 0 .../gossip => gossip/src}/handlers/index.ts | 0 .../modules/gossip => gossip/src}/index.ts | 0 .../src}/messages/WitnessGossipInfoMessage.ts | 0 .../gossip => gossip/src}/messages/index.ts | 0 .../src}/services/GossipCryptoService.ts | 5 +- .../src}/services/GossipLoggerService.ts | 3 + .../src}/services/GossipService.ts | 0 .../src}/services/GossipTransportService.ts | 3 + .../gossip => gossip/src}/services/index.ts | 0 packages/gossip/tsconfig.build.json | 11 +++ packages/gossip/tsconfig.json | 6 ++ packages/node/src/index.ts | 2 - sicpa-docs/PUBLISH.md | 5 +- yarn.lock | 76 ++++++++++++++++--- 27 files changed, 202 insertions(+), 19 deletions(-) create mode 100644 packages/gossip/README.md create mode 100644 packages/gossip/jest.config.ts create mode 100644 packages/gossip/package.json rename packages/{node/src/modules/gossip => gossip/src}/GossipModule.ts (100%) rename packages/{node/src/modules/gossip => gossip/src}/handlers/WitnessMessageHandler.ts (100%) rename packages/{node/src/modules/gossip => gossip/src}/handlers/index.ts (100%) rename packages/{node/src/modules/gossip => gossip/src}/index.ts (100%) rename packages/{node/src/modules/gossip => gossip/src}/messages/WitnessGossipInfoMessage.ts (100%) rename packages/{node/src/modules/gossip => gossip/src}/messages/index.ts (100%) rename packages/{node/src/modules/gossip => gossip/src}/services/GossipCryptoService.ts (90%) rename packages/{node/src/modules/gossip => gossip/src}/services/GossipLoggerService.ts (94%) rename packages/{node/src/modules/gossip => gossip/src}/services/GossipService.ts (100%) rename packages/{node/src/modules/gossip => gossip/src}/services/GossipTransportService.ts (94%) rename packages/{node/src/modules/gossip => gossip/src}/services/index.ts (100%) create mode 100644 packages/gossip/tsconfig.build.json create mode 100644 packages/gossip/tsconfig.json diff --git a/README.md b/README.md index abc6d2f314..904c05d262 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,7 @@ Some features are not yet supported, but are on our roadmap. Check [the roadmap] Documentation on how to get started with Aries Framework JavaScript can be found at https://aries.js.org ## Publish new packages (SICPA's fork) + See docs [here](sicpa-docs/PUBLISH.md) ### Demo diff --git a/demo/package.json b/demo/package.json index 91df160a01..fdc727ca55 100644 --- a/demo/package.json +++ b/demo/package.json @@ -22,6 +22,7 @@ }, "devDependencies": { "@aries-framework/core": "file:../packages/core", + "@aries-framework/gossip": "file:../packages/gossip", "@aries-framework/node": "file:../packages/node", "@sicpa-dlab/value-transfer-protocol-ts": "0.4.5", "@types/figlet": "^1.5.4", diff --git a/demo/src/CentralBankWitness.ts b/demo/src/CentralBankWitness.ts index 3b38335887..c66950d650 100644 --- a/demo/src/CentralBankWitness.ts +++ b/demo/src/CentralBankWitness.ts @@ -1,5 +1,6 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ import { DidMarker, Transports } from '@aries-framework/core' +import { initWitnessGossip } from '@aries-framework/gossip' import { BaseAgent } from './BaseAgent' import { Output } from './OutputClass' @@ -37,6 +38,7 @@ export class CentralBankWitness extends BaseAgent { public static async build(): Promise { const witness = new CentralBankWitness('centralBank', 8081) await witness.initializeAgent() + await initWitnessGossip(witness.agent) const publicDid = await witness.agent.getStaticDid(DidMarker.Public) console.log(`CentralBank Public DID: ${publicDid?.did}`) return witness diff --git a/demo/src/GlobalBankWitness.ts b/demo/src/GlobalBankWitness.ts index 45f842606f..e816208bf0 100644 --- a/demo/src/GlobalBankWitness.ts +++ b/demo/src/GlobalBankWitness.ts @@ -1,5 +1,6 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ import { DidMarker, Transports } from '@aries-framework/core' +import { initWitnessGossip } from '@aries-framework/gossip' import { BaseAgent } from './BaseAgent' import { Output } from './OutputClass' @@ -34,6 +35,7 @@ export class GlobalBankWitness extends BaseAgent { public static async build(): Promise { const witness = new GlobalBankWitness('globalBank', 8082) await witness.initializeAgent() + await initWitnessGossip(witness.agent) const publicDid = await witness.agent.getStaticDid(DidMarker.Public) console.log(`GlobalBank Public DID: ${publicDid?.did}`) return witness diff --git a/demo/src/LocalBankWitness.ts b/demo/src/LocalBankWitness.ts index def530821f..beb784b232 100644 --- a/demo/src/LocalBankWitness.ts +++ b/demo/src/LocalBankWitness.ts @@ -1,5 +1,6 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ import { DidMarker, Transports } from '@aries-framework/core' +import { initWitnessGossip } from '@aries-framework/gossip' import { BaseAgent } from './BaseAgent' import { Output } from './OutputClass' @@ -34,6 +35,7 @@ export class LocalBankWitness extends BaseAgent { public static async build(): Promise { const witness = new LocalBankWitness('localBank', 8083) await witness.initializeAgent() + await initWitnessGossip(witness.agent) const publicDid = await witness.agent.getStaticDid(DidMarker.Public) console.log(`LocalBank Public DID: ${publicDid?.did}`) return witness diff --git a/package.json b/package.json index 743ce8dc55..4370f3f589 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ }, "scripts": { "check-types": "yarn check-types:build && yarn check-types:tests", - "check-types:tests": "tsc -p tsconfig.test.json --noEmit", - "check-types:build": "lerna exec tsc -- --noEmit", + "check-types:tests": "tsc -p tsconfig.test.json --noEmit --skipLibCheck", + "check-types:build": "lerna exec tsc -- --noEmit --skipLibCheck", "prettier": "prettier --ignore-path .gitignore '**/*.+(js|json|ts|md|yml|yaml)'", "format": "yarn prettier --write", "check-format": "yarn prettier --list-different", diff --git a/packages/core/src/agent/Agent.ts b/packages/core/src/agent/Agent.ts index 54c8422193..5f6a0337e4 100644 --- a/packages/core/src/agent/Agent.ts +++ b/packages/core/src/agent/Agent.ts @@ -301,7 +301,11 @@ export class Agent { const existingQueriesDid = await this.didService.findStaticDid(DidMarker.Queries) if (!existingQueriesDid) { - await this.didService.createDID({ isStatic: true, marker: DidMarker.Queries }) + await this.didService.createDID({ + isStatic: true, + marker: DidMarker.Queries, + endpoint: this.config.endpoints?.length ? this.config.endpoints[0] : undefined, + }) } // VTP state initialization diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 7a179b8dcc..43f087278d 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -28,6 +28,7 @@ export { JsonEncoder } from './utils' export { sleep } from './utils/sleep' export { Attachment } from './decorators/attachment/Attachment' export { parseMessageType, IsValidMessageType } from './utils/messageType' +export { Buffer } from './utils/buffer' import { parseInvitationUrl } from './utils/parseInvitation' import { uuid } from './utils/uuid' diff --git a/packages/gossip/README.md b/packages/gossip/README.md new file mode 100644 index 0000000000..71aefd2bcd --- /dev/null +++ b/packages/gossip/README.md @@ -0,0 +1,38 @@ +

+
+ Hyperledger Aries logo +

+

Aries Framework JavaScript - Gossip

+

+ License + typescript + @aries-framework/gossip version + +

+
+ +NodeJS plugin for Aries Framework JavaScript enabling Gossip functionality. + +### Usage + +```js +const agent = new Agent({...}) +await initWitnessGossip(agent) +``` diff --git a/packages/gossip/jest.config.ts b/packages/gossip/jest.config.ts new file mode 100644 index 0000000000..ce53584ebf --- /dev/null +++ b/packages/gossip/jest.config.ts @@ -0,0 +1,13 @@ +import type { Config } from '@jest/types' + +import base from '../../jest.config.base' + +import packageJson from './package.json' + +const config: Config.InitialOptions = { + ...base, + name: packageJson.name, + displayName: packageJson.name, +} + +export default config diff --git a/packages/gossip/package.json b/packages/gossip/package.json new file mode 100644 index 0000000000..ede7b8e6ee --- /dev/null +++ b/packages/gossip/package.json @@ -0,0 +1,40 @@ +{ + "name": "@sicpa-dlab/aries-framework-gossip", + "main": "build/index", + "types": "build/index", + "version": "0.0.1", + "files": [ + "build", + "bin" + ], + "license": "Apache-2.0", + "publishConfig": { + "registry": "https://npm.pkg.github.com" + }, + "homepage": "https://github.com/hyperledger/aries-framework-javascript/tree/main/packages/gossip", + "repository": { + "type": "git", + "url": "https://github.com/sicpa-dlab/aries-framework-javascript/", + "directory": "packages/gossip" + }, + "scripts": { + "build": "npx rimraf -rf build && yarn run compile", + "clean": "npx rimraf -rf build node_modules", + "compile": "tsc -p tsconfig.build.json", + "prepublishOnly": "yarn run build", + "test": "jest" + }, + "dependencies": { + "@aries-framework/core": "npm:@sicpa-dlab/aries-framework-core@0.5.0", + "@sicpa-dlab/witness-gossip-protocol-ts": "0.3.13", + "@sicpa-dlab/witness-gossip-types-ts": "0.3.9", + "@sicpa-dlab/value-transfer-common-ts": "0.3.7", + "class-transformer": "0.5.1", + "class-validator": "0.13.1", + "buffer": "^6.0.3" + }, + "devDependencies": { + "rimraf": "~3.0.2", + "typescript": "~4.3.0" + } +} diff --git a/packages/node/src/modules/gossip/GossipModule.ts b/packages/gossip/src/GossipModule.ts similarity index 100% rename from packages/node/src/modules/gossip/GossipModule.ts rename to packages/gossip/src/GossipModule.ts diff --git a/packages/node/src/modules/gossip/handlers/WitnessMessageHandler.ts b/packages/gossip/src/handlers/WitnessMessageHandler.ts similarity index 100% rename from packages/node/src/modules/gossip/handlers/WitnessMessageHandler.ts rename to packages/gossip/src/handlers/WitnessMessageHandler.ts diff --git a/packages/node/src/modules/gossip/handlers/index.ts b/packages/gossip/src/handlers/index.ts similarity index 100% rename from packages/node/src/modules/gossip/handlers/index.ts rename to packages/gossip/src/handlers/index.ts diff --git a/packages/node/src/modules/gossip/index.ts b/packages/gossip/src/index.ts similarity index 100% rename from packages/node/src/modules/gossip/index.ts rename to packages/gossip/src/index.ts diff --git a/packages/node/src/modules/gossip/messages/WitnessGossipInfoMessage.ts b/packages/gossip/src/messages/WitnessGossipInfoMessage.ts similarity index 100% rename from packages/node/src/modules/gossip/messages/WitnessGossipInfoMessage.ts rename to packages/gossip/src/messages/WitnessGossipInfoMessage.ts diff --git a/packages/node/src/modules/gossip/messages/index.ts b/packages/gossip/src/messages/index.ts similarity index 100% rename from packages/node/src/modules/gossip/messages/index.ts rename to packages/gossip/src/messages/index.ts diff --git a/packages/node/src/modules/gossip/services/GossipCryptoService.ts b/packages/gossip/src/services/GossipCryptoService.ts similarity index 90% rename from packages/node/src/modules/gossip/services/GossipCryptoService.ts rename to packages/gossip/src/services/GossipCryptoService.ts index a79cc08d83..eb24fdde23 100644 --- a/packages/node/src/modules/gossip/services/GossipCryptoService.ts +++ b/packages/gossip/src/services/GossipCryptoService.ts @@ -1,8 +1,11 @@ +import type { Buffer } from '@aries-framework/core' import type { GossipCryptoInterface } from '@sicpa-dlab/witness-gossip-types-ts' -import type { Buffer } from 'buffer/' import { injectable, DidService, KeyService } from '@aries-framework/core' +/* + * Implementation of Crypto operations required by Gossip library + * */ @injectable() export class GossipCryptoService implements GossipCryptoInterface { private didService: DidService diff --git a/packages/node/src/modules/gossip/services/GossipLoggerService.ts b/packages/gossip/src/services/GossipLoggerService.ts similarity index 94% rename from packages/node/src/modules/gossip/services/GossipLoggerService.ts rename to packages/gossip/src/services/GossipLoggerService.ts index f9375c685e..6aaa3d99ed 100644 --- a/packages/node/src/modules/gossip/services/GossipLoggerService.ts +++ b/packages/gossip/src/services/GossipLoggerService.ts @@ -4,6 +4,9 @@ import type { Logger as ValueTransferLogger, LogLevel } from '@sicpa-dlab/value- import { injectable, AgentConfig } from '@aries-framework/core' +/* + * Implementation of Logger interface required by Gossip library + * */ @injectable() export class GossipLoggerService implements ValueTransferLogger { public logLevel: LogLevel diff --git a/packages/node/src/modules/gossip/services/GossipService.ts b/packages/gossip/src/services/GossipService.ts similarity index 100% rename from packages/node/src/modules/gossip/services/GossipService.ts rename to packages/gossip/src/services/GossipService.ts diff --git a/packages/node/src/modules/gossip/services/GossipTransportService.ts b/packages/gossip/src/services/GossipTransportService.ts similarity index 94% rename from packages/node/src/modules/gossip/services/GossipTransportService.ts rename to packages/gossip/src/services/GossipTransportService.ts index ada7907ace..0d572aa009 100644 --- a/packages/node/src/modules/gossip/services/GossipTransportService.ts +++ b/packages/gossip/src/services/GossipTransportService.ts @@ -10,6 +10,9 @@ import { WitnessTableMessage, } from '@aries-framework/core' +/* + * Implementation of Transport interface required by Gossip library + * */ @injectable() export class GossipTransportService implements OutboundGossipTransportInterface { private config: AgentConfig diff --git a/packages/node/src/modules/gossip/services/index.ts b/packages/gossip/src/services/index.ts similarity index 100% rename from packages/node/src/modules/gossip/services/index.ts rename to packages/gossip/src/services/index.ts diff --git a/packages/gossip/tsconfig.build.json b/packages/gossip/tsconfig.build.json new file mode 100644 index 0000000000..dc956cf98b --- /dev/null +++ b/packages/gossip/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.build.json", + + "compilerOptions": { + "outDir": "./build", + "types": ["node"], + "skipLibCheck": true + }, + + "include": ["src/**/*"] +} diff --git a/packages/gossip/tsconfig.json b/packages/gossip/tsconfig.json new file mode 100644 index 0000000000..89375a3930 --- /dev/null +++ b/packages/gossip/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "types": ["node", "jest"] + } +} diff --git a/packages/node/src/index.ts b/packages/node/src/index.ts index dea3258e4a..a5b96b39ce 100644 --- a/packages/node/src/index.ts +++ b/packages/node/src/index.ts @@ -9,7 +9,6 @@ import WebSocket from 'ws' import { NodeFileSystem } from './NodeFileSystem' import { IndyPostgresStorageConfig, loadPostgresPlugin, WalletScheme } from './PostgresPlugin' -import { initWitnessGossip } from './modules/gossip' import { HttpInboundTransport } from './transport/HttpInboundTransport' import { WsInboundTransport } from './transport/WsInboundTransport' @@ -30,5 +29,4 @@ export { loadPostgresPlugin, IndyPostgresStorageConfig, WalletScheme, - initWitnessGossip, } diff --git a/sicpa-docs/PUBLISH.md b/sicpa-docs/PUBLISH.md index 204da05bde..5da07b9424 100644 --- a/sicpa-docs/PUBLISH.md +++ b/sicpa-docs/PUBLISH.md @@ -1,4 +1,5 @@ # How to publish new release + Publish procedure is a little more difficult because we use `npm alias`es in package dependencies like: `npm:@sicpa-dlab/aries-framework-core@0.4.1`. @@ -8,7 +9,9 @@ and `node`/`react-native` packages during build process. Instead of using local For that reason, `core` package must be published first. Then, it will be possible to build `node` and `react-native` too. ## Steps: + ### Step 1. Update and publish `core` package + - Bump version of `core` manually - Update dependency packages like `gossip` and `value-transfer` if necessary - Commit code @@ -17,6 +20,7 @@ For that reason, `core` package must be published first. Then, it will be possib - `cd packages/core`, `yarn publish` to publish core package ### Step 2. Update and publish `node` and `react-native` + - Bump version of `node` and `react-native` manually - Update `core` dependency to the latest version - Update dependency packages like `gossip` and `value-transfer` if necessary @@ -28,7 +32,6 @@ For that reason, `core` package must be published first. Then, it will be possib - `cd packages/node`, `yarn publish` to publish node package - `cd packages/react-native`, `yarn publish` to publish react-native package - ### All good Now, do not forget to update Mobile and Backend apps with newer version of Aries Framework Javascript. diff --git a/yarn.lock b/yarn.lock index ff638ea0e1..1a12982159 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,7 +41,7 @@ web-did-resolver "^2.0.8" "@aries-framework/core@file:packages/core": - version "0.4.5" + version "0.5.0" dependencies: "@multiformats/base-x" "^4.0.1" "@sicpa-dlab/value-transfer-common-ts" "0.3.7" @@ -77,15 +77,15 @@ varint "^6.0.0" web-did-resolver "2.0.8" -"@aries-framework/core@npm:@sicpa-dlab/aries-framework-core@0.4.5": - version "0.4.5" - resolved "https://npm.pkg.github.com/download/@sicpa-dlab/aries-framework-core/0.4.5/973384da1d5d57a374ee915ba515ba1f83f34234#973384da1d5d57a374ee915ba515ba1f83f34234" - integrity sha512-vgGG2BglXJybicDZPvCy7RIsn35JqZLAUdruBSTAl1mviLYcKw6YASIX0ys8ExCPCKvbJiWFTLfccZPKJLs1dA== +"@aries-framework/core@npm:@sicpa-dlab/aries-framework-core@0.5.0": + version "0.5.0" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/aries-framework-core/0.5.0/129e9c81bd007ce1eeacdf1902026cafc6ed13be#129e9c81bd007ce1eeacdf1902026cafc6ed13be" + integrity sha512-gn9Q4eyvNZCm/mYD1hbxnKxUc3ybbRf7CW9Lm/5MV/rc08hC6fDiXvabpGiy4z2KY8fOeL71LRnck5J5vyQHRA== dependencies: "@multiformats/base-x" "^4.0.1" - "@sicpa-dlab/value-transfer-common-ts" "0.3.7" - "@sicpa-dlab/value-transfer-protocol-ts" "0.4.5" - "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" + "@sicpa-dlab/value-transfer-common-ts" "0.3.5" + "@sicpa-dlab/value-transfer-protocol-ts" "0.4.1" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.5" "@stablelib/ed25519" "^1.0.2" "@stablelib/sha256" "^1.0.1" "@stablelib/uuid" "^1.0.1" @@ -116,6 +116,17 @@ varint "^6.0.0" web-did-resolver "2.0.8" +"@aries-framework/gossip@file:packages/gossip": + version "0.0.1" + dependencies: + "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.5.0" + "@sicpa-dlab/value-transfer-common-ts" "0.3.7" + "@sicpa-dlab/witness-gossip-protocol-ts" "0.3.13" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" + buffer "^6.0.3" + class-transformer "0.5.1" + class-validator "0.13.1" + "@aries-framework/node@*": version "0.2.5" resolved "https://registry.yarnpkg.com/@aries-framework/node/-/node-0.2.5.tgz#f23a08813355eec066c9c0942743039d72f87bc5" @@ -130,9 +141,9 @@ ws "^7.5.3" "@aries-framework/node@file:packages/node": - version "0.4.5" + version "0.5.0" dependencies: - "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.4.5" + "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.5.0" "@sicpa-dlab/value-transfer-common-ts" "0.3.7" "@sicpa-dlab/witness-gossip-protocol-ts" "0.3.13" "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" @@ -2274,7 +2285,17 @@ resolved "https://npm.pkg.github.com/download/@sicpa-dlab/didcomm-react-native/0.0.19/bccfb6081f048d9218f27a2d92cb52e02f99cf8f#bccfb6081f048d9218f27a2d92cb52e02f99cf8f" integrity sha512-Y6oeeZVFt9kkWj0we61HeHSzb6tbniZrZKLSUJYMfXLA1QnpBQ/eMwGnQGdKnBHzYjEed6Wii7mYD3mVW3zD2A== -"@sicpa-dlab/value-transfer-common-ts@0.3.7", "@sicpa-dlab/value-transfer-common-ts@^0.3.7": +"@sicpa-dlab/value-transfer-common-ts@0.3.5": + version "0.3.5" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-common-ts/0.3.5/be5cfbbde83650fb2f9b502f5f2608e56a59eb1f#be5cfbbde83650fb2f9b502f5f2608e56a59eb1f" + integrity sha512-YDTNqOe3dDSAry8IvjoRTC2DKY3qKi542CY3KyVIpa92tNC7yHPopLxXRO5MTmb0I+PKrR6cMQEMQThMcama7w== + dependencies: + "@stablelib/sha256" "^1.0.1" + buffer "^6.0.3" + class-transformer "^0.5.1" + reflect-metadata "^0.1.13" + +"@sicpa-dlab/value-transfer-common-ts@0.3.7", "@sicpa-dlab/value-transfer-common-ts@^0.3.5", "@sicpa-dlab/value-transfer-common-ts@^0.3.7": version "0.3.7" resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-common-ts/0.3.7/cbe277e937747307ce958492f7879f80847eebca#cbe277e937747307ce958492f7879f80847eebca" integrity sha512-EMWkwUX6y3b7c7utQ59KWMud1TzzsNnmNHl/8MIndz/6O9AZILod94JsEWMVxivm8X8FrW7Y8Hvvd3q5Znf2KQ== @@ -2284,6 +2305,25 @@ class-transformer "^0.5.1" reflect-metadata "^0.1.13" +"@sicpa-dlab/value-transfer-protocol-ts@0.4.1": + version "0.4.1" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-protocol-ts/0.4.1/1d526c934d2623aef48b44ab88cb99e0596b2df6#1d526c934d2623aef48b44ab88cb99e0596b2df6" + integrity sha512-TYHiJKAhgzBdwqEF+ttd1YW9+7guLUA4/tu05FEB0KQxAJ23lxErtLO1rsyoAVFX3iUdCms6iNluy2geWrvBCQ== + dependencies: + "@sicpa-dlab/value-transfer-common-ts" "^0.3.5" + "@sicpa-dlab/witness-gossip-types-ts" "^0.3.5" + "@stablelib/sha256" "^1.0.1" + "@stablelib/uuid" "^1.0.1" + class-transformer "^0.5.1" + class-validator "^0.13.2" + currency-codes "^2.1.0" + fast-json-patch "^3.1.1" + iso-639-language "^1.0.1" + query-string "^7.1.1" + reflect-metadata "^0.1.13" + ulid "^2.3.0" + url "^0.11.0" + "@sicpa-dlab/value-transfer-protocol-ts@0.4.5": version "0.4.5" resolved "https://npm.pkg.github.com/download/@sicpa-dlab/value-transfer-protocol-ts/0.4.5/b3aa7a3cd21befa90e86aa467f8888748c9436ad#b3aa7a3cd21befa90e86aa467f8888748c9436ad" @@ -2320,7 +2360,19 @@ reflect-metadata "^0.1.13" rxjs "^7.5.6" -"@sicpa-dlab/witness-gossip-types-ts@0.3.9", "@sicpa-dlab/witness-gossip-types-ts@^0.3.9": +"@sicpa-dlab/witness-gossip-types-ts@0.3.5": + version "0.3.5" + resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-types-ts/0.3.5/6b9e31d4fa56b85d1d99f8fde08d5f03383dd2e0#6b9e31d4fa56b85d1d99f8fde08d5f03383dd2e0" + integrity sha512-URmmlY3V51cZy4V3yhTdMpnZTEsCjgKIv3fp5OvCO8LIv53YR6b1X4zwD3wEZUIo8OQnQLLrwAlLYDmjeXf1UA== + dependencies: + "@sicpa-dlab/value-transfer-common-ts" "^0.3.5" + "@stablelib/uuid" "^1.0.1" + buffer "^6.0.3" + class-transformer "^0.5.1" + class-validator "^0.13.2" + reflect-metadata "^0.1.13" + +"@sicpa-dlab/witness-gossip-types-ts@0.3.9", "@sicpa-dlab/witness-gossip-types-ts@^0.3.5", "@sicpa-dlab/witness-gossip-types-ts@^0.3.9": version "0.3.9" resolved "https://npm.pkg.github.com/download/@sicpa-dlab/witness-gossip-types-ts/0.3.9/75f2d220b6224ff5b3d76b61427fc74e378e7123#75f2d220b6224ff5b3d76b61427fc74e378e7123" integrity sha512-P/v6bUxN4mk2CyFP/FA0zgiRDzc4e0pyf2OUWfQjXNp7xxgP8TsaYk8ahHIkTttX/Mt7w118Zv7F4gR6g0Gxtg== From 313554b49af847dfc71114674d09421af7b15041 Mon Sep 17 00:00:00 2001 From: Artemkaaas Date: Thu, 8 Dec 2022 21:51:58 +0800 Subject: [PATCH 7/7] Extracted value-transfer module into independent package --- demo/package.json | 2 + demo/src/Anna.ts | 37 +++++------ demo/src/AnnaInquirer.ts | 6 +- demo/src/BaseAgent.ts | 3 - demo/src/Bob.ts | 26 ++++---- demo/src/BobInquirer.ts | 6 +- demo/src/Carol.ts | 26 ++++---- demo/src/CarolInquirer.ts | 4 +- demo/src/CentralBankIssuer.ts | 26 ++++---- demo/src/CentralBankIssuerInquirer.ts | 2 +- demo/src/CentralBankWitness.ts | 20 +++--- demo/src/GlobalBankWitness.ts | 14 ++--- demo/src/Listener.ts | 10 +-- demo/src/LocalBankWitness.ts | 14 ++--- packages/core/package.json | 1 - packages/core/src/agent/Agent.ts | 15 ----- packages/core/src/agent/AgentConfig.ts | 38 ----------- packages/core/src/constants.ts | 1 - packages/core/src/index.ts | 6 +- packages/core/src/modules/gossip/index.ts | 1 - .../core/src/modules/gossip/messages/index.ts | 2 - .../out-of-band/services/OutOfBandService.ts | 8 --- .../core/src/modules/value-transfer/index.ts | 6 -- packages/core/src/types.ts | 30 --------- packages/gossip/package.json | 5 +- packages/gossip/src/GossipConfig.ts | 25 ++++++++ packages/gossip/src/GossipModule.ts | 6 +- .../src/handlers/WitnessMessageHandler.ts | 4 +- packages/gossip/src/index.ts | 17 ++--- .../src}/messages/WitnessTableMessage.ts | 6 +- .../src}/messages/WitnessTableQueryMessage.ts | 6 +- packages/gossip/src/messages/index.ts | 2 + packages/gossip/src/services/GossipService.ts | 39 +++++++----- .../src/services/GossipTransportService.ts | 3 +- packages/value-transfer-events/README.md | 38 +++++++++++ packages/value-transfer-events/jest.config.ts | 13 ++++ packages/value-transfer-events/package.json | 44 +++++++++++++ .../src/ValueTransferSharedEvents.ts | 21 +++++++ packages/value-transfer-events/src/index.ts | 1 + .../value-transfer-events/tsconfig.build.json | 11 ++++ packages/value-transfer-events/tsconfig.json | 6 ++ packages/value-transfer/README.md | 38 +++++++++++ packages/value-transfer/jest.config.ts | 13 ++++ packages/value-transfer/package.json | 47 ++++++++++++++ .../src}/ValueTransferAutoAcceptType.ts | 0 .../value-transfer/src/ValueTransferConfig.ts | 28 +++++++++ .../src}/ValueTransferEvents.ts | 19 +----- .../src}/ValueTransferModule.ts | 26 ++++---- .../src}/ValueTransferResponseCoordinator.ts | 16 ++--- .../src}/handlers/CashAcceptedHandler.ts | 2 +- .../handlers/CashAcceptedWitnessedHandler.ts | 2 +- .../src}/handlers/CashRemovedHandler.ts | 2 +- .../src}/handlers/GetterReceiptHandler.ts | 2 +- .../src}/handlers/GiverReceiptHandler.ts | 2 +- .../src}/handlers/MintHandler.ts | 2 +- .../src}/handlers/MintResponseHandler.ts | 2 +- .../src}/handlers/OfferHandler.ts | 2 +- .../src}/handlers/ProblemReportHandler.ts | 2 +- .../src}/handlers/RequestAcceptedHandler.ts | 2 +- .../RequestAcceptedWitnessedHandler.ts | 2 +- .../src}/handlers/RequestHandler.ts | 2 +- .../src}/handlers/WitnessTableHandler.ts | 4 +- .../src}/handlers/index.ts | 0 packages/value-transfer/src/index.ts | 28 +++++++++ .../src}/lockDecorator.ts | 0 .../src}/messages/CashAcceptedMessage.ts | 3 +- .../messages/CashAcceptedWitnessedMessage.ts | 3 +- .../src}/messages/CashRemovedMessage.ts | 3 +- .../src}/messages/GetterReceiptMessage.ts | 3 +- .../src}/messages/GiverReceiptMessage.ts | 3 +- .../src}/messages/MintMessage.ts | 6 +- .../src}/messages/MintResponseMessage.ts | 6 +- .../src}/messages/OfferMessage.ts | 4 +- .../src}/messages/ProblemReportMessage.ts | 6 +- .../src}/messages/RequestAcceptedMessage.ts | 3 +- .../RequestAcceptedWitnessedMessage.ts | 3 +- .../src}/messages/RequestMessage.ts | 4 +- .../src}/messages/ValueTransferBaseMessage.ts | 5 +- .../src}/messages/index.ts | 0 .../src}/repository/ValueTransferRecord.ts | 9 ++- .../repository/ValueTransferRepository.ts | 6 +- .../repository/ValueTransferStateRecord.ts | 9 ++- .../ValueTransferStateRepository.ts | 6 +- .../src}/repository/index.ts | 0 .../services/ValueTransferCryptoService.ts | 9 +-- .../services/ValueTransferGetterService.ts | 27 ++++---- .../services/ValueTransferGiverService.ts | 27 ++++---- .../services/ValueTransferIssuerService.ts | 20 +++--- .../src}/services/ValueTransferLockService.ts | 3 +- .../services/ValueTransferLoggerService.ts | 5 +- .../ValueTransferPartyStateService.ts | 2 +- .../src}/services/ValueTransferService.ts | 63 ++++++++++--------- .../services/ValueTransferTransportService.ts | 18 +++--- .../services/ValueTransferWitnessService.ts | 27 ++++---- .../ValueTransferWitnessStateService.ts | 3 +- .../src}/services/index.ts | 0 packages/value-transfer/tsconfig.build.json | 11 ++++ packages/value-transfer/tsconfig.json | 6 ++ yarn.lock | 31 +++++++++ 99 files changed, 688 insertions(+), 440 deletions(-) delete mode 100644 packages/core/src/modules/gossip/index.ts delete mode 100644 packages/core/src/modules/gossip/messages/index.ts delete mode 100644 packages/core/src/modules/value-transfer/index.ts create mode 100644 packages/gossip/src/GossipConfig.ts rename packages/{core/src/modules/gossip => gossip/src}/messages/WitnessTableMessage.ts (80%) rename packages/{core/src/modules/gossip => gossip/src}/messages/WitnessTableQueryMessage.ts (81%) create mode 100644 packages/value-transfer-events/README.md create mode 100644 packages/value-transfer-events/jest.config.ts create mode 100644 packages/value-transfer-events/package.json create mode 100644 packages/value-transfer-events/src/ValueTransferSharedEvents.ts create mode 100644 packages/value-transfer-events/src/index.ts create mode 100644 packages/value-transfer-events/tsconfig.build.json create mode 100644 packages/value-transfer-events/tsconfig.json create mode 100644 packages/value-transfer/README.md create mode 100644 packages/value-transfer/jest.config.ts create mode 100644 packages/value-transfer/package.json rename packages/{core/src/modules/value-transfer => value-transfer/src}/ValueTransferAutoAcceptType.ts (100%) create mode 100644 packages/value-transfer/src/ValueTransferConfig.ts rename packages/{core/src/modules/value-transfer => value-transfer/src}/ValueTransferEvents.ts (51%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/ValueTransferModule.ts (94%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/ValueTransferResponseCoordinator.ts (63%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/CashAcceptedHandler.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/CashAcceptedWitnessedHandler.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/CashRemovedHandler.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/GetterReceiptHandler.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/GiverReceiptHandler.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/MintHandler.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/MintResponseHandler.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/OfferHandler.ts (94%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/ProblemReportHandler.ts (88%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/RequestAcceptedHandler.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/RequestAcceptedWitnessedHandler.ts (90%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/RequestHandler.ts (95%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/WitnessTableHandler.ts (78%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/handlers/index.ts (100%) create mode 100644 packages/value-transfer/src/index.ts rename packages/{core/src/utils => value-transfer/src}/lockDecorator.ts (100%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/CashAcceptedMessage.ts (88%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/CashAcceptedWitnessedMessage.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/CashRemovedMessage.ts (88%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/GetterReceiptMessage.ts (88%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/GiverReceiptMessage.ts (88%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/MintMessage.ts (85%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/MintResponseMessage.ts (72%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/OfferMessage.ts (86%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/ProblemReportMessage.ts (65%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/RequestAcceptedMessage.ts (88%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/RequestAcceptedWitnessedMessage.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/RequestMessage.ts (87%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/ValueTransferBaseMessage.ts (74%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/messages/index.ts (100%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/repository/ValueTransferRecord.ts (91%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/repository/ValueTransferRepository.ts (69%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/repository/ValueTransferStateRecord.ts (80%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/repository/ValueTransferStateRepository.ts (63%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/repository/index.ts (100%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferCryptoService.ts (87%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferGetterService.ts (94%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferGiverService.ts (94%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferIssuerService.ts (88%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferLockService.ts (92%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferLoggerService.ts (89%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferPartyStateService.ts (98%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferService.ts (88%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferTransportService.ts (71%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferWitnessService.ts (90%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/ValueTransferWitnessStateService.ts (96%) rename packages/{core/src/modules/value-transfer => value-transfer/src}/services/index.ts (100%) create mode 100644 packages/value-transfer/tsconfig.build.json create mode 100644 packages/value-transfer/tsconfig.json diff --git a/demo/package.json b/demo/package.json index fdc727ca55..dedc606942 100644 --- a/demo/package.json +++ b/demo/package.json @@ -24,6 +24,8 @@ "@aries-framework/core": "file:../packages/core", "@aries-framework/gossip": "file:../packages/gossip", "@aries-framework/node": "file:../packages/node", + "@aries-framework/value-transfer": "file:../packages/value-transfer", + "@aries-framework/value-transfer-events": "file:../packages/value-transfer-events", "@sicpa-dlab/value-transfer-protocol-ts": "0.4.5", "@types/figlet": "^1.5.4", "@types/inquirer": "^8.1.3", diff --git a/demo/src/Anna.ts b/demo/src/Anna.ts index 400d8fd0af..257ad75bce 100644 --- a/demo/src/Anna.ts +++ b/demo/src/Anna.ts @@ -1,14 +1,21 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ -import type { ValueTransferRecord } from '@aries-framework/core' +import type { ValueTransferModule, ValueTransferRecord } from '@aries-framework/value-transfer' -import { AutoAcceptValueTransfer, DidMarker, Transports } from '@aries-framework/core' +import { DidMarker, Transports } from '@aries-framework/core' +import { AutoAcceptValueTransfer, initValueTransfer } from '@aries-framework/value-transfer' import { TransactionState } from '@sicpa-dlab/value-transfer-protocol-ts' import { BaseAgent } from './BaseAgent' import { greenText, Output, redText } from './OutputClass' export class Anna extends BaseAgent { + public valueTransfer!: ValueTransferModule public valueTransferRecordId?: string + public static valueTransferConfig = { + autoAcceptOfferedPaymentRequest: AutoAcceptValueTransfer.Always, + witnessDid: + 'did:peer:2.Ez6LSfsT5gHMCVEya8VDwW9QbAdVUhJCKbVscrrb82SwCPKKT.Vz6MkgNdE8ad1k8cPCHnXZ6vSxrTuFauRKDzzUHLPvdsLycz5.SeyJzIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MSIsInQiOiJkbSIsInIiOlsiZGlkOnBlZXI6Mi5FejZMU25IUzlmM2hyTXVMck45ejZaaG83VGNCUnZTeUs3SFBqUXR3S211M29zV3dGLlZ6Nk1rcmFoQW9WTFFTOVM1R0Y1c1VLdHVkWE1lZFVTWmRkZUpoakh0QUZhVjRob1YuU1czc2ljeUk2SW1oMGRIQTZMeTlzYjJOaGJHaHZjM1E2TXpBd01DOWhjR2t2ZGpFaUxDSjBJam9pWkcwaUxDSnlJanBiWFN3aVlTSTZXeUprYVdSamIyMXRMM1l5SWwxOUxIc2ljeUk2SW5kek9pOHZiRzlqWVd4b2IzTjBPak13TURBdllYQnBMM1l4SWl3aWRDSTZJbVJ0SWl3aWNpSTZXMTBzSW1FaU9sc2laR2xrWTI5dGJTOTJNaUpkZlYwIl0sImEiOlsiZGlkY29tbS92MiJdfQ', + } public constructor(name: string, port?: number) { super({ @@ -23,26 +30,20 @@ export class Anna extends BaseAgent { transports: [Transports.Nearby, Transports.NFC, Transports.HTTP], }, ], - valueTransferConfig: { - party: { - autoAcceptOfferedPaymentRequest: AutoAcceptValueTransfer.Always, - witnessDid: - 'did:peer:2.Ez6LSfsT5gHMCVEya8VDwW9QbAdVUhJCKbVscrrb82SwCPKKT.Vz6MkgNdE8ad1k8cPCHnXZ6vSxrTuFauRKDzzUHLPvdsLycz5.SeyJzIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MSIsInQiOiJkbSIsInIiOlsiZGlkOnBlZXI6Mi5FejZMU25IUzlmM2hyTXVMck45ejZaaG83VGNCUnZTeUs3SFBqUXR3S211M29zV3dGLlZ6Nk1rcmFoQW9WTFFTOVM1R0Y1c1VLdHVkWE1lZFVTWmRkZUpoakh0QUZhVjRob1YuU1czc2ljeUk2SW1oMGRIQTZMeTlzYjJOaGJHaHZjM1E2TXpBd01DOWhjR2t2ZGpFaUxDSjBJam9pWkcwaUxDSnlJanBiWFN3aVlTSTZXeUprYVdSamIyMXRMM1l5SWwxOUxIc2ljeUk2SW5kek9pOHZiRzlqWVd4b2IzTjBPak13TURBdllYQnBMM1l4SWl3aWRDSTZJbVJ0SWl3aWNpSTZXMTBzSW1FaU9sc2laR2xrWTI5dGJTOTJNaUpkZlYwIl0sImEiOlsiZGlkY29tbS92MiJdfQ', - }, - }, }) } public static async build(): Promise { const giver = new Anna('anna', undefined) await giver.initializeAgent() + giver.valueTransfer = await initValueTransfer(giver.agent, this.valueTransferConfig) const publicDid = await giver.agent.getStaticDid(DidMarker.Public) console.log(`Anna Public DID: ${publicDid?.did}`) - const active = await giver.agent.valueTransfer.getActiveTransaction() + const active = await giver.valueTransfer.getActiveTransaction() if (active.record?.id) { - await giver.agent.valueTransfer.abortTransaction(active.record?.id) + await giver.valueTransfer.abortTransaction(active.record?.id) } return giver @@ -52,7 +53,7 @@ export class Anna extends BaseAgent { if (!this.valueTransferRecordId) { throw Error(redText(Output.MissingValueTransferRecord)) } - return await this.agent.valueTransfer.getById(this.valueTransferRecordId) + return await this.valueTransfer.getById(this.valueTransferRecordId) } private async waitForPayment() { @@ -60,12 +61,12 @@ export class Anna extends BaseAgent { console.log('Waiting for finishing payment...') try { - const record = await this.agent.valueTransfer.returnWhenIsCompleted(valueTransferRecord.id) + const record = await this.valueTransfer.returnWhenIsCompleted(valueTransferRecord.id) if (record.state === TransactionState.Completed) { console.log(greenText(Output.PaymentDone)) console.log(greenText('Receipt:')) console.log(record.receipt) - const balance = await this.agent.valueTransfer.getBalance() + const balance = await this.valueTransfer.getBalance() console.log(greenText('Balance: ' + balance)) } if (record.state === TransactionState.Failed) { @@ -79,21 +80,21 @@ export class Anna extends BaseAgent { } public async acceptPaymentRequest(valueTransferRecord: ValueTransferRecord) { - const { record } = await this.agent.valueTransfer.acceptPaymentRequest({ recordId: valueTransferRecord.id }) + const { record } = await this.valueTransfer.acceptPaymentRequest({ recordId: valueTransferRecord.id }) this.valueTransferRecordId = record?.id console.log(greenText('\nPayment request accepted!\n')) await this.waitForPayment() } public async abortPaymentRequest(valueTransferRecord: ValueTransferRecord) { - const { record } = await this.agent.valueTransfer.abortTransaction(valueTransferRecord.id) + const { record } = await this.valueTransfer.abortTransaction(valueTransferRecord.id) this.valueTransferRecordId = record?.id console.log(redText('\nPayment request rejected!\n')) console.log(record?.error) } public async offerPayment(getter: string) { - const { record } = await this.agent.valueTransfer.offerPayment({ + const { record } = await this.valueTransfer.offerPayment({ amount: 1, getter, transport: Transports.NFC, @@ -104,7 +105,7 @@ export class Anna extends BaseAgent { } public async requestPayment(witness: string, giver: string) { - const { record } = await this.agent.valueTransfer.requestPayment({ + const { record } = await this.valueTransfer.requestPayment({ amount: 1, giver, witness, diff --git a/demo/src/AnnaInquirer.ts b/demo/src/AnnaInquirer.ts index 4ff1aea4a1..ec427d01cb 100644 --- a/demo/src/AnnaInquirer.ts +++ b/demo/src/AnnaInquirer.ts @@ -1,4 +1,4 @@ -import type { ValueTransferRecord } from '@aries-framework/core' +import type { ValueTransferRecord } from '@aries-framework/value-transfer' import { clear } from 'console' import { textSync } from 'figlet' @@ -44,7 +44,7 @@ export class AnnaInquirer extends BaseInquirer { } private async getPromptChoice() { - const balance = await this.giver.agent.valueTransfer.getBalance() + const balance = await this.giver.valueTransfer.getBalance() console.log(greenText('Balance: ' + balance)) return prompt([this.inquireOptions(this.promptOptionsString)]) } @@ -82,7 +82,7 @@ export class AnnaInquirer extends BaseInquirer { } public async acceptPaymentRequest(valueTransferRecord: ValueTransferRecord) { - const balance = await this.giver.agent.valueTransfer.getBalance() + const balance = await this.giver.valueTransfer.getBalance() console.log(greenText(`\nCurrent balance: ${balance}`)) const confirm = await prompt([this.inquireConfirmation(Title.PaymentRequestTitle)]) if (confirm.options === ConfirmOptions.No) { diff --git a/demo/src/BaseAgent.ts b/demo/src/BaseAgent.ts index 9efc9b3824..80179b8879 100644 --- a/demo/src/BaseAgent.ts +++ b/demo/src/BaseAgent.ts @@ -5,7 +5,6 @@ import type { InternetChecker, Logger, OutboundTransport, - ValueTransferConfig, } from '@aries-framework/core' import { @@ -106,7 +105,6 @@ export class BaseAgent { staticDids?: DidProps[] port?: number transports?: Transports[] - valueTransferConfig?: ValueTransferConfig mediatorConnectionsInvite?: string endpoints?: string[] emulateOfflineCase?: boolean @@ -137,7 +135,6 @@ export class BaseAgent { autoAcceptProofs: AutoAcceptProof.ContentApproved, mediatorPickupStrategy: MediatorPickupStrategy.Explicit, mediatorPollingInterval: 5000, - valueTransferConfig: props.valueTransferConfig, transports: props.transports, mediatorConnectionsInvite: props.mediatorConnectionsInvite, mediatorDeliveryStrategy: MediatorDeliveryStrategy.WebSocket, diff --git a/demo/src/Bob.ts b/demo/src/Bob.ts index 217653ecfb..34576b7c7c 100644 --- a/demo/src/Bob.ts +++ b/demo/src/Bob.ts @@ -1,14 +1,17 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ -import type { ValueTransferRecord } from '@aries-framework/core' +import type { ValueTransferModule, ValueTransferRecord } from '@aries-framework/value-transfer' import { DidMarker, Transports } from '@aries-framework/core' +import { initValueTransfer } from '@aries-framework/value-transfer' import { TransactionState } from '@sicpa-dlab/value-transfer-protocol-ts' import { BaseAgent, doesNotHasInternetChecker } from './BaseAgent' import { greenText, Output, redText } from './OutputClass' export class Bob extends BaseAgent { + public valueTransfer!: ValueTransferModule public valueTransferRecordId?: string + public static valueTransferConfig = {} public constructor(name: string, port?: number) { super({ @@ -23,9 +26,6 @@ export class Bob extends BaseAgent { marker: DidMarker.Public, }, ], - valueTransferConfig: { - party: {}, - }, internetChecker: doesNotHasInternetChecker, }) } @@ -33,6 +33,8 @@ export class Bob extends BaseAgent { public static async build(): Promise { const getter = new Bob('bob', undefined) await getter.initializeAgent() + getter.valueTransfer = await initValueTransfer(getter.agent, this.valueTransferConfig) + const publicDid = await getter.agent.getStaticDid(DidMarker.Public) console.log(`Bob Public DID: ${publicDid?.did}`) return getter @@ -42,11 +44,11 @@ export class Bob extends BaseAgent { if (!this.valueTransferRecordId) { throw Error(redText(Output.MissingValueTransferRecord)) } - return await this.agent.valueTransfer.getById(this.valueTransferRecordId) + return await this.valueTransfer.getById(this.valueTransferRecordId) } public async requestPayment(witness: string, giver: string) { - const { record } = await this.agent.valueTransfer.requestPayment({ + const { record } = await this.valueTransfer.requestPayment({ amount: 1, giver, witness, @@ -58,21 +60,21 @@ export class Bob extends BaseAgent { } public async acceptPaymentRequest(valueTransferRecord: ValueTransferRecord) { - const { record } = await this.agent.valueTransfer.acceptPaymentRequest({ recordId: valueTransferRecord.id }) + const { record } = await this.valueTransfer.acceptPaymentRequest({ recordId: valueTransferRecord.id }) this.valueTransferRecordId = record?.id console.log(greenText('\nPayment request accepted!\n')) await this.waitForPayment() } public async abortPaymentRequest(valueTransferRecord: ValueTransferRecord) { - const { record } = await this.agent.valueTransfer.abortTransaction(valueTransferRecord.id) + const { record } = await this.valueTransfer.abortTransaction(valueTransferRecord.id) this.valueTransferRecordId = record?.id console.log(redText('\nPayment request rejected!\n')) console.log(record?.error) } public async acceptPaymentOffer(valueTransferRecord: ValueTransferRecord, witness: string) { - const { record } = await this.agent.valueTransfer.acceptPaymentOffer({ + const { record } = await this.valueTransfer.acceptPaymentOffer({ recordId: valueTransferRecord.id, witness, }) @@ -82,7 +84,7 @@ export class Bob extends BaseAgent { } public async abortPaymentOffer(valueTransferRecord: ValueTransferRecord) { - const { record } = await this.agent.valueTransfer.abortTransaction(valueTransferRecord.id) + const { record } = await this.valueTransfer.abortTransaction(valueTransferRecord.id) this.valueTransferRecordId = record?.id console.log(redText('\nPayment request rejected!\n')) console.log(record?.error) @@ -93,12 +95,12 @@ export class Bob extends BaseAgent { console.log('Waiting for Giver to pay...') try { - const record = await this.agent.valueTransfer.returnWhenIsCompleted(valueTransferRecord.id) + const record = await this.valueTransfer.returnWhenIsCompleted(valueTransferRecord.id) if (record.state === TransactionState.Completed) { console.log(greenText(Output.PaymentDone)) console.log(greenText('Receipt:')) console.log(record.receipt) - const balance = await this.agent.valueTransfer.getBalance() + const balance = await this.valueTransfer.getBalance() console.log(greenText('Balance: ' + balance)) } if (record.state === TransactionState.Failed) { diff --git a/demo/src/BobInquirer.ts b/demo/src/BobInquirer.ts index a085cd20ad..d79689ec11 100644 --- a/demo/src/BobInquirer.ts +++ b/demo/src/BobInquirer.ts @@ -1,4 +1,4 @@ -import type { ValueTransferRecord } from '@aries-framework/core' +import type { ValueTransferRecord } from '@aries-framework/value-transfer' import { clear } from 'console' import { textSync } from 'figlet' @@ -71,7 +71,7 @@ export class BobInquirer extends BaseInquirer { } public async acceptPaymentRequest(valueTransferRecord: ValueTransferRecord) { - const balance = await this.getter.agent.valueTransfer.getBalance() + const balance = await this.getter.valueTransfer.getBalance() console.log(greenText(`\nCurrent balance: ${balance}`)) const confirm = await prompt([this.inquireConfirmation(Title.PaymentRequestTitle)]) if (confirm.options === ConfirmOptions.No) { @@ -82,7 +82,7 @@ export class BobInquirer extends BaseInquirer { } public async acceptPaymentOffer(valueTransferRecord: ValueTransferRecord) { - const balance = await this.getter.agent.valueTransfer.getBalance() + const balance = await this.getter.valueTransfer.getBalance() console.log(greenText(`\nCurrent balance: ${balance}`)) const confirm = await prompt([this.inquireConfirmation(Title.PaymentOfferTitle)]) if (confirm.options === ConfirmOptions.No) { diff --git a/demo/src/Carol.ts b/demo/src/Carol.ts index 7064b05022..fff3de3079 100644 --- a/demo/src/Carol.ts +++ b/demo/src/Carol.ts @@ -1,14 +1,17 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ -import type { ValueTransferRecord } from '@aries-framework/core' +import type { ValueTransferModule, ValueTransferRecord } from '@aries-framework/value-transfer' import { DidMarker, Transports } from '@aries-framework/core' +import { initValueTransfer } from '@aries-framework/value-transfer' import { TransactionState } from '@sicpa-dlab/value-transfer-protocol-ts' import { BaseAgent } from './BaseAgent' import { greenText, Output, redText } from './OutputClass' export class Carol extends BaseAgent { + public valueTransfer!: ValueTransferModule public valueTransferRecordId?: string + public static valueTransferConfig = {} public constructor(name: string, port?: number) { super({ @@ -23,21 +26,20 @@ export class Carol extends BaseAgent { marker: DidMarker.Public, }, ], - valueTransferConfig: { - party: {}, - }, }) } public static async build(): Promise { const getter = new Carol('carol', undefined) await getter.initializeAgent() + getter.valueTransfer = await initValueTransfer(getter.agent, this.valueTransferConfig) + const publicDid = await getter.agent.getStaticDid(DidMarker.Public) console.log(`Carol Public DID: ${publicDid?.did}`) - const active = await getter.agent.valueTransfer.getActiveTransaction() + const active = await getter.valueTransfer.getActiveTransaction() if (active.record?.id) { - await getter.agent.valueTransfer.abortTransaction(active.record?.id) + await getter.valueTransfer.abortTransaction(active.record?.id) } return getter @@ -47,11 +49,11 @@ export class Carol extends BaseAgent { if (!this.valueTransferRecordId) { throw Error(redText(Output.MissingValueTransferRecord)) } - return await this.agent.valueTransfer.getById(this.valueTransferRecordId) + return await this.valueTransfer.getById(this.valueTransferRecordId) } public async requestPayment(witness: string) { - const { record } = await this.agent.valueTransfer.requestPayment({ + const { record } = await this.valueTransfer.requestPayment({ amount: 1, witness, transport: Transports.Nearby, @@ -62,7 +64,7 @@ export class Carol extends BaseAgent { } public async acceptPaymentOffer(valueTransferRecord: ValueTransferRecord, witness: string) { - const { record } = await this.agent.valueTransfer.acceptPaymentOffer({ + const { record } = await this.valueTransfer.acceptPaymentOffer({ recordId: valueTransferRecord.id, witness, }) @@ -72,7 +74,7 @@ export class Carol extends BaseAgent { } public async abortPaymentOffer(valueTransferRecord: ValueTransferRecord) { - const { record } = await this.agent.valueTransfer.abortTransaction(valueTransferRecord.id) + const { record } = await this.valueTransfer.abortTransaction(valueTransferRecord.id) this.valueTransferRecordId = record?.id console.log(redText('\nPayment request rejected!\n')) console.log(record?.error) @@ -83,12 +85,12 @@ export class Carol extends BaseAgent { console.log('Waiting for Giver to pay...') try { - const record = await this.agent.valueTransfer.returnWhenIsCompleted(valueTransferRecord.id) + const record = await this.valueTransfer.returnWhenIsCompleted(valueTransferRecord.id) if (record.state === TransactionState.Completed) { console.log(greenText(Output.PaymentDone)) console.log(greenText('Receipt:')) console.log(record.receipt) - const balance = await this.agent.valueTransfer.getBalance() + const balance = await this.valueTransfer.getBalance() console.log(greenText('Balance: ' + balance)) } if (record.state === TransactionState.Failed) { diff --git a/demo/src/CarolInquirer.ts b/demo/src/CarolInquirer.ts index 2b0f3240dc..0260ee70d5 100644 --- a/demo/src/CarolInquirer.ts +++ b/demo/src/CarolInquirer.ts @@ -1,4 +1,4 @@ -import type { ValueTransferRecord } from '@aries-framework/core' +import type { ValueTransferRecord } from '@aries-framework/value-transfer' import { clear } from 'console' import { textSync } from 'figlet' @@ -69,7 +69,7 @@ export class CarolInquirer extends BaseInquirer { } public async acceptPaymentOffer(valueTransferRecord: ValueTransferRecord) { - const balance = await this.getter.agent.valueTransfer.getBalance() + const balance = await this.getter.valueTransfer.getBalance() console.log(greenText(`\nCurrent balance: ${balance}`)) const confirm = await prompt([this.inquireConfirmation(Title.PaymentOfferTitle)]) if (confirm.options === ConfirmOptions.No) { diff --git a/demo/src/CentralBankIssuer.ts b/demo/src/CentralBankIssuer.ts index a6fc40c259..81c4f20e73 100644 --- a/demo/src/CentralBankIssuer.ts +++ b/demo/src/CentralBankIssuer.ts @@ -1,16 +1,19 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ -import type { ValueTransferRecord } from '@aries-framework/core' +import type { ValueTransferModule, ValueTransferRecord } from '@aries-framework/value-transfer' import { DidMarker, Transports } from '@aries-framework/core' +import { initValueTransfer } from '@aries-framework/value-transfer' import { TransactionState } from '@sicpa-dlab/value-transfer-protocol-ts' import { BaseAgent } from './BaseAgent' import { greenText, Output, redText } from './OutputClass' export class CentralBankIssuer extends BaseAgent { + public valueTransfer!: ValueTransferModule public valueTransferRecordId?: string private static readonly witnessDid = 'did:peer:2.Ez6LSfsT5gHMCVEya8VDwW9QbAdVUhJCKbVscrrb82SwCPKKT.Vz6MkgNdE8ad1k8cPCHnXZ6vSxrTuFauRKDzzUHLPvdsLycz5.SeyJzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgxIiwidCI6ImRtIiwiciI6W119' + public static valueTransferConfig = {} public constructor(name: string, port?: number) { super({ @@ -25,19 +28,20 @@ export class CentralBankIssuer extends BaseAgent { marker: DidMarker.Public, }, ], - valueTransferConfig: {}, }) } - public static async build(): Promise { + public static async init(): Promise { const centralBankIssuer = new CentralBankIssuer('centralBankIssuer', undefined) await centralBankIssuer.initializeAgent() + centralBankIssuer.valueTransfer = await initValueTransfer(centralBankIssuer.agent, this.valueTransferConfig) + const publicDid = await centralBankIssuer.agent.getStaticDid(DidMarker.Public) console.log(`CentralBankIssuer Public DID: ${publicDid?.did}`) - const active = await centralBankIssuer.agent.valueTransfer.getActiveTransaction() + const active = await centralBankIssuer?.valueTransfer.getActiveTransaction() if (active.record?.id) { - await centralBankIssuer.agent.valueTransfer.abortTransaction(active.record?.id) + await centralBankIssuer?.valueTransfer.abortTransaction(active.record?.id) } const trustPing = await centralBankIssuer.agent.connections.sendTrustPing(CentralBankIssuer.witnessDid) @@ -45,16 +49,16 @@ export class CentralBankIssuer extends BaseAgent { await centralBankIssuer.agent.connections.awaitTrustPingResponse(trustPing.id) console.log(`Trust Ping response received from the Witness`) - await centralBankIssuer.agent.valueTransfer.mintCash(10, CentralBankIssuer.witnessDid) + await centralBankIssuer?.valueTransfer.mintCash(10, CentralBankIssuer.witnessDid) - const balance = await centralBankIssuer.agent.valueTransfer.getBalance() + const balance = await centralBankIssuer?.valueTransfer.getBalance() console.log(`CentralBankIssuer Balance: ${balance}`) return centralBankIssuer } public async acceptPaymentRequest(valueTransferRecord: ValueTransferRecord) { - const { record } = await this.agent.valueTransfer.acceptPaymentRequest({ recordId: valueTransferRecord.id }) + const { record } = await this.valueTransfer.acceptPaymentRequest({ recordId: valueTransferRecord.id }) this.valueTransferRecordId = record?.id console.log(greenText('\nPayment request accepted!\n')) await this.waitForPayment() @@ -64,7 +68,7 @@ export class CentralBankIssuer extends BaseAgent { if (!this.valueTransferRecordId) { throw Error(redText(Output.MissingValueTransferRecord)) } - return await this.agent.valueTransfer.getById(this.valueTransferRecordId) + return await this.valueTransfer.getById(this.valueTransferRecordId) } private async waitForPayment() { @@ -72,12 +76,12 @@ export class CentralBankIssuer extends BaseAgent { console.log('Waiting for finishing payment...') try { - const record = await this.agent.valueTransfer.returnWhenIsCompleted(valueTransferRecord.id) + const record = await this.valueTransfer.returnWhenIsCompleted(valueTransferRecord.id) if (record.state === TransactionState.Completed) { console.log(greenText(Output.PaymentDone)) console.log(greenText('Receipt:')) console.log(record.receipt) - const balance = await this.agent.valueTransfer.getBalance() + const balance = await this.valueTransfer.getBalance() console.log(greenText('Balance: ' + balance)) } if (record.state === TransactionState.Failed) { diff --git a/demo/src/CentralBankIssuerInquirer.ts b/demo/src/CentralBankIssuerInquirer.ts index 8bb4170bc8..e6fb8e5b34 100644 --- a/demo/src/CentralBankIssuerInquirer.ts +++ b/demo/src/CentralBankIssuerInquirer.ts @@ -34,7 +34,7 @@ export class CentralBankIssuerInquirer extends BaseInquirer { } public static async build(): Promise { - const centralBankIssuer = await CentralBankIssuer.build() + const centralBankIssuer = await CentralBankIssuer.init() return new CentralBankIssuerInquirer(centralBankIssuer) } diff --git a/demo/src/CentralBankWitness.ts b/demo/src/CentralBankWitness.ts index c66950d650..990e5c9196 100644 --- a/demo/src/CentralBankWitness.ts +++ b/demo/src/CentralBankWitness.ts @@ -1,6 +1,7 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ import { DidMarker, Transports } from '@aries-framework/core' import { initWitnessGossip } from '@aries-framework/gossip' +import { initValueTransfer } from '@aries-framework/value-transfer' import { BaseAgent } from './BaseAgent' import { Output } from './OutputClass' @@ -8,6 +9,13 @@ import { Output } from './OutputClass' export class CentralBankWitness extends BaseAgent { public static wid = '1' public static host = 'http://localhost' + public static witnessConfig = { + wid: CentralBankWitness.wid, + knownWitnesses: BaseAgent.witnessTable, + issuerDids: [ + 'did:peer:2.Ez6LSgzMiffdvz75iwtDzU9U23YnUsVGWqsZRfpXZf43G1qMw.Vz6MkiRNEoPQFYs3Cm9x3Xbx3Q4MRJTXVbGwpcMDkrRK6JTYD.SeyJzIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MSIsInQiOiJkbSIsInIiOlsiZGlkOnBlZXI6Mi5FejZMU25IUzlmM2hyTXVMck45ejZaaG83VGNCUnZTeUs3SFBqUXR3S211M29zV3dGLlZ6Nk1rcmFoQW9WTFFTOVM1R0Y1c1VLdHVkWE1lZFVTWmRkZUpoakh0QUZhVjRob1YuU1czc2ljeUk2SW1oMGRIQTZMeTlzYjJOaGJHaHZjM1E2TXpBd01DOWhjR2t2ZGpFaUxDSjBJam9pWkcwaUxDSnlJanBiWFgwc2V5SnpJam9pZDNNNkx5OXNiMk5oYkdodmMzUTZNekF3TUM5aGNHa3ZkakVpTENKMElqb2laRzBpTENKeUlqcGJYWDFkIl19', + ], + } public constructor(name: string, port?: number) { const endpoint = `${CentralBankWitness.host}:${port}` @@ -23,22 +31,14 @@ export class CentralBankWitness extends BaseAgent { endpoint, }, ], - valueTransferConfig: { - witness: { - wid: CentralBankWitness.wid, - knownWitnesses: BaseAgent.witnessTable, - issuerDids: [ - 'did:peer:2.Ez6LSgzMiffdvz75iwtDzU9U23YnUsVGWqsZRfpXZf43G1qMw.Vz6MkiRNEoPQFYs3Cm9x3Xbx3Q4MRJTXVbGwpcMDkrRK6JTYD.SeyJzIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MSIsInQiOiJkbSIsInIiOlsiZGlkOnBlZXI6Mi5FejZMU25IUzlmM2hyTXVMck45ejZaaG83VGNCUnZTeUs3SFBqUXR3S211M29zV3dGLlZ6Nk1rcmFoQW9WTFFTOVM1R0Y1c1VLdHVkWE1lZFVTWmRkZUpoakh0QUZhVjRob1YuU1czc2ljeUk2SW1oMGRIQTZMeTlzYjJOaGJHaHZjM1E2TXpBd01DOWhjR2t2ZGpFaUxDSjBJam9pWkcwaUxDSnlJanBiWFgwc2V5SnpJam9pZDNNNkx5OXNiMk5oYkdodmMzUTZNekF3TUM5aGNHa3ZkakVpTENKMElqb2laRzBpTENKeUlqcGJYWDFkIl19', - ], - }, - }, }) } public static async build(): Promise { const witness = new CentralBankWitness('centralBank', 8081) await witness.initializeAgent() - await initWitnessGossip(witness.agent) + await initValueTransfer(witness.agent, this.witnessConfig) + await initWitnessGossip(witness.agent, this.witnessConfig) const publicDid = await witness.agent.getStaticDid(DidMarker.Public) console.log(`CentralBank Public DID: ${publicDid?.did}`) return witness diff --git a/demo/src/GlobalBankWitness.ts b/demo/src/GlobalBankWitness.ts index e816208bf0..c1f7202789 100644 --- a/demo/src/GlobalBankWitness.ts +++ b/demo/src/GlobalBankWitness.ts @@ -1,6 +1,7 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ import { DidMarker, Transports } from '@aries-framework/core' import { initWitnessGossip } from '@aries-framework/gossip' +import { initValueTransfer } from '@aries-framework/value-transfer' import { BaseAgent } from './BaseAgent' import { Output } from './OutputClass' @@ -8,6 +9,10 @@ import { Output } from './OutputClass' export class GlobalBankWitness extends BaseAgent { public static wid = '2' public static host = 'http://localhost' + public static witnessConfig = { + wid: GlobalBankWitness.wid, + knownWitnesses: BaseAgent.witnessTable, + } public constructor(name: string, port?: number) { const endpoint = `${GlobalBankWitness.host}:${port}` @@ -23,19 +28,14 @@ export class GlobalBankWitness extends BaseAgent { endpoint, }, ], - valueTransferConfig: { - witness: { - wid: GlobalBankWitness.wid, - knownWitnesses: BaseAgent.witnessTable, - }, - }, }) } public static async build(): Promise { const witness = new GlobalBankWitness('globalBank', 8082) await witness.initializeAgent() - await initWitnessGossip(witness.agent) + await initValueTransfer(witness.agent, {}) + await initWitnessGossip(witness.agent, this.witnessConfig) const publicDid = await witness.agent.getStaticDid(DidMarker.Public) console.log(`GlobalBank Public DID: ${publicDid?.did}`) return witness diff --git a/demo/src/Listener.ts b/demo/src/Listener.ts index 2e771c6482..79bfa35653 100644 --- a/demo/src/Listener.ts +++ b/demo/src/Listener.ts @@ -16,10 +16,9 @@ import type { CredentialStateChangedEvent, ProofRecord, ProofStateChangedEvent, - ValueTransferStateChangedEvent, - ValueTransferRecord, - WitnessTableReceivedEvent, } from '@aries-framework/core' +import type { ValueTransferRecord, ValueTransferStateChangedEvent } from '@aries-framework/value-transfer' +import type { WitnessTableReceivedEvent } from '@aries-framework/value-transfer-events' import type BottomBar from 'inquirer/lib/ui/bottom-bar' import { @@ -29,9 +28,10 @@ import { CredentialState, ProofEventTypes, ProofState, - ValueTransferEventTypes, JsonEncoder, } from '@aries-framework/core' +import { ValueTransferEventTypes } from '@aries-framework/value-transfer' +import { ValueTransferSharedEventTypes } from '@aries-framework/value-transfer-events' import { TransactionState } from '@sicpa-dlab/value-transfer-protocol-ts' import { ui } from 'inquirer' @@ -123,7 +123,7 @@ export class Listener { public witnessTableListener(giver: Anna) { giver.agent.events.on( - ValueTransferEventTypes.WitnessTableReceived, + ValueTransferSharedEventTypes.WitnessTableReceived, async ({ payload }: WitnessTableReceivedEvent) => { console.log('\n\nWitness Table received:') console.log(purpleText(JsonEncoder.toString(payload.witnesses))) diff --git a/demo/src/LocalBankWitness.ts b/demo/src/LocalBankWitness.ts index beb784b232..d976308c96 100644 --- a/demo/src/LocalBankWitness.ts +++ b/demo/src/LocalBankWitness.ts @@ -1,6 +1,7 @@ /*eslint import/no-cycle: [2, { maxDepth: 1 }]*/ import { DidMarker, Transports } from '@aries-framework/core' import { initWitnessGossip } from '@aries-framework/gossip' +import { initValueTransfer } from '@aries-framework/value-transfer' import { BaseAgent } from './BaseAgent' import { Output } from './OutputClass' @@ -8,6 +9,10 @@ import { Output } from './OutputClass' export class LocalBankWitness extends BaseAgent { public static wid = '3' public static host = 'http://localhost' + public static witnessConfig = { + wid: LocalBankWitness.wid, + knownWitnesses: BaseAgent.witnessTable, + } public constructor(name: string, port?: number) { const endpoint = `${LocalBankWitness.host}:${port}` @@ -23,19 +28,14 @@ export class LocalBankWitness extends BaseAgent { endpoint, }, ], - valueTransferConfig: { - witness: { - wid: LocalBankWitness.wid, - knownWitnesses: BaseAgent.witnessTable, - }, - }, }) } public static async build(): Promise { const witness = new LocalBankWitness('localBank', 8083) await witness.initializeAgent() - await initWitnessGossip(witness.agent) + await initValueTransfer(witness.agent, {}) + await initWitnessGossip(witness.agent, this.witnessConfig) const publicDid = await witness.agent.getStaticDid(DidMarker.Public) console.log(`LocalBank Public DID: ${publicDid?.did}`) return witness diff --git a/packages/core/package.json b/packages/core/package.json index 9620660a45..2c306f8ceb 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -30,7 +30,6 @@ "@stablelib/ed25519": "^1.0.2", "@stablelib/sha256": "^1.0.1", "@stablelib/uuid": "^1.0.1", - "@types/async-lock": "^1.1.5", "@types/indy-sdk": "^1.16.16", "@types/node-fetch": "^2.5.10", "@types/ws": "^7.4.6", diff --git a/packages/core/src/agent/Agent.ts b/packages/core/src/agent/Agent.ts index 5f6a0337e4..674d569f00 100644 --- a/packages/core/src/agent/Agent.ts +++ b/packages/core/src/agent/Agent.ts @@ -34,7 +34,6 @@ import { ProofsModule } from '../modules/proofs/ProofsModule' import { QuestionAnswerModule } from '../modules/question-answer/QuestionAnswerModule' import { MediatorModule } from '../modules/routing/MediatorModule' import { RecipientModule } from '../modules/routing/RecipientModule' -import { ValueTransferModule, ValueTransferService } from '../modules/value-transfer' import { DependencyManager } from '../plugins' import { StorageUpdateService, DidCommMessageRepository, StorageVersionRepository } from '../storage' import { InMemoryMessageRepository } from '../storage/InMemoryMessageRepository' @@ -65,7 +64,6 @@ export class Agent { public messageSubscription: Subscription private walletService: Wallet private didService: DidService - private valueTransferService: ValueTransferService public readonly connections: ConnectionsModule public readonly proofs: ProofsModule @@ -81,7 +79,6 @@ export class Agent { public readonly keys: KeysModule public readonly dids: DidsModule public readonly wallet: WalletModule - public readonly valueTransfer: ValueTransferModule public readonly outOfBand: OutOfBandModule public readonly oob!: OutOfBandModuleV2 @@ -120,7 +117,6 @@ export class Agent { this.messageSender = this.dependencyManager.resolve(MessageSender) this.messageReceiver = this.dependencyManager.resolve(MessageReceiver) this.walletService = this.dependencyManager.resolve(InjectionSymbols.Wallet) - this.valueTransferService = this.dependencyManager.resolve(ValueTransferService) this.didService = this.dependencyManager.resolve(DidService) // We set the modules in the constructor because that allows to set them as read-only @@ -140,7 +136,6 @@ export class Agent { this.wallet = this.dependencyManager.resolve(WalletModule) this.outOfBand = this.dependencyManager.resolve(OutOfBandModule) this.oob = this.dependencyManager.resolve(OutOfBandModuleV2) - this.valueTransfer = this.dependencyManager.resolve(ValueTransferModule) // Listen for new messages (either from transports or somewhere else in the framework / extensions) this.messageSubscription = this.eventEmitter @@ -189,9 +184,7 @@ export class Agent { staticDids, walletConfig, mediatorConnectionsInvite, - valueTransferConfig, publicDidType, - lockTransactions, } = this.agentConfig if (this._isInitialized) { @@ -244,8 +237,6 @@ export class Agent { }) } - if (lockTransactions) await this.valueTransferService.initActiveTransactionLock() - for (const transport of this.inboundTransports) { // eslint-disable-next-line @typescript-eslint/no-floating-promises transport.start(this) @@ -308,11 +299,6 @@ export class Agent { }) } - // VTP state initialization - if (valueTransferConfig && !valueTransferConfig.witness) { - await this.valueTransferService.initPartyState() - } - this._isInitialized = true } @@ -407,7 +393,6 @@ export class Agent { OutOfBandModuleV2, OutOfBandModule, IndyModule, - ValueTransferModule, KeysModule, ProblemReportModule ) diff --git a/packages/core/src/agent/AgentConfig.ts b/packages/core/src/agent/AgentConfig.ts index ba6054c80e..e7b263fecc 100644 --- a/packages/core/src/agent/AgentConfig.ts +++ b/packages/core/src/agent/AgentConfig.ts @@ -2,7 +2,6 @@ import type { Logger } from '../logger' import type { FileSystem } from '../storage/FileSystem' import type { InitConfig, InternetChecker } from '../types' import type { AgentDependencies } from './AgentDependencies' -import type { GossipConfig, GossipPlugins } from '@sicpa-dlab/witness-gossip-types-ts' import { Subject } from 'rxjs' @@ -12,7 +11,6 @@ import { ConsoleLogger, LogLevel } from '../logger' import { AutoAcceptCredential } from '../modules/credentials/models/CredentialAutoAcceptType' import { AutoAcceptProof } from '../modules/proofs/ProofAutoAcceptType' import { offlineTransports, onlineTransports } from '../modules/routing/types' -import { AutoAcceptValueTransfer } from '../modules/value-transfer/ValueTransferAutoAcceptType' import { DidCommMimeType } from '../types' import { DefaultInternetChecker } from './defaultInternetChecker' @@ -80,26 +78,6 @@ export class AgentConfig { return this.initConfig.autoAcceptCredentials ?? AutoAcceptCredential.Never } - public get autoAcceptPaymentOffer() { - return this.initConfig.valueTransferConfig?.party?.autoAcceptPaymentOffer ?? AutoAcceptValueTransfer.Never - } - - public get autoAcceptPaymentRequest() { - return this.initConfig.valueTransferConfig?.party?.autoAcceptPaymentRequest ?? AutoAcceptValueTransfer.Never - } - - public get autoAcceptOfferedPaymentRequest() { - return this.initConfig.valueTransferConfig?.party?.autoAcceptOfferedPaymentRequest ?? AutoAcceptValueTransfer.Never - } - - public get witnessIssuerDids() { - return this.initConfig.valueTransferConfig?.witness?.issuerDids - } - - public get valueTransferWitnessDid() { - return this.initConfig.valueTransferConfig?.party?.witnessDid - } - public get didCommMimeType() { return this.initConfig.didCommMimeType ?? DidCommMimeType.V0 } @@ -211,14 +189,6 @@ export class AgentConfig { return JSON.stringify(config, null, 2) } - public get valueTransferConfig() { - return this.initConfig.valueTransferConfig - } - - public get valueTransferWitnessConfig() { - return this.initConfig.valueTransferConfig?.witness - } - public get transports() { return this.initConfig.transports || [] } @@ -245,12 +215,4 @@ export class AgentConfig { const pingUrl = this.initConfig.mediatorConnectionsInvite || 'https://www.google.com' return new DefaultInternetChecker(pingUrl, this.agentDependencies) } - - public get gossipConfig(): GossipConfig | undefined { - return this.valueTransferWitnessConfig?.gossipConfig - } - - public get gossipPlugins(): Partial | undefined { - return this.valueTransferWitnessConfig?.gossipPlugins - } } diff --git a/packages/core/src/constants.ts b/packages/core/src/constants.ts index 2a271f6f0f..4b2eb6f0ea 100644 --- a/packages/core/src/constants.ts +++ b/packages/core/src/constants.ts @@ -3,7 +3,6 @@ export const InjectionSymbols = { MessageRepository: Symbol('MessageRepository'), StorageService: Symbol('StorageService'), Logger: Symbol('Logger'), - GossipService: Symbol('GossipService'), } export const DID_COMM_TRANSPORT_QUEUE = 'didcomm:transport/queue' diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 43f087278d..2e43eaa42c 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -10,7 +10,7 @@ export { AgentConfig } from './agent/AgentConfig' export { Dispatcher } from './agent/Dispatcher' export { MessageSender } from './agent/MessageSender' export type { AgentDependencies } from './agent/AgentDependencies' -export type { InitConfig, OutboundPackage, PlaintextMessage, ValueTransferConfig } from './types' +export type { InitConfig, OutboundPackage, PlaintextMessage } from './types' export { KeyDerivationMethod, DidCommMimeType } from './types' export type { FileSystem } from './storage/FileSystem' export * from './storage/BaseRecord' @@ -43,14 +43,14 @@ export * from './modules/connections' export * from './modules/ledger' export * from './modules/routing' export * from './modules/dids' -export * from './modules/value-transfer' export * from './modules/out-of-band' -export * from './modules/gossip' export * from './modules/question-answer' +export * from './modules/problem-reports' export * from './modules/oob' export * from './modules/keys' export * from './utils/JsonTransformer' export * from './utils/string' +export { timeoutWhen } from './utils' export * from './logger' export * from './error' export * from './wallet/error' diff --git a/packages/core/src/modules/gossip/index.ts b/packages/core/src/modules/gossip/index.ts deleted file mode 100644 index f1b26f8e08..0000000000 --- a/packages/core/src/modules/gossip/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './messages' diff --git a/packages/core/src/modules/gossip/messages/index.ts b/packages/core/src/modules/gossip/messages/index.ts deleted file mode 100644 index 826124adb0..0000000000 --- a/packages/core/src/modules/gossip/messages/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './WitnessTableMessage' -export * from './WitnessTableQueryMessage' diff --git a/packages/core/src/modules/out-of-band/services/OutOfBandService.ts b/packages/core/src/modules/out-of-band/services/OutOfBandService.ts index a179094414..c2a5a63b00 100644 --- a/packages/core/src/modules/out-of-band/services/OutOfBandService.ts +++ b/packages/core/src/modules/out-of-band/services/OutOfBandService.ts @@ -12,8 +12,6 @@ import { JsonTransformer } from '../../../utils/JsonTransformer' import { ShareContactService, ShareContactState } from '../../connections' import { DidService } from '../../dids' import { DidResolverService } from '../../dids/services/DidResolverService' -import { ValueTransferGetterService } from '../../value-transfer/services/ValueTransferGetterService' -import { ValueTransferGiverService } from '../../value-transfer/services/ValueTransferGiverService' import { OutOfBandEventTypes } from '../OutOfBandEvents' import { AndroidNearbyHandshakeAttachment, OutOfBandGoalCode, OutOfBandInvitationMessage } from '../messages' @@ -25,8 +23,6 @@ export class OutOfBandService { private didService: DidService private didResolverService: DidResolverService private eventEmitter: EventEmitter - private valueTransferGetterService: ValueTransferGetterService - private valueTransferGiverService: ValueTransferGiverService private shareContactService: ShareContactService private messageSender: MessageSender @@ -35,8 +31,6 @@ export class OutOfBandService { didService: DidService, didResolverService: DidResolverService, eventEmitter: EventEmitter, - valueTransferGetterService: ValueTransferGetterService, - valueTransferGiverService: ValueTransferGiverService, shareContactService: ShareContactService, messageSender: MessageSender ) { @@ -44,8 +38,6 @@ export class OutOfBandService { this.didService = didService this.didResolverService = didResolverService this.eventEmitter = eventEmitter - this.valueTransferGetterService = valueTransferGetterService - this.valueTransferGiverService = valueTransferGiverService this.shareContactService = shareContactService this.messageSender = messageSender } diff --git a/packages/core/src/modules/value-transfer/index.ts b/packages/core/src/modules/value-transfer/index.ts deleted file mode 100644 index ac94fc05aa..0000000000 --- a/packages/core/src/modules/value-transfer/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './messages' -export * from './services' -export * from './repository' -export * from './ValueTransferEvents' -export * from './ValueTransferModule' -export * from './ValueTransferAutoAcceptType' diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index bb2da5bbc4..9e120ef2e1 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -12,13 +12,6 @@ import type { OutOfBandRecord } from './modules/oob/repository' import type { AutoAcceptProof } from './modules/proofs' import type { MediatorDeliveryStrategy, MediatorPickupStrategy } from './modules/routing' import type { Transports } from './modules/routing/types' -import type { AutoAcceptValueTransfer } from './modules/value-transfer/ValueTransferAutoAcceptType' -import type { - GossipConfig, - GossipPlugins, - GossipStorageConfig, - WitnessDetails, -} from '@sicpa-dlab/witness-gossip-types-ts' export enum KeyDerivationMethod { /** default value in indy-sdk. Will be used when no value is provided */ @@ -52,26 +45,6 @@ export interface WalletExportImportConfig { path: string } -export interface ValueTransferPartyConfig { - witnessDid?: string - autoAcceptPaymentOffer?: AutoAcceptValueTransfer - autoAcceptOfferedPaymentRequest?: AutoAcceptValueTransfer - autoAcceptPaymentRequest?: AutoAcceptValueTransfer -} - -export interface ValueTransferWitnessConfig { - wid: string - knownWitnesses: WitnessDetails[] - gossipConfig?: GossipConfig - gossipPlugins?: Partial - issuerDids?: string[] -} - -export interface ValueTransferConfig { - party?: ValueTransferPartyConfig - witness?: ValueTransferWitnessConfig -} - export type EncryptedMessage = { protected: string iv: string @@ -128,13 +101,10 @@ export interface InitConfig { useLegacyDidSovPrefix?: boolean connectionImageUrl?: string - valueTransferConfig?: ValueTransferConfig autoUpdateStorageOnStartup?: boolean internetChecker?: InternetChecker - - gossipStorageConfig?: GossipStorageConfig } export type PlaintextMessage = PlaintextMessageV1 | PlaintextMessageV2 diff --git a/packages/gossip/package.json b/packages/gossip/package.json index ede7b8e6ee..2161c1ae37 100644 --- a/packages/gossip/package.json +++ b/packages/gossip/package.json @@ -26,14 +26,17 @@ }, "dependencies": { "@aries-framework/core": "npm:@sicpa-dlab/aries-framework-core@0.5.0", + "@aries-framework/value-transfer-events": "file:../value-transfer-events", "@sicpa-dlab/witness-gossip-protocol-ts": "0.3.13", "@sicpa-dlab/witness-gossip-types-ts": "0.3.9", "@sicpa-dlab/value-transfer-common-ts": "0.3.7", "class-transformer": "0.5.1", "class-validator": "0.13.1", - "buffer": "^6.0.3" + "buffer": "^6.0.3", + "uuid": "^8.3.2" }, "devDependencies": { + "@types/uuid": "^8.3.0", "rimraf": "~3.0.2", "typescript": "~4.3.0" } diff --git a/packages/gossip/src/GossipConfig.ts b/packages/gossip/src/GossipConfig.ts new file mode 100644 index 0000000000..da75b9eed1 --- /dev/null +++ b/packages/gossip/src/GossipConfig.ts @@ -0,0 +1,25 @@ +import type { GossipConfig, GossipPlugins, WitnessDetails } from '@sicpa-dlab/witness-gossip-types-ts' + +export interface WitnessConfigOptions { + wid: string + knownWitnesses: WitnessDetails[] + gossipConfig?: GossipConfig + gossipPlugins?: Partial + issuerDids?: string[] +} + +export class WitnessConfig { + public wid!: string + public knownWitnesses!: WitnessDetails[] + public gossipConfig?: GossipConfig + public gossipPlugins?: Partial + public issuerDids?: string[] + + public constructor(options: WitnessConfigOptions) { + this.wid = options.wid + this.knownWitnesses = options.knownWitnesses + this.gossipConfig = options.gossipConfig + this.gossipPlugins = options.gossipPlugins + this.issuerDids = options.issuerDids + } +} diff --git a/packages/gossip/src/GossipModule.ts b/packages/gossip/src/GossipModule.ts index ba41c084a1..ed319cc57a 100644 --- a/packages/gossip/src/GossipModule.ts +++ b/packages/gossip/src/GossipModule.ts @@ -1,10 +1,14 @@ import type { DependencyManager } from '@aries-framework/core' -import { Dispatcher, module, injectable, InjectionSymbols, inject } from '@aries-framework/core' +import { Dispatcher, module, injectable, inject } from '@aries-framework/core' import { WitnessGossipMessageHandler } from './handlers' import { GossipService } from './services' +export const InjectionSymbols = { + GossipService: Symbol('GossipService'), +} + @module() @injectable() export class GossipModule { diff --git a/packages/gossip/src/handlers/WitnessMessageHandler.ts b/packages/gossip/src/handlers/WitnessMessageHandler.ts index 64104a43e3..8da350399f 100644 --- a/packages/gossip/src/handlers/WitnessMessageHandler.ts +++ b/packages/gossip/src/handlers/WitnessMessageHandler.ts @@ -1,9 +1,7 @@ import type { GossipService } from '../services' import type { Handler, HandlerInboundMessage } from '@aries-framework/core' -import { WitnessTableMessage, WitnessTableQueryMessage } from '@aries-framework/core' - -import { WitnessGossipInfoMessage } from '../messages' +import { WitnessTableMessage, WitnessTableQueryMessage, WitnessGossipInfoMessage } from '../messages' export class WitnessGossipMessageHandler implements Handler { private gossipService: GossipService diff --git a/packages/gossip/src/index.ts b/packages/gossip/src/index.ts index a4c9197fd1..0fd0e11f03 100644 --- a/packages/gossip/src/index.ts +++ b/packages/gossip/src/index.ts @@ -1,18 +1,21 @@ +import type { WitnessConfigOptions } from './GossipConfig' import type { GossipService } from './services' import type { Agent } from '@aries-framework/core' -import { AriesFrameworkError, InjectionSymbols } from '@aries-framework/core' +import { WitnessConfig } from './GossipConfig' +import { GossipModule, InjectionSymbols } from './GossipModule' -import { GossipModule } from './GossipModule' +export * from './GossipModule' -export async function initWitnessGossip(agent: Agent) { - if (!agent.config.valueTransferConfig?.witness) { - throw new AriesFrameworkError('Cannot init Witness Gossip - provided agent is not configured as a Witness') - } +export * from './messages' +export async function initWitnessGossip(agent: Agent, config: WitnessConfigOptions): Promise { + agent.dependencyManager.registerInstance(WitnessConfig, new WitnessConfig(config)) agent.dependencyManager.registerModules(GossipModule) const gossipService = agent.dependencyManager.resolve(InjectionSymbols.GossipService) - await gossipService.initState() + await gossipService.initWitnessState(config) await gossipService.start() + + return agent.dependencyManager.resolve(GossipModule) } diff --git a/packages/core/src/modules/gossip/messages/WitnessTableMessage.ts b/packages/gossip/src/messages/WitnessTableMessage.ts similarity index 80% rename from packages/core/src/modules/gossip/messages/WitnessTableMessage.ts rename to packages/gossip/src/messages/WitnessTableMessage.ts index 1c0e785ebd..8bfddf36ac 100644 --- a/packages/core/src/modules/gossip/messages/WitnessTableMessage.ts +++ b/packages/gossip/src/messages/WitnessTableMessage.ts @@ -1,13 +1,11 @@ -import type { DIDCommV2MessageParams } from '../../../agent/didcomm' +import type { DIDCommV2MessageParams } from '@aries-framework/core' import type { WitnessMessageType } from '@sicpa-dlab/witness-gossip-types-ts' +import { DIDCommV2Message, IsValidMessageType, parseMessageType } from '@aries-framework/core' import { WitnessTable, WitnessTableBody } from '@sicpa-dlab/witness-gossip-types-ts' import { Type } from 'class-transformer' import { IsString, ValidateNested } from 'class-validator' -import { DIDCommV2Message } from '../../../agent/didcomm' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - export type WitnessTableMessageParams = { body: WitnessTableBody } & DIDCommV2MessageParams diff --git a/packages/core/src/modules/gossip/messages/WitnessTableQueryMessage.ts b/packages/gossip/src/messages/WitnessTableQueryMessage.ts similarity index 81% rename from packages/core/src/modules/gossip/messages/WitnessTableQueryMessage.ts rename to packages/gossip/src/messages/WitnessTableQueryMessage.ts index 16e00b19b4..b1d0cdd098 100644 --- a/packages/core/src/modules/gossip/messages/WitnessTableQueryMessage.ts +++ b/packages/gossip/src/messages/WitnessTableQueryMessage.ts @@ -1,12 +1,10 @@ -import type { DIDCommV2MessageParams } from '../../../agent/didcomm' +import type { DIDCommV2MessageParams } from '@aries-framework/core' +import { DIDCommV2Message, IsValidMessageType, parseMessageType } from '@aries-framework/core' import { WitnessMessageType, WitnessTableQuery, WitnessTableQueryBody } from '@sicpa-dlab/witness-gossip-types-ts' import { Type } from 'class-transformer' import { IsInstance, IsString, ValidateNested } from 'class-validator' -import { DIDCommV2Message } from '../../../agent/didcomm' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - export type WitnessTableQueryMessageParams = { body: WitnessTableQueryBody } & DIDCommV2MessageParams diff --git a/packages/gossip/src/messages/index.ts b/packages/gossip/src/messages/index.ts index b3ba83ad8e..701c9e1d56 100644 --- a/packages/gossip/src/messages/index.ts +++ b/packages/gossip/src/messages/index.ts @@ -1 +1,3 @@ export * from './WitnessGossipInfoMessage' +export * from './WitnessTableQueryMessage' +export * from './WitnessTableMessage' diff --git a/packages/gossip/src/services/GossipService.ts b/packages/gossip/src/services/GossipService.ts index de3d9c4678..18e978fcc2 100644 --- a/packages/gossip/src/services/GossipService.ts +++ b/packages/gossip/src/services/GossipService.ts @@ -1,17 +1,24 @@ -import type { ResumeValueTransferTransactionEvent, WitnessTableReceivedEvent } from '@aries-framework/core' +import type { Logger } from '@aries-framework/core' +import type { + ResumeValueTransferTransactionEvent, + WitnessTableReceivedEvent, +} from '@aries-framework/value-transfer-events' import type { GossipInterface, TransactionRecord, BaseGossipMessage } from '@sicpa-dlab/witness-gossip-types-ts' import { AriesFrameworkError, DidMarker, - ValueTransferEventTypes, - AgentConfig, EventEmitter, DidService, injectable, + AgentConfig, } from '@aries-framework/core' +import { ValueTransferSharedEventTypes } from '@aries-framework/value-transfer-events' import { GossipMessageDispatcher, Gossip } from '@sicpa-dlab/witness-gossip-protocol-ts' import { MappingTable, WitnessDetails, WitnessGossipInfo, WitnessTable } from '@sicpa-dlab/witness-gossip-types-ts' +import { v4 } from 'uuid' + +import { WitnessConfig } from '../GossipConfig' import { GossipCryptoService } from './GossipCryptoService' import { GossipLoggerService } from './GossipLoggerService' @@ -19,13 +26,15 @@ import { GossipTransportService } from './GossipTransportService' @injectable() export class GossipService implements GossipInterface { + private readonly logger: Logger private readonly gossip: Gossip private readonly messageDispatcher: GossipMessageDispatcher private gossipingStarted = false public constructor( - private readonly config: AgentConfig, + private readonly agentConfig: AgentConfig, + private readonly config: WitnessConfig, private readonly gossipCryptoService: GossipCryptoService, private readonly gossipTransportService: GossipTransportService, private readonly gossipLoggerService: GossipLoggerService, @@ -40,11 +49,12 @@ export class GossipService implements GossipInterface { metrics: this.config.gossipPlugins?.metrics, }, { - label: this.config.label, + label: this.config.gossipConfig?.label || v4(), ...this.config.gossipConfig, } ) this.messageDispatcher = new GossipMessageDispatcher(this.gossip) + this.logger = agentConfig.logger } public getWitnessDetails(): Promise { @@ -72,11 +82,8 @@ export class GossipService implements GossipInterface { return this.gossip.stop() } - public async initState(): Promise { - this.config.logger.info('> initState') - - const config = this.config.valueTransferWitnessConfig - if (!config) throw new Error('Value transfer config is not available') + public async initWitnessState(config: WitnessConfig): Promise { + this.logger.info('> initState') const did = await this.didService.findStaticDid(DidMarker.Public) if (!did) { @@ -92,9 +99,9 @@ export class GossipService implements GossipInterface { const info = new WitnessDetails({ wid: config.wid, did: did.did }) const mappingTable = new MappingTable(config.knownWitnesses) - await this.gossip.initState(info, mappingTable) + await this.initState(info, mappingTable) - this.config.logger.info('< initState completed!') + this.logger.info('< initState completed!') } public clearState(): Promise { @@ -120,7 +127,7 @@ export class GossipService implements GossipInterface { const witnessTable = message as WitnessTable this.eventEmitter.emit({ - type: ValueTransferEventTypes.WitnessTableReceived, + type: ValueTransferSharedEventTypes.WitnessTableReceived, payload: { witnesses: witnessTable.body.witnesses, }, @@ -134,7 +141,7 @@ export class GossipService implements GossipInterface { // Resume VTP Transaction if exists -> this event will be caught in WitnessService this.eventEmitter.emit({ - type: ValueTransferEventTypes.ResumeTransaction, + type: ValueTransferSharedEventTypes.ResumeTransaction, payload: { thid: witnessGossipInfo.pthid, }, @@ -144,4 +151,8 @@ export class GossipService implements GossipInterface { } } } + + public async initState(myInfo: WitnessDetails, mappingTable: MappingTable): Promise { + await this.gossip.initState(myInfo, mappingTable) + } } diff --git a/packages/gossip/src/services/GossipTransportService.ts b/packages/gossip/src/services/GossipTransportService.ts index 0d572aa009..bbf773e3de 100644 --- a/packages/gossip/src/services/GossipTransportService.ts +++ b/packages/gossip/src/services/GossipTransportService.ts @@ -7,9 +7,10 @@ import { DIDCommV2Message, injectable, JsonEncoder, - WitnessTableMessage, } from '@aries-framework/core' +import { WitnessTableMessage } from '../messages' + /* * Implementation of Transport interface required by Gossip library * */ diff --git a/packages/value-transfer-events/README.md b/packages/value-transfer-events/README.md new file mode 100644 index 0000000000..501b599dec --- /dev/null +++ b/packages/value-transfer-events/README.md @@ -0,0 +1,38 @@ +

+
+ Hyperledger Aries logo +

+

Aries Framework JavaScript - Gossip

+

+ License + typescript + @aries-framework/gossip version + +

+
+ +Plugin for Aries Framework JavaScript enabling Value Transfer functionality. + +### Usage + +```js +const agent = new Agent({...}) +await initWitnessGossip(agent) +``` diff --git a/packages/value-transfer-events/jest.config.ts b/packages/value-transfer-events/jest.config.ts new file mode 100644 index 0000000000..ce53584ebf --- /dev/null +++ b/packages/value-transfer-events/jest.config.ts @@ -0,0 +1,13 @@ +import type { Config } from '@jest/types' + +import base from '../../jest.config.base' + +import packageJson from './package.json' + +const config: Config.InitialOptions = { + ...base, + name: packageJson.name, + displayName: packageJson.name, +} + +export default config diff --git a/packages/value-transfer-events/package.json b/packages/value-transfer-events/package.json new file mode 100644 index 0000000000..3eb9767af7 --- /dev/null +++ b/packages/value-transfer-events/package.json @@ -0,0 +1,44 @@ +{ + "name": "@sicpa-dlab/aries-framework-value-tranfer-events", + "main": "build/index", + "types": "build/index", + "version": "0.0.1", + "files": [ + "build", + "bin" + ], + "license": "Apache-2.0", + "publishConfig": { + "registry": "https://npm.pkg.github.com" + }, + "homepage": "https://github.com/hyperledger/aries-framework-javascript/tree/main/packages/value-tranfer-events", + "repository": { + "type": "git", + "url": "https://github.com/sicpa-dlab/aries-framework-javascript/", + "directory": "packages/gossip" + }, + "scripts": { + "build": "npx rimraf -rf build && yarn run compile", + "clean": "npx rimraf -rf build node_modules", + "compile": "tsc -p tsconfig.build.json", + "prepublishOnly": "yarn run build", + "test": "jest" + }, + "dependencies": { + "@aries-framework/core": "npm:@sicpa-dlab/aries-framework-core@0.5.0", + "@aries-framework/gossip": "file:../gossip", + "@sicpa-dlab/value-transfer-protocol-ts": "0.4.5", + "@sicpa-dlab/value-transfer-common-ts": "0.3.7", + "@sicpa-dlab/witness-gossip-types-ts": "0.3.9", + "class-transformer": "0.5.1", + "class-validator": "0.13.1", + "buffer": "^6.0.3", + "rxjs": "^7.2.0", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@types/uuid": "^8.3.0", + "rimraf": "~3.0.2", + "typescript": "~4.3.0" + } +} diff --git a/packages/value-transfer-events/src/ValueTransferSharedEvents.ts b/packages/value-transfer-events/src/ValueTransferSharedEvents.ts new file mode 100644 index 0000000000..7af92ac139 --- /dev/null +++ b/packages/value-transfer-events/src/ValueTransferSharedEvents.ts @@ -0,0 +1,21 @@ +import type { BaseEvent } from '@aries-framework/core' +import type { WitnessData } from '@sicpa-dlab/witness-gossip-types-ts' + +export enum ValueTransferSharedEventTypes { + ResumeTransaction = 'ResumeTransaction', + WitnessTableReceived = 'WitnessTableReceived', +} + +export interface ResumeValueTransferTransactionEvent extends BaseEvent { + type: typeof ValueTransferSharedEventTypes.ResumeTransaction + payload: { + thid: string + } +} + +export interface WitnessTableReceivedEvent extends BaseEvent { + type: typeof ValueTransferSharedEventTypes.WitnessTableReceived + payload: { + witnesses: WitnessData[] + } +} diff --git a/packages/value-transfer-events/src/index.ts b/packages/value-transfer-events/src/index.ts new file mode 100644 index 0000000000..5a88054696 --- /dev/null +++ b/packages/value-transfer-events/src/index.ts @@ -0,0 +1 @@ +export * from './ValueTransferSharedEvents' diff --git a/packages/value-transfer-events/tsconfig.build.json b/packages/value-transfer-events/tsconfig.build.json new file mode 100644 index 0000000000..dc956cf98b --- /dev/null +++ b/packages/value-transfer-events/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.build.json", + + "compilerOptions": { + "outDir": "./build", + "types": ["node"], + "skipLibCheck": true + }, + + "include": ["src/**/*"] +} diff --git a/packages/value-transfer-events/tsconfig.json b/packages/value-transfer-events/tsconfig.json new file mode 100644 index 0000000000..89375a3930 --- /dev/null +++ b/packages/value-transfer-events/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "types": ["node", "jest"] + } +} diff --git a/packages/value-transfer/README.md b/packages/value-transfer/README.md new file mode 100644 index 0000000000..501b599dec --- /dev/null +++ b/packages/value-transfer/README.md @@ -0,0 +1,38 @@ +

+
+ Hyperledger Aries logo +

+

Aries Framework JavaScript - Gossip

+

+ License + typescript + @aries-framework/gossip version + +

+
+ +Plugin for Aries Framework JavaScript enabling Value Transfer functionality. + +### Usage + +```js +const agent = new Agent({...}) +await initWitnessGossip(agent) +``` diff --git a/packages/value-transfer/jest.config.ts b/packages/value-transfer/jest.config.ts new file mode 100644 index 0000000000..ce53584ebf --- /dev/null +++ b/packages/value-transfer/jest.config.ts @@ -0,0 +1,13 @@ +import type { Config } from '@jest/types' + +import base from '../../jest.config.base' + +import packageJson from './package.json' + +const config: Config.InitialOptions = { + ...base, + name: packageJson.name, + displayName: packageJson.name, +} + +export default config diff --git a/packages/value-transfer/package.json b/packages/value-transfer/package.json new file mode 100644 index 0000000000..a3f4aa833c --- /dev/null +++ b/packages/value-transfer/package.json @@ -0,0 +1,47 @@ +{ + "name": "@sicpa-dlab/aries-framework-value-tranfer", + "main": "build/index", + "types": "build/index", + "version": "0.0.1", + "files": [ + "build", + "bin" + ], + "license": "Apache-2.0", + "publishConfig": { + "registry": "https://npm.pkg.github.com" + }, + "homepage": "https://github.com/hyperledger/aries-framework-javascript/tree/main/packages/value-tranfer", + "repository": { + "type": "git", + "url": "https://github.com/sicpa-dlab/aries-framework-javascript/", + "directory": "packages/gossip" + }, + "scripts": { + "build": "npx rimraf -rf build && yarn run compile", + "clean": "npx rimraf -rf build node_modules", + "compile": "tsc -p tsconfig.build.json", + "prepublishOnly": "yarn run build", + "test": "jest" + }, + "dependencies": { + "@aries-framework/core": "npm:@sicpa-dlab/aries-framework-core@0.5.0", + "@aries-framework/gossip": "file:../gossip", + "@aries-framework/value-transfer-events": "file:../value-transfer-events", + "@sicpa-dlab/value-transfer-protocol-ts": "0.4.5", + "@sicpa-dlab/value-transfer-common-ts": "0.3.7", + "@sicpa-dlab/witness-gossip-types-ts": "0.3.9", + "@types/async-lock": "^1.1.5", + "async-lock": "^1.3.2", + "class-transformer": "0.5.1", + "class-validator": "0.13.1", + "buffer": "^6.0.3", + "rxjs": "^7.2.0", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@types/uuid": "^8.3.0", + "rimraf": "~3.0.2", + "typescript": "~4.3.0" + } +} diff --git a/packages/core/src/modules/value-transfer/ValueTransferAutoAcceptType.ts b/packages/value-transfer/src/ValueTransferAutoAcceptType.ts similarity index 100% rename from packages/core/src/modules/value-transfer/ValueTransferAutoAcceptType.ts rename to packages/value-transfer/src/ValueTransferAutoAcceptType.ts diff --git a/packages/value-transfer/src/ValueTransferConfig.ts b/packages/value-transfer/src/ValueTransferConfig.ts new file mode 100644 index 0000000000..620b564ad1 --- /dev/null +++ b/packages/value-transfer/src/ValueTransferConfig.ts @@ -0,0 +1,28 @@ +import type { AutoAcceptValueTransfer } from './ValueTransferAutoAcceptType' + +export interface ValueTransferConfigOptions { + lockTransactions?: boolean + witnessDid?: string + issuerDids?: string[] + autoAcceptPaymentOffer?: AutoAcceptValueTransfer + autoAcceptOfferedPaymentRequest?: AutoAcceptValueTransfer + autoAcceptPaymentRequest?: AutoAcceptValueTransfer +} + +export class ValueTransferConfig { + public lockTransactions?: boolean + public witnessDid?: string + public issuerDids?: string[] + public autoAcceptPaymentOffer?: AutoAcceptValueTransfer + public autoAcceptOfferedPaymentRequest?: AutoAcceptValueTransfer + public autoAcceptPaymentRequest?: AutoAcceptValueTransfer + + public constructor(options: ValueTransferConfigOptions) { + this.lockTransactions = options.lockTransactions + this.witnessDid = options.witnessDid + this.issuerDids = options.issuerDids + this.autoAcceptPaymentOffer = options.autoAcceptPaymentOffer + this.autoAcceptOfferedPaymentRequest = options.autoAcceptOfferedPaymentRequest + this.autoAcceptPaymentRequest = options.autoAcceptPaymentRequest + } +} diff --git a/packages/core/src/modules/value-transfer/ValueTransferEvents.ts b/packages/value-transfer/src/ValueTransferEvents.ts similarity index 51% rename from packages/core/src/modules/value-transfer/ValueTransferEvents.ts rename to packages/value-transfer/src/ValueTransferEvents.ts index 0d01c50b3b..215ca6108e 100644 --- a/packages/core/src/modules/value-transfer/ValueTransferEvents.ts +++ b/packages/value-transfer/src/ValueTransferEvents.ts @@ -1,12 +1,9 @@ -import type { BaseEvent } from '../../agent/Events' import type { ValueTransferRecord } from './repository' +import type { BaseEvent } from '@aries-framework/core' import type { TransactionState } from '@sicpa-dlab/value-transfer-protocol-ts' -import type { WitnessData } from '@sicpa-dlab/witness-gossip-types-ts' export enum ValueTransferEventTypes { ValueTransferStateChanged = 'ValueTransferStateChanged', - ResumeTransaction = 'ResumeTransaction', - WitnessTableReceived = 'WitnessTableReceived', CashMinted = 'CashMinted', } @@ -18,20 +15,6 @@ export interface ValueTransferStateChangedEvent extends BaseEvent { } } -export interface ResumeValueTransferTransactionEvent extends BaseEvent { - type: typeof ValueTransferEventTypes.ResumeTransaction - payload: { - thid: string - } -} - -export interface WitnessTableReceivedEvent extends BaseEvent { - type: typeof ValueTransferEventTypes.WitnessTableReceived - payload: { - witnesses: WitnessData[] - } -} - export interface CashMintedEvent extends BaseEvent { type: typeof ValueTransferEventTypes.CashMinted } diff --git a/packages/core/src/modules/value-transfer/ValueTransferModule.ts b/packages/value-transfer/src/ValueTransferModule.ts similarity index 94% rename from packages/core/src/modules/value-transfer/ValueTransferModule.ts rename to packages/value-transfer/src/ValueTransferModule.ts index 9881d4bc3f..9010f0622d 100644 --- a/packages/core/src/modules/value-transfer/ValueTransferModule.ts +++ b/packages/value-transfer/src/ValueTransferModule.ts @@ -1,14 +1,11 @@ -import type { DependencyManager } from '../../plugins' -import type { Transports } from '../routing/types' import type { RequestMessage, OfferMessage } from './messages' import type { ValueTransferRecord, ValueTransferTags } from './repository' +import type { Transports, DependencyManager } from '@aries-framework/core' import type { Timeouts } from '@sicpa-dlab/value-transfer-protocol-ts' +import { Dispatcher, module, injectable, inject } from '@aries-framework/core' import { TransactionState } from '@sicpa-dlab/value-transfer-protocol-ts' -import { Dispatcher } from '../../agent/Dispatcher' -import { module, injectable } from '../../plugins' - import { ValueTransferResponseCoordinator } from './ValueTransferResponseCoordinator' import { OfferHandler, @@ -25,12 +22,16 @@ import { MintResponseHandler, WitnessTableHandler, } from './handlers' -import { ValueTransferService } from './services' import { ValueTransferGetterService } from './services/ValueTransferGetterService' import { ValueTransferGiverService } from './services/ValueTransferGiverService' import { ValueTransferIssuerService } from './services/ValueTransferIssuerService' +import { ValueTransferService } from './services/ValueTransferService' import { ValueTransferWitnessService } from './services/ValueTransferWitnessService' +export const InjectionSymbols = { + ValueTransferService: Symbol('ValueTransferService'), +} + @module() @injectable() export class ValueTransferModule { @@ -43,7 +44,7 @@ export class ValueTransferModule { public constructor( dispatcher: Dispatcher, - valueTransferService: ValueTransferService, + @inject(InjectionSymbols.ValueTransferService) valueTransferService: ValueTransferService, valueTransferGetterService: ValueTransferGetterService, valueTransferGiverService: ValueTransferGiverService, valueTransferWitnessService: ValueTransferWitnessService, @@ -105,8 +106,8 @@ export class ValueTransferModule { return this.valueTransferGetterService.verifyOfferCanBeAccepted(record) } - public async acquireWalletLock(transactioniId: string) { - return await this.valueTransferService.acquireWalletLock(transactioniId) + public async acquireWalletLock(transactionId: string) { + return await this.valueTransferService.acquireWalletLock(transactionId) } /** @@ -331,12 +332,15 @@ export class ValueTransferModule { */ public static register(dependencyManager: DependencyManager) { // Api - dependencyManager.registerContextScoped(ValueTransferModule) + dependencyManager.registerSingleton(ValueTransferModule) // Services - dependencyManager.registerSingleton(ValueTransferService) + dependencyManager.registerSingleton(InjectionSymbols.ValueTransferService, ValueTransferService) dependencyManager.registerSingleton(ValueTransferGiverService) dependencyManager.registerSingleton(ValueTransferGetterService) dependencyManager.registerSingleton(ValueTransferWitnessService) + dependencyManager.registerSingleton(ValueTransferIssuerService) + + dependencyManager.resolve(ValueTransferModule) } } diff --git a/packages/core/src/modules/value-transfer/ValueTransferResponseCoordinator.ts b/packages/value-transfer/src/ValueTransferResponseCoordinator.ts similarity index 63% rename from packages/core/src/modules/value-transfer/ValueTransferResponseCoordinator.ts rename to packages/value-transfer/src/ValueTransferResponseCoordinator.ts index 9d38ee3f0f..cf8178b02e 100644 --- a/packages/core/src/modules/value-transfer/ValueTransferResponseCoordinator.ts +++ b/packages/value-transfer/src/ValueTransferResponseCoordinator.ts @@ -1,7 +1,7 @@ -import { AgentConfig } from '../../agent/AgentConfig' -import { injectable } from '../../plugins' +import { injectable } from '@aries-framework/core' import { AutoAcceptValueTransfer } from './ValueTransferAutoAcceptType' +import { ValueTransferConfig } from './ValueTransferConfig' /** * This class handles all the automation with all the messages in the value transfer protocol @@ -9,17 +9,17 @@ import { AutoAcceptValueTransfer } from './ValueTransferAutoAcceptType' */ @injectable() export class ValueTransferResponseCoordinator { - private agentConfig: AgentConfig + private config: ValueTransferConfig - public constructor(agentConfig: AgentConfig) { - this.agentConfig = agentConfig + public constructor(config: ValueTransferConfig) { + this.config = config } /** * Checks whether it should automatically respond to a request */ public shouldAutoRespondToRequest() { - const autoAccept = this.agentConfig.autoAcceptPaymentRequest ?? AutoAcceptValueTransfer.Never + const autoAccept = this.config.autoAcceptPaymentRequest ?? AutoAcceptValueTransfer.Never return autoAccept === AutoAcceptValueTransfer.Always } @@ -28,7 +28,7 @@ export class ValueTransferResponseCoordinator { * Checks whether it should automatically respond to a offer */ public shouldAutoRespondToOffer() { - const autoAccept = this.agentConfig.autoAcceptPaymentOffer ?? AutoAcceptValueTransfer.Never + const autoAccept = this.config.autoAcceptPaymentOffer ?? AutoAcceptValueTransfer.Never return autoAccept === AutoAcceptValueTransfer.Always } @@ -37,7 +37,7 @@ export class ValueTransferResponseCoordinator { * Checks whether it should automatically respond to a request send in respponse on offer */ public shouldAutoRespondToOfferedRequest() { - const autoAccept = this.agentConfig.autoAcceptOfferedPaymentRequest ?? AutoAcceptValueTransfer.Never + const autoAccept = this.config.autoAcceptOfferedPaymentRequest ?? AutoAcceptValueTransfer.Never return autoAccept === AutoAcceptValueTransfer.Always } diff --git a/packages/core/src/modules/value-transfer/handlers/CashAcceptedHandler.ts b/packages/value-transfer/src/handlers/CashAcceptedHandler.ts similarity index 89% rename from packages/core/src/modules/value-transfer/handlers/CashAcceptedHandler.ts rename to packages/value-transfer/src/handlers/CashAcceptedHandler.ts index 68040437af..a2af55364a 100644 --- a/packages/core/src/modules/value-transfer/handlers/CashAcceptedHandler.ts +++ b/packages/value-transfer/src/handlers/CashAcceptedHandler.ts @@ -1,5 +1,5 @@ -import type { Handler, HandlerInboundMessage } from '../../../agent/Handler' import type { ValueTransferWitnessService } from '../services/ValueTransferWitnessService' +import type { Handler, HandlerInboundMessage } from '@aries-framework/core' import { CashAcceptedMessage } from '../messages' diff --git a/packages/core/src/modules/value-transfer/handlers/CashAcceptedWitnessedHandler.ts b/packages/value-transfer/src/handlers/CashAcceptedWitnessedHandler.ts similarity index 89% rename from packages/core/src/modules/value-transfer/handlers/CashAcceptedWitnessedHandler.ts rename to packages/value-transfer/src/handlers/CashAcceptedWitnessedHandler.ts index d13d7bf327..b10ac04dc3 100644 --- a/packages/core/src/modules/value-transfer/handlers/CashAcceptedWitnessedHandler.ts +++ b/packages/value-transfer/src/handlers/CashAcceptedWitnessedHandler.ts @@ -1,5 +1,5 @@ -import type { HandlerInboundMessage, Handler } from '../../../agent/Handler' import type { ValueTransferGiverService } from '../services/ValueTransferGiverService' +import type { HandlerInboundMessage, Handler } from '@aries-framework/core' import { CashAcceptedWitnessedMessage } from '../messages' diff --git a/packages/core/src/modules/value-transfer/handlers/CashRemovedHandler.ts b/packages/value-transfer/src/handlers/CashRemovedHandler.ts similarity index 89% rename from packages/core/src/modules/value-transfer/handlers/CashRemovedHandler.ts rename to packages/value-transfer/src/handlers/CashRemovedHandler.ts index d5ea7b57e9..a153644402 100644 --- a/packages/core/src/modules/value-transfer/handlers/CashRemovedHandler.ts +++ b/packages/value-transfer/src/handlers/CashRemovedHandler.ts @@ -1,5 +1,5 @@ -import type { Handler, HandlerInboundMessage } from '../../../agent/Handler' import type { ValueTransferWitnessService } from '../services/ValueTransferWitnessService' +import type { Handler, HandlerInboundMessage } from '@aries-framework/core' import { CashRemovedMessage } from '../messages' diff --git a/packages/core/src/modules/value-transfer/handlers/GetterReceiptHandler.ts b/packages/value-transfer/src/handlers/GetterReceiptHandler.ts similarity index 89% rename from packages/core/src/modules/value-transfer/handlers/GetterReceiptHandler.ts rename to packages/value-transfer/src/handlers/GetterReceiptHandler.ts index 76e86f7fe4..513ee54cf0 100644 --- a/packages/core/src/modules/value-transfer/handlers/GetterReceiptHandler.ts +++ b/packages/value-transfer/src/handlers/GetterReceiptHandler.ts @@ -1,5 +1,5 @@ -import type { HandlerInboundMessage, Handler } from '../../../agent/Handler' import type { ValueTransferGetterService } from '../services/ValueTransferGetterService' +import type { HandlerInboundMessage, Handler } from '@aries-framework/core' import { GetterReceiptMessage } from '../messages' diff --git a/packages/core/src/modules/value-transfer/handlers/GiverReceiptHandler.ts b/packages/value-transfer/src/handlers/GiverReceiptHandler.ts similarity index 89% rename from packages/core/src/modules/value-transfer/handlers/GiverReceiptHandler.ts rename to packages/value-transfer/src/handlers/GiverReceiptHandler.ts index 485f0ae42c..2625b209af 100644 --- a/packages/core/src/modules/value-transfer/handlers/GiverReceiptHandler.ts +++ b/packages/value-transfer/src/handlers/GiverReceiptHandler.ts @@ -1,5 +1,5 @@ -import type { HandlerInboundMessage, Handler } from '../../../agent/Handler' import type { ValueTransferGiverService } from '../services/ValueTransferGiverService' +import type { HandlerInboundMessage, Handler } from '@aries-framework/core' import { GiverReceiptMessage } from '../messages' diff --git a/packages/core/src/modules/value-transfer/handlers/MintHandler.ts b/packages/value-transfer/src/handlers/MintHandler.ts similarity index 89% rename from packages/core/src/modules/value-transfer/handlers/MintHandler.ts rename to packages/value-transfer/src/handlers/MintHandler.ts index 12d07070d9..67c30b9616 100644 --- a/packages/core/src/modules/value-transfer/handlers/MintHandler.ts +++ b/packages/value-transfer/src/handlers/MintHandler.ts @@ -1,5 +1,5 @@ -import type { HandlerInboundMessage, Handler } from '../../../agent/Handler' import type { ValueTransferWitnessService } from '../services/ValueTransferWitnessService' +import type { HandlerInboundMessage, Handler } from '@aries-framework/core' import { MintMessage } from '../messages/MintMessage' diff --git a/packages/core/src/modules/value-transfer/handlers/MintResponseHandler.ts b/packages/value-transfer/src/handlers/MintResponseHandler.ts similarity index 89% rename from packages/core/src/modules/value-transfer/handlers/MintResponseHandler.ts rename to packages/value-transfer/src/handlers/MintResponseHandler.ts index 5c04f9ee1a..0c6ec1981f 100644 --- a/packages/core/src/modules/value-transfer/handlers/MintResponseHandler.ts +++ b/packages/value-transfer/src/handlers/MintResponseHandler.ts @@ -1,5 +1,5 @@ -import type { HandlerInboundMessage, Handler } from '../../../agent/Handler' import type { ValueTransferIssuerService } from '../services/ValueTransferIssuerService' +import type { HandlerInboundMessage, Handler } from '@aries-framework/core' import { MintResponseMessage } from '../messages/MintResponseMessage' diff --git a/packages/core/src/modules/value-transfer/handlers/OfferHandler.ts b/packages/value-transfer/src/handlers/OfferHandler.ts similarity index 94% rename from packages/core/src/modules/value-transfer/handlers/OfferHandler.ts rename to packages/value-transfer/src/handlers/OfferHandler.ts index bc00d2c9ab..242e7fbe2c 100644 --- a/packages/core/src/modules/value-transfer/handlers/OfferHandler.ts +++ b/packages/value-transfer/src/handlers/OfferHandler.ts @@ -1,7 +1,7 @@ -import type { Handler, HandlerInboundMessage } from '../../../agent/Handler' import type { ValueTransferResponseCoordinator } from '../ValueTransferResponseCoordinator' import type { ValueTransferService } from '../services' import type { ValueTransferGetterService } from '../services/ValueTransferGetterService' +import type { Handler, HandlerInboundMessage } from '@aries-framework/core' import { OfferMessage } from '../messages' diff --git a/packages/core/src/modules/value-transfer/handlers/ProblemReportHandler.ts b/packages/value-transfer/src/handlers/ProblemReportHandler.ts similarity index 88% rename from packages/core/src/modules/value-transfer/handlers/ProblemReportHandler.ts rename to packages/value-transfer/src/handlers/ProblemReportHandler.ts index ee5c89e3b0..c6d40c0bdf 100644 --- a/packages/core/src/modules/value-transfer/handlers/ProblemReportHandler.ts +++ b/packages/value-transfer/src/handlers/ProblemReportHandler.ts @@ -1,5 +1,5 @@ -import type { HandlerInboundMessage, Handler } from '../../../agent/Handler' import type { ValueTransferService } from '../services' +import type { HandlerInboundMessage, Handler } from '@aries-framework/core' import { ProblemReportMessage } from '../messages/ProblemReportMessage' diff --git a/packages/core/src/modules/value-transfer/handlers/RequestAcceptedHandler.ts b/packages/value-transfer/src/handlers/RequestAcceptedHandler.ts similarity index 89% rename from packages/core/src/modules/value-transfer/handlers/RequestAcceptedHandler.ts rename to packages/value-transfer/src/handlers/RequestAcceptedHandler.ts index ff3ed6efcb..e259fb9afc 100644 --- a/packages/core/src/modules/value-transfer/handlers/RequestAcceptedHandler.ts +++ b/packages/value-transfer/src/handlers/RequestAcceptedHandler.ts @@ -1,5 +1,5 @@ -import type { Handler, HandlerInboundMessage } from '../../../agent/Handler' import type { ValueTransferWitnessService } from '../services/ValueTransferWitnessService' +import type { Handler, HandlerInboundMessage } from '@aries-framework/core' import { RequestAcceptedMessage } from '../messages' diff --git a/packages/core/src/modules/value-transfer/handlers/RequestAcceptedWitnessedHandler.ts b/packages/value-transfer/src/handlers/RequestAcceptedWitnessedHandler.ts similarity index 90% rename from packages/core/src/modules/value-transfer/handlers/RequestAcceptedWitnessedHandler.ts rename to packages/value-transfer/src/handlers/RequestAcceptedWitnessedHandler.ts index 30e3e91f69..3affc13c80 100644 --- a/packages/core/src/modules/value-transfer/handlers/RequestAcceptedWitnessedHandler.ts +++ b/packages/value-transfer/src/handlers/RequestAcceptedWitnessedHandler.ts @@ -1,5 +1,5 @@ -import type { Handler, HandlerInboundMessage } from '../../../agent/Handler' import type { ValueTransferGetterService } from '../services/ValueTransferGetterService' +import type { Handler, HandlerInboundMessage } from '@aries-framework/core' import { RequestAcceptedWitnessedMessage } from '../messages' diff --git a/packages/core/src/modules/value-transfer/handlers/RequestHandler.ts b/packages/value-transfer/src/handlers/RequestHandler.ts similarity index 95% rename from packages/core/src/modules/value-transfer/handlers/RequestHandler.ts rename to packages/value-transfer/src/handlers/RequestHandler.ts index d2ab7aa5dc..cafb338324 100644 --- a/packages/core/src/modules/value-transfer/handlers/RequestHandler.ts +++ b/packages/value-transfer/src/handlers/RequestHandler.ts @@ -1,7 +1,7 @@ -import type { Handler, HandlerInboundMessage } from '../../../agent/Handler' import type { ValueTransferResponseCoordinator } from '../ValueTransferResponseCoordinator' import type { ValueTransferService } from '../services' import type { ValueTransferGiverService } from '../services/ValueTransferGiverService' +import type { Handler, HandlerInboundMessage } from '@aries-framework/core' import { TransactionState } from '@sicpa-dlab/value-transfer-protocol-ts' diff --git a/packages/core/src/modules/value-transfer/handlers/WitnessTableHandler.ts b/packages/value-transfer/src/handlers/WitnessTableHandler.ts similarity index 78% rename from packages/core/src/modules/value-transfer/handlers/WitnessTableHandler.ts rename to packages/value-transfer/src/handlers/WitnessTableHandler.ts index 43deb1e349..59cead722c 100644 --- a/packages/core/src/modules/value-transfer/handlers/WitnessTableHandler.ts +++ b/packages/value-transfer/src/handlers/WitnessTableHandler.ts @@ -1,7 +1,7 @@ -import type { HandlerInboundMessage, Handler } from '../../../agent/Handler' import type { ValueTransferService } from '../services' +import type { HandlerInboundMessage, Handler } from '@aries-framework/core' -import { WitnessTableMessage } from '../../gossip' +import { WitnessTableMessage } from '@aries-framework/gossip' export class WitnessTableHandler implements Handler { private valueTransferService: ValueTransferService diff --git a/packages/core/src/modules/value-transfer/handlers/index.ts b/packages/value-transfer/src/handlers/index.ts similarity index 100% rename from packages/core/src/modules/value-transfer/handlers/index.ts rename to packages/value-transfer/src/handlers/index.ts diff --git a/packages/value-transfer/src/index.ts b/packages/value-transfer/src/index.ts new file mode 100644 index 0000000000..194de4f44e --- /dev/null +++ b/packages/value-transfer/src/index.ts @@ -0,0 +1,28 @@ +import type { ValueTransferConfigOptions } from './ValueTransferConfig' +import type { ValueTransferService } from './services/ValueTransferService' +import type { Agent } from '@aries-framework/core' + +import { ValueTransferConfig } from './ValueTransferConfig' +import { InjectionSymbols, ValueTransferModule } from './ValueTransferModule' + +export * from './messages' +export * from './services' +export * from './repository' +export * from './ValueTransferModule' +export * from './ValueTransferAutoAcceptType' +export * from './ValueTransferEvents' + +export async function initValueTransfer( + agent: Agent, + config: ValueTransferConfigOptions +): Promise { + agent.dependencyManager.registerInstance(ValueTransferConfig, new ValueTransferConfig(config)) + agent.dependencyManager.registerModules(ValueTransferModule) + + const valueTransferService = agent.dependencyManager.resolve( + InjectionSymbols.ValueTransferService + ) + if (config.lockTransactions) await valueTransferService.initActiveTransactionLock() + await valueTransferService.initPartyState() + return agent.dependencyManager.resolve(ValueTransferModule) +} diff --git a/packages/core/src/utils/lockDecorator.ts b/packages/value-transfer/src/lockDecorator.ts similarity index 100% rename from packages/core/src/utils/lockDecorator.ts rename to packages/value-transfer/src/lockDecorator.ts diff --git a/packages/core/src/modules/value-transfer/messages/CashAcceptedMessage.ts b/packages/value-transfer/src/messages/CashAcceptedMessage.ts similarity index 88% rename from packages/core/src/modules/value-transfer/messages/CashAcceptedMessage.ts rename to packages/value-transfer/src/messages/CashAcceptedMessage.ts index aebf208a88..cc112a5c34 100644 --- a/packages/core/src/modules/value-transfer/messages/CashAcceptedMessage.ts +++ b/packages/value-transfer/src/messages/CashAcceptedMessage.ts @@ -1,10 +1,9 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { IsValidMessageType, parseMessageType } from '@aries-framework/core' import { CashAcceptance } from '@sicpa-dlab/value-transfer-protocol-ts' import { IsString } from 'class-validator' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class CashAcceptedMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/CashAcceptedWitnessedMessage.ts b/packages/value-transfer/src/messages/CashAcceptedWitnessedMessage.ts similarity index 89% rename from packages/core/src/modules/value-transfer/messages/CashAcceptedWitnessedMessage.ts rename to packages/value-transfer/src/messages/CashAcceptedWitnessedMessage.ts index 772b3946c5..e609c777cf 100644 --- a/packages/core/src/modules/value-transfer/messages/CashAcceptedWitnessedMessage.ts +++ b/packages/value-transfer/src/messages/CashAcceptedWitnessedMessage.ts @@ -1,10 +1,9 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { IsValidMessageType, parseMessageType } from '@aries-framework/core' import { CashAcceptanceWitnessed } from '@sicpa-dlab/value-transfer-protocol-ts' import { IsString } from 'class-validator' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class CashAcceptedWitnessedMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/CashRemovedMessage.ts b/packages/value-transfer/src/messages/CashRemovedMessage.ts similarity index 88% rename from packages/core/src/modules/value-transfer/messages/CashRemovedMessage.ts rename to packages/value-transfer/src/messages/CashRemovedMessage.ts index 22e356a73b..0d40e97c90 100644 --- a/packages/core/src/modules/value-transfer/messages/CashRemovedMessage.ts +++ b/packages/value-transfer/src/messages/CashRemovedMessage.ts @@ -1,10 +1,9 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { IsValidMessageType, parseMessageType } from '@aries-framework/core' import { CashRemoval } from '@sicpa-dlab/value-transfer-protocol-ts' import { IsString } from 'class-validator' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class CashRemovedMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/GetterReceiptMessage.ts b/packages/value-transfer/src/messages/GetterReceiptMessage.ts similarity index 88% rename from packages/core/src/modules/value-transfer/messages/GetterReceiptMessage.ts rename to packages/value-transfer/src/messages/GetterReceiptMessage.ts index 0afc195008..871876f1a8 100644 --- a/packages/core/src/modules/value-transfer/messages/GetterReceiptMessage.ts +++ b/packages/value-transfer/src/messages/GetterReceiptMessage.ts @@ -1,10 +1,9 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { IsValidMessageType, parseMessageType } from '@aries-framework/core' import { GetterReceipt } from '@sicpa-dlab/value-transfer-protocol-ts' import { IsString } from 'class-validator' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class GetterReceiptMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/GiverReceiptMessage.ts b/packages/value-transfer/src/messages/GiverReceiptMessage.ts similarity index 88% rename from packages/core/src/modules/value-transfer/messages/GiverReceiptMessage.ts rename to packages/value-transfer/src/messages/GiverReceiptMessage.ts index 054211a16b..c99b8f999e 100644 --- a/packages/core/src/modules/value-transfer/messages/GiverReceiptMessage.ts +++ b/packages/value-transfer/src/messages/GiverReceiptMessage.ts @@ -1,10 +1,9 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { IsValidMessageType, parseMessageType } from '@aries-framework/core' import { GiverReceipt } from '@sicpa-dlab/value-transfer-protocol-ts' import { IsString } from 'class-validator' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class GiverReceiptMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/MintMessage.ts b/packages/value-transfer/src/messages/MintMessage.ts similarity index 85% rename from packages/core/src/modules/value-transfer/messages/MintMessage.ts rename to packages/value-transfer/src/messages/MintMessage.ts index c23fe16392..30570cbc4b 100644 --- a/packages/core/src/modules/value-transfer/messages/MintMessage.ts +++ b/packages/value-transfer/src/messages/MintMessage.ts @@ -1,13 +1,11 @@ -import type { DIDCommV2MessageParams } from '../../../agent/didcomm' +import type { DIDCommV2MessageParams } from '@aries-framework/core' +import { DIDCommV2Message, IsValidMessageType, parseMessageType } from '@aries-framework/core' import { transformUint8Array } from '@sicpa-dlab/value-transfer-common-ts' import { Mint } from '@sicpa-dlab/value-transfer-protocol-ts' import { Expose, Transform, Type } from 'class-transformer' import { IsArray, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator' -import { DIDCommV2Message } from '../../../agent/didcomm' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - export type MintMessageParams = { body: MintMessageBody please_ack?: string[] diff --git a/packages/core/src/modules/value-transfer/messages/MintResponseMessage.ts b/packages/value-transfer/src/messages/MintResponseMessage.ts similarity index 72% rename from packages/core/src/modules/value-transfer/messages/MintResponseMessage.ts rename to packages/value-transfer/src/messages/MintResponseMessage.ts index e9ef76ce8d..0c891272e1 100644 --- a/packages/core/src/modules/value-transfer/messages/MintResponseMessage.ts +++ b/packages/value-transfer/src/messages/MintResponseMessage.ts @@ -1,11 +1,9 @@ -import type { DIDCommV2MessageParams } from '../../../agent/didcomm' +import type { DIDCommV2MessageParams } from '@aries-framework/core' +import { DIDCommV2Message, IsValidMessageType, parseMessageType } from '@aries-framework/core' import { MintResponse } from '@sicpa-dlab/value-transfer-protocol-ts' import { IsString } from 'class-validator' -import { DIDCommV2Message } from '../../../agent/didcomm' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - export type MintResponseMessageParams = { thid: string } & DIDCommV2MessageParams export class MintResponseMessage extends DIDCommV2Message { diff --git a/packages/core/src/modules/value-transfer/messages/OfferMessage.ts b/packages/value-transfer/src/messages/OfferMessage.ts similarity index 86% rename from packages/core/src/modules/value-transfer/messages/OfferMessage.ts rename to packages/value-transfer/src/messages/OfferMessage.ts index d388cd5219..d987807393 100644 --- a/packages/core/src/modules/value-transfer/messages/OfferMessage.ts +++ b/packages/value-transfer/src/messages/OfferMessage.ts @@ -1,10 +1,8 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { JsonTransformer, IsValidMessageType, parseMessageType } from '@aries-framework/core' import { Offer } from '@sicpa-dlab/value-transfer-protocol-ts' -import { JsonTransformer } from '../../../utils' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class OfferMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/ProblemReportMessage.ts b/packages/value-transfer/src/messages/ProblemReportMessage.ts similarity index 65% rename from packages/core/src/modules/value-transfer/messages/ProblemReportMessage.ts rename to packages/value-transfer/src/messages/ProblemReportMessage.ts index ede5b76210..bf6318100d 100644 --- a/packages/core/src/modules/value-transfer/messages/ProblemReportMessage.ts +++ b/packages/value-transfer/src/messages/ProblemReportMessage.ts @@ -1,10 +1,8 @@ -import type { ProblemReportV2MessageOptions } from '../../problem-reports' +import type { ProblemReportV2MessageOptions } from '@aries-framework/core' +import { ProblemReportV2Message, IsValidMessageType, parseMessageType } from '@aries-framework/core' import { ProblemReport } from '@sicpa-dlab/value-transfer-protocol-ts' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' -import { ProblemReportV2Message } from '../../problem-reports' - export class ProblemReportMessage extends ProblemReportV2Message { public constructor(options?: ProblemReportV2MessageOptions) { super(options) diff --git a/packages/core/src/modules/value-transfer/messages/RequestAcceptedMessage.ts b/packages/value-transfer/src/messages/RequestAcceptedMessage.ts similarity index 88% rename from packages/core/src/modules/value-transfer/messages/RequestAcceptedMessage.ts rename to packages/value-transfer/src/messages/RequestAcceptedMessage.ts index 4e632b0ae8..2870ae4569 100644 --- a/packages/core/src/modules/value-transfer/messages/RequestAcceptedMessage.ts +++ b/packages/value-transfer/src/messages/RequestAcceptedMessage.ts @@ -1,10 +1,9 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { IsValidMessageType, parseMessageType } from '@aries-framework/core' import { RequestAcceptance } from '@sicpa-dlab/value-transfer-protocol-ts' import { IsString } from 'class-validator' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class RequestAcceptedMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/RequestAcceptedWitnessedMessage.ts b/packages/value-transfer/src/messages/RequestAcceptedWitnessedMessage.ts similarity index 89% rename from packages/core/src/modules/value-transfer/messages/RequestAcceptedWitnessedMessage.ts rename to packages/value-transfer/src/messages/RequestAcceptedWitnessedMessage.ts index f7ec1f8524..c28e80297b 100644 --- a/packages/core/src/modules/value-transfer/messages/RequestAcceptedWitnessedMessage.ts +++ b/packages/value-transfer/src/messages/RequestAcceptedWitnessedMessage.ts @@ -1,10 +1,9 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { IsValidMessageType, parseMessageType } from '@aries-framework/core' import { RequestAcceptanceWitnessed } from '@sicpa-dlab/value-transfer-protocol-ts' import { IsString } from 'class-validator' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class RequestAcceptedWitnessedMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/RequestMessage.ts b/packages/value-transfer/src/messages/RequestMessage.ts similarity index 87% rename from packages/core/src/modules/value-transfer/messages/RequestMessage.ts rename to packages/value-transfer/src/messages/RequestMessage.ts index 3db343e38e..de6de837e2 100644 --- a/packages/core/src/modules/value-transfer/messages/RequestMessage.ts +++ b/packages/value-transfer/src/messages/RequestMessage.ts @@ -1,10 +1,8 @@ import type { ValueTransferMessageParams } from './ValueTransferBaseMessage' +import { JsonTransformer, IsValidMessageType, parseMessageType } from '@aries-framework/core' import { Request } from '@sicpa-dlab/value-transfer-protocol-ts' -import { JsonTransformer } from '../../../utils' -import { IsValidMessageType, parseMessageType } from '../../../utils/messageType' - import { ValueTransferBaseMessage } from './ValueTransferBaseMessage' export class RequestMessage extends ValueTransferBaseMessage { diff --git a/packages/core/src/modules/value-transfer/messages/ValueTransferBaseMessage.ts b/packages/value-transfer/src/messages/ValueTransferBaseMessage.ts similarity index 74% rename from packages/core/src/modules/value-transfer/messages/ValueTransferBaseMessage.ts rename to packages/value-transfer/src/messages/ValueTransferBaseMessage.ts index 14f60d0843..b246d0c8e6 100644 --- a/packages/core/src/modules/value-transfer/messages/ValueTransferBaseMessage.ts +++ b/packages/value-transfer/src/messages/ValueTransferBaseMessage.ts @@ -1,10 +1,9 @@ -import type { DIDCommV2MessageParams } from '../../../agent/didcomm/v2/DIDCommV2BaseMessage' +import type { DIDCommV2MessageParams } from '@aries-framework/core' +import { DIDCommV2Message } from '@aries-framework/core' import { Type } from 'class-transformer' import { IsInstance, ValidateNested } from 'class-validator' -import { DIDCommV2Message } from '../../../agent/didcomm/v2/DIDCommV2Message' - export type ValueTransferMessageParams = DIDCommV2MessageParams export class ValueTransferMessageBody {} diff --git a/packages/core/src/modules/value-transfer/messages/index.ts b/packages/value-transfer/src/messages/index.ts similarity index 100% rename from packages/core/src/modules/value-transfer/messages/index.ts rename to packages/value-transfer/src/messages/index.ts diff --git a/packages/core/src/modules/value-transfer/repository/ValueTransferRecord.ts b/packages/value-transfer/src/repository/ValueTransferRecord.ts similarity index 91% rename from packages/core/src/modules/value-transfer/repository/ValueTransferRecord.ts rename to packages/value-transfer/src/repository/ValueTransferRecord.ts index 57cc9e72b5..c943e2d304 100644 --- a/packages/core/src/modules/value-transfer/repository/ValueTransferRecord.ts +++ b/packages/value-transfer/src/repository/ValueTransferRecord.ts @@ -1,12 +1,11 @@ -import type { RecordTags, TagsBase } from '../../../storage/BaseRecord' +import type { RecordTags, TagsBase } from '@aries-framework/core' import type { TransactionRole } from '@sicpa-dlab/value-transfer-protocol-ts' +import { BaseRecord } from '@aries-framework/core' import { Transaction } from '@sicpa-dlab/value-transfer-protocol-ts' import { Type } from 'class-transformer' import { IsOptional, IsString } from 'class-validator' - -import { BaseRecord } from '../../../storage/BaseRecord' -import { uuid } from '../../../utils/uuid' +import { v4 } from 'uuid' export type CustomValueTransferTags = TagsBase export type DefaultValueTransferTags = { @@ -42,7 +41,7 @@ export class ValueTransferRecord extends BaseRecord diff --git a/packages/core/src/modules/value-transfer/services/ValueTransferLoggerService.ts b/packages/value-transfer/src/services/ValueTransferLoggerService.ts similarity index 89% rename from packages/core/src/modules/value-transfer/services/ValueTransferLoggerService.ts rename to packages/value-transfer/src/services/ValueTransferLoggerService.ts index 80858f76c6..bdb4dee13f 100644 --- a/packages/core/src/modules/value-transfer/services/ValueTransferLoggerService.ts +++ b/packages/value-transfer/src/services/ValueTransferLoggerService.ts @@ -1,9 +1,8 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import type { Logger } from '../../../logger' +import type { Logger } from '@aries-framework/core' import type { Logger as ValueTransferLogger, LogLevel } from '@sicpa-dlab/value-transfer-common-ts' -import { AgentConfig } from '../../../agent/AgentConfig' -import { injectable } from '../../../plugins' +import { AgentConfig, injectable } from '@aries-framework/core' @injectable() export class ValueTransferLoggerService implements ValueTransferLogger { diff --git a/packages/core/src/modules/value-transfer/services/ValueTransferPartyStateService.ts b/packages/value-transfer/src/services/ValueTransferPartyStateService.ts similarity index 98% rename from packages/core/src/modules/value-transfer/services/ValueTransferPartyStateService.ts rename to packages/value-transfer/src/services/ValueTransferPartyStateService.ts index 1c65276155..f588144e43 100644 --- a/packages/core/src/modules/value-transfer/services/ValueTransferPartyStateService.ts +++ b/packages/value-transfer/src/services/ValueTransferPartyStateService.ts @@ -1,8 +1,8 @@ import type { PartyState, Transaction, VtpPartyStorageInterface } from '@sicpa-dlab/value-transfer-protocol-ts' +import { injectable } from '@aries-framework/core' import AsyncLock from 'async-lock' -import { injectable } from '../../../plugins' import { ValueTransferRecord, ValueTransferRepository } from '../repository' import { ValueTransferStateRepository } from '../repository/ValueTransferStateRepository' diff --git a/packages/core/src/modules/value-transfer/services/ValueTransferService.ts b/packages/value-transfer/src/services/ValueTransferService.ts similarity index 88% rename from packages/core/src/modules/value-transfer/services/ValueTransferService.ts rename to packages/value-transfer/src/services/ValueTransferService.ts index d0244e8a26..b6d2ed7780 100644 --- a/packages/core/src/modules/value-transfer/services/ValueTransferService.ts +++ b/packages/value-transfer/src/services/ValueTransferService.ts @@ -1,12 +1,26 @@ -import type { DIDCommV2Message } from '../../../agent/didcomm' -import type { InboundMessageContext } from '../../../agent/models/InboundMessageContext' -import type { Logger } from '../../../logger' -import type { WitnessTableMessage } from '../../gossip' -import type { Transports } from '../../routing/types' -import type { ValueTransferStateChangedEvent, WitnessTableReceivedEvent } from '../ValueTransferEvents' +import type { ValueTransferStateChangedEvent } from '../ValueTransferEvents' import type { ProblemReportMessage } from '../messages' import type { ValueTransferRecord, ValueTransferTags } from '../repository' +import type { DIDCommV2Message, InboundMessageContext, Logger, Transports } from '@aries-framework/core' +import type { WitnessTableMessage } from '@aries-framework/gossip' +import type { WitnessTableReceivedEvent } from '@aries-framework/value-transfer-events' +import { + AgentConfig, + EventEmitter, + MessageSender, + SendingMessageType, + AriesFrameworkError, + DidMarker, + DidResolverService, + DidService, + DependencyManager, + injectable, + JsonEncoder, + timeoutWhen, +} from '@aries-framework/core' +import { WitnessTableQueryMessage, InjectionSymbols } from '@aries-framework/gossip' +import { ValueTransferSharedEventTypes } from '@aries-framework/value-transfer-events' import { Getter, Giver, @@ -21,17 +35,7 @@ import { import { firstValueFrom, ReplaySubject } from 'rxjs' import { first, map } from 'rxjs/operators' -import { AgentConfig } from '../../../agent/AgentConfig' -import { EventEmitter } from '../../../agent/EventEmitter' -import { MessageSender } from '../../../agent/MessageSender' -import { SendingMessageType } from '../../../agent/didcomm/types' -import { InjectionSymbols } from '../../../constants' -import { AriesFrameworkError } from '../../../error' -import { DependencyManager, injectable } from '../../../plugins' -import { JsonEncoder, timeoutWhen } from '../../../utils' -import { DidMarker, DidResolverService } from '../../dids' -import { DidService } from '../../dids/services/DidService' -import { WitnessTableQueryMessage } from '../../gossip/messages/WitnessTableQueryMessage' +import { ValueTransferConfig } from '../ValueTransferConfig' import { ValueTransferEventTypes } from '../ValueTransferEvents' import { ValueTransferRepository } from '../repository' import { ValueTransferStateRecord } from '../repository/ValueTransferStateRecord' @@ -46,7 +50,7 @@ import { ValueTransferWitnessStateService } from './ValueTransferWitnessStateSer @injectable() export class ValueTransferService { protected readonly logger: Logger - protected config: AgentConfig + protected config: ValueTransferConfig protected valueTransferRepository: ValueTransferRepository protected valueTransferStateRepository: ValueTransferStateRepository protected valueTransferCryptoService: ValueTransferCryptoService @@ -62,7 +66,8 @@ export class ValueTransferService { protected witness: Witness public constructor( - config: AgentConfig, + agentConfig: AgentConfig, + config: ValueTransferConfig, dependencyManager: DependencyManager, valueTransferRepository: ValueTransferRepository, valueTransferStateRepository: ValueTransferStateRepository, @@ -76,7 +81,7 @@ export class ValueTransferService { eventEmitter: EventEmitter, messageSender: MessageSender ) { - this.logger = config.logger.createContextLogger('VTP-Service') + this.logger = agentConfig.logger.createContextLogger('VTP-Service') this.config = config this.valueTransferRepository = valueTransferRepository this.valueTransferStateRepository = valueTransferStateRepository @@ -96,8 +101,8 @@ export class ValueTransferService { logger: this.logger.createContextLogger('Getter'), }, { - witness: config.valueTransferWitnessDid, - label: config.label, + witness: config.witnessDid, + label: agentConfig.label, } ) this.giver = new Giver( @@ -108,8 +113,8 @@ export class ValueTransferService { logger: this.logger.createContextLogger('Giver'), }, { - witness: config.valueTransferWitnessDid, - label: config.label, + witness: config.witnessDid, + label: agentConfig.label, } ) this.witness = new Witness( @@ -121,8 +126,8 @@ export class ValueTransferService { gossipProvider: () => dependencyManager.resolve(InjectionSymbols.GossipService), }, { - label: config.label, - issuers: config.witnessIssuerDids, + label: agentConfig.label, + issuers: config.issuerDids, } ) } @@ -222,7 +227,7 @@ export class ValueTransferService { } public async requestWitnessTable(witnessId?: string): Promise { - const witness = witnessId || this.config.valueTransferWitnessDid + const witness = witnessId || this.config.witnessDid this.logger.info(`Requesting list of witnesses from the witness ${witness}`) @@ -247,12 +252,12 @@ export class ValueTransferService { const { message: witnessTable } = messageContext if (!witnessTable.from) { - this.config.logger.info('Unknown Witness Table sender') + this.logger.info('Unknown Witness Table sender') return } this.eventEmitter.emit({ - type: ValueTransferEventTypes.WitnessTableReceived, + type: ValueTransferSharedEventTypes.WitnessTableReceived, payload: { witnesses: witnessTable.body.witnesses, }, diff --git a/packages/core/src/modules/value-transfer/services/ValueTransferTransportService.ts b/packages/value-transfer/src/services/ValueTransferTransportService.ts similarity index 71% rename from packages/core/src/modules/value-transfer/services/ValueTransferTransportService.ts rename to packages/value-transfer/src/services/ValueTransferTransportService.ts index 8af60358cc..e10b1cec30 100644 --- a/packages/core/src/modules/value-transfer/services/ValueTransferTransportService.ts +++ b/packages/value-transfer/src/services/ValueTransferTransportService.ts @@ -1,14 +1,16 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import type { Logger } from '../../../logger' +import type { Logger } from '@aries-framework/core' import type { VtpTransportInterface } from '@sicpa-dlab/value-transfer-protocol-ts' -import { AgentConfig } from '../../../agent/AgentConfig' -import { MessageSender } from '../../../agent/MessageSender' -import { SendingMessageType } from '../../../agent/didcomm/types' -import { DIDCommV2Message } from '../../../agent/didcomm/v2/DIDCommV2Message' -import { injectable } from '../../../plugins' -import { JsonEncoder } from '../../../utils' -import { DidResolverService } from '../../dids/services/DidResolverService' +import { + AgentConfig, + MessageSender, + SendingMessageType, + DIDCommV2Message, + DidResolverService, + injectable, + JsonEncoder, +} from '@aries-framework/core' @injectable() export class ValueTransferTransportService implements VtpTransportInterface { diff --git a/packages/core/src/modules/value-transfer/services/ValueTransferWitnessService.ts b/packages/value-transfer/src/services/ValueTransferWitnessService.ts similarity index 90% rename from packages/core/src/modules/value-transfer/services/ValueTransferWitnessService.ts rename to packages/value-transfer/src/services/ValueTransferWitnessService.ts index c54ccfde42..d84fa82294 100644 --- a/packages/core/src/modules/value-transfer/services/ValueTransferWitnessService.ts +++ b/packages/value-transfer/src/services/ValueTransferWitnessService.ts @@ -1,17 +1,15 @@ -import type { InboundMessageContext } from '../../../agent/models/InboundMessageContext' -import type { Logger } from '../../../logger' -import type { ResumeValueTransferTransactionEvent } from '../ValueTransferEvents' import type { CashAcceptedMessage, CashRemovedMessage, RequestAcceptedMessage } from '../messages' import type { MintMessage } from '../messages/MintMessage' import type { ValueTransferRecord } from '../repository' +import type { InboundMessageContext, Logger } from '@aries-framework/core' +import type { ResumeValueTransferTransactionEvent } from '@aries-framework/value-transfer-events' +import { AgentConfig, EventEmitter, injectable, DependencyManager } from '@aries-framework/core' +import { InjectionSymbols } from '@aries-framework/gossip' +import { ValueTransferSharedEventTypes } from '@aries-framework/value-transfer-events' import { Witness, RequestAcceptance, CashRemoval, CashAcceptance, Mint } from '@sicpa-dlab/value-transfer-protocol-ts' -import { AgentConfig } from '../../../agent/AgentConfig' -import { EventEmitter } from '../../../agent/EventEmitter' -import { InjectionSymbols } from '../../../constants' -import { injectable, DependencyManager } from '../../../plugins' -import { ValueTransferEventTypes } from '../ValueTransferEvents' +import { ValueTransferConfig } from '../ValueTransferConfig' import { MintResponseMessage } from '../messages/MintResponseMessage' import { ValueTransferCryptoService } from './ValueTransferCryptoService' @@ -28,7 +26,8 @@ export class ValueTransferWitnessService { private witness: Witness public constructor( - config: AgentConfig, + agentConfig: AgentConfig, + config: ValueTransferConfig, dependencyManager: DependencyManager, valueTransferService: ValueTransferService, valueTransferCryptoService: ValueTransferCryptoService, @@ -36,13 +35,13 @@ export class ValueTransferWitnessService { valueTransferTransportService: ValueTransferTransportService, eventEmitter: EventEmitter ) { - this.logger = config.logger.createContextLogger('VTP-WitnessService') - this.label = config.label + this.logger = agentConfig.logger.createContextLogger('VTP-WitnessService') + this.label = agentConfig.label this.valueTransferService = valueTransferService this.eventEmitter = eventEmitter this.eventEmitter.on( - ValueTransferEventTypes.ResumeTransaction, + ValueTransferSharedEventTypes.ResumeTransaction, async (event: ResumeValueTransferTransactionEvent) => { await this.resumeTransaction(event.payload.thid) } @@ -57,8 +56,8 @@ export class ValueTransferWitnessService { gossipProvider: () => dependencyManager.resolve(InjectionSymbols.GossipService), }, { - label: config.label, - issuers: config.witnessIssuerDids, + label: agentConfig.label, + issuers: config.issuerDids, } ) } diff --git a/packages/core/src/modules/value-transfer/services/ValueTransferWitnessStateService.ts b/packages/value-transfer/src/services/ValueTransferWitnessStateService.ts similarity index 96% rename from packages/core/src/modules/value-transfer/services/ValueTransferWitnessStateService.ts rename to packages/value-transfer/src/services/ValueTransferWitnessStateService.ts index 691ce1d434..a28f340347 100644 --- a/packages/core/src/modules/value-transfer/services/ValueTransferWitnessStateService.ts +++ b/packages/value-transfer/src/services/ValueTransferWitnessStateService.ts @@ -1,6 +1,7 @@ import type { Transaction, VtpWitnessStorageInterface } from '@sicpa-dlab/value-transfer-protocol-ts' -import { injectable } from '../../../plugins' +import { injectable } from '@aries-framework/core' + import { ValueTransferRecord, ValueTransferRepository } from '../repository' import { ValueTransferStateRepository } from '../repository/ValueTransferStateRepository' diff --git a/packages/core/src/modules/value-transfer/services/index.ts b/packages/value-transfer/src/services/index.ts similarity index 100% rename from packages/core/src/modules/value-transfer/services/index.ts rename to packages/value-transfer/src/services/index.ts diff --git a/packages/value-transfer/tsconfig.build.json b/packages/value-transfer/tsconfig.build.json new file mode 100644 index 0000000000..dc956cf98b --- /dev/null +++ b/packages/value-transfer/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.build.json", + + "compilerOptions": { + "outDir": "./build", + "types": ["node"], + "skipLibCheck": true + }, + + "include": ["src/**/*"] +} diff --git a/packages/value-transfer/tsconfig.json b/packages/value-transfer/tsconfig.json new file mode 100644 index 0000000000..89375a3930 --- /dev/null +++ b/packages/value-transfer/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "types": ["node", "jest"] + } +} diff --git a/yarn.lock b/yarn.lock index 1a12982159..ea25d7ab79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -120,12 +120,14 @@ version "0.0.1" dependencies: "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.5.0" + "@aries-framework/value-transfer-events" "file:../Library/Caches/Yarn/v6/npm-@aries-framework-gossip-0.0.1-834cf2dc-1c83-4e1e-b8e9-baebdd8dd0a1-1670509012169/node_modules/@aries-framework/value-transfer-events" "@sicpa-dlab/value-transfer-common-ts" "0.3.7" "@sicpa-dlab/witness-gossip-protocol-ts" "0.3.13" "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" buffer "^6.0.3" class-transformer "0.5.1" class-validator "0.13.1" + uuid "^8.3.2" "@aries-framework/node@*": version "0.2.5" @@ -158,6 +160,35 @@ ref-napi "^3.0.3" ws "^7.5.3" +"@aries-framework/value-transfer-events@file:packages/value-transfer-events": + version "0.0.1" + dependencies: + "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.5.0" + "@aries-framework/gossip" "file:../Library/Caches/Yarn/v6/npm-@aries-framework-value-transfer-events-0.0.1-b7b391a5-9feb-4231-8c0e-af5f938aa5d4-1670509012164/node_modules/@aries-framework/gossip" + "@sicpa-dlab/value-transfer-common-ts" "0.3.7" + "@sicpa-dlab/value-transfer-protocol-ts" "0.4.5" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" + buffer "^6.0.3" + class-transformer "0.5.1" + class-validator "0.13.1" + rxjs "^7.2.0" + uuid "^8.3.2" + +"@aries-framework/value-transfer@file:packages/value-transfer": + version "0.0.1" + dependencies: + "@aries-framework/core" "npm:@sicpa-dlab/aries-framework-core@0.5.0" + "@aries-framework/gossip" "file:../Library/Caches/Yarn/v6/npm-@aries-framework-value-transfer-0.0.1-baa541fa-bd3e-46f6-ae3c-d0fc2536685e-1670509012190/node_modules/@aries-framework/gossip" + "@aries-framework/value-transfer-events" "file:../Library/Caches/Yarn/v6/npm-@aries-framework-value-transfer-0.0.1-baa541fa-bd3e-46f6-ae3c-d0fc2536685e-1670509012190/node_modules/@aries-framework/value-transfer-events" + "@sicpa-dlab/value-transfer-common-ts" "0.3.7" + "@sicpa-dlab/value-transfer-protocol-ts" "0.4.5" + "@sicpa-dlab/witness-gossip-types-ts" "0.3.9" + buffer "^6.0.3" + class-transformer "0.5.1" + class-validator "0.13.1" + rxjs "^7.2.0" + uuid "^8.3.2" + "@azure/core-asynciterator-polyfill@^1.0.0": version "1.0.2" resolved "https://registry.yarnpkg.com/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz#0dd3849fb8d97f062a39db0e5cadc9ffaf861fec"