@agoric/smart-wallet 0.5.4-u15.0 → 0.5.4-u16.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.
@@ -8,21 +8,26 @@ console.warn('upgrade-walletFactory-proposal.js module evaluating');
8
8
  const { Fail } = assert;
9
9
 
10
10
  // vstorage paths under published.*
11
+ const WALLET_STORAGE_PATH_SEGMENT = 'wallet';
11
12
  const BOARD_AUX = 'boardAux';
12
13
 
13
14
  const marshalData = makeMarshal(_val => Fail`data only`);
14
15
 
15
16
  /**
16
- * @param { BootstrapPowers } powers
17
- *
17
+ * @param {BootstrapPowers} powers
18
18
  * @param {object} config
19
19
  * @param {{ walletFactoryRef: VatSourceRef & { bundleID: string } }} config.options
20
20
  */
21
21
  export const upgradeWalletFactory = async (
22
22
  {
23
- consume: { contractKits: kitsP, instancePrivateArgs: argsP },
23
+ consume: {
24
+ contractKits,
25
+ governedContractKits,
26
+ chainStorage,
27
+ walletBridgeManager: walletBridgeManagerP,
28
+ },
24
29
  instance: {
25
- consume: { walletFactory: wfInstanceP },
30
+ consume: { walletFactory: wfInstanceP, provisionPool: ppInstanceP },
26
31
  },
27
32
  },
28
33
  config,
@@ -30,26 +35,42 @@ export const upgradeWalletFactory = async (
30
35
  console.log('upgradeWalletFactory: config', config);
31
36
  const { walletFactoryRef } = config.options;
32
37
 
33
- console.log('upgradeWalletFactory: awaiting instance');
34
- const wfInstance = await wfInstanceP;
35
- console.log('upgradeWalletFactory: awaiting contract kits');
36
- const { contractKits, instancePrivateArgs } = await allValues({
37
- contractKits: kitsP,
38
- instancePrivateArgs: argsP,
38
+ // console.log('upgradeWalletFactory: awaiting instances etc.');
39
+ const { wfInstance, ppInstance, walletBridgeManager, storageNode } =
40
+ await allValues({
41
+ wfInstance: wfInstanceP,
42
+ ppInstance: ppInstanceP,
43
+ walletBridgeManager: walletBridgeManagerP,
44
+ // @ts-expect-error chainStorage is only falsy in testing
45
+ storageNode: E(chainStorage).makeChildNode(WALLET_STORAGE_PATH_SEGMENT),
46
+ });
47
+ // console.log('upgradeWalletFactory: awaiting contract kits');
48
+ const { wfKit, ppKit } = await allValues({
49
+ wfKit: E(contractKits).get(wfInstance),
50
+ ppKit: E(governedContractKits).get(ppInstance),
39
51
  });
40
- const { adminFacet } = contractKits.get(wfInstance);
41
- /** @type {Parameters<typeof import('../walletFactory').prepare>[1]} */
42
- // @ts-expect-error cast
43
- const unsettledArgs = instancePrivateArgs.get(wfInstance);
44
- const privateArgs = await allValues(unsettledArgs);
45
- console.log('upgradeWalletFactory: upgrading with privateArgs', privateArgs);
46
- await E(adminFacet).upgradeContract(walletFactoryRef.bundleID, privateArgs);
52
+ // console.log('upgradeWalletFactory: awaiting walletReviver');
53
+ const walletReviver = await E(ppKit.creatorFacet).getWalletReviver();
54
+ const newPrivateArgs = harden({
55
+ storageNode,
56
+ walletBridgeManager,
57
+ walletReviver,
58
+ });
59
+
60
+ console.log(
61
+ 'upgradeWalletFactory: upgrading with newPrivateArgs',
62
+ newPrivateArgs,
63
+ );
64
+ await E(wfKit.adminFacet).upgradeContract(
65
+ walletFactoryRef.bundleID,
66
+ newPrivateArgs,
67
+ );
47
68
  console.log('upgradeWalletFactory: done');
48
69
  };
49
70
  harden(upgradeWalletFactory);
50
71
 
51
72
  /**
52
- * @param { BootstrapPowers } powers
73
+ * @param {BootstrapPowers} powers
53
74
  */
54
75
  export const publishAgoricBrandsDisplayInfo = async ({
55
76
  consume: { agoricNames, board, chainStorage },
@@ -68,7 +89,7 @@ export const publishAgoricBrandsDisplayInfo = async ({
68
89
  await E(node).setValue(JSON.stringify(aux));
69
90
  };
70
91
 
71
- /** @type {ERef<NameHub>} */
92
+ /** @type {ERef<import('@agoric/vats').NameHub>} */
72
93
  const brandHub = E(agoricNames).lookup('brand');
73
94
  const brands = await E(brandHub).values();
74
95
  // tolerate failure; in particular, for the timer brand
@@ -76,13 +97,16 @@ export const publishAgoricBrandsDisplayInfo = async ({
76
97
  };
77
98
  harden(publishAgoricBrandsDisplayInfo);
78
99
 
79
- /** @type { import("@agoric/vats/src/core/lib-boot").BootstrapManifest } */
100
+ /** @type {import('@agoric/vats/src/core/lib-boot').BootstrapManifest} */
80
101
  const manifest = {
81
102
  [upgradeWalletFactory.name]: {
82
103
  // include rationale for closely-held, high authority capabilities
83
104
  consume: {
84
105
  contractKits: `to upgrade walletFactory using its adminFacet`,
85
- instancePrivateArgs: `to get privateArgs for walletFactory`,
106
+ governedContractKits:
107
+ 'to get walletReviver from provisionPool.creatorFacet',
108
+ chainStorage: 'to allow walletFactory to (continue) write to vstorage',
109
+ walletBridgeManager: 'to handle bridged cosmos SpendAction messages',
86
110
  },
87
111
  // widely-shared, low authority instance handles need no rationale
88
112
  instance: {
@@ -1,16 +1,18 @@
1
1
  export const BRAND_TO_PURSES_KEY: "brandToPurses";
2
- export function prepareSmartWallet(baggage: MapStore<string, unknown>, shared: SharedParams): (uniqueWithoutChildNodes: Omit<UniqueParams, "currentStorageNode" | "walletStorageNode"> & {
2
+ export function prepareSmartWallet(baggage: import("@agoric/vat-data").Baggage, shared: SharedParams): (uniqueWithoutChildNodes: Omit<UniqueParams, "currentStorageNode" | "walletStorageNode"> & {
3
3
  walletStorageNode: ERef<StorageNode>;
4
- }) => Promise<{
4
+ }) => Promise<import("@endo/exo").Guarded<{
5
5
  /**
6
- * Umarshals the actionCapData and delegates to the appropriate action handler.
6
+ * Umarshals the actionCapData and delegates to the appropriate action
7
+ * handler.
7
8
  *
8
- * @param {import('@endo/marshal').CapData<string>} actionCapData of type BridgeAction
9
+ * @param {import('@endo/marshal').CapData<string | null>} actionCapData
10
+ * of type BridgeAction
9
11
  * @param {boolean} [canSpend]
10
12
  * @returns {Promise<void>}
11
13
  */
12
- handleBridgeAction(actionCapData: import('@endo/marshal').CapData<string>, canSpend?: boolean | undefined): Promise<void>;
13
- getDepositFacet(): {
14
+ handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
15
+ getDepositFacet(): import("@endo/exo").Guarded<{
14
16
  /**
15
17
  * Put the assets from the payment into the appropriate purse.
16
18
  *
@@ -18,17 +20,21 @@ export function prepareSmartWallet(baggage: MapStore<string, unknown>, shared: S
18
20
  *
19
21
  * @param {Payment} payment
20
22
  * @returns {Promise<Amount>}
21
- * @throws if there's not yet a purse, though the payment is held to try again when there is
23
+ * @throws if there's not yet a purse, though the payment is held to try
24
+ * again when there is
22
25
  */
23
26
  receive(payment: Payment): Promise<Amount>;
24
- };
25
- getOffersFacet(): {
27
+ }>;
28
+ getOffersFacet(): import("@endo/exo").Guarded<{
26
29
  /**
27
- * Take an offer description provided in capData, augment it with payments and call zoe.offer()
30
+ * Take an offer description provided in capData, augment it with
31
+ * payments and call zoe.offer()
28
32
  *
29
33
  * @param {OfferSpec} offerSpec
30
- * @returns {Promise<void>} after the offer has been both seated and exited by Zoe.
31
- * @throws if any parts of the offer can be determined synchronously to be invalid
34
+ * @returns {Promise<void>} after the offer has been both seated and
35
+ * exited by Zoe.
36
+ * @throws if any parts of the offer can be determined synchronously to
37
+ * be invalid
32
38
  */
33
39
  executeOffer(offerSpec: OfferSpec): Promise<void>;
34
40
  /**
@@ -39,20 +45,20 @@ export function prepareSmartWallet(baggage: MapStore<string, unknown>, shared: S
39
45
  * @throws if the seat can't be found or E(seatRef).tryExit() fails.
40
46
  */
41
47
  tryExitOffer(offerId: OfferId): Promise<void>;
42
- };
48
+ }>;
43
49
  /** @deprecated use getPublicTopics */
44
- getCurrentSubscriber(): Subscriber<CurrentWalletRecord>;
50
+ getCurrentSubscriber(): globalThis.Subscriber<CurrentWalletRecord>;
45
51
  /** @deprecated use getPublicTopics */
46
- getUpdatesSubscriber(): Subscriber<UpdateRecord>;
52
+ getUpdatesSubscriber(): globalThis.Subscriber<UpdateRecord>;
47
53
  getPublicTopics(): {
48
54
  current: {
49
55
  description: string;
50
- subscriber: Subscriber<CurrentWalletRecord>;
56
+ subscriber: globalThis.Subscriber<CurrentWalletRecord>;
51
57
  storagePath: Promise<string>;
52
58
  };
53
59
  updates: {
54
60
  description: string;
55
- subscriber: Subscriber<UpdateRecord>;
61
+ subscriber: globalThis.Subscriber<UpdateRecord>;
56
62
  storagePath: Promise<string>;
57
63
  };
58
64
  };
@@ -62,125 +68,137 @@ export function prepareSmartWallet(baggage: MapStore<string, unknown>, shared: S
62
68
  * @param {object} key
63
69
  */
64
70
  repairWalletForIncarnation2(key: object): void;
65
- }>;
71
+ }>>;
66
72
  export type OfferId = number | string;
67
73
  export type OfferSpec = {
68
74
  id: OfferId;
69
- invitationSpec: import('./invitations').InvitationSpec;
75
+ invitationSpec: import("./invitations").InvitationSpec;
70
76
  proposal: Proposal;
71
- offerArgs?: unknown;
77
+ offerArgs?: any;
72
78
  };
73
79
  export type ExecutorPowers = {
74
80
  logger: {
75
81
  info: (...args: any[]) => void;
76
82
  error: (...args: any[]) => void;
77
83
  };
78
- makeOfferWatcher: import('./offerWatcher.js').MakeOfferWatcher;
84
+ makeOfferWatcher: import("./offerWatcher.js").MakeOfferWatcher;
79
85
  invitationFromSpec: ERef<Invitation>;
80
86
  };
81
87
  export type ExecuteOfferAction = {
82
- method: 'executeOffer';
88
+ method: "executeOffer";
83
89
  offer: OfferSpec;
84
90
  };
85
91
  export type TryExitOfferAction = {
86
- method: 'tryExitOffer';
92
+ method: "tryExitOffer";
87
93
  offerId: OfferId;
88
94
  };
89
95
  export type BridgeAction = ExecuteOfferAction | TryExitOfferAction;
90
96
  /**
91
- * Purses is an array to support a future requirement of multiple purses per brand.
97
+ * Purses is an array to support a future requirement of multiple purses per
98
+ * brand.
92
99
  *
93
- * Each map is encoded as an array of entries because a Map doesn't serialize directly.
94
- * We also considered having a vstorage key for each offer but for now are sticking with this design.
100
+ * Each map is encoded as an array of entries because a Map doesn't serialize
101
+ * directly. We also considered having a vstorage key for each offer but for now
102
+ * are sticking with this design.
95
103
  *
96
104
  * Cons
97
- * - Reserializes previously written results when a new result is added
98
- * - Optimizes reads though writes are on-chain (~100 machines) and reads are off-chain (to 1 machine)
105
+ *
106
+ * - Reserializes previously written results when a new result is added
107
+ * - Optimizes reads though writes are on-chain (~100 machines) and reads are
108
+ * off-chain (to 1 machine)
99
109
  *
100
110
  * Pros
101
- * - Reading all offer results happens much more (>100) often than storing a new offer result
102
- * - Reserialization and writes are paid in execution gas, whereas reads are not
103
111
  *
104
- * This design should be revisited if ever batch querying across vstorage keys become cheaper or reads be paid.
112
+ * - Reading all offer results happens much more (>100) often than storing a new
113
+ * offer result
114
+ * - Reserialization and writes are paid in execution gas, whereas reads are not
115
+ *
116
+ * This design should be revisited if ever batch querying across vstorage keys
117
+ * become cheaper or reads be paid.
105
118
  */
106
119
  export type CurrentWalletRecord = {
107
- purses: Array<{
120
+ purses: {
108
121
  brand: Brand;
109
122
  balance: Amount;
110
- }>;
111
- offerToUsedInvitation: Array<[offerId: string, usedInvitation: Amount]>;
123
+ }[];
124
+ offerToUsedInvitation: [offerId: string, usedInvitation: Amount][];
112
125
  offerToPublicSubscriberPaths: [offerId: string, publicTopics: {
113
126
  [subscriberName: string]: string;
114
127
  }][];
115
- liveOffers: Array<[OfferId, import('./offers.js').OfferStatus]>;
128
+ liveOffers: [OfferId, OfferStatus][];
116
129
  };
117
130
  /**
118
131
  * Record of an update to the state of this wallet.
119
132
  *
120
- * Client is responsible for coalescing updates into a current state. See `coalesceUpdates` utility.
133
+ * Client is responsible for coalescing updates into a current state. See
134
+ * `coalesceUpdates` utility.
121
135
  *
122
- * The reason for this burden on the client is that publishing
123
- * the full history of offers with each change is untenable.
136
+ * The reason for this burden on the client is that publishing the full history
137
+ * of offers with each change is untenable.
124
138
  *
125
139
  * `balance` update supports forward-compatibility for more than one purse per
126
- * brand. An additional key will be needed to disambiguate. For now the brand in
127
- * the amount suffices.
140
+ * brand. An additional key will be needed to disambiguate. For now the brand
141
+ * in the amount suffices.
128
142
  */
129
143
  export type UpdateRecord = {
130
- updated: 'offerStatus';
131
- status: import('./offers.js').OfferStatus;
144
+ updated: "offerStatus";
145
+ status: OfferStatus;
132
146
  } | {
133
- updated: 'balance';
147
+ updated: "balance";
134
148
  currentAmount: Amount;
135
149
  } | {
136
- updated: 'walletAction';
150
+ updated: "walletAction";
137
151
  status: {
138
152
  error: string;
139
153
  };
140
154
  };
141
155
  /**
142
- * For use by clients to describe brands to users. Includes `displayInfo` to save a remote call.
156
+ * For use by clients to describe brands to users. Includes `displayInfo` to
157
+ * save a remote call.
143
158
  */
144
159
  export type BrandDescriptor = {
145
160
  brand: Brand;
146
161
  displayInfo: DisplayInfo;
147
162
  issuer: Issuer;
148
- petname: import('./types.js').Petname;
163
+ petname: import("./types.js").Petname;
149
164
  };
150
165
  export type UniqueParams = {
151
166
  address: string;
152
- bank: ERef<import('@agoric/vats/src/vat-bank.js').Bank>;
167
+ bank: ERef<import("@agoric/vats/src/vat-bank.js").Bank>;
153
168
  currentStorageNode: StorageNode;
154
- invitationPurse: Purse<'set'>;
169
+ invitationPurse: Purse<"set", InvitationDetails>;
155
170
  walletStorageNode: StorageNode;
156
171
  };
157
- export type BrandDescriptorRegistry = Pick<MapStore<Brand, BrandDescriptor>, 'has' | 'get' | 'values'>;
172
+ export type BrandDescriptorRegistry = Pick<MapStore<Brand, BrandDescriptor>, "has" | "get" | "values">;
158
173
  export type SharedParams = {
159
- agoricNames: ERef<import('@agoric/vats').NameHub>;
174
+ agoricNames: ERef<import("@agoric/vats").NameHub>;
160
175
  registry: BrandDescriptorRegistry;
161
- invitationIssuer: Issuer<'set'>;
162
- invitationBrand: Brand<'set'>;
176
+ invitationIssuer: Issuer<"set">;
177
+ invitationBrand: Brand<"set">;
163
178
  invitationDisplayInfo: DisplayInfo;
164
179
  publicMarshaller: Marshaller;
165
180
  zoe: ERef<ZoeService>;
166
181
  secretWalletFactoryKey: any;
167
182
  };
168
183
  /**
169
- * - `brandPurses` is precious and closely held. defined as late as possible to reduce its scope.
184
+ * - `brandPurses` is precious
185
+ * and closely held. defined as late as possible to reduce its scope.
186
+ *
170
187
  * - `offerToInvitationMakers` is precious and closely held.
171
188
  * - `offerToPublicSubscriberPaths` is precious and closely held.
172
- * - `purseBalances` is a cache of what we've received from purses. Held so we can publish all balances on change.
189
+ * - `purseBalances` is a cache of what we've received from purses. Held so we can
190
+ * publish all balances on change.
173
191
  */
174
192
  export type State = ImmutableState & MutableState;
175
193
  export type ImmutableState = Readonly<UniqueParams & {
176
- paymentQueues: MapStore<Brand, Array<Payment>>;
177
- offerToInvitationMakers: MapStore<string, import('./types').RemoteInvitationMakers>;
194
+ paymentQueues: MapStore<Brand, Payment[]>;
195
+ offerToInvitationMakers: MapStore<string, import("./types.js").InvitationMakers>;
178
196
  offerToPublicSubscriberPaths: MapStore<string, Record<string, string>>;
179
- offerToUsedInvitation: MapStore<string, Amount<'set'>>;
197
+ offerToUsedInvitation: MapStore<string, Amount<"set">>;
180
198
  purseBalances: MapStore<Purse, Amount>;
181
- updateRecorderKit: import('@agoric/zoe/src/contractSupport/recorder.js').RecorderKit<UpdateRecord>;
182
- currentRecorderKit: import('@agoric/zoe/src/contractSupport/recorder.js').RecorderKit<CurrentWalletRecord>;
183
- liveOffers: MapStore<OfferId, import('./offers.js').OfferStatus>;
199
+ updateRecorderKit: import("@agoric/zoe/src/contractSupport/recorder.js").RecorderKit<UpdateRecord>;
200
+ currentRecorderKit: import("@agoric/zoe/src/contractSupport/recorder.js").RecorderKit<CurrentWalletRecord>;
201
+ liveOffers: MapStore<OfferId, OfferStatus>;
184
202
  liveOfferSeats: MapStore<OfferId, UserSeat<unknown>>;
185
203
  liveOfferPayments: MapStore<OfferId, MapStore<Brand, Payment>>;
186
204
  }>;
@@ -189,4 +207,6 @@ export type PurseRecord = BrandDescriptor & {
189
207
  };
190
208
  export type MutableState = {};
191
209
  export type SmartWallet = Awaited<ReturnType<ReturnType<typeof prepareSmartWallet>>>;
210
+ import type { OfferId } from './offers.js';
211
+ import type { OfferStatus } from './offers.js';
192
212
  //# sourceMappingURL=smartWallet.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"smartWallet.d.ts","sourceRoot":"","sources":["smartWallet.js"],"names":[],"mappings":"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"}