@agoric/smart-wallet 0.5.4-u14.0 → 0.5.4-u15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ### [0.5.4-u15.0](https://github.com/Agoric/agoric/compare/@agoric/smart-wallet@0.5.4-u14.1...@agoric/smart-wallet@0.5.4-u15.0) (2024-04-20)
7
+
8
+
9
+ ### Features
10
+
11
+ * **smart-wallet:** tryExitOffer reclaims withdrawn payments ([6f01f63](https://github.com/Agoric/agoric/commit/6f01f633be6ac3b43f965c704f8116405896c993))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * in SmartWallet, if invitation is invalid, don't process offer ([29078f7](https://github.com/Agoric/agoric/commit/29078f75f59ae5a5b47b463f9a65f9a5d4d69a8e))
17
+
18
+
19
+
20
+ ### [0.5.4-u14.1](https://github.com/Agoric/agoric/compare/@agoric/smart-wallet@0.5.4-u14.0...@agoric/smart-wallet@0.5.4-u14.1) (2024-03-12)
21
+
22
+ **Note:** Version bump only for package @agoric/smart-wallet
23
+
24
+
25
+
26
+
27
+
6
28
  ### [0.5.4-u14.0](https://github.com/Agoric/agoric/compare/@agoric/smart-wallet@0.5.4-u13.0...@agoric/smart-wallet@0.5.4-u14.0) (2024-02-27)
7
29
 
8
30
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/smart-wallet",
3
- "version": "0.5.4-u14.0",
3
+ "version": "0.5.4-u15.0",
4
4
  "description": "Wallet contract",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -18,6 +18,7 @@
18
18
  "devDependencies": {
19
19
  "@agoric/cosmic-proto": "^0.3.1-u14.0",
20
20
  "@agoric/vats": "^0.15.2-u13.0",
21
+ "@agoric/zone": "^0.2.3-u14.0",
21
22
  "@endo/bundle-source": "2.5.2-upstream-rollup",
22
23
  "@endo/captp": "3.1.1",
23
24
  "@endo/init": "0.5.56",
@@ -27,15 +28,15 @@
27
28
  "dependencies": {
28
29
  "@agoric/assert": "^0.6.1-u11wf.0",
29
30
  "@agoric/casting": "^0.4.3-u14.0",
30
- "@agoric/deploy-script-support": "^0.10.4-u14.0",
31
+ "@agoric/deploy-script-support": "^0.10.4-u15.0",
31
32
  "@agoric/ertp": "^0.16.3-u14.0",
32
33
  "@agoric/internal": "^0.4.0-u14.0",
33
34
  "@agoric/notifier": "^0.6.3-u14.0",
34
35
  "@agoric/store": "^0.9.3-u14.0",
35
36
  "@agoric/swingset-vat": "^0.32.3-u14.0",
36
37
  "@agoric/vat-data": "^0.5.3-u14.0",
37
- "@agoric/vats": "^0.15.2-u14.0",
38
- "@agoric/zoe": "^0.26.3-u14.0",
38
+ "@agoric/vats": "^0.15.2-u15.0",
39
+ "@agoric/zoe": "^0.26.3-u15.0",
39
40
  "@endo/eventual-send": "0.17.2",
40
41
  "@endo/far": "0.2.18",
41
42
  "@endo/marshal": "0.8.5",
@@ -65,5 +66,5 @@
65
66
  "publishConfig": {
66
67
  "access": "public"
67
68
  },
68
- "gitHead": "b3a6f3374cb3bddab39fc6d6f426429cae6c29c6"
69
+ "gitHead": "734e8635002e01b3e27477e93998dda942c7fae8"
69
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"smartWallet.d.ts","sourceRoot":"","sources":["smartWallet.js"],"names":[],"mappings":"AAiOA,kDAAmD;AAiB5C,+EAFI,YAAY;uBAq6B2E,KAAK,WAAW,CAAC;;IAvH3G;;;;;;OAMG;sCAHQ,OAAO,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,mCAErC,QAAQ,IAAI,CAAC;;QArP1B;;;;;;;;WAQG;yBAHQ,OAAO,GACL,QAAQ,MAAM,CAAC;;;QAkH5B;;;;;;WAMG;gCAHQ,SAAS,GACP,QAAQ,IAAI,CAAC;QAuG1B;;;;;;WAMG;8BAHQ,OAAO,GACL,QAAQ,IAAI,CAAC;;IAmE1B,sCAAsC;;IAKtC,sCAAsC;;;;;;;;;;;;;;IAuBtC;;;;OAIG;qCADQ,MAAM;GA+CxB;sBAhnCa,MAAM,GAAG,MAAM;wBAGhB;IACZ,EAAM,EAAE,OAAO,CAAC;IAChB,cAAkB,EAAE,OAAO,eAAe,EAAE,cAAc,CAAC;IAC3D,QAAY,EAAE,QAAQ,CAAC;IACvB,SAAa,CAAC,EAAE,OAAO,CAAA;CACpB;;;wBAK2B,GAAG,EAAE,KAAK,IAAI;yBAAmB,GAAG,EAAE,KAAK,IAAI;;sBACvD,OAAO,mBAAmB,EAAE,gBAAgB;wBAC1C,KAAK,UAAU,CAAC;;iCAK5B;IACZ,MAAU,EAAE,cAAc,CAAA;IAC1B,KAAS,EAAE,SAAS,CAAC;CAClB;iCAIS;IACZ,MAAU,EAAE,cAAc,CAAA;IAC1B,OAAW,EAAE,OAAO,CAAC;CAClB;2BAOU,kBAAkB,GAAG,kBAAkB;;;;;;;;;;;;;;;;;;YAoBxC,MAAM;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC;2BACvB,MAAM,CAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAE,CAAC;;;;gBAE7D,MAAM,CAAC,OAAO,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC,CAAC;;;;;;;;;;;;;;2BAKvD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,OAAO,aAAa,EAAE,WAAW,CAAA;CAAE,GAC3E;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;;;;8BAchD;IACZ,KAAS,EAAE,KAAK,CAAC;IACjB,WAAe,EAAE,WAAW,CAAC;IAC7B,MAAU,EAAE,MAAM,CAAC;IACnB,OAAW,EAAE,OAAO,YAAY,EAAE,OAAO,CAAA;CACtC;2BAKS;IACZ,OAAW,EAAE,MAAM,CAAC;IACpB,IAAQ,EAAE,KAAK,OAAO,8BAA8B,EAAE,IAAI,CAAC,CAAC;IAC5D,kBAAsB,EAAE,WAAW,CAAC;IACpC,eAAmB,EAAE,MAAM,KAAK,CAAC,CAAC;IAClC,iBAAqB,EAAE,WAAW,CAAC;CAChC;sCAES,KAAK,SAAS,KAAK,EAAE,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;2BAChE;IACZ,WAAe,EAAE,KAAK,OAAO,cAAc,EAAE,OAAO,CAAC,CAAC;IACtD,QAAY,EAAE,uBAAuB,CAAC;IACtC,gBAAoB,EAAE,OAAO,KAAK,CAAC,CAAC;IACpC,eAAmB,EAAE,MAAM,KAAK,CAAC,CAAC;IAClC,qBAAyB,EAAE,WAAW,CAAC;IACvC,gBAAoB,EAAE,UAAU,CAAC;IACjC,GAAO,EAAE,KAAK,UAAU,CAAC,CAAC;IAC1B,sBAA0B,EAAE,GAAG,CAAC;CAC7B;;;;;;;oBAES,cAAc,GAAG,YAAY;6BAM7B,SAAS,YAAY,GAAG;IACpC,aAAiB,EAAE,SAAS,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IACnD,uBAA2B,EAAE,SAAS,MAAM,EAAE,OAAO,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACxF,4BAAgC,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3E,qBAAyB,EAAE,SAAS,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;IAC3D,aAAiB,EAAE,SAAS,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,iBAAqB,EAAE,OAAO,6CAA6C,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvG,kBAAsB,EAAE,OAAO,6CAA6C,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC/G,UAAc,EAAE,SAAS,OAAO,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC,CAAC;IACrE,cAAkB,EAAE,SAAS,OAAO,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC;IACzD,iBAAqB,EAAE,SAAS,OAAO,EAAE,SAAS,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;CAChE,CAAC;0BAEQ,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE;2BAClC,EACT;0BA++BU,QAAQ,WAAW,WAAW,yBAAyB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"smartWallet.d.ts","sourceRoot":"","sources":["smartWallet.js"],"names":[],"mappings":"AAiOA,kDAAmD;AAiB5C,+EAFI,YAAY;uBA07B2E,KAAK,WAAW,CAAC;;IAvH3G;;;;;;OAMG;sCAHQ,OAAO,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,mCAErC,QAAQ,IAAI,CAAC;;QA1Q1B;;;;;;;;WAQG;yBAHQ,OAAO,GACL,QAAQ,MAAM,CAAC;;;QAyH5B;;;;;;WAMG;gCAHQ,SAAS,GACP,QAAQ,IAAI,CAAC;QAwG1B;;;;;;WAMG;8BAHQ,OAAO,GACL,QAAQ,IAAI,CAAC;;IAgF1B,sCAAsC;;IAKtC,sCAAsC;;;;;;;;;;;;;;IAuBtC;;;;OAIG;qCADQ,MAAM;GA+CxB;sBAroCa,MAAM,GAAG,MAAM;wBAGhB;IACZ,EAAM,EAAE,OAAO,CAAC;IAChB,cAAkB,EAAE,OAAO,eAAe,EAAE,cAAc,CAAC;IAC3D,QAAY,EAAE,QAAQ,CAAC;IACvB,SAAa,CAAC,EAAE,OAAO,CAAA;CACpB;;;wBAK2B,GAAG,EAAE,KAAK,IAAI;yBAAmB,GAAG,EAAE,KAAK,IAAI;;sBACvD,OAAO,mBAAmB,EAAE,gBAAgB;wBAC1C,KAAK,UAAU,CAAC;;iCAK5B;IACZ,MAAU,EAAE,cAAc,CAAA;IAC1B,KAAS,EAAE,SAAS,CAAC;CAClB;iCAIS;IACZ,MAAU,EAAE,cAAc,CAAA;IAC1B,OAAW,EAAE,OAAO,CAAC;CAClB;2BAOU,kBAAkB,GAAG,kBAAkB;;;;;;;;;;;;;;;;;;YAoBxC,MAAM;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC;2BACvB,MAAM,CAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAE,CAAC;;;;gBAE7D,MAAM,CAAC,OAAO,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC,CAAC;;;;;;;;;;;;;;2BAKvD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,OAAO,aAAa,EAAE,WAAW,CAAA;CAAE,GAC3E;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;;;;8BAchD;IACZ,KAAS,EAAE,KAAK,CAAC;IACjB,WAAe,EAAE,WAAW,CAAC;IAC7B,MAAU,EAAE,MAAM,CAAC;IACnB,OAAW,EAAE,OAAO,YAAY,EAAE,OAAO,CAAA;CACtC;2BAKS;IACZ,OAAW,EAAE,MAAM,CAAC;IACpB,IAAQ,EAAE,KAAK,OAAO,8BAA8B,EAAE,IAAI,CAAC,CAAC;IAC5D,kBAAsB,EAAE,WAAW,CAAC;IACpC,eAAmB,EAAE,MAAM,KAAK,CAAC,CAAC;IAClC,iBAAqB,EAAE,WAAW,CAAC;CAChC;sCAES,KAAK,SAAS,KAAK,EAAE,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;2BAChE;IACZ,WAAe,EAAE,KAAK,OAAO,cAAc,EAAE,OAAO,CAAC,CAAC;IACtD,QAAY,EAAE,uBAAuB,CAAC;IACtC,gBAAoB,EAAE,OAAO,KAAK,CAAC,CAAC;IACpC,eAAmB,EAAE,MAAM,KAAK,CAAC,CAAC;IAClC,qBAAyB,EAAE,WAAW,CAAC;IACvC,gBAAoB,EAAE,UAAU,CAAC;IACjC,GAAO,EAAE,KAAK,UAAU,CAAC,CAAC;IAC1B,sBAA0B,EAAE,GAAG,CAAC;CAC7B;;;;;;;oBAES,cAAc,GAAG,YAAY;6BAM7B,SAAS,YAAY,GAAG;IACpC,aAAiB,EAAE,SAAS,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IACnD,uBAA2B,EAAE,SAAS,MAAM,EAAE,OAAO,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACxF,4BAAgC,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3E,qBAAyB,EAAE,SAAS,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;IAC3D,aAAiB,EAAE,SAAS,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,iBAAqB,EAAE,OAAO,6CAA6C,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvG,kBAAsB,EAAE,OAAO,6CAA6C,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC/G,UAAc,EAAE,SAAS,OAAO,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC,CAAC;IACrE,cAAkB,EAAE,SAAS,OAAO,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC;IACzD,iBAAqB,EAAE,SAAS,OAAO,EAAE,SAAS,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;CAChE,CAAC;0BAEQ,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE;2BAClC,EACT;0BAogCU,QAAQ,WAAW,WAAW,yBAAyB,CAAC,CAAC,CAAC"}
@@ -902,7 +902,7 @@ export const prepareSmartWallet = (baggage, shared) => {
902
902
  * Find the live payments for the offer and deposit them back in the appropriate purses.
903
903
  *
904
904
  * @param {OfferId} offerId
905
- * @returns {Promise<void>}
905
+ * @returns {Promise<Amount[]>}
906
906
  */
907
907
  async tryReclaimingWithdrawnPayments(offerId) {
908
908
  const { facets } = this;
@@ -913,8 +913,9 @@ export const prepareSmartWallet = (baggage, shared) => {
913
913
  if (liveOfferPayments.has(offerId)) {
914
914
  const brandPaymentRecord = liveOfferPayments.get(offerId);
915
915
  if (!brandPaymentRecord) {
916
- return;
916
+ return [];
917
917
  }
918
+ const out = [];
918
919
  // Use allSettled to ensure we attempt all the deposits, regardless of
919
920
  // individual rejections.
920
921
  await Promise.allSettled(
@@ -924,10 +925,16 @@ export const prepareSmartWallet = (baggage, shared) => {
924
925
  const purseP = facets.helper.purseForBrand(b);
925
926
 
926
927
  // Now send it back to the purse.
927
- return E(purseP).deposit(p);
928
+ return E(purseP)
929
+ .deposit(p)
930
+ .then(amt => {
931
+ out.push(amt);
932
+ });
928
933
  }),
929
934
  );
935
+ return harden(out);
930
936
  }
937
+ return [];
931
938
  },
932
939
  },
933
940
 
@@ -967,23 +974,24 @@ export const prepareSmartWallet = (baggage, shared) => {
967
974
 
968
975
  const invitation = invitationFromSpec(offerSpec.invitationSpec);
969
976
 
970
- const [paymentKeywordRecord, invitationAmount] = await Promise.all([
971
- proposal?.give &&
972
- deeplyFulfilledObject(
973
- facets.payments.withdrawGive(proposal.give, offerSpec.id),
974
- ),
975
- E(invitationIssuer).getAmountOf(invitation),
976
- ]);
977
+ // prettier-ignore
978
+ const invitationAmount =
979
+ await E(invitationIssuer).getAmountOf(invitation);
977
980
 
978
981
  // 2. Begin executing offer
979
982
  // No explicit signal to user that we reached here but if anything above
980
983
  // failed they'd get an 'error' status update.
981
984
 
982
- /** @type {UserSeat} */
985
+ const withdrawnPayments =
986
+ proposal?.give &&
987
+ (await deeplyFulfilledObject(
988
+ facets.payments.withdrawGive(proposal.give, offerSpec.id),
989
+ ));
990
+
983
991
  seatRef = await E(zoe).offer(
984
992
  invitation,
985
993
  proposal,
986
- paymentKeywordRecord,
994
+ withdrawnPayments,
987
995
  offerSpec.offerArgs,
988
996
  );
989
997
  facets.helper.logWalletInfo(offerSpec.id, 'seated');
@@ -1047,6 +1055,19 @@ export const prepareSmartWallet = (baggage, shared) => {
1047
1055
  * @throws if the seat can't be found or E(seatRef).tryExit() fails.
1048
1056
  */
1049
1057
  async tryExitOffer(offerId) {
1058
+ const { facets } = this;
1059
+ const amts = await facets.payments
1060
+ .tryReclaimingWithdrawnPayments(offerId)
1061
+ .catch(e => {
1062
+ facets.helper.logWalletError(
1063
+ 'recovery failed reclaiming payments',
1064
+ e,
1065
+ );
1066
+ return [];
1067
+ });
1068
+ if (amts.length > 0) {
1069
+ facets.helper.logWalletInfo('reclaimed', amts, 'from', offerId);
1070
+ }
1050
1071
  const seatRef = this.state.liveOfferSeats.get(offerId);
1051
1072
  await E(seatRef).tryExit();
1052
1073
  },