@agoric/client-utils 0.2.0-upgrade-22-dev-76082f5.0.76082f5 → 0.2.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.
Files changed (62) hide show
  1. package/dist/bundle-utils.d.ts +95 -0
  2. package/dist/bundle-utils.d.ts.map +1 -0
  3. package/dist/bundle-utils.js +219 -0
  4. package/dist/bundle-utils.js.map +1 -0
  5. package/dist/codegen/cosmos/benchmark/v1/tx.rpc.msg.d.ts +14 -0
  6. package/dist/codegen/cosmos/benchmark/v1/tx.rpc.msg.d.ts.map +1 -0
  7. package/dist/codegen/cosmos/benchmark/v1/tx.rpc.msg.js +18 -0
  8. package/dist/codegen/cosmos/benchmark/v1/tx.rpc.msg.js.map +1 -0
  9. package/dist/codegen/cosmos/counter/v1/query.rpc.Query.d.ts +17 -0
  10. package/dist/codegen/cosmos/counter/v1/query.rpc.Query.d.ts.map +1 -0
  11. package/dist/codegen/cosmos/counter/v1/query.rpc.Query.js +25 -0
  12. package/dist/codegen/cosmos/counter/v1/query.rpc.Query.js.map +1 -0
  13. package/dist/codegen/cosmos/counter/v1/tx.rpc.msg.d.ts +14 -0
  14. package/dist/codegen/cosmos/counter/v1/tx.rpc.msg.d.ts.map +1 -0
  15. package/dist/codegen/cosmos/counter/v1/tx.rpc.msg.js +18 -0
  16. package/dist/codegen/cosmos/counter/v1/tx.rpc.msg.js.map +1 -0
  17. package/dist/codegen/cosmos/epochs/v1beta1/query.rpc.Query.d.ts +21 -0
  18. package/dist/codegen/cosmos/epochs/v1beta1/query.rpc.Query.d.ts.map +1 -0
  19. package/dist/codegen/cosmos/epochs/v1beta1/query.rpc.Query.js +34 -0
  20. package/dist/codegen/cosmos/epochs/v1beta1/query.rpc.Query.js.map +1 -0
  21. package/dist/codegen/cosmos/protocolpool/v1/query.rpc.Query.d.ts +29 -0
  22. package/dist/codegen/cosmos/protocolpool/v1/query.rpc.Query.d.ts.map +1 -0
  23. package/dist/codegen/cosmos/protocolpool/v1/query.rpc.Query.js +52 -0
  24. package/dist/codegen/cosmos/protocolpool/v1/query.rpc.Query.js.map +1 -0
  25. package/dist/codegen/cosmos/protocolpool/v1/tx.rpc.msg.d.ts +42 -0
  26. package/dist/codegen/cosmos/protocolpool/v1/tx.rpc.msg.d.ts.map +1 -0
  27. package/dist/codegen/cosmos/protocolpool/v1/tx.rpc.msg.js +42 -0
  28. package/dist/codegen/cosmos/protocolpool/v1/tx.rpc.msg.js.map +1 -0
  29. package/dist/codegen/ibc/core/channel/v2/query.rpc.Query.d.ts +45 -0
  30. package/dist/codegen/ibc/core/channel/v2/query.rpc.Query.d.ts.map +1 -0
  31. package/dist/codegen/ibc/core/channel/v2/query.rpc.Query.js +88 -0
  32. package/dist/codegen/ibc/core/channel/v2/query.rpc.Query.js.map +1 -0
  33. package/dist/codegen/ibc/core/channel/v2/tx.rpc.msg.d.ts +23 -0
  34. package/dist/codegen/ibc/core/channel/v2/tx.rpc.msg.d.ts.map +1 -0
  35. package/dist/codegen/ibc/core/channel/v2/tx.rpc.msg.js +36 -0
  36. package/dist/codegen/ibc/core/channel/v2/tx.rpc.msg.js.map +1 -0
  37. package/dist/codegen/ibc/core/client/v2/query.rpc.Query.d.ts +21 -0
  38. package/dist/codegen/ibc/core/client/v2/query.rpc.Query.d.ts.map +1 -0
  39. package/dist/codegen/ibc/core/client/v2/query.rpc.Query.js +34 -0
  40. package/dist/codegen/ibc/core/client/v2/query.rpc.Query.js.map +1 -0
  41. package/dist/codegen/ibc/core/client/v2/tx.rpc.msg.d.ts +17 -0
  42. package/dist/codegen/ibc/core/client/v2/tx.rpc.msg.d.ts.map +1 -0
  43. package/dist/codegen/ibc/core/client/v2/tx.rpc.msg.js +24 -0
  44. package/dist/codegen/ibc/core/client/v2/tx.rpc.msg.js.map +1 -0
  45. package/dist/sequence-manager.d.ts +18 -0
  46. package/dist/sequence-manager.d.ts.map +1 -0
  47. package/dist/sequence-manager.js +40 -0
  48. package/dist/sequence-manager.js.map +1 -0
  49. package/dist/smart-wallet-utils.d.ts +26 -0
  50. package/dist/smart-wallet-utils.d.ts.map +1 -0
  51. package/dist/smart-wallet-utils.js +180 -0
  52. package/dist/smart-wallet-utils.js.map +1 -0
  53. package/dist/smart-wallet-with-sequence.d.ts +18 -0
  54. package/dist/smart-wallet-with-sequence.d.ts.map +1 -0
  55. package/dist/smart-wallet-with-sequence.js +139 -0
  56. package/dist/smart-wallet-with-sequence.js.map +1 -0
  57. package/dist/tsconfig.build.tsbuildinfo +1 -1
  58. package/dist/wallet-store.d.ts +79 -0
  59. package/dist/wallet-store.d.ts.map +1 -0
  60. package/dist/wallet-store.js +100 -0
  61. package/dist/wallet-store.js.map +1 -0
  62. package/package.json +8 -8
