@agoric/smart-wallet 0.5.4-dev-763bc10.0.763bc10 → 0.5.4-dev-bcbee89.0.bcbee89

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/smart-wallet",
3
- "version": "0.5.4-dev-763bc10.0.763bc10",
3
+ "version": "0.5.4-dev-bcbee89.0.bcbee89",
4
4
  "description": "Wallet contract",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -18,9 +18,9 @@
18
18
  "lint:eslint": "yarn run -T eslint ."
19
19
  },
20
20
  "devDependencies": {
21
- "@agoric/casting": "0.4.3-dev-763bc10.0.763bc10",
22
- "@agoric/cosmic-proto": "0.4.1-dev-763bc10.0.763bc10",
23
- "@agoric/swingset-vat": "0.32.3-dev-763bc10.0.763bc10",
21
+ "@agoric/casting": "0.4.3-dev-bcbee89.0.bcbee89",
22
+ "@agoric/cosmic-proto": "0.4.1-dev-bcbee89.0.bcbee89",
23
+ "@agoric/swingset-vat": "0.32.3-dev-bcbee89.0.bcbee89",
24
24
  "@endo/bundle-source": "^4.1.2",
25
25
  "@endo/captp": "^4.4.8",
26
26
  "@endo/init": "^1.1.12",
@@ -28,15 +28,15 @@
28
28
  "import-meta-resolve": "^4.1.0"
29
29
  },
30
30
  "dependencies": {
31
- "@agoric/ertp": "0.16.3-dev-763bc10.0.763bc10",
32
- "@agoric/internal": "0.3.3-dev-763bc10.0.763bc10",
33
- "@agoric/notifier": "0.6.3-dev-763bc10.0.763bc10",
34
- "@agoric/store": "0.9.3-dev-763bc10.0.763bc10",
35
- "@agoric/vat-data": "0.5.3-dev-763bc10.0.763bc10",
36
- "@agoric/vats": "0.15.2-dev-763bc10.0.763bc10",
37
- "@agoric/vow": "0.1.1-dev-763bc10.0.763bc10",
38
- "@agoric/zoe": "0.26.3-dev-763bc10.0.763bc10",
39
- "@agoric/zone": "0.2.3-dev-763bc10.0.763bc10",
31
+ "@agoric/ertp": "0.16.3-dev-bcbee89.0.bcbee89",
32
+ "@agoric/internal": "0.3.3-dev-bcbee89.0.bcbee89",
33
+ "@agoric/notifier": "0.6.3-dev-bcbee89.0.bcbee89",
34
+ "@agoric/store": "0.9.3-dev-bcbee89.0.bcbee89",
35
+ "@agoric/vat-data": "0.5.3-dev-bcbee89.0.bcbee89",
36
+ "@agoric/vats": "0.15.2-dev-bcbee89.0.bcbee89",
37
+ "@agoric/vow": "0.1.1-dev-bcbee89.0.bcbee89",
38
+ "@agoric/zoe": "0.26.3-dev-bcbee89.0.bcbee89",
39
+ "@agoric/zone": "0.2.3-dev-bcbee89.0.bcbee89",
40
40
  "@endo/errors": "^1.2.13",
41
41
  "@endo/eventual-send": "^1.3.4",
42
42
  "@endo/far": "^1.1.14",
@@ -74,5 +74,5 @@
74
74
  "typeCoverage": {
75
75
  "atLeast": 94.51
76
76
  },
77
- "gitHead": "763bc10a6a843acfcee39f347957e56be7b58134"
77
+ "gitHead": "bcbee89fe2847f2d51784fb3e645fe8da8035a49"
78
78
  }
package/src/offers.d.ts CHANGED
@@ -18,6 +18,7 @@
18
18
  * method: string;
19
19
  * args: Passable[];
20
20
  * saveResult?: ResultPlan;
21
+ * id?: number | string;
21
22
  * }} InvokeEntryMessage
22
23
  */
