@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 +22 -0
- package/package.json +6 -5
- package/src/smartWallet.d.ts.map +1 -1
- package/src/smartWallet.js +33 -12
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-
|
|
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-
|
|
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-
|
|
38
|
-
"@agoric/zoe": "^0.26.3-
|
|
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": "
|
|
69
|
+
"gitHead": "734e8635002e01b3e27477e93998dda942c7fae8"
|
|
69
70
|
}
|
package/src/smartWallet.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartWallet.d.ts","sourceRoot":"","sources":["smartWallet.js"],"names":[],"mappings":"AAiOA,kDAAmD;AAiB5C,+EAFI,YAAY;
|
|
1
|
+
{"version":3,"file":"smartWallet.d.ts","sourceRoot":"","sources":["smartWallet.js"],"names":[],"mappings":"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"}
|
package/src/smartWallet.js
CHANGED
|
@@ -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<
|
|
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)
|
|
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
|
-
|
|
971
|
-
|
|
972
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
},
|