@@ -0,0 +1,180 @@
1
+ import { Fail, q } from '@endo/errors';
2
+ import { retryUntilCondition } from './sync-tools.js';
3
+ /**
4
+ * @import {Amount, Brand} from '@agoric/ertp/src/types.js'
5
+ * @import {OfferId, OfferStatus} from '@agoric/smart-wallet/src/offers.js';
6
+ * @import {UpdateRecord} from '@agoric/smart-wallet/src/smartWallet.js';
7
+ * @import {RetryOptionsAndPowers} from './sync-tools.js';
8
+ * @import {Instance, InvitationDetails} from '@agoric/zoe';
9
+ */
10
+ /**
11
+ * @deprecated better to use an async iterator over updates going backward in time
12
+ * @param {Brand<'set'>} [invitationBrand]
13
+ */
14
+ export const makeWalletStateCoalescer = (invitationBrand = undefined) => {
15
+ /** @type {Map<OfferId, OfferStatus>} */
16
+ const offerStatuses = new Map();
17
+ /** @type {Map<Brand, Amount>} */
18
+ const balances = new Map();
19
+ /**
20
+ * keyed by description; xxx assumes unique
21
+ *
22
+ * @type {Map<
23
+ * string,
24
+ * {
25
+ * acceptedIn?: OfferId;
26
+ * description: string;
27
+ * instance: Instance;
28
+ * }
29
+ * >}
30
+ */
31
+ const invitationsReceived = new Map();
32
+ /**
33
+ * @param {UpdateRecord | {}} updateRecord newer than previous
34
+ */
35
+ const update = updateRecord => {
36
+ if (!('updated' in updateRecord)) {
37
+ return;
38
+ }
39
+ const { updated } = updateRecord;
40
+ switch (updateRecord.updated) {
41
+ case 'balance': {
42
+ const { currentAmount } = updateRecord;
43
+ // last record wins
44
+ balances.set(currentAmount.brand, currentAmount);
45
+ if (currentAmount.brand === invitationBrand) {
46
+ const invitationBalance =
47
+ /** @type {Amount<'set', InvitationDetails>} */ (currentAmount);
48
+ for (const invitation of invitationBalance.value) {
49
+ invitationsReceived.set(invitation.description, invitation);
50
+ }
51
+ }
52
+ break;
53
+ }
54
+ case 'offerStatus': {
55
+ const { status } = updateRecord;
56
+ const lastStatus = offerStatuses.get(status.id);
57
+ // merge records
58
+ offerStatuses.set(status.id, { ...lastStatus, ...status });
59
+ if (status.invitationSpec.source === 'purse' &&
60
+ status.numWantsSatisfied === 1) {
61
+ // record acceptance of invitation
62
+ // xxx matching only by description
63
+ const { description } = status.invitationSpec;
64
+ const receptionRecord = invitationsReceived.get(description);
65
+ if (receptionRecord) {
66
+ invitationsReceived.set(description, {
67
+ ...receptionRecord,
68
+ acceptedIn: status.id,
69
+ });
70
+ }
71
+ else {
72
+ throw Error(`no record of invitation in offerStatus ${JSON.stringify(status)}`);
73
+ }
74
+ }
75
+ break;
76
+ }
77
+ default:
78
+ throw Error(`unknown record updated ${updated}`);
79
+ }
80
+ };
81
+ return {
82
+ state: { invitationsReceived, offerStatuses, balances },
83
+ update,
84
+ };
85
+ };
86
+ /** @typedef {ReturnType<typeof makeWalletStateCoalescer>['state']} CoalescedWalletState */
87
+ /**
88
+ * @param {string | number} id
89
+ * @param {() => Promise<UpdateRecord>} getLastUpdate
90
+ * @param {RetryOptionsAndPowers} retryOpts
91
+ * @param {(update: UpdateRecord) => boolean} isMatch
92
+ * @returns {Promise<UpdateRecord>}
93
+ */
94
+ const findUpdate = (id, getLastUpdate, retryOpts, isMatch) => retryUntilCondition(getLastUpdate, isMatch, `${id}`, retryOpts);
95
+ /**
96
+ * Wait for an update indicating settlement of the specified invocation and
97
+ * return its result or throw its error.
98
+ * @alpha
99
+ *
100
+ * @param {string | number} id
101
+ * @param {() => Promise<UpdateRecord>} getLastUpdate
102
+ * @param {RetryOptionsAndPowers} retryOpts
103
+ * @returns {Promise<(UpdateRecord & { updated: 'invocation' })['result']>}
104
+ */
105
+ export const getInvocationUpdate = async (id, getLastUpdate, retryOpts) => {
106
+ /** @type {(update: UpdateRecord) => boolean} */
107
+ const isMatch = update => update.updated === 'invocation' &&
108
+ update.id === id &&
109
+ !!(update.error || update.result);
110
+ const found = /** @type {UpdateRecord & { updated: 'invocation' }} */ (await findUpdate(id, getLastUpdate, retryOpts, isMatch));
111
+ if (found.error)
112
+ throw Error(found.error);
113
+ return found.result;
114
+ };
115
+ harden(getInvocationUpdate);
116
+ /**
117
+ * Wait for an update indicating settlement of the specified offer and return
118
+ * its status or throw its error.
119
+ * Used internally but not yet considered public.
120
+ * @alpha
121
+ *
122
+ * @param {string | number} id
123
+ * @param {() => Promise<UpdateRecord>} getLastUpdate
124
+ * @param {RetryOptionsAndPowers} retryOpts
125
+ * @returns {Promise<OfferStatus>}
126
+ */
127
+ export const getOfferResult = async (id, getLastUpdate, retryOpts) => {
128
+ // "walletAction" indicates an error, "offerStatus" with the right id and
129
+ // either `result` or `error` indicates settlement.
130
+ /** @type {(update: UpdateRecord) => boolean} */
131
+ const isMatch = update => update.updated === 'walletAction' ||
132
+ (update.updated === 'offerStatus' &&
133
+ update.status.id === id &&
134
+ !!(update.status.error || update.status.result));
135
+ const found =
136
+ /** @type {UpdateRecord & { updated: 'walletAction' | 'offerStatus' }} */ (await findUpdate(id, getLastUpdate, retryOpts, isMatch));
137
+ if (found.updated !== 'offerStatus') {
138
+ throw Fail `${q(id)} ${q(found.updated)} failure: ${q(found.status?.error)}`;
139
+ }
140
+ const { error, result } = found.status;
141
+ !error || Fail `${q(id)} offerStatus failure: ${q(error)}`;
142
+ result || Fail `${q(id)} offerStatus missing result`;
143
+ return found.status;
144
+ };
145
+ harden(getOfferResult);
146
+ /**
147
+ * Wait for an update indicating untilNumWantsSatisfied of the specified offer
148
+ * and return its status or throw its error.
149
+ * Used internally but not yet considered public.
150
+ * @alpha
151
+ *
152
+ * @param {string | number} id
153
+ * @param {() => Promise<UpdateRecord>} getLastUpdate
154
+ * @param {RetryOptionsAndPowers} retryOpts
155
+ * @returns {Promise<OfferStatus>}
156
+ */
157
+ export const getOfferWantsSatisfied = async (id, getLastUpdate, retryOpts) => {
158
+ // "walletAction" indicates an error, "offerStatus" with the right id and
159
+ // either `result`, `error`, or `numWantsSatisfied` indicates settlement.
160
+ /** @type {(update: UpdateRecord) => boolean} */
161
+ const isMatch = update => update.updated === 'walletAction' ||
162
+ (update.updated === 'offerStatus' &&
163
+ update.status.id === id &&
164
+ !!(update.status.error ||
165
+ update.status.result ||
166
+ 'numWantsSatisfied' in update.status));
167
+ const found =
168
+ /** @type {UpdateRecord & { updated: 'walletAction' | 'offerStatus' }} */ (await findUpdate(id, getLastUpdate, retryOpts, isMatch));
169
+ if (found.updated !== 'offerStatus') {
170
+ throw Fail `${q(id)} ${q(found.updated)} failure: ${q(found.status?.error)}`;
171
+ }
172
+ const { error, result } = found.status;
173
+ !error || Fail `${q(id)} offerStatus failure: ${q(error)}`;
174
+ result ||
175
+ 'numWantsSatisfied' in found.status ||
176
+ Fail `${q(id)} offerStatus missing result`;
177
+ return found.status;
178
+ };
179
+ harden(getOfferWantsSatisfied);
180
+ //# sourceMappingURL=smart-wallet-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-wallet-utils.js","sourceRoot":"","sources":["../src/smart-wallet-utils.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @file Smart wallet wrapper with queue-based transaction sequence management
3
+ */
4
+ import type { SigningSmartWalletKit } from './signing-smart-wallet-kit.js';
5
+ import type { TxSequencer } from './sequence-manager.js';
6
+ /**
7
+ * Make a SigningSmartWalletKit with automatic management of outbound
8
+ * transaction sequencing:
9
+ * - Queue-based transaction serialization to prevent sequence conflicts
10
+ * - Automatic error recovery for sequence mismatches
11
+ * - Network sync on sequence errors with retry logic
12
+ *
13
+ * @alpha
14
+ */
15
+ export declare const makeSequencingSmartWallet: (signingSmartWalletKit: SigningSmartWalletKit, txSequencer: TxSequencer, { log }: {
16
+ log?: (...args: unknown[]) => void;
17
+ }) => SigningSmartWalletKit;
18
+ //# sourceMappingURL=smart-wallet-with-sequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-wallet-with-sequence.d.ts","sourceRoot":"","sources":["../src/smart-wallet-with-sequence.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAgBzD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,GACpC,uBAAuB,qBAAqB,EAC5C,aAAa,WAAW,EACxB,SAAoB;IAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,KACzD,qBAoJF,CAAC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @file Smart wallet wrapper with queue-based transaction sequence management
3
+ */
4
+ import { BroadcastTxError } from '@cosmjs/stargate';
5
+ import { Fail } from '@endo/errors';
6
+ const isSequenceNumberMismatch = (error) =>
7
+ // https://cosmos.github.io/cosmjs/latest/stargate/classes/BroadcastTxError.html
8
+ error instanceof BroadcastTxError &&
9
+ // https://pkg.go.dev/github.com/cosmos/cosmos-sdk/types/errors#pkg-variables:~:text=ErrWrongSequence
10
+ error.codespace === 'sdk' &&
11
+ error.code === 32;
12
+ /**
13
+ * Make a SigningSmartWalletKit with automatic management of outbound
14
+ * transaction sequencing:
15
+ * - Queue-based transaction serialization to prevent sequence conflicts
16
+ * - Automatic error recovery for sequence mismatches
17
+ * - Network sync on sequence errors with retry logic
18
+ *
19
+ * @alpha
20
+ */
21
+ export const makeSequencingSmartWallet = (signingSmartWalletKit, txSequencer, { log = () => { } }) => {
22
+ // We only override `executeOffer` and `sendBridgeAction`, so ensure that
23
+ // there are no unknown properties which could potentially bypass them.
24
+ const { query, address, executeOffer: _unsafeExecuteOffer, sendBridgeAction: unsafeSendBridgeAction, ...swk } = signingSmartWalletKit;
25
+ ({
26
+ query,
27
+ address,
28
+ executeOffer: _unsafeExecuteOffer,
29
+ sendBridgeAction: unsafeSendBridgeAction,
30
+ });
31
+ const chainId = swk.networkConfig.chainName;
32
+ const accountNumber = Number(txSequencer.getAccountNumber());
33
+ const makeSignerData = (label) => {
34
+ const sequence = Number(txSequencer.nextSequence());
35
+ const signerData = { accountNumber, sequence, chainId };
36
+ log(`${label} signerData:`, signerData);
37
+ return signerData;
38
+ };
39
+ // XXX There is no limit on queue growth.
40
+ const queue = [];
41
+ let isDraining = false;
42
+ /**
43
+ * Run a thunk, retrying if it results in a sequence number mismatch error
44
+ * (but only retrying at most once).
45
+ */
46
+ const runResyncable = async (label, thunk) => {
47
+ await null;
48
+ try {
49
+ return await thunk();
50
+ }
51
+ catch (error) {
52
+ if (isSequenceNumberMismatch(error)) {
53
+ log(`${label} retrying with resynced sequence number`, error);
54
+ await txSequencer.resync();
55
+ try {
56
+ return await thunk();
57
+ }
58
+ catch (retryError) {
59
+ log(`${label} retry failed`, retryError);
60
+ throw retryError;
61
+ }
62
+ }
63
+ throw error;
64
+ }
65
+ };
66
+ /**
67
+ * Sequentially drain the queue.
68
+ */
69
+ const drainQueue = async () => {
70
+ await null;
71
+ log(`Draining ${queue.length} operations`);
72
+ while (queue.length > 0) {
73
+ const { label, resolve, reject, thunk } = queue.shift();
74
+ log(`${label} processing, ${queue.length} remaining`);
75
+ try {
76
+ const result = await runResyncable(label, thunk);
77
+ log(`${label} completed`);
78
+ resolve(result);
79
+ }
80
+ catch (error) {
81
+ log(`${label} failed:`, error);
82
+ reject(error);
83
+ }
84
+ }
85
+ };
86
+ /**
87
+ * Enqueue a thunk for sequential execution.
88
+ */
89
+ const enqueue = (label, thunk) => {
90
+ const nextIndex = queue.length;
91
+ const resultP = new Promise((resolve, reject) => {
92
+ queue.push({ label, resolve, reject, thunk });
93
+ });
94
+ log(`${label} enqueued at index ${nextIndex}`);
95
+ if (!isDraining) {
96
+ isDraining = true;
97
+ log('Starting queue processing');
98
+ void drainQueue().finally(() => {
99
+ isDraining = false;
100
+ });
101
+ }
102
+ return resultP;
103
+ };
104
+ /**
105
+ * Send a bridge action with managed sequence number.
106
+ */
107
+ const sendBridgeAction = async (action, fee, memo, manualSignerData) => {
108
+ manualSignerData === undefined || Fail `manual signerData is not supported`;
109
+ const label = 'sendBridgeAction';
110
+ return enqueue(label, () => {
111
+ const signerData = makeSignerData(label);
112
+ return unsafeSendBridgeAction(action, fee, memo, signerData);
113
+ });
114
+ };
115
+ /**
116
+ * Execute an offer with managed sequence number.
117
+ */
118
+ const executeOffer = async (offer, fee, memo, manualSignerData) => {
119
+ manualSignerData === undefined || Fail `manual signerData is not supported`;
120
+ const txId = offer.offerArgs?.txId;
121
+ const label = `executeOffer${txId ? ` ${txId}` : ''}`;
122
+ return enqueue(label, async () => {
123
+ const signerData = makeSignerData(label);
124
+ const action = { method: 'executeOffer', offer };
125
+ const offerP = signingSmartWalletKit.pollOffer(address, offer.id);
126
+ await unsafeSendBridgeAction(action, fee, memo, signerData);
127
+ return offerP;
128
+ });
129
+ };
130
+ const sequencingSmartWallet = {
131
+ ...swk,
132
+ query,
133
+ address,
134
+ executeOffer,
135
+ sendBridgeAction,
136
+ };
137
+ return harden(sequencingSmartWallet);
138
+ };
139
+ //# sourceMappingURL=smart-wallet-with-sequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-wallet-with-sequence.js","sourceRoot":"","sources":["../src/smart-wallet-with-sequence.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAcpC,MAAM,wBAAwB,GAAG,CAAC,KAAyC,EAAE,EAAE;AAC7E,gFAAgF;AAChF,KAAK,YAAY,gBAAgB;IACjC,qGAAqG;IACrG,KAAK,CAAC,SAAS,KAAK,KAAK;IACzB,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;AAEpB;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,qBAA4C,EAC5C,WAAwB,EACxB,EAAE,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,EAA0C,EACnC,EAAE;IACzB,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,EACJ,KAAK,EACL,OAAO,EACP,YAAY,EAAE,mBAAmB,EACjC,gBAAgB,EAAE,sBAAsB,EACxC,GAAG,GAAG,EACP,GAAG,qBAAqB,CAAC;IAC1B,CAAC;QACC,KAAK;QACL,OAAO;QACP,YAAY,EAAE,mBAAmB;QACjC,gBAAgB,EAAE,sBAAsB;KACzC,CAA6D,CAAC;IAE/D,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC;IAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,CAAC,KAAa,EAAc,EAAE;QACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;QACpD,MAAM,UAAU,GAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpE,GAAG,CAAC,GAAG,KAAK,cAAc,EAAE,UAAU,CAAC,CAAC;QACxC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,yCAAyC;IACzC,MAAM,KAAK,GAAG,EAA4B,CAAC;IAC3C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB;;;OAGG;IACH,MAAM,aAAa,GAAG,KAAK,EACzB,KAAa,EACb,KAAuB,EACX,EAAE;QACd,MAAM,IAAI,CAAC;QACX,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,GAAG,CAAC,GAAG,KAAK,yCAAyC,EAAE,KAAK,CAAC,CAAC;gBAC9D,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,OAAO,MAAM,KAAK,EAAE,CAAC;gBACvB,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,GAAG,CAAC,GAAG,KAAK,eAAe,EAAE,UAAU,CAAC,CAAC;oBACzC,MAAM,UAAU,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,UAAU,GAAG,KAAK,IAAmB,EAAE;QAC3C,MAAM,IAAI,CAAC;QACX,GAAG,CAAC,YAAY,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC;QAE3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAEzD,GAAG,CAAC,GAAG,KAAK,gBAAgB,KAAK,CAAC,MAAM,YAAY,CAAC,CAAC;YAEtD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjD,GAAG,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,GAAG,KAAK,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,OAAO,GAAG,CAAI,KAAa,EAAE,KAAuB,EAAc,EAAE;QACxE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,KAAK,sBAAsB,SAAS,EAAE,CAAC,CAAC;QAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC;YAClB,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACjC,KAAK,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC7B,UAAU,GAAG,KAAK,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,gBAAgB,GAA8C,KAAK,EACvE,MAAM,EACN,GAAG,EACH,IAAI,EACJ,gBAAgB,EAChB,EAAE;QACF,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAA,oCAAoC,CAAC;QAC3E,MAAM,KAAK,GAAG,kBAAkB,CAAC;QACjC,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE;YACzB,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,YAAY,GAA0C,KAAK,EAC/D,KAAK,EACL,GAAG,EACH,IAAI,EACJ,gBAAgB,EAChB,EAAE;QACF,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAA,oCAAoC,CAAC;QAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;QACnC,MAAM,KAAK,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtD,OAAO,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,MAAM,GAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAClE,MAAM,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5D,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC5B,GAAG,GAAG;QACN,KAAK;QACL,OAAO;QACP,YAAY;QACZ,gBAAgB;KACjB,CAAC;IAEF,OAAO,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACvC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"root":["../src/chain.js","../src/cli.js","../src/clients.js","../src/clock-timer.js","../src/main.ts","../src/marshalTables.js","../src/network-config.js","../src/rpc.js","../src/signing-client.ts","../src/signing-smart-wallet-kit.ts","../src/smart-wallet-kit.js","../src/sync-tools.js","../src/types.ts","../src/vstorage-kit.js","../src/vstorage.js","../src/wallet-utils.js","../src/codegen/binary.ts","../src/codegen/decimals.ts","../src/codegen/helpers.ts","../src/codegen/index.ts","../src/codegen/json-safe.ts","../src/codegen/utf8.ts","../src/codegen/varint.ts","../src/codegen/agoric/bundle.ts","../src/codegen/agoric/rpc.query.ts","../src/codegen/agoric/rpc.tx.ts","../src/codegen/agoric/swingset/genesis.ts","../src/codegen/agoric/swingset/msgs.rpc.msg.ts","../src/codegen/agoric/swingset/msgs.ts","../src/codegen/agoric/swingset/query.rpc.Query.ts","../src/codegen/agoric/swingset/query.ts","../src/codegen/agoric/swingset/swingset.ts","../src/codegen/agoric/vbank/genesis.ts","../src/codegen/agoric/vbank/msgs.ts","../src/codegen/agoric/vbank/query.rpc.Query.ts","../src/codegen/agoric/vbank/query.ts","../src/codegen/agoric/vbank/vbank.ts","../src/codegen/agoric/vibc/msgs.rpc.msg.ts","../src/codegen/agoric/vibc/msgs.ts","../src/codegen/agoric/vlocalchain/vlocalchain.ts","../src/codegen/agoric/vstorage/genesis.ts","../src/codegen/agoric/vstorage/query.rpc.Query.ts","../src/codegen/agoric/vstorage/query.ts","../src/codegen/agoric/vstorage/vstorage.ts","../src/codegen/agoric/vtransfer/genesis.ts","../src/codegen/amino/amino.ts","../src/codegen/amino/bundle.ts","../src/codegen/circle/bundle.ts","../src/codegen/circle/rpc.query.ts","../src/codegen/circle/rpc.tx.ts","../src/codegen/circle/cctp/v1/attester.ts","../src/codegen/circle/cctp/v1/burn_message.ts","../src/codegen/circle/cctp/v1/burning_and_minting_paused.ts","../src/codegen/circle/cctp/v1/events.ts","../src/codegen/circle/cctp/v1/genesis.ts","../src/codegen/circle/cctp/v1/max_message_body_size.ts","../src/codegen/circle/cctp/v1/message.ts","../src/codegen/circle/cctp/v1/nonce.ts","../src/codegen/circle/cctp/v1/per_message_burn_limit.ts","../src/codegen/circle/cctp/v1/query.rpc.Query.ts","../src/codegen/circle/cctp/v1/query.ts","../src/codegen/circle/cctp/v1/remote_token_messenger.ts","../src/codegen/circle/cctp/v1/sending_and_receiving_messages_paused.ts","../src/codegen/circle/cctp/v1/signature_threshold.ts","../src/codegen/circle/cctp/v1/token_pair.ts","../src/codegen/circle/cctp/v1/tx.rpc.msg.ts","../src/codegen/circle/cctp/v1/tx.ts","../src/codegen/cosmos/bundle.ts","../src/codegen/cosmos/rpc.query.ts","../src/codegen/cosmos/rpc.tx.ts","../src/codegen/cosmos/app/runtime/v1alpha1/module.ts","../src/codegen/cosmos/app/v1alpha1/module.ts","../src/codegen/cosmos/auth/module/v1/module.ts","../src/codegen/cosmos/auth/v1beta1/auth.ts","../src/codegen/cosmos/auth/v1beta1/genesis.ts","../src/codegen/cosmos/auth/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/auth/v1beta1/query.ts","../src/codegen/cosmos/auth/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/auth/v1beta1/tx.ts","../src/codegen/cosmos/authz/module/v1/module.ts","../src/codegen/cosmos/authz/v1beta1/authz.ts","../src/codegen/cosmos/authz/v1beta1/event.ts","../src/codegen/cosmos/authz/v1beta1/genesis.ts","../src/codegen/cosmos/authz/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/authz/v1beta1/query.ts","../src/codegen/cosmos/authz/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/authz/v1beta1/tx.ts","../src/codegen/cosmos/bank/module/v1/module.ts","../src/codegen/cosmos/bank/v1beta1/authz.ts","../src/codegen/cosmos/bank/v1beta1/bank.ts","../src/codegen/cosmos/bank/v1beta1/genesis.ts","../src/codegen/cosmos/bank/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/bank/v1beta1/query.ts","../src/codegen/cosmos/bank/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/bank/v1beta1/tx.ts","../src/codegen/cosmos/base/abci/v1beta1/abci.ts","../src/codegen/cosmos/base/node/v1beta1/query.rpc.Service.ts","../src/codegen/cosmos/base/node/v1beta1/query.ts","../src/codegen/cosmos/base/query/v1beta1/pagination.ts","../src/codegen/cosmos/base/reflection/v2alpha1/reflection.ts","../src/codegen/cosmos/base/v1beta1/coin.ts","../src/codegen/cosmos/circuit/module/v1/module.ts","../src/codegen/cosmos/circuit/v1/query.rpc.Query.ts","../src/codegen/cosmos/circuit/v1/query.ts","../src/codegen/cosmos/circuit/v1/tx.rpc.msg.ts","../src/codegen/cosmos/circuit/v1/tx.ts","../src/codegen/cosmos/circuit/v1/types.ts","../src/codegen/cosmos/consensus/module/v1/module.ts","../src/codegen/cosmos/consensus/v1/query.rpc.Query.ts","../src/codegen/cosmos/consensus/v1/query.ts","../src/codegen/cosmos/consensus/v1/tx.rpc.msg.ts","../src/codegen/cosmos/consensus/v1/tx.ts","../src/codegen/cosmos/crisis/module/v1/module.ts","../src/codegen/cosmos/crypto/ed25519/keys.ts","../src/codegen/cosmos/crypto/hd/v1/hd.ts","../src/codegen/cosmos/crypto/keyring/v1/record.ts","../src/codegen/cosmos/crypto/multisig/keys.ts","../src/codegen/cosmos/crypto/multisig/v1beta1/multisig.ts","../src/codegen/cosmos/crypto/secp256k1/keys.ts","../src/codegen/cosmos/crypto/secp256r1/keys.ts","../src/codegen/cosmos/distribution/module/v1/module.ts","../src/codegen/cosmos/distribution/v1beta1/distribution.ts","../src/codegen/cosmos/distribution/v1beta1/genesis.ts","../src/codegen/cosmos/distribution/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/distribution/v1beta1/query.ts","../src/codegen/cosmos/distribution/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/distribution/v1beta1/tx.ts","../src/codegen/cosmos/evidence/module/v1/module.ts","../src/codegen/cosmos/feegrant/module/v1/module.ts","../src/codegen/cosmos/feegrant/v1beta1/feegrant.ts","../src/codegen/cosmos/feegrant/v1beta1/genesis.ts","../src/codegen/cosmos/feegrant/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/feegrant/v1beta1/query.ts","../src/codegen/cosmos/feegrant/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/feegrant/v1beta1/tx.ts","../src/codegen/cosmos/genutil/module/v1/module.ts","../src/codegen/cosmos/gov/module/v1/module.ts","../src/codegen/cosmos/gov/v1/genesis.ts","../src/codegen/cosmos/gov/v1/gov.ts","../src/codegen/cosmos/gov/v1/query.rpc.Query.ts","../src/codegen/cosmos/gov/v1/query.ts","../src/codegen/cosmos/gov/v1/tx.rpc.msg.ts","../src/codegen/cosmos/gov/v1/tx.ts","../src/codegen/cosmos/gov/v1beta1/genesis.ts","../src/codegen/cosmos/gov/v1beta1/gov.ts","../src/codegen/cosmos/gov/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/gov/v1beta1/query.ts","../src/codegen/cosmos/gov/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/gov/v1beta1/tx.ts","../src/codegen/cosmos/group/module/v1/module.ts","../src/codegen/cosmos/group/v1/events.ts","../src/codegen/cosmos/group/v1/genesis.ts","../src/codegen/cosmos/group/v1/query.rpc.Query.ts","../src/codegen/cosmos/group/v1/query.ts","../src/codegen/cosmos/group/v1/tx.rpc.msg.ts","../src/codegen/cosmos/group/v1/tx.ts","../src/codegen/cosmos/group/v1/types.ts","../src/codegen/cosmos/ics23/v1/proofs.ts","../src/codegen/cosmos/mint/module/v1/module.ts","../src/codegen/cosmos/mint/v1beta1/genesis.ts","../src/codegen/cosmos/mint/v1beta1/mint.ts","../src/codegen/cosmos/mint/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/mint/v1beta1/query.ts","../src/codegen/cosmos/mint/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/mint/v1beta1/tx.ts","../src/codegen/cosmos/msg/textual/v1/textual.ts","../src/codegen/cosmos/msg/v1/msg.ts","../src/codegen/cosmos/nft/module/v1/module.ts","../src/codegen/cosmos/params/module/v1/module.ts","../src/codegen/cosmos/params/v1beta1/params.ts","../src/codegen/cosmos/params/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/params/v1beta1/query.ts","../src/codegen/cosmos/query/v1/query.ts","../src/codegen/cosmos/reflection/v1/reflection.ts","../src/codegen/cosmos/slashing/module/v1/module.ts","../src/codegen/cosmos/staking/module/v1/module.ts","../src/codegen/cosmos/staking/v1beta1/authz.ts","../src/codegen/cosmos/staking/v1beta1/genesis.ts","../src/codegen/cosmos/staking/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/staking/v1beta1/query.ts","../src/codegen/cosmos/staking/v1beta1/staking.ts","../src/codegen/cosmos/staking/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/staking/v1beta1/tx.ts","../src/codegen/cosmos/store/internal/kv/v1beta1/kv.ts","../src/codegen/cosmos/store/snapshots/v1/snapshot.ts","../src/codegen/cosmos/store/streaming/abci/grpc.ts","../src/codegen/cosmos/store/v1beta1/commit_info.ts","../src/codegen/cosmos/store/v1beta1/listening.ts","../src/codegen/cosmos/tx/config/v1/config.ts","../src/codegen/cosmos/tx/signing/v1beta1/signing.ts","../src/codegen/cosmos/tx/v1beta1/service.rpc.Service.ts","../src/codegen/cosmos/tx/v1beta1/service.ts","../src/codegen/cosmos/tx/v1beta1/tx.ts","../src/codegen/cosmos/upgrade/module/v1/module.ts","../src/codegen/cosmos/upgrade/v1beta1/query.rpc.Query.ts","../src/codegen/cosmos/upgrade/v1beta1/query.ts","../src/codegen/cosmos/upgrade/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/upgrade/v1beta1/tx.ts","../src/codegen/cosmos/upgrade/v1beta1/upgrade.ts","../src/codegen/cosmos/vesting/module/v1/module.ts","../src/codegen/cosmos/vesting/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/vesting/v1beta1/tx.ts","../src/codegen/cosmos/vesting/v1beta1/vesting.ts","../src/codegen/cosmos_proto/bundle.ts","../src/codegen/cosmos_proto/cosmos.ts","../src/codegen/gogoproto/bundle.ts","../src/codegen/gogoproto/gogo.ts","../src/codegen/google/bundle.ts","../src/codegen/google/api/annotations.ts","../src/codegen/google/api/http.ts","../src/codegen/google/protobuf/any.ts","../src/codegen/google/protobuf/descriptor.ts","../src/codegen/google/protobuf/duration.ts","../src/codegen/google/protobuf/empty.ts","../src/codegen/google/protobuf/timestamp.ts","../src/codegen/ibc/bundle.ts","../src/codegen/ibc/rpc.query.ts","../src/codegen/ibc/rpc.tx.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/controller.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/query.rpc.Query.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/query.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/tx.rpc.msg.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/tx.ts","../src/codegen/ibc/applications/interchain_accounts/genesis/v1/genesis.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/host.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/query.rpc.Query.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/query.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/tx.rpc.msg.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/tx.ts","../src/codegen/ibc/applications/interchain_accounts/v1/account.ts","../src/codegen/ibc/applications/interchain_accounts/v1/metadata.ts","../src/codegen/ibc/applications/interchain_accounts/v1/packet.ts","../src/codegen/ibc/applications/transfer/v1/authz.ts","../src/codegen/ibc/applications/transfer/v1/genesis.ts","../src/codegen/ibc/applications/transfer/v1/query.rpc.Query.ts","../src/codegen/ibc/applications/transfer/v1/query.ts","../src/codegen/ibc/applications/transfer/v1/transfer.ts","../src/codegen/ibc/applications/transfer/v1/tx.rpc.msg.ts","../src/codegen/ibc/applications/transfer/v1/tx.ts","../src/codegen/ibc/applications/transfer/v2/packet.ts","../src/codegen/ibc/core/channel/v1/channel.ts","../src/codegen/ibc/core/channel/v1/genesis.ts","../src/codegen/ibc/core/channel/v1/query.rpc.Query.ts","../src/codegen/ibc/core/channel/v1/query.ts","../src/codegen/ibc/core/channel/v1/tx.rpc.msg.ts","../src/codegen/ibc/core/channel/v1/tx.ts","../src/codegen/ibc/core/channel/v1/upgrade.ts","../src/codegen/ibc/core/client/v1/client.ts","../src/codegen/ibc/core/client/v1/genesis.ts","../src/codegen/ibc/core/client/v1/query.rpc.Query.ts","../src/codegen/ibc/core/client/v1/query.ts","../src/codegen/ibc/core/client/v1/tx.rpc.msg.ts","../src/codegen/ibc/core/client/v1/tx.ts","../src/codegen/ibc/core/commitment/v1/commitment.ts","../src/codegen/ibc/core/connection/v1/connection.ts","../src/codegen/ibc/core/connection/v1/genesis.ts","../src/codegen/ibc/core/connection/v1/query.rpc.Query.ts","../src/codegen/ibc/core/connection/v1/query.ts","../src/codegen/ibc/core/connection/v1/tx.rpc.msg.ts","../src/codegen/ibc/core/connection/v1/tx.ts","../src/codegen/ibc/lightclients/localhost/v1/localhost.ts","../src/codegen/ibc/lightclients/localhost/v2/localhost.ts","../src/codegen/ibc/lightclients/solomachine/v1/solomachine.ts","../src/codegen/ibc/lightclients/solomachine/v2/solomachine.ts","../src/codegen/ibc/lightclients/solomachine/v3/solomachine.ts","../src/codegen/ibc/lightclients/tendermint/v1/tendermint.ts","../src/codegen/ibc/lightclients/wasm/v1/genesis.ts","../src/codegen/ibc/lightclients/wasm/v1/query.rpc.Query.ts","../src/codegen/ibc/lightclients/wasm/v1/query.ts","../src/codegen/ibc/lightclients/wasm/v1/tx.rpc.msg.ts","../src/codegen/ibc/lightclients/wasm/v1/tx.ts","../src/codegen/ibc/lightclients/wasm/v1/wasm.ts","../src/codegen/icq/bundle.ts","../src/codegen/icq/rpc.query.ts","../src/codegen/icq/rpc.tx.ts","../src/codegen/icq/v1/genesis.ts","../src/codegen/icq/v1/icq.ts","../src/codegen/icq/v1/packet.ts","../src/codegen/icq/v1/query.rpc.Query.ts","../src/codegen/icq/v1/query.ts","../src/codegen/icq/v1/tx.rpc.msg.ts","../src/codegen/icq/v1/tx.ts","../src/codegen/noble/bundle.ts","../src/codegen/noble/rpc.tx.ts","../src/codegen/noble/dollar/vaults/v1/tx.rpc.msg.ts","../src/codegen/noble/dollar/vaults/v1/tx.ts","../src/codegen/noble/dollar/vaults/v1/vaults.ts","../src/codegen/noble/swap/v1/algorithm.ts","../src/codegen/noble/swap/v1/swap.ts","../src/codegen/noble/swap/v1/tx.rpc.msg.ts","../src/codegen/noble/swap/v1/tx.ts","../src/codegen/stride/bundle.ts","../src/codegen/stride/rpc.query.ts","../src/codegen/stride/rpc.tx.ts","../src/codegen/stride/epochs/genesis.ts","../src/codegen/stride/epochs/query.rpc.Query.ts","../src/codegen/stride/epochs/query.ts","../src/codegen/stride/records/callbacks.ts","../src/codegen/stride/records/genesis.ts","../src/codegen/stride/records/params.ts","../src/codegen/stride/records/query.rpc.Query.ts","../src/codegen/stride/records/query.ts","../src/codegen/stride/records/records.ts","../src/codegen/stride/stakedym/genesis.ts","../src/codegen/stride/stakedym/query.rpc.Query.ts","../src/codegen/stride/stakedym/query.ts","../src/codegen/stride/stakedym/stakedym.ts","../src/codegen/stride/stakedym/tx.rpc.msg.ts","../src/codegen/stride/stakedym/tx.ts","../src/codegen/stride/stakeibc/address_unbonding.ts","../src/codegen/stride/stakeibc/callbacks.ts","../src/codegen/stride/stakeibc/epoch_tracker.ts","../src/codegen/stride/stakeibc/genesis.ts","../src/codegen/stride/stakeibc/gov.ts","../src/codegen/stride/stakeibc/host_zone.ts","../src/codegen/stride/stakeibc/ica_account.ts","../src/codegen/stride/stakeibc/packet.ts","../src/codegen/stride/stakeibc/params.ts","../src/codegen/stride/stakeibc/query.rpc.Query.ts","../src/codegen/stride/stakeibc/query.ts","../src/codegen/stride/stakeibc/trade_route.ts","../src/codegen/stride/stakeibc/tx.rpc.msg.ts","../src/codegen/stride/stakeibc/tx.ts","../src/codegen/stride/stakeibc/validator.ts","../src/codegen/stride/staketia/genesis.ts","../src/codegen/stride/staketia/query.rpc.Query.ts","../src/codegen/stride/staketia/query.ts","../src/codegen/stride/staketia/staketia.ts","../src/codegen/stride/staketia/tx.rpc.msg.ts","../src/codegen/stride/staketia/tx.ts","../src/codegen/tendermint/bundle.ts","../src/codegen/tendermint/abci/types.ts","../src/codegen/tendermint/crypto/keys.ts","../src/codegen/tendermint/crypto/proof.ts","../src/codegen/tendermint/libs/bits/types.ts","../src/codegen/tendermint/p2p/types.ts","../src/codegen/tendermint/types/block.ts","../src/codegen/tendermint/types/evidence.ts","../src/codegen/tendermint/types/params.ts","../src/codegen/tendermint/types/types.ts","../src/codegen/tendermint/types/validator.ts","../src/codegen/tendermint/version/types.ts"],"version":"5.9.2"}
1
+ {"root":["../src/chain.js","../src/cli.js","../src/clients.js","../src/clock-timer.js","../src/main.ts","../src/marshaltables.js","../src/network-config.js","../src/rpc.js","../src/signing-client.ts","../src/signing-smart-wallet-kit.ts","../src/smart-wallet-kit.js","../src/sync-tools.js","../src/types.ts","../src/vstorage-kit.js","../src/vstorage.js","../src/wallet-utils.js","../src/codegen/binary.ts","../src/codegen/decimals.ts","../src/codegen/helpers.ts","../src/codegen/index.ts","../src/codegen/json-safe.ts","../src/codegen/utf8.ts","../src/codegen/varint.ts","../src/codegen/agoric/bundle.ts","../src/codegen/agoric/rpc.query.ts","../src/codegen/agoric/rpc.tx.ts","../src/codegen/agoric/swingset/genesis.ts","../src/codegen/agoric/swingset/msgs.rpc.msg.ts","../src/codegen/agoric/swingset/msgs.ts","../src/codegen/agoric/swingset/query.rpc.query.ts","../src/codegen/agoric/swingset/query.ts","../src/codegen/agoric/swingset/swingset.ts","../src/codegen/agoric/vbank/genesis.ts","../src/codegen/agoric/vbank/msgs.ts","../src/codegen/agoric/vbank/query.rpc.query.ts","../src/codegen/agoric/vbank/query.ts","../src/codegen/agoric/vbank/vbank.ts","../src/codegen/agoric/vibc/msgs.rpc.msg.ts","../src/codegen/agoric/vibc/msgs.ts","../src/codegen/agoric/vlocalchain/vlocalchain.ts","../src/codegen/agoric/vstorage/genesis.ts","../src/codegen/agoric/vstorage/query.rpc.query.ts","../src/codegen/agoric/vstorage/query.ts","../src/codegen/agoric/vstorage/vstorage.ts","../src/codegen/agoric/vtransfer/genesis.ts","../src/codegen/amino/amino.ts","../src/codegen/amino/bundle.ts","../src/codegen/circle/bundle.ts","../src/codegen/circle/rpc.query.ts","../src/codegen/circle/rpc.tx.ts","../src/codegen/circle/cctp/v1/attester.ts","../src/codegen/circle/cctp/v1/burn_message.ts","../src/codegen/circle/cctp/v1/burning_and_minting_paused.ts","../src/codegen/circle/cctp/v1/events.ts","../src/codegen/circle/cctp/v1/genesis.ts","../src/codegen/circle/cctp/v1/max_message_body_size.ts","../src/codegen/circle/cctp/v1/message.ts","../src/codegen/circle/cctp/v1/nonce.ts","../src/codegen/circle/cctp/v1/per_message_burn_limit.ts","../src/codegen/circle/cctp/v1/query.rpc.query.ts","../src/codegen/circle/cctp/v1/query.ts","../src/codegen/circle/cctp/v1/remote_token_messenger.ts","../src/codegen/circle/cctp/v1/sending_and_receiving_messages_paused.ts","../src/codegen/circle/cctp/v1/signature_threshold.ts","../src/codegen/circle/cctp/v1/token_pair.ts","../src/codegen/circle/cctp/v1/tx.rpc.msg.ts","../src/codegen/circle/cctp/v1/tx.ts","../src/codegen/cosmos/bundle.ts","../src/codegen/cosmos/rpc.query.ts","../src/codegen/cosmos/rpc.tx.ts","../src/codegen/cosmos/app/runtime/v1alpha1/module.ts","../src/codegen/cosmos/app/v1alpha1/module.ts","../src/codegen/cosmos/auth/module/v1/module.ts","../src/codegen/cosmos/auth/v1beta1/auth.ts","../src/codegen/cosmos/auth/v1beta1/genesis.ts","../src/codegen/cosmos/auth/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/auth/v1beta1/query.ts","../src/codegen/cosmos/auth/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/auth/v1beta1/tx.ts","../src/codegen/cosmos/authz/module/v1/module.ts","../src/codegen/cosmos/authz/v1beta1/authz.ts","../src/codegen/cosmos/authz/v1beta1/event.ts","../src/codegen/cosmos/authz/v1beta1/genesis.ts","../src/codegen/cosmos/authz/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/authz/v1beta1/query.ts","../src/codegen/cosmos/authz/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/authz/v1beta1/tx.ts","../src/codegen/cosmos/bank/module/v1/module.ts","../src/codegen/cosmos/bank/v1beta1/authz.ts","../src/codegen/cosmos/bank/v1beta1/bank.ts","../src/codegen/cosmos/bank/v1beta1/genesis.ts","../src/codegen/cosmos/bank/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/bank/v1beta1/query.ts","../src/codegen/cosmos/bank/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/bank/v1beta1/tx.ts","../src/codegen/cosmos/base/abci/v1beta1/abci.ts","../src/codegen/cosmos/base/node/v1beta1/query.rpc.service.ts","../src/codegen/cosmos/base/node/v1beta1/query.ts","../src/codegen/cosmos/base/query/v1beta1/pagination.ts","../src/codegen/cosmos/base/reflection/v2alpha1/reflection.ts","../src/codegen/cosmos/base/v1beta1/coin.ts","../src/codegen/cosmos/circuit/module/v1/module.ts","../src/codegen/cosmos/circuit/v1/query.rpc.query.ts","../src/codegen/cosmos/circuit/v1/query.ts","../src/codegen/cosmos/circuit/v1/tx.rpc.msg.ts","../src/codegen/cosmos/circuit/v1/tx.ts","../src/codegen/cosmos/circuit/v1/types.ts","../src/codegen/cosmos/consensus/module/v1/module.ts","../src/codegen/cosmos/consensus/v1/query.rpc.query.ts","../src/codegen/cosmos/consensus/v1/query.ts","../src/codegen/cosmos/consensus/v1/tx.rpc.msg.ts","../src/codegen/cosmos/consensus/v1/tx.ts","../src/codegen/cosmos/crisis/module/v1/module.ts","../src/codegen/cosmos/crypto/ed25519/keys.ts","../src/codegen/cosmos/crypto/hd/v1/hd.ts","../src/codegen/cosmos/crypto/keyring/v1/record.ts","../src/codegen/cosmos/crypto/multisig/keys.ts","../src/codegen/cosmos/crypto/multisig/v1beta1/multisig.ts","../src/codegen/cosmos/crypto/secp256k1/keys.ts","../src/codegen/cosmos/crypto/secp256r1/keys.ts","../src/codegen/cosmos/distribution/module/v1/module.ts","../src/codegen/cosmos/distribution/v1beta1/distribution.ts","../src/codegen/cosmos/distribution/v1beta1/genesis.ts","../src/codegen/cosmos/distribution/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/distribution/v1beta1/query.ts","../src/codegen/cosmos/distribution/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/distribution/v1beta1/tx.ts","../src/codegen/cosmos/evidence/module/v1/module.ts","../src/codegen/cosmos/feegrant/module/v1/module.ts","../src/codegen/cosmos/feegrant/v1beta1/feegrant.ts","../src/codegen/cosmos/feegrant/v1beta1/genesis.ts","../src/codegen/cosmos/feegrant/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/feegrant/v1beta1/query.ts","../src/codegen/cosmos/feegrant/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/feegrant/v1beta1/tx.ts","../src/codegen/cosmos/genutil/module/v1/module.ts","../src/codegen/cosmos/gov/module/v1/module.ts","../src/codegen/cosmos/gov/v1/genesis.ts","../src/codegen/cosmos/gov/v1/gov.ts","../src/codegen/cosmos/gov/v1/query.rpc.query.ts","../src/codegen/cosmos/gov/v1/query.ts","../src/codegen/cosmos/gov/v1/tx.rpc.msg.ts","../src/codegen/cosmos/gov/v1/tx.ts","../src/codegen/cosmos/gov/v1beta1/genesis.ts","../src/codegen/cosmos/gov/v1beta1/gov.ts","../src/codegen/cosmos/gov/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/gov/v1beta1/query.ts","../src/codegen/cosmos/gov/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/gov/v1beta1/tx.ts","../src/codegen/cosmos/group/module/v1/module.ts","../src/codegen/cosmos/group/v1/events.ts","../src/codegen/cosmos/group/v1/genesis.ts","../src/codegen/cosmos/group/v1/query.rpc.query.ts","../src/codegen/cosmos/group/v1/query.ts","../src/codegen/cosmos/group/v1/tx.rpc.msg.ts","../src/codegen/cosmos/group/v1/tx.ts","../src/codegen/cosmos/group/v1/types.ts","../src/codegen/cosmos/ics23/v1/proofs.ts","../src/codegen/cosmos/mint/module/v1/module.ts","../src/codegen/cosmos/mint/v1beta1/genesis.ts","../src/codegen/cosmos/mint/v1beta1/mint.ts","../src/codegen/cosmos/mint/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/mint/v1beta1/query.ts","../src/codegen/cosmos/mint/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/mint/v1beta1/tx.ts","../src/codegen/cosmos/msg/textual/v1/textual.ts","../src/codegen/cosmos/msg/v1/msg.ts","../src/codegen/cosmos/nft/module/v1/module.ts","../src/codegen/cosmos/params/module/v1/module.ts","../src/codegen/cosmos/params/v1beta1/params.ts","../src/codegen/cosmos/params/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/params/v1beta1/query.ts","../src/codegen/cosmos/query/v1/query.ts","../src/codegen/cosmos/reflection/v1/reflection.ts","../src/codegen/cosmos/slashing/module/v1/module.ts","../src/codegen/cosmos/staking/module/v1/module.ts","../src/codegen/cosmos/staking/v1beta1/authz.ts","../src/codegen/cosmos/staking/v1beta1/genesis.ts","../src/codegen/cosmos/staking/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/staking/v1beta1/query.ts","../src/codegen/cosmos/staking/v1beta1/staking.ts","../src/codegen/cosmos/staking/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/staking/v1beta1/tx.ts","../src/codegen/cosmos/store/internal/kv/v1beta1/kv.ts","../src/codegen/cosmos/store/snapshots/v1/snapshot.ts","../src/codegen/cosmos/store/streaming/abci/grpc.ts","../src/codegen/cosmos/store/v1beta1/commit_info.ts","../src/codegen/cosmos/store/v1beta1/listening.ts","../src/codegen/cosmos/tx/config/v1/config.ts","../src/codegen/cosmos/tx/signing/v1beta1/signing.ts","../src/codegen/cosmos/tx/v1beta1/service.rpc.service.ts","../src/codegen/cosmos/tx/v1beta1/service.ts","../src/codegen/cosmos/tx/v1beta1/tx.ts","../src/codegen/cosmos/upgrade/module/v1/module.ts","../src/codegen/cosmos/upgrade/v1beta1/query.rpc.query.ts","../src/codegen/cosmos/upgrade/v1beta1/query.ts","../src/codegen/cosmos/upgrade/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/upgrade/v1beta1/tx.ts","../src/codegen/cosmos/upgrade/v1beta1/upgrade.ts","../src/codegen/cosmos/vesting/module/v1/module.ts","../src/codegen/cosmos/vesting/v1beta1/tx.rpc.msg.ts","../src/codegen/cosmos/vesting/v1beta1/tx.ts","../src/codegen/cosmos/vesting/v1beta1/vesting.ts","../src/codegen/cosmos_proto/bundle.ts","../src/codegen/cosmos_proto/cosmos.ts","../src/codegen/gogoproto/bundle.ts","../src/codegen/gogoproto/gogo.ts","../src/codegen/google/bundle.ts","../src/codegen/google/api/annotations.ts","../src/codegen/google/api/http.ts","../src/codegen/google/protobuf/any.ts","../src/codegen/google/protobuf/descriptor.ts","../src/codegen/google/protobuf/duration.ts","../src/codegen/google/protobuf/empty.ts","../src/codegen/google/protobuf/timestamp.ts","../src/codegen/ibc/bundle.ts","../src/codegen/ibc/rpc.query.ts","../src/codegen/ibc/rpc.tx.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/controller.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/query.rpc.query.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/query.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/tx.rpc.msg.ts","../src/codegen/ibc/applications/interchain_accounts/controller/v1/tx.ts","../src/codegen/ibc/applications/interchain_accounts/genesis/v1/genesis.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/host.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/query.rpc.query.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/query.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/tx.rpc.msg.ts","../src/codegen/ibc/applications/interchain_accounts/host/v1/tx.ts","../src/codegen/ibc/applications/interchain_accounts/v1/account.ts","../src/codegen/ibc/applications/interchain_accounts/v1/metadata.ts","../src/codegen/ibc/applications/interchain_accounts/v1/packet.ts","../src/codegen/ibc/applications/transfer/v1/authz.ts","../src/codegen/ibc/applications/transfer/v1/genesis.ts","../src/codegen/ibc/applications/transfer/v1/query.rpc.query.ts","../src/codegen/ibc/applications/transfer/v1/query.ts","../src/codegen/ibc/applications/transfer/v1/transfer.ts","../src/codegen/ibc/applications/transfer/v1/tx.rpc.msg.ts","../src/codegen/ibc/applications/transfer/v1/tx.ts","../src/codegen/ibc/applications/transfer/v2/packet.ts","../src/codegen/ibc/core/channel/v1/channel.ts","../src/codegen/ibc/core/channel/v1/genesis.ts","../src/codegen/ibc/core/channel/v1/query.rpc.query.ts","../src/codegen/ibc/core/channel/v1/query.ts","../src/codegen/ibc/core/channel/v1/tx.rpc.msg.ts","../src/codegen/ibc/core/channel/v1/tx.ts","../src/codegen/ibc/core/channel/v1/upgrade.ts","../src/codegen/ibc/core/client/v1/client.ts","../src/codegen/ibc/core/client/v1/genesis.ts","../src/codegen/ibc/core/client/v1/query.rpc.query.ts","../src/codegen/ibc/core/client/v1/query.ts","../src/codegen/ibc/core/client/v1/tx.rpc.msg.ts","../src/codegen/ibc/core/client/v1/tx.ts","../src/codegen/ibc/core/commitment/v1/commitment.ts","../src/codegen/ibc/core/connection/v1/connection.ts","../src/codegen/ibc/core/connection/v1/genesis.ts","../src/codegen/ibc/core/connection/v1/query.rpc.query.ts","../src/codegen/ibc/core/connection/v1/query.ts","../src/codegen/ibc/core/connection/v1/tx.rpc.msg.ts","../src/codegen/ibc/core/connection/v1/tx.ts","../src/codegen/ibc/lightclients/localhost/v1/localhost.ts","../src/codegen/ibc/lightclients/localhost/v2/localhost.ts","../src/codegen/ibc/lightclients/solomachine/v1/solomachine.ts","../src/codegen/ibc/lightclients/solomachine/v2/solomachine.ts","../src/codegen/ibc/lightclients/solomachine/v3/solomachine.ts","../src/codegen/ibc/lightclients/tendermint/v1/tendermint.ts","../src/codegen/ibc/lightclients/wasm/v1/genesis.ts","../src/codegen/ibc/lightclients/wasm/v1/query.rpc.query.ts","../src/codegen/ibc/lightclients/wasm/v1/query.ts","../src/codegen/ibc/lightclients/wasm/v1/tx.rpc.msg.ts","../src/codegen/ibc/lightclients/wasm/v1/tx.ts","../src/codegen/ibc/lightclients/wasm/v1/wasm.ts","../src/codegen/icq/bundle.ts","../src/codegen/icq/rpc.query.ts","../src/codegen/icq/rpc.tx.ts","../src/codegen/icq/v1/genesis.ts","../src/codegen/icq/v1/icq.ts","../src/codegen/icq/v1/packet.ts","../src/codegen/icq/v1/query.rpc.query.ts","../src/codegen/icq/v1/query.ts","../src/codegen/icq/v1/tx.rpc.msg.ts","../src/codegen/icq/v1/tx.ts","../src/codegen/noble/bundle.ts","../src/codegen/noble/rpc.tx.ts","../src/codegen/noble/dollar/vaults/v1/tx.rpc.msg.ts","../src/codegen/noble/dollar/vaults/v1/tx.ts","../src/codegen/noble/dollar/vaults/v1/vaults.ts","../src/codegen/noble/swap/v1/algorithm.ts","../src/codegen/noble/swap/v1/swap.ts","../src/codegen/noble/swap/v1/tx.rpc.msg.ts","../src/codegen/noble/swap/v1/tx.ts","../src/codegen/stride/bundle.ts","../src/codegen/stride/rpc.query.ts","../src/codegen/stride/rpc.tx.ts","../src/codegen/stride/epochs/genesis.ts","../src/codegen/stride/epochs/query.rpc.query.ts","../src/codegen/stride/epochs/query.ts","../src/codegen/stride/records/callbacks.ts","../src/codegen/stride/records/genesis.ts","../src/codegen/stride/records/params.ts","../src/codegen/stride/records/query.rpc.query.ts","../src/codegen/stride/records/query.ts","../src/codegen/stride/records/records.ts","../src/codegen/stride/stakedym/genesis.ts","../src/codegen/stride/stakedym/query.rpc.query.ts","../src/codegen/stride/stakedym/query.ts","../src/codegen/stride/stakedym/stakedym.ts","../src/codegen/stride/stakedym/tx.rpc.msg.ts","../src/codegen/stride/stakedym/tx.ts","../src/codegen/stride/stakeibc/address_unbonding.ts","../src/codegen/stride/stakeibc/callbacks.ts","../src/codegen/stride/stakeibc/epoch_tracker.ts","../src/codegen/stride/stakeibc/genesis.ts","../src/codegen/stride/stakeibc/gov.ts","../src/codegen/stride/stakeibc/host_zone.ts","../src/codegen/stride/stakeibc/ica_account.ts","../src/codegen/stride/stakeibc/packet.ts","../src/codegen/stride/stakeibc/params.ts","../src/codegen/stride/stakeibc/query.rpc.query.ts","../src/codegen/stride/stakeibc/query.ts","../src/codegen/stride/stakeibc/trade_route.ts","../src/codegen/stride/stakeibc/tx.rpc.msg.ts","../src/codegen/stride/stakeibc/tx.ts","../src/codegen/stride/stakeibc/validator.ts","../src/codegen/stride/staketia/genesis.ts","../src/codegen/stride/staketia/query.rpc.query.ts","../src/codegen/stride/staketia/query.ts","../src/codegen/stride/staketia/staketia.ts","../src/codegen/stride/staketia/tx.rpc.msg.ts","../src/codegen/stride/staketia/tx.ts","../src/codegen/tendermint/bundle.ts","../src/codegen/tendermint/abci/types.ts","../src/codegen/tendermint/crypto/keys.ts","../src/codegen/tendermint/crypto/proof.ts","../src/codegen/tendermint/libs/bits/types.ts","../src/codegen/tendermint/p2p/types.ts","../src/codegen/tendermint/types/block.ts","../src/codegen/tendermint/types/evidence.ts","../src/codegen/tendermint/types/params.ts","../src/codegen/tendermint/types/types.ts","../src/codegen/tendermint/types/validator.ts","../src/codegen/tendermint/version/types.ts"],"version":"5.9.2"}
@@ -0,0 +1,79 @@
1
+ import type { ECallable } from '@agoric/vow/src/E.js';
2
+ import type { EUnwrap } from '@agoric/vow/src/types.js';
3
+ import type { Instance } from '@agoric/zoe';
4
+ import type { DeliverTxResponse, StdFee } from '@cosmjs/stargate';
5
+ import type { SigningSmartWalletKit } from './signing-smart-wallet-kit.ts';
6
+ import type { RetryOptionsAndPowers } from './sync-tools.js';
7
+ /**
8
+ * A type-aware representation of an object saved in the wallet store, with
9
+ * methods that return information about their implementing "invokeEntry"
10
+ * submissions. If Recursive is true, then each method has an initial
11
+ * { name?: string, overwrite?: boolean } parameter for specifying how (or if)
12
+ * to save results back into the wallet store and responses for such saved
13
+ * results also include a WalletStoreEntryProxy `result` representing those
14
+ * results.
15
+ */
16
+ export type WalletStoreEntryProxy<T> = {
17
+ readonly [M in keyof T]: T[M] extends (...args: infer P) => infer R ? ECallable<(...args: P) => {
18
+ id?: string;
19
+ tx: DeliverTxResponse;
20
+ result?: WalletStoreEntryProxy<EUnwrap<R>>;
21
+ }> : never;
22
+ } & {
23
+ [SAVE_AS]: (name: string) => WalletStoreEntryProxy<T>;
24
+ [OVERWRITE]: (name: string) => WalletStoreEntryProxy<T>;
25
+ };
26
+ type TxOptions = RetryOptionsAndPowers & {
27
+ fee?: StdFee;
28
+ sendOnly?: boolean;
29
+ makeNonce?: () => string;
30
+ };
31
+ declare const SAVE_AS: "saveAs";
32
+ declare const OVERWRITE: "overwrite";
33
+ /**
34
+ * Minimal interface needed by reflectWalletStore to enable wallet operations.
35
+ *
36
+ * This allows synthetic-chain tests and other environments to provide a compatible
37
+ * implementation without needing the full SigningSmartWalletKit.
38
+ *
39
+ * @alpha
40
+ */
41
+ export type WalletStoreSigner = Pick<SigningSmartWalletKit, 'sendBridgeAction'> & {
42
+ query: Pick<SigningSmartWalletKit['query'], 'getLastUpdate'>;
43
+ };
44
+ /**
45
+ * @alpha
46
+ */
47
+ export declare const reflectWalletStore: (sswk: WalletStoreSigner, baseTxOpts?: Partial<TxOptions>) => {
48
+ /**
49
+ * Return a previously-saved result as a remote object with type-aware
50
+ * methods that map to "invokeEntry" submissions. The methods will always
51
+ * await tx output from `sendBridgeAction`, and will also wait for
52
+ * confirmation in vstorage when sent with an `id` (e.g., derived from a
53
+ * `makeNonce` option) unless overridden by a `sendOnly: true` option.
54
+ *
55
+ * Use `.save(name)` or `.overwrite(name)` to persist a method result
56
+ * without changing the method's argument signature.
57
+ *
58
+ * @param name The wallet store name of the saved entry to retrieve.
59
+ */
60
+ get: <T>(name: string, options?: Partial<TxOptions>) => WalletStoreEntryProxy<T>;
61
+ /**
62
+ * Execute the offer specified by { instance, description } and save the
63
+ * result in the wallet store with the specified name (default to match the
64
+ * offer description), overwriting any prior entry for that name unless
65
+ * otherwise specified. Waits for confirmation in vstorage before returning.
66
+ */
67
+ saveOfferResult: ({ instance, description }: {
68
+ instance: Instance;
69
+ description: string;
70
+ }, name?: string, options?: Partial<TxOptions & {
71
+ overwrite: boolean;
72
+ }>) => Promise<{
73
+ id: string;
74
+ tx: DeliverTxResponse;
75
+ result: unknown;
76
+ }>;
77
+ };
78
+ export {};
79
+ //# sourceMappingURL=wallet-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-store.d.ts","sourceRoot":"","sources":["../src/wallet-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GAC/D,SAAS,CACP,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,EAAE,iBAAiB,CAAC;QACtB,MAAM,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C,CACF,GACD,KAAK;CACV,GAAG;IACF,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF,KAAK,SAAS,GAAG,qBAAqB,GAAG;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;CAC1B,CAAC;AAEF,QAAA,MAAM,OAAO,EAAG,QAAiB,CAAC;AAClC,QAAA,MAAM,SAAS,EAAG,WAAoB,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,qBAAqB,EACrB,kBAAkB,CACnB,GAAG;IACF,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;CAC9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,iBAAiB,EACvB,aAAa,OAAO,CAAC,SAAS,CAAC;IAuG7B;;;;;;;;;;;OAWG;UACG,CAAC,QAAQ,MAAM,YAAY,OAAO,CAAC,SAAS,CAAC,KAChB,qBAAqB,CAAC,CAAC,CAAC;IAC3D;;;;;OAKG;iDAtDwB;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,SAChE,MAAM,YACF,OAAO,CAAC,SAAS,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;;;;;CAuDxD,CAAC"}