23
24
  /**
@@ -52,6 +53,7 @@ export type InvokeEntryMessage = {
52
53
  method: string;
53
54
  args: Passable[];
54
55
  saveResult?: ResultPlan;
56
+ id?: number | string;
55
57
  };
56
58
  /**
57
59
  * If `saveResult` is provided, the result of the invocation will be saved to
@@ -1 +1 @@
1
- {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["offers.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;;;GAWG;AAEH,kEAAkE;AAClE,iCAAkC,aAAa,CAAC;sBAlCnC,MAAM,GAAG,MAAM;;;;;UAKd,MAAM;;;;;;;;iCAOP;IACR,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;;;;;;wBAIS;IACR,EAAE,EAAE,OAAO,CAAC;IACZ,cAAc,EAAE,OAAO,kBAAkB,EAAE,cAAc,CAAC;IAC1D,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;0BAUS,SAAS,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EACH,OAAO,GACP,OAAO,kBAAkB,GACzB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;8BAjDuB,kBAAkB;8BADlB,aAAa"}
1
+ {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["offers.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;GAWG;AAEH,kEAAkE;AAClE,iCAAkC,aAAa,CAAC;sBAnCnC,MAAM,GAAG,MAAM;;;;;UAKd,MAAM;;;;;;;;iCAOP;IACR,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;;;;;;wBAIS;IACR,EAAE,EAAE,OAAO,CAAC;IACZ,cAAc,EAAE,OAAO,kBAAkB,EAAE,cAAc,CAAC;IAC1D,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;0BAUS,SAAS,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EACH,OAAO,GACP,OAAO,kBAAkB,GACzB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;8BAlDuB,kBAAkB;8BADlB,aAAa"}
package/src/offers.js CHANGED
@@ -21,6 +21,7 @@
21
21
  * method: string;
22
22
  * args: Passable[];
23
23
  * saveResult?: ResultPlan;
24
+ * id?: number | string;
24
25
  * }} InvokeEntryMessage
25
26
  */
26
27
 
@@ -154,6 +154,14 @@ export type UpdateRecord = {
154
154
  status: {
155
155
  error: string;
156
156
  };
157
+ } | {
158
+ updated: "invocation";
159
+ id: string | number;
160
+ error?: string;
161
+ result?: {
162
+ name?: string;
163
+ passStyle: string;
164
+ };
157
165
  };
