@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.
- package/dist/bundle-utils.d.ts +95 -0
- package/dist/bundle-utils.d.ts.map +1 -0
- package/dist/bundle-utils.js +219 -0
- package/dist/bundle-utils.js.map +1 -0
- package/dist/codegen/cosmos/benchmark/v1/tx.rpc.msg.d.ts +14 -0
- package/dist/codegen/cosmos/benchmark/v1/tx.rpc.msg.d.ts.map +1 -0
- package/dist/codegen/cosmos/benchmark/v1/tx.rpc.msg.js +18 -0
- package/dist/codegen/cosmos/benchmark/v1/tx.rpc.msg.js.map +1 -0
- package/dist/codegen/cosmos/counter/v1/query.rpc.Query.d.ts +17 -0
- package/dist/codegen/cosmos/counter/v1/query.rpc.Query.d.ts.map +1 -0
- package/dist/codegen/cosmos/counter/v1/query.rpc.Query.js +25 -0
- package/dist/codegen/cosmos/counter/v1/query.rpc.Query.js.map +1 -0
- package/dist/codegen/cosmos/counter/v1/tx.rpc.msg.d.ts +14 -0
- package/dist/codegen/cosmos/counter/v1/tx.rpc.msg.d.ts.map +1 -0
- package/dist/codegen/cosmos/counter/v1/tx.rpc.msg.js +18 -0
- package/dist/codegen/cosmos/counter/v1/tx.rpc.msg.js.map +1 -0
- package/dist/codegen/cosmos/epochs/v1beta1/query.rpc.Query.d.ts +21 -0
- package/dist/codegen/cosmos/epochs/v1beta1/query.rpc.Query.d.ts.map +1 -0
- package/dist/codegen/cosmos/epochs/v1beta1/query.rpc.Query.js +34 -0
- package/dist/codegen/cosmos/epochs/v1beta1/query.rpc.Query.js.map +1 -0
- package/dist/codegen/cosmos/protocolpool/v1/query.rpc.Query.d.ts +29 -0
- package/dist/codegen/cosmos/protocolpool/v1/query.rpc.Query.d.ts.map +1 -0
- package/dist/codegen/cosmos/protocolpool/v1/query.rpc.Query.js +52 -0
- package/dist/codegen/cosmos/protocolpool/v1/query.rpc.Query.js.map +1 -0
- package/dist/codegen/cosmos/protocolpool/v1/tx.rpc.msg.d.ts +42 -0
- package/dist/codegen/cosmos/protocolpool/v1/tx.rpc.msg.d.ts.map +1 -0
- package/dist/codegen/cosmos/protocolpool/v1/tx.rpc.msg.js +42 -0
- package/dist/codegen/cosmos/protocolpool/v1/tx.rpc.msg.js.map +1 -0
- package/dist/codegen/ibc/core/channel/v2/query.rpc.Query.d.ts +45 -0
- package/dist/codegen/ibc/core/channel/v2/query.rpc.Query.d.ts.map +1 -0
- package/dist/codegen/ibc/core/channel/v2/query.rpc.Query.js +88 -0
- package/dist/codegen/ibc/core/channel/v2/query.rpc.Query.js.map +1 -0
- package/dist/codegen/ibc/core/channel/v2/tx.rpc.msg.d.ts +23 -0
- package/dist/codegen/ibc/core/channel/v2/tx.rpc.msg.d.ts.map +1 -0
- package/dist/codegen/ibc/core/channel/v2/tx.rpc.msg.js +36 -0
- package/dist/codegen/ibc/core/channel/v2/tx.rpc.msg.js.map +1 -0
- package/dist/codegen/ibc/core/client/v2/query.rpc.Query.d.ts +21 -0
- package/dist/codegen/ibc/core/client/v2/query.rpc.Query.d.ts.map +1 -0
- package/dist/codegen/ibc/core/client/v2/query.rpc.Query.js +34 -0
- package/dist/codegen/ibc/core/client/v2/query.rpc.Query.js.map +1 -0
- package/dist/codegen/ibc/core/client/v2/tx.rpc.msg.d.ts +17 -0
- package/dist/codegen/ibc/core/client/v2/tx.rpc.msg.d.ts.map +1 -0
- package/dist/codegen/ibc/core/client/v2/tx.rpc.msg.js +24 -0
- package/dist/codegen/ibc/core/client/v2/tx.rpc.msg.js.map +1 -0
- package/dist/sequence-manager.d.ts +18 -0
- package/dist/sequence-manager.d.ts.map +1 -0
- package/dist/sequence-manager.js +40 -0
- package/dist/sequence-manager.js.map +1 -0
- package/dist/smart-wallet-utils.d.ts +26 -0
- package/dist/smart-wallet-utils.d.ts.map +1 -0
- package/dist/smart-wallet-utils.js +180 -0
- package/dist/smart-wallet-utils.js.map +1 -0
- package/dist/smart-wallet-with-sequence.d.ts +18 -0
- package/dist/smart-wallet-with-sequence.d.ts.map +1 -0
- package/dist/smart-wallet-with-sequence.js +139 -0
- package/dist/smart-wallet-with-sequence.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/wallet-store.d.ts +79 -0
- package/dist/wallet-store.d.ts.map +1 -0
- package/dist/wallet-store.js +100 -0
- package/dist/wallet-store.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|