@wormhole-foundation/sdk-algorand-core 0.5.0-alpha.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.
@@ -0,0 +1,57 @@
1
+ import { ChainId, ChainsConfig, Contracts, Network, VAA, WormholeCore, WormholeMessageId } from "@wormhole-foundation/sdk-connect";
2
+ import { AlgorandChains, AlgorandUnsignedTransaction, AnyAlgorandAddress, TransactionSet } from "@wormhole-foundation/sdk-algorand";
3
+ import { Algodv2, LogicSigAccount, SuggestedParams } from "algosdk";
4
+ export declare class AlgorandWormholeCore<N extends Network, C extends AlgorandChains> implements WormholeCore<N, C> {
5
+ readonly network: N;
6
+ readonly chain: C;
7
+ readonly connection: Algodv2;
8
+ readonly contracts: Contracts;
9
+ readonly chainId: ChainId;
10
+ readonly coreAppId: bigint;
11
+ readonly coreAppAddress: string;
12
+ readonly tokenBridgeAppId: bigint;
13
+ readonly tokenBridgeAppAddress: string;
14
+ static MAX_SIGS_PER_TXN: number;
15
+ static ALGO_VERIFY_HASH: string;
16
+ static ALGO_VERIFY: Uint8Array;
17
+ static feeKey: string;
18
+ static verifyVaa: Uint8Array;
19
+ static verifySigs: Uint8Array;
20
+ static publishMessage: Uint8Array;
21
+ constructor(network: N, chain: C, connection: Algodv2, contracts: Contracts);
22
+ verifyMessage(sender: AnyAlgorandAddress, vaa: VAA, appId?: bigint): AsyncGenerator<AlgorandUnsignedTransaction<N, C>, void, unknown>;
23
+ static fromRpc<N extends Network>(connection: Algodv2, config: ChainsConfig<N, "Algorand">): Promise<AlgorandWormholeCore<N, AlgorandChains>>;
24
+ publishMessage(sender: AnyAlgorandAddress, message: Uint8Array): AsyncGenerator<AlgorandUnsignedTransaction<N, C>, void, unknown>;
25
+ /**
26
+ * Return the message fee for the core bridge
27
+ * @param client An Algodv2 client
28
+ * @param bridgeId The application ID of the core bridge
29
+ * @returns Promise with the message fee for the core bridge
30
+ */
31
+ getMessageFee(): Promise<bigint>;
32
+ getGuardianSetIndex(): Promise<number>;
33
+ parseTransaction(txId: string): Promise<WormholeMessageId[]>;
34
+ parseMessages(txId: string): Promise<VAA[]>;
35
+ private parseTx;
36
+ /**
37
+ * Constructs opt in transactions
38
+ * @param client An Algodv2 client
39
+ * @param senderAddr Sender address
40
+ * @param appId Application ID
41
+ * @param storage StorageLogicSig
42
+ * @returns Address and array of TransactionSignerPairs
43
+ */
44
+ static maybeCreateStorageTx(client: Algodv2, senderAddr: string, appId: bigint, storage: LogicSigAccount, suggestedParams?: SuggestedParams): Promise<TransactionSet>;
45
+ /**
46
+ * Submits just the header of the VAA
47
+ * @param client AlgodV2 client
48
+ * @param bridgeId Application ID of the core bridge
49
+ * @param vaa The VAA (just the header is used)
50
+ * @param senderAddr Sending account address
51
+ * @param appid Application ID
52
+ * @returns Promise with current VAA state
53
+ */
54
+ static submitVAAHeader(client: Algodv2, coreId: bigint, appid: bigint, vaa: VAA, senderAddr: string, suggestedParams?: SuggestedParams): Promise<TransactionSet>;
55
+ private createUnsignedTx;
56
+ }
57
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,YAAY,EACZ,SAAS,EACT,OAAO,EACP,GAAG,EACH,YAAY,EACZ,iBAAiB,EAMlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,cAAc,EAEd,2BAA2B,EAC3B,kBAAkB,EAClB,cAAc,EAGf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,eAAe,EAEf,eAAe,EAQhB,MAAM,SAAS,CAAC;AAIjB,qBAAa,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CAC3E,YAAW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IA6B3B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,UAAU,EAAE,OAAO;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS;IA9B/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEvC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAK;IACpC,MAAM,CAAC,gBAAgB,SAAgE;IACvF,MAAM,CAAC,WAAW,aAOf;IAGH,MAAM,CAAC,MAAM,SAAqC;IAElD,MAAM,CAAC,SAAS,aAAsC;IAEtD,MAAM,CAAC,UAAU,aAAuC;IAExD,MAAM,CAAC,cAAc,aAA2C;gBAGrD,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,SAAS;IAmBxB,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM;WAe5D,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAQ5C,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU;IAgCrE;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAShC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAY5D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAMjD,OAAO,CAAC,OAAO;IA2Cf;;;;;;;OAOG;WACU,oBAAoB,CAC/B,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,eAAe,EACxB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,cAAc,CAAC;IA4C1B;;;;;;;;OAQG;WACU,eAAe,CAC1B,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,cAAc,CAAC;IAmH1B,OAAO,CAAC,gBAAgB;CAazB"}
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlgorandWormholeCore = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const sdk_algorand_1 = require("@wormhole-foundation/sdk-algorand");
6
+ const algosdk_1 = require("algosdk");
7
+ const storage_1 = require("./storage");
8
+ class AlgorandWormholeCore {
9
+ network;
10
+ chain;
11
+ connection;
12
+ contracts;
13
+ chainId;
14
+ coreAppId;
15
+ coreAppAddress;
16
+ tokenBridgeAppId;
17
+ tokenBridgeAppAddress;
18
+ static MAX_SIGS_PER_TXN = 6;
19
+ static ALGO_VERIFY_HASH = "EZATROXX2HISIRZDRGXW4LRQ46Z6IUJYYIHU3PJGP7P5IQDPKVX42N767A";
20
+ static ALGO_VERIFY = new Uint8Array([
21
+ 6, 32, 4, 1, 0, 32, 20, 38, 1, 0, 49, 32, 50, 3, 18, 68, 49, 1, 35, 18, 68, 49, 16, 129, 6, 18,
22
+ 68, 54, 26, 1, 54, 26, 3, 54, 26, 2, 136, 0, 3, 68, 34, 67, 53, 2, 53, 1, 53, 0, 40, 53, 240,
23
+ 40, 53, 241, 52, 0, 21, 53, 5, 35, 53, 3, 35, 53, 4, 52, 3, 52, 5, 12, 65, 0, 68, 52, 1, 52, 0,
24
+ 52, 3, 129, 65, 8, 34, 88, 23, 52, 0, 52, 3, 34, 8, 36, 88, 52, 0, 52, 3, 129, 33, 8, 36, 88, 7,
25
+ 0, 53, 241, 53, 240, 52, 2, 52, 4, 37, 88, 52, 240, 52, 241, 80, 2, 87, 12, 20, 18, 68, 52, 3,
26
+ 129, 66, 8, 53, 3, 52, 4, 37, 8, 53, 4, 66, 255, 180, 34, 137,
27
+ ]);
28
+ // global state key for message fee
29
+ static feeKey = sdk_connect_1.encoding.b64.encode("MessageFee");
30
+ // method selector for verifying a VAA
31
+ static verifyVaa = sdk_connect_1.encoding.bytes.encode("verifyVAA");
32
+ // method selector for verifying signatures of a VAA
33
+ static verifySigs = sdk_connect_1.encoding.bytes.encode("verifySigs");
34
+ // method selector string for publishing a message
35
+ static publishMessage = sdk_connect_1.encoding.bytes.encode("publishMessage");
36
+ constructor(network, chain, connection, contracts) {
37
+ this.network = network;
38
+ this.chain = chain;
39
+ this.connection = connection;
40
+ this.contracts = contracts;
41
+ this.chainId = (0, sdk_connect_1.toChainId)(chain);
42
+ if (!contracts.coreBridge) {
43
+ throw new Error(`Core contract address for chain ${chain} not found`);
44
+ }
45
+ const core = BigInt(contracts.coreBridge);
46
+ this.coreAppId = core;
47
+ this.coreAppAddress = (0, algosdk_1.getApplicationAddress)(core);
48
+ if (!contracts.tokenBridge) {
49
+ throw new Error(`TokenBridge contract address for chain ${chain} not found`);
50
+ }
51
+ const tokenBridge = BigInt(contracts.tokenBridge);
52
+ this.tokenBridgeAppId = tokenBridge;
53
+ this.tokenBridgeAppAddress = (0, algosdk_1.getApplicationAddress)(tokenBridge);
54
+ }
55
+ async *verifyMessage(sender, vaa, appId) {
56
+ const address = new sdk_algorand_1.AlgorandAddress(sender).toString();
57
+ const txset = await AlgorandWormholeCore.submitVAAHeader(this.connection, this.coreAppId, appId ?? this.coreAppId, vaa, address);
58
+ for (const tx of txset.txs) {
59
+ yield this.createUnsignedTx(tx, "Core.verifyMessage");
60
+ }
61
+ }
62
+ static async fromRpc(connection, config) {
63
+ const [network, chain] = await sdk_algorand_1.AlgorandPlatform.chainFromRpc(connection);
64
+ const conf = config[chain];
65
+ if (conf.network !== network)
66
+ throw new Error(`Network mismatch: ${conf.network} !== ${network}`);
67
+ return new AlgorandWormholeCore(network, chain, connection, conf.contracts);
68
+ }
69
+ async *publishMessage(sender, message) {
70
+ // Call core bridge to publish message
71
+ const _sender = new sdk_algorand_1.AlgorandAddress(sender);
72
+ const address = _sender.toString();
73
+ const suggestedParams = await this.connection.getTransactionParams().do();
74
+ const storage = storage_1.StorageLogicSig.forEmitter(this.coreAppId, _sender.toUint8Array());
75
+ const { accounts, txs } = await AlgorandWormholeCore.maybeCreateStorageTx(this.connection, address, this.coreAppId, storage, suggestedParams);
76
+ for (const tx of txs) {
77
+ yield this.createUnsignedTx(tx, "Core.publishMessage", true);
78
+ }
79
+ const act = (0, algosdk_1.makeApplicationCallTxnFromObject)({
80
+ from: address,
81
+ appIndex: (0, sdk_algorand_1.safeBigIntToNumber)(this.coreAppId),
82
+ appArgs: [AlgorandWormholeCore.publishMessage, message, sdk_connect_1.encoding.bignum.toBytes(0n, 8)],
83
+ accounts: accounts,
84
+ onComplete: algosdk_1.OnApplicationComplete.NoOpOC,
85
+ suggestedParams,
86
+ });
87
+ yield this.createUnsignedTx({ tx: act }, "Core.publishMessage", true);
88
+ }
89
+ /**
90
+ * Return the message fee for the core bridge
91
+ * @param client An Algodv2 client
92
+ * @param bridgeId The application ID of the core bridge
93
+ * @returns Promise with the message fee for the core bridge
94
+ */
95
+ async getMessageFee() {
96
+ const applInfoResp = await this.connection
97
+ .getApplicationByID((0, sdk_algorand_1.safeBigIntToNumber)(this.coreAppId))
98
+ .do();
99
+ const appInfo = algosdk_1.modelsv2.Application.from_obj_for_encoding(applInfoResp);
100
+ const val = appInfo.params.globalState?.find((kv) => kv.key === AlgorandWormholeCore.feeKey);
101
+ return val ? BigInt(val.value.uint) : 0n;
102
+ }
103
+ async getGuardianSetIndex() {
104
+ throw new Error("Not implemented");
105
+ }
106
+ async parseTransaction(txId) {
107
+ const result = await this.connection.pendingTransactionInformation(txId).do();
108
+ const ptr = algosdk_1.modelsv2.PendingTransactionResponse.from_obj_for_encoding(result);
109
+ return this.parseTx(ptr).map((v) => {
110
+ return {
111
+ chain: v.emitterChain,
112
+ emitter: v.emitterAddress,
113
+ sequence: v.sequence,
114
+ };
115
+ });
116
+ }
117
+ async parseMessages(txId) {
118
+ const result = await this.connection.pendingTransactionInformation(txId).do();
119
+ const ptr = algosdk_1.modelsv2.PendingTransactionResponse.from_obj_for_encoding(result);
120
+ return this.parseTx(ptr);
121
+ }
122
+ parseTx(ptr) {
123
+ const msgs = [];
124
+ if (ptr.innerTxns && ptr.innerTxns.length > 0) {
125
+ msgs.push(...ptr.innerTxns.flatMap((tx) => this.parseTx(tx)));
126
+ }
127
+ // Expect target is core app
128
+ if (BigInt(ptr.txn.txn.apid ?? 0) !== this.coreAppId)
129
+ return msgs;
130
+ // Expect logs
131
+ if (!ptr.logs || ptr.logs.length === 0)
132
+ return msgs;
133
+ // Expect publish messeage as first arg
134
+ const args = ptr.txn.txn.apaa ?? [];
135
+ if (args.length !== 3 ||
136
+ !sdk_connect_1.encoding.bytes.equals(new Uint8Array(args[0]), AlgorandWormholeCore.publishMessage))
137
+ return msgs;
138
+ const sequence = sdk_connect_1.encoding.bignum.decode(ptr.logs[0]);
139
+ const emitter = new sdk_algorand_1.AlgorandAddress(ptr.txn.txn.snd).toUniversalAddress();
140
+ const payload = new Uint8Array(args[1]);
141
+ const nonce = sdk_connect_1.encoding.bignum.decode(args[2]);
142
+ msgs.push((0, sdk_connect_1.createVAA)("Uint8Array", {
143
+ emitterChain: this.chain,
144
+ emitterAddress: emitter,
145
+ sequence,
146
+ guardianSet: 0,
147
+ timestamp: 0,
148
+ consistencyLevel: 0,
149
+ nonce: Number(nonce),
150
+ payload,
151
+ signatures: [],
152
+ }));
153
+ return msgs;
154
+ }
155
+ /**
156
+ * Constructs opt in transactions
157
+ * @param client An Algodv2 client
158
+ * @param senderAddr Sender address
159
+ * @param appId Application ID
160
+ * @param storage StorageLogicSig
161
+ * @returns Address and array of TransactionSignerPairs
162
+ */
163
+ static async maybeCreateStorageTx(client, senderAddr, appId, storage, suggestedParams) {
164
+ const appAddr = (0, algosdk_1.getApplicationAddress)(appId);
165
+ const storageAddress = storage.address();
166
+ const txs = [];
167
+ if (await storage_1.StorageLogicSig.storageAccountExists(client, storageAddress, appId))
168
+ return { accounts: [storageAddress], txs };
169
+ suggestedParams = suggestedParams ?? (await client.getTransactionParams().do());
170
+ // Pay the storage account some ALGO to min balance requirements
171
+ const seedTxn = (0, algosdk_1.makePaymentTxnWithSuggestedParamsFromObject)({
172
+ from: senderAddr,
173
+ to: storageAddress,
174
+ amount: storage_1.SEED_AMT,
175
+ suggestedParams,
176
+ });
177
+ seedTxn.fee = seedTxn.fee * 2;
178
+ txs.push({ tx: seedTxn });
179
+ // Opt in to the app and rekey to the app address that is using
180
+ // this as storage
181
+ const optinTxn = (0, algosdk_1.makeApplicationOptInTxnFromObject)({
182
+ from: storageAddress,
183
+ appIndex: (0, sdk_algorand_1.safeBigIntToNumber)(appId),
184
+ rekeyTo: appAddr,
185
+ suggestedParams,
186
+ });
187
+ optinTxn.fee = 0;
188
+ txs.push({
189
+ tx: optinTxn,
190
+ signer: {
191
+ address: storage.address(),
192
+ signTxn: (txn) => Promise.resolve((0, algosdk_1.signLogicSigTransaction)(txn, storage).blob),
193
+ },
194
+ });
195
+ return {
196
+ accounts: [storageAddress],
197
+ txs,
198
+ };
199
+ }
200
+ /**
201
+ * Submits just the header of the VAA
202
+ * @param client AlgodV2 client
203
+ * @param bridgeId Application ID of the core bridge
204
+ * @param vaa The VAA (just the header is used)
205
+ * @param senderAddr Sending account address
206
+ * @param appid Application ID
207
+ * @returns Promise with current VAA state
208
+ */
209
+ static async submitVAAHeader(client, coreId, appid, vaa, senderAddr, suggestedParams) {
210
+ suggestedParams = suggestedParams ?? (await client.getTransactionParams().do());
211
+ let txs = [];
212
+ // Get storage acct for message ID
213
+ const msgStorage = storage_1.StorageLogicSig.forMessageId(appid, {
214
+ chain: vaa.emitterChain,
215
+ sequence: vaa.sequence,
216
+ emitter: vaa.emitterAddress,
217
+ });
218
+ const { accounts: seqAddr, txs: seqOptInTxs } = await AlgorandWormholeCore.maybeCreateStorageTx(client, senderAddr, appid, msgStorage, suggestedParams);
219
+ txs.push(...seqOptInTxs);
220
+ // Get storage account for Guardian set
221
+ const gsStorage = storage_1.StorageLogicSig.forGuardianSet(coreId, vaa.guardianSet);
222
+ const { accounts: [storageAddr], txs: guardianOptInTxs, } = await AlgorandWormholeCore.maybeCreateStorageTx(client, senderAddr, coreId, gsStorage, suggestedParams);
223
+ txs.push(...guardianOptInTxs);
224
+ let accts = [...seqAddr, storageAddr];
225
+ // Get the Guardian keys
226
+ const keys = await storage_1.StorageLogicSig.decodeLocalState(client, coreId, storageAddr);
227
+ // We don't pass the entire payload in but instead just pass it pre-digested. This gets around size
228
+ // limitations with lsigs AND reduces the cost of the entire operation on a congested network by reducing the
229
+ // bytes passed into the transaction
230
+ // This is a 2 pass digest
231
+ const digest = (0, sdk_connect_1.keccak256)(vaa.hash);
232
+ // How many signatures can we process in a single txn... we can do 6!
233
+ // There are likely upwards of 19 signatures. So, we ned to split things up
234
+ const numSigs = vaa.signatures.length;
235
+ const numTxns = Math.ceil(numSigs / AlgorandWormholeCore.MAX_SIGS_PER_TXN);
236
+ const GuardianKeyLen = 20;
237
+ const lsa = new algosdk_1.LogicSigAccount(AlgorandWormholeCore.ALGO_VERIFY);
238
+ for (let nt = 0; nt < numTxns; nt++) {
239
+ const step = nt * AlgorandWormholeCore.MAX_SIGS_PER_TXN;
240
+ const sigs = vaa.signatures.slice(step, step + AlgorandWormholeCore.MAX_SIGS_PER_TXN);
241
+ // The keyset is the set of Guardians that correspond
242
+ // to the current set of signatures in this loop.
243
+ // Each signature in 20 bytes and comes from decodeLocalState()
244
+ const arraySize = sigs.length * GuardianKeyLen;
245
+ const keySet = new Uint8Array(arraySize);
246
+ for (let i = 0; i < sigs.length; i++) {
247
+ // The first byte of the sig is the relative index of that signature in the signatures array
248
+ // Use that index to get the appropriate Guardian key
249
+ const sig = sigs[i];
250
+ const key = keys.slice(sig.guardianIndex * GuardianKeyLen + 1, (sig.guardianIndex + 1) * GuardianKeyLen + 1);
251
+ keySet.set(key, i * 20);
252
+ }
253
+ const appTxn = (0, algosdk_1.makeApplicationCallTxnFromObject)({
254
+ appArgs: [
255
+ AlgorandWormholeCore.verifySigs,
256
+ sdk_connect_1.encoding.bytes.concat(...sigs.map((s) => sdk_connect_1.encoding.bytes.concat(new Uint8Array([s.guardianIndex]), s.signature.encode()))),
257
+ keySet,
258
+ digest,
259
+ ],
260
+ accounts: accts,
261
+ appIndex: (0, sdk_algorand_1.safeBigIntToNumber)(coreId),
262
+ from: AlgorandWormholeCore.ALGO_VERIFY_HASH,
263
+ onComplete: algosdk_1.OnApplicationComplete.NoOpOC,
264
+ suggestedParams,
265
+ });
266
+ appTxn.fee = 0;
267
+ txs.push({
268
+ tx: appTxn,
269
+ signer: {
270
+ address: lsa.address(),
271
+ signTxn: (txn) => Promise.resolve((0, algosdk_1.signLogicSigTransaction)(txn, lsa).blob),
272
+ },
273
+ });
274
+ }
275
+ const appTxn = (0, algosdk_1.makeApplicationCallTxnFromObject)({
276
+ appArgs: [AlgorandWormholeCore.verifyVaa, (0, sdk_connect_1.serialize)(vaa)],
277
+ accounts: accts,
278
+ appIndex: (0, sdk_algorand_1.safeBigIntToNumber)(coreId),
279
+ from: senderAddr,
280
+ onComplete: algosdk_1.OnApplicationComplete.NoOpOC,
281
+ suggestedParams,
282
+ });
283
+ appTxn.fee = appTxn.fee * (2 + numTxns);
284
+ txs.push({ tx: appTxn });
285
+ return { accounts: accts, txs };
286
+ }
287
+ createUnsignedTx(txReq, description, parallelizable = true) {
288
+ return new sdk_algorand_1.AlgorandUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
289
+ }
290
+ }
291
+ exports.AlgorandWormholeCore = AlgorandWormholeCore;
292
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":";;;AAAA,kEAa0C;AAC1C,oEAS2C;AAC3C,qCAYiB;AAEjB,uCAAsD;AAEtD,MAAa,oBAAoB;IA8BpB;IACA;IACA;IACA;IA9BF,OAAO,CAAU;IACjB,SAAS,CAAS;IAClB,cAAc,CAAS;IACvB,gBAAgB,CAAS;IACzB,qBAAqB,CAAS;IAEvC,MAAM,CAAC,gBAAgB,GAAW,CAAC,CAAC;IACpC,MAAM,CAAC,gBAAgB,GAAG,4DAA4D,CAAC;IACvF,MAAM,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC;QAClC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAC9F,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;QAC5F,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9F,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC/F,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC7F,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;KAC9D,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,CAAC,MAAM,GAAG,sBAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClD,sCAAsC;IACtC,MAAM,CAAC,SAAS,GAAG,sBAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACtD,oDAAoD;IACpD,MAAM,CAAC,UAAU,GAAG,sBAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACxD,kDAAkD;IAClD,MAAM,CAAC,cAAc,GAAG,sBAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEhE,YACW,OAAU,EACV,KAAQ,EACR,UAAmB,EACnB,SAAoB;QAHpB,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,eAAU,GAAV,UAAU,CAAS;QACnB,cAAS,GAAT,SAAS,CAAW;QAE7B,IAAI,CAAC,OAAO,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,YAAY,CAAC,CAAC;SACvE;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAA,+BAAqB,EAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,YAAY,CAAC,CAAC;SAC9E;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,IAAI,CAAC,qBAAqB,GAAG,IAAA,+BAAqB,EAAC,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,CAAC,aAAa,CAAC,MAA0B,EAAE,GAAQ,EAAE,KAAc;QACvE,MAAM,OAAO,GAAG,IAAI,8BAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,eAAe,CACtD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,KAAK,IAAI,IAAI,CAAC,SAAS,EACvB,GAAG,EACH,OAAO,CACR,CAAC;QAEF,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE;YAC1B,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;SACvD;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,UAAmB,EACnB,MAAmC;QAEnC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,+BAAgB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,QAAQ,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,oBAAoB,CAAC,OAAY,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,CAAC,cAAc,CAAC,MAA0B,EAAE,OAAmB;QACnE,sCAAsC;QACtC,MAAM,OAAO,GAAG,IAAI,8BAAe,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC;QAE1E,MAAM,OAAO,GAAG,yBAAe,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAEnF,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,CAAC,oBAAoB,CACvE,IAAI,CAAC,UAAU,EACf,OAAO,EACP,IAAI,CAAC,SAAS,EACd,OAAO,EACP,eAAe,CAChB,CAAC;QAEF,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;YACpB,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;SAC9D;QAED,MAAM,GAAG,GAAG,IAAA,0CAAgC,EAAC;YAC3C,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAA,iCAAkB,EAAC,IAAI,CAAC,SAAS,CAAC;YAC5C,OAAO,EAAE,CAAC,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,sBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACvF,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,+BAAqB,CAAC,MAAM;YACxC,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,YAAY,GAAwB,MAAM,IAAI,CAAC,UAAU;aAC5D,kBAAkB,CAAC,IAAA,iCAAkB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtD,EAAE,EAAE,CAAC;QACR,MAAM,OAAO,GAAG,kBAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9E,MAAM,GAAG,GAAG,kBAAQ,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACjC,OAAO;gBACL,KAAK,EAAE,CAAC,CAAC,YAAY;gBACrB,OAAO,EAAE,CAAC,CAAC,cAAc;gBACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9E,MAAM,GAAG,GAAG,kBAAQ,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEO,OAAO,CAAC,GAAwC;QACtD,MAAM,IAAI,GAAU,EAAE,CAAC;QAEvB,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/D;QAED,4BAA4B;QAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAElE,cAAc;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpD,uCAAuC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,IACE,IAAI,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,sBAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC;YAErF,OAAO,IAAI,CAAC;QAEd,MAAM,QAAQ,GAAG,sBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,8BAAe,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAC1E,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,sBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,CACP,IAAA,uBAAS,EAAC,YAAY,EAAE;YACtB,YAAY,EAAE,IAAI,CAAC,KAAK;YACxB,cAAc,EAAE,OAAO;YACvB,QAAQ;YACR,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;YACZ,gBAAgB,EAAE,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,OAAO;YACP,UAAU,EAAE,EAAE;SACf,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAC/B,MAAe,EACf,UAAkB,EAClB,KAAa,EACb,OAAwB,EACxB,eAAiC;QAEjC,MAAM,OAAO,GAAW,IAAA,+BAAqB,EAAC,KAAK,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAEzC,MAAM,GAAG,GAA4B,EAAE,CAAC;QAExC,IAAI,MAAM,yBAAe,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC;YAC3E,OAAO,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;QAE7C,eAAe,GAAG,eAAe,IAAI,CAAC,MAAM,MAAM,CAAC,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhF,gEAAgE;QAChE,MAAM,OAAO,GAAG,IAAA,qDAA2C,EAAC;YAC1D,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,kBAAQ;YAChB,eAAe;SAChB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAE1B,+DAA+D;QAC/D,kBAAkB;QAClB,MAAM,QAAQ,GAAG,IAAA,2CAAiC,EAAC;YACjD,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,IAAA,iCAAkB,EAAC,KAAK,CAAC;YACnC,OAAO,EAAE,OAAO;YAChB,eAAe;SAChB,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;gBAC1B,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAA,iCAAuB,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;aAC3F;SACF,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG;SACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,MAAe,EACf,MAAc,EACd,KAAa,EACb,GAAQ,EACR,UAAkB,EAClB,eAAiC;QAEjC,eAAe,GAAG,eAAe,IAAI,CAAC,MAAM,MAAM,CAAC,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhF,IAAI,GAAG,GAA4B,EAAE,CAAC;QAEtC,kCAAkC;QAClC,MAAM,UAAU,GAAG,yBAAe,CAAC,YAAY,CAAC,KAAK,EAAE;YACrD,KAAK,EAAE,GAAG,CAAC,YAAY;YACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,cAAc;SAC5B,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,MAAM,oBAAoB,CAAC,oBAAoB,CAC7F,MAAM,EACN,UAAU,EACV,KAAK,EACL,UAAU,EACV,eAAe,CAChB,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAEzB,uCAAuC;QACvC,MAAM,SAAS,GAAG,yBAAe,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,EACJ,QAAQ,EAAE,CAAC,WAAW,CAAC,EACvB,GAAG,EAAE,gBAAgB,GACtB,GAAG,MAAM,oBAAoB,CAAC,oBAAoB,CACjD,MAAM,EACN,UAAU,EACV,MAAM,EACN,SAAS,EACT,eAAe,CAChB,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAE9B,IAAI,KAAK,GAAa,CAAC,GAAG,OAAO,EAAE,WAAY,CAAC,CAAC;QAEjD,wBAAwB;QACxB,MAAM,IAAI,GAAe,MAAM,yBAAe,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAY,CAAC,CAAC;QAE9F,oGAAoG;QACpG,6GAA6G;QAC7G,oCAAoC;QACpC,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAA,uBAAS,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEnC,qEAAqE;QACrE,4EAA4E;QAC5E,MAAM,OAAO,GAAW,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;QAE9C,MAAM,OAAO,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QACnF,MAAM,cAAc,GAAW,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,yBAAe,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAElE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,EAAE,GAAG,oBAAoB,CAAC,gBAAgB,CAAC;YACxD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YAEtF,qDAAqD;YACrD,iDAAiD;YACjD,+DAA+D;YAC/D,MAAM,SAAS,GAAW,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;YACvD,MAAM,MAAM,GAAe,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;YAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,4FAA4F;gBAC5F,qDAAqD;gBACrD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,CAAC,EACtC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,CAC7C,CAAC;gBACF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;aACzB;YAED,MAAM,MAAM,GAAG,IAAA,0CAAgC,EAAC;gBAC9C,OAAO,EAAE;oBACP,oBAAoB,CAAC,UAAU;oBAC/B,sBAAQ,CAAC,KAAK,CAAC,MAAM,CACnB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChB,sBAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAC/E,CACF;oBACD,MAAM;oBACN,MAAM;iBACP;gBACD,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAA,iCAAkB,EAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,oBAAoB,CAAC,gBAAgB;gBAC3C,UAAU,EAAE,+BAAqB,CAAC,MAAM;gBACxC,eAAe;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;YACf,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM;gBACV,MAAM,EAAE;oBACN,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;oBACtB,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAA,iCAAuB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;iBACvF;aACF,CAAC,CAAC;SACJ;QAED,MAAM,MAAM,GAAG,IAAA,0CAAgC,EAAC;YAC9C,OAAO,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAA,uBAAS,EAAC,GAAG,CAAC,CAAC;YACzD,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAA,iCAAkB,EAAC,MAAM,CAAC;YACpC,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,+BAAqB,CAAC,MAAM;YACxC,eAAe;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAClC,CAAC;IAEO,gBAAgB,CACtB,KAA4B,EAC5B,WAAmB,EACnB,iBAA0B,IAAI;QAE9B,OAAO,IAAI,0CAA2B,CACpC,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;;AAvYH,oDAwYC"}
@@ -0,0 +1,3 @@
1
+ export * from "./core";
2
+ export * from "./storage";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
18
+ const core_1 = require("./core");
19
+ (0, sdk_connect_1.registerProtocol)("Algorand", "WormholeCore", core_1.AlgorandWormholeCore);
20
+ __exportStar(require("./core"), exports);
21
+ __exportStar(require("./storage"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAoE;AACpE,iCAA8C;AAE9C,IAAA,8BAAgB,EAAC,UAAU,EAAE,cAAc,EAAE,2BAAoB,CAAC,CAAC;AAEnE,yCAAuB;AACvB,4CAA0B"}
@@ -0,0 +1,56 @@
1
+ import { Chain, TokenId, WormholeMessageId } from "@wormhole-foundation/sdk-connect";
2
+ import { Algodv2, LogicSigAccount } from "algosdk";
3
+ export declare const SEED_AMT: number;
4
+ export declare const MAX_KEYS: number;
5
+ export declare const MAX_BYTES_PER_KEY: number;
6
+ export declare const BITS_PER_BYTE: number;
7
+ export declare const BITS_PER_KEY: number;
8
+ export declare const MAX_BYTES: number;
9
+ export declare const MAX_BITS: number;
10
+ export interface PopulateData {
11
+ appId: bigint;
12
+ appAddress: Uint8Array;
13
+ address: Uint8Array;
14
+ idx: bigint;
15
+ }
16
+ export declare const varint: {
17
+ _limit: number;
18
+ encodingLength: (value: number) => number;
19
+ encode: (i: bigint | number, buffer?: ArrayBuffer, byteOffset?: number) => Uint8Array;
20
+ decode: (data: Uint8Array, offset?: number) => number;
21
+ };
22
+ export declare const StorageLogicSig: {
23
+ forMessageId: (appId: bigint, whm: WormholeMessageId) => LogicSigAccount;
24
+ forWrappedAsset: (appId: bigint, token: TokenId<Chain>) => LogicSigAccount;
25
+ forNativeAsset: (appId: bigint, tokenId: bigint) => LogicSigAccount;
26
+ forGuardianSet: (appId: bigint, idx: bigint | number) => LogicSigAccount;
27
+ forEmitter: (appId: bigint, emitter: Uint8Array) => LogicSigAccount;
28
+ _encode: (data: bigint | Uint8Array) => string[];
29
+ fromData: (data: PopulateData) => LogicSigAccount;
30
+ /**
31
+ * Returns the local data for an application ID
32
+ * @param client Algodv2 client
33
+ * @param appId Application ID of interest
34
+ * @param address Address of the account
35
+ * @returns Promise with Uint8Array of data squirreled away
36
+ */
37
+ decodeLocalState: (client: Algodv2, appId: bigint, address: string) => Promise<Uint8Array>;
38
+ /**
39
+ * This function is used to check if a VAA has been redeemed by looking at a specific bit
40
+ * @param client AlgodV2 client
41
+ * @param appId Application Id
42
+ * @param addr Wallet address. Someone has to pay for this
43
+ * @param seq The sequence number of the redemption
44
+ * @returns True, if the bit was set and VAA was redeemed, False otherwise
45
+ */
46
+ checkBitsSet: (client: Algodv2, appId: bigint, addr: string, seq: bigint) => Promise<boolean>;
47
+ /**
48
+ * Checks to see if the account exists for the application
49
+ * @param client An Algodv2 client
50
+ * @param appId Application ID
51
+ * @param acctAddr Account address to check
52
+ * @returns True, if account exists for application, False otherwise
53
+ */
54
+ storageAccountExists: (client: Algodv2, address: string, appId: bigint) => Promise<boolean>;
55
+ };
56
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,iBAAiB,EAIlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAkD,MAAM,SAAS,CAAC;AAGnG,eAAO,MAAM,QAAQ,EAAE,MAAgB,CAAC;AACxC,eAAO,MAAM,QAAQ,EAAE,MAAW,CAAC;AACnC,eAAO,MAAM,iBAAiB,EAAE,MAAY,CAAC;AAC7C,eAAO,MAAM,aAAa,EAAE,MAAU,CAAC;AACvC,eAAO,MAAM,YAAY,EAAE,MAA0C,CAAC;AACtE,eAAO,MAAM,SAAS,EAAE,MAAqC,CAAC;AAC9D,eAAO,MAAM,QAAQ,EAAE,MAAkC,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAGD,eAAO,MAAM,MAAM;;4BAGO,MAAM;gBAKlB,MAAM,GAAG,MAAM,WAAW,WAAW,eAAe,MAAM;mBAsBvD,UAAU;CAa1B,CAAC;AAEF,eAAO,MAAM,eAAe;0BAEJ,MAAM,OAAO,iBAAiB;6BAc3B,MAAM,SAAS,QAAQ,KAAK,CAAC;4BAW9B,MAAM,WAAW,MAAM;4BAUvB,MAAM,OAAO,MAAM,GAAG,MAAM;wBAShC,MAAM,WAAW,UAAU;oBAS/B,MAAM,GAAG,UAAU;qBAIlB,YAAY;IAoB7B;;;;;;OAMG;+BAC8B,OAAO,SAAS,MAAM,WAAW,MAAM;IAqCxE;;;;;;;OAOG;2BAC0B,OAAO,SAAS,MAAM,QAAQ,MAAM,OAAO,MAAM;IAuC9E;;;;;;OAMG;mCACkC,OAAO,WAAW,MAAM,SAAS,MAAM;CAS7E,CAAC"}