158
166
  /**
159
167
  * For use by clients to describe brands to users. Includes `displayInfo` to
@@ -1 +1 @@
1
- {"version":3,"file":"smartWallet.d.ts","sourceRoot":"","sources":["smartWallet.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartWallet.d.ts","sourceRoot":"","sources":["smartWallet.js"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Fail, q } from '@endo/errors';
2
- import { E } from '@endo/far';
2
+ import { E, passStyleOf } from '@endo/far';
3
3
  import {
4
4
  AmountShape,
5
5
  BrandShape,
@@ -134,7 +134,13 @@ const trace = makeTracer('SmrtWlt');
134
134
  /**
135
135
  * @typedef {{ updated: 'offerStatus'; status: OfferStatus }
136
136
  * | { updated: 'balance'; currentAmount: Amount }
137
- * | { updated: 'walletAction'; status: { error: string } }} UpdateRecord
137
+ * | { updated: 'walletAction'; status: { error: string } }
138
+ * | {
139
+ * updated: 'invocation';
140
+ * id: string | number;
141
+ * error?: string;
142
+ * result?: { name?: string; passStyle: string };
143
+ * }} UpdateRecord
138
144
  * Record of an update to the state of this wallet.
139
145
  *
140
146
  * Client is responsible for coalescing updates into a current state. See
@@ -432,6 +438,11 @@ export const prepareSmartWallet = (baggage, shared) => {
432
438
  };
433
439
  };
434
440
 
441
+ const invocationResultShape = M.splitRecord(
442
+ {},
443
+ { id: M.or(M.string(), M.number()), saveResult: shape.ResultPlan },
444
+ );
445
+
435
446
  const behaviorGuards = {
436
447
  helper: M.interface('helperFacetI', {
437
448
  assertUniqueOfferId: M.call(M.string()).returns(),
@@ -477,8 +488,8 @@ export const prepareSmartWallet = (baggage, shared) => {
477
488
  invokeEntry: M.callWhen(shape.InvokeEntryMessage).returns(),
478
489
  }),
479
490
  resultStepWatcher: M.interface('resultStepWatcher', {
480
- onFulfilled: M.call(M.any(), shape.ResultPlan).returns(),
481
- onRejected: M.call(M.any(), M.any()).returns(),
491
+ onFulfilled: M.call(M.any(), invocationResultShape).returns(),
492
+ onRejected: M.call(M.any(), invocationResultShape).returns(),
482
493
  }),
483
494
  self: M.interface('selfFacetI', {
484
495
  handleBridgeAction: M.call(shape.StringCapData, M.boolean()).returns(
@@ -1068,14 +1079,21 @@ export const prepareSmartWallet = (baggage, shared) => {
1068
1079
  const { myStore } = this.state;
1069
1080
  const { resultStepWatcher } = this.facets;
1070
1081
 
1071
- const { targetName: name, method, args, saveResult } = message;
1082
+ const { targetName: name, method, args, saveResult, id } = message;
1072
1083
  myStore.has(name) || Fail`cannot invoke ${q(name)}: no such item`;
1073
1084
  const value = myStore.get(name);
1074
1085
  trace('entry', name, value);
1075
1086
  trace('invoke', value, '.', method, '(', args, ')');
1087
+ if (id) {
1088
+ const { updateRecorderKit } = this.state;
1089
+ void updateRecorderKit.recorder.write({
1090
+ updated: 'invocation',
1091
+ id,
1092
+ });
1093
+ }
1076
1094
  const callP = E(value)[method](...args);
1077
- if (saveResult) {
1078
- vowTools.watch(callP, resultStepWatcher, saveResult);
1095
+ if (id || saveResult) {
1096
+ vowTools.watch(callP, resultStepWatcher, { id, saveResult });
1079
1097
  } else {
1080
1098
  void callP;
1081
1099
  }
@@ -1085,14 +1103,41 @@ export const prepareSmartWallet = (baggage, shared) => {
1085
1103
  resultStepWatcher: {
1086
1104
  /**
1087
1105
  * @param {unknown} result
1088
- * @param {ResultPlan} saveResult
1106
+ * @param {{ id?: string | number; saveResult?: ResultPlan }} opts
1089
1107
  */
1090
- onFulfilled(result, saveResult) {
1091
- trace('resultStepWatcher result', result);
1092
- this.facets.helper.saveEntry(saveResult, result);
1108
+ onFulfilled(result, opts) {
1109
+ trace('resultStepWatcher opts', opts);
1110
+ const { id, saveResult } = opts;
1111
+ if (saveResult) {
1112
+ this.facets.helper.saveEntry(saveResult, result);
1113
+ }
1114
+ const passStyle = passStyleOf(result);
1115
+ const { updateRecorderKit } = this.state;
1116
+ if (id) {
1117
+ void updateRecorderKit.recorder.write({
1118
+ updated: 'invocation',
1119
+ id,
1120
+ result: {
1121
+ ...(saveResult?.name ? { name: saveResult.name } : {}),
1122
+ passStyle,
1123
+ },
1124
+ });
1125
+ }
1093
1126
  },
1094
- onRejected(reason, saveResult) {
1095
- trace('rejected', reason, 'saveResult', saveResult);
1127
+ /**
1128
+ * @param {unknown} reason
1129
+ * @param {{ id: string | number; saveResult?: ResultPlan }} opts
1130
+ */
1131
+ onRejected(reason, opts) {
1132
+ trace('rejected', reason, opts);
1133
+ if (opts.id) {
1134
+ const { updateRecorderKit } = this.state;
1135
+ void updateRecorderKit.recorder.write({
1136
+ updated: 'invocation',
1137
+ id: opts.id,
1138
+ error: String(reason),
1139
+ });
1140
+ }
1096
1141
  },
1097
1142
  },
1098
1143
 
package/src/typeGuards.js CHANGED
@@ -22,7 +22,7 @@ const InvokeEntryMessageShape = M.splitRecord(
22
22
  method: M.string(),
23
23
  args: M.array(),
24
24
  },
25
- { saveResult: ResultPlanShape },
25
+ { saveResult: ResultPlanShape, id: M.or(M.number(), M.string()) },
26
26
  {},
27
27
  );
28
28