@wormhole-foundation/sdk-algorand 0.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +5 -0
  2. package/dist/cjs/address.d.ts +27 -0
  3. package/dist/cjs/address.d.ts.map +1 -0
  4. package/dist/cjs/address.js +76 -0
  5. package/dist/cjs/address.js.map +1 -0
  6. package/dist/cjs/chain.d.ts +5 -0
  7. package/dist/cjs/chain.d.ts.map +1 -0
  8. package/dist/cjs/chain.js +8 -0
  9. package/dist/cjs/chain.js.map +1 -0
  10. package/dist/cjs/index.d.ts +7 -0
  11. package/dist/cjs/index.d.ts.map +1 -0
  12. package/dist/cjs/index.js +23 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/platform.d.ts +25 -0
  15. package/dist/cjs/platform.d.ts.map +1 -0
  16. package/dist/cjs/platform.js +135 -0
  17. package/dist/cjs/platform.js.map +1 -0
  18. package/dist/cjs/signer.d.ts +14 -0
  19. package/dist/cjs/signer.d.ts.map +1 -0
  20. package/dist/cjs/signer.js +58 -0
  21. package/dist/cjs/signer.js.map +1 -0
  22. package/dist/cjs/testing/index.d.ts +2 -0
  23. package/dist/cjs/testing/index.d.ts.map +1 -0
  24. package/dist/cjs/testing/index.js +18 -0
  25. package/dist/cjs/testing/index.js.map +1 -0
  26. package/dist/cjs/testing/signer.d.ts +14 -0
  27. package/dist/cjs/testing/signer.d.ts.map +1 -0
  28. package/dist/cjs/testing/signer.js +58 -0
  29. package/dist/cjs/testing/signer.js.map +1 -0
  30. package/dist/cjs/types.d.ts +27 -0
  31. package/dist/cjs/types.d.ts.map +1 -0
  32. package/dist/cjs/types.js +15 -0
  33. package/dist/cjs/types.js.map +1 -0
  34. package/dist/cjs/unsignedTransaction.d.ts +11 -0
  35. package/dist/cjs/unsignedTransaction.d.ts.map +1 -0
  36. package/dist/cjs/unsignedTransaction.js +19 -0
  37. package/dist/cjs/unsignedTransaction.js.map +1 -0
  38. package/dist/esm/address.d.ts +27 -0
  39. package/dist/esm/address.d.ts.map +1 -0
  40. package/dist/esm/address.js +72 -0
  41. package/dist/esm/address.js.map +1 -0
  42. package/dist/esm/chain.d.ts +5 -0
  43. package/dist/esm/chain.d.ts.map +1 -0
  44. package/dist/esm/chain.js +4 -0
  45. package/dist/esm/chain.js.map +1 -0
  46. package/dist/esm/index.d.ts +7 -0
  47. package/dist/esm/index.d.ts.map +1 -0
  48. package/dist/esm/index.js +7 -0
  49. package/dist/esm/index.js.map +1 -0
  50. package/dist/esm/platform.d.ts +25 -0
  51. package/dist/esm/platform.d.ts.map +1 -0
  52. package/dist/esm/platform.js +131 -0
  53. package/dist/esm/platform.js.map +1 -0
  54. package/dist/esm/signer.d.ts +14 -0
  55. package/dist/esm/signer.d.ts.map +1 -0
  56. package/dist/esm/signer.js +53 -0
  57. package/dist/esm/signer.js.map +1 -0
  58. package/dist/esm/testing/index.d.ts +2 -0
  59. package/dist/esm/testing/index.d.ts.map +1 -0
  60. package/dist/esm/testing/index.js +2 -0
  61. package/dist/esm/testing/index.js.map +1 -0
  62. package/dist/esm/testing/signer.d.ts +14 -0
  63. package/dist/esm/testing/signer.d.ts.map +1 -0
  64. package/dist/esm/testing/signer.js +53 -0
  65. package/dist/esm/testing/signer.js.map +1 -0
  66. package/dist/esm/types.d.ts +27 -0
  67. package/dist/esm/types.d.ts.map +1 -0
  68. package/dist/esm/types.js +11 -0
  69. package/dist/esm/types.js.map +1 -0
  70. package/dist/esm/unsignedTransaction.d.ts +11 -0
  71. package/dist/esm/unsignedTransaction.d.ts.map +1 -0
  72. package/dist/esm/unsignedTransaction.js +15 -0
  73. package/dist/esm/unsignedTransaction.js.map +1 -0
  74. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  75. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  76. package/package.json +49 -0
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # Algorand Context
2
+
3
+ Supported chains:
4
+
5
+ - Algorand
@@ -0,0 +1,27 @@
1
+ import { Address, Platform, UniversalAddress } from "@wormhole-foundation/sdk-connect";
2
+ import { AnyAlgorandAddress } from "./types";
3
+ export declare const AlgorandZeroAddress = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ";
4
+ export declare class AlgorandAddress implements Address {
5
+ static readonly byteSize = 32;
6
+ static readonly platform: Platform;
7
+ readonly type: string;
8
+ readonly address: Uint8Array;
9
+ constructor(address: AnyAlgorandAddress);
10
+ unwrap(): string;
11
+ toString(): string;
12
+ toNative(): this;
13
+ toUint8Array(): Uint8Array;
14
+ toUniversalAddress(): UniversalAddress;
15
+ toBigInt(): bigint;
16
+ toInt(): number;
17
+ equals(other: AlgorandAddress | UniversalAddress): boolean;
18
+ static instanceof(address: any): address is AlgorandAddress;
19
+ }
20
+ declare global {
21
+ namespace Wormhole {
22
+ interface PlatformToNativeAddressMapping {
23
+ Algorand: AlgorandAddress;
24
+ }
25
+ }
26
+ }
27
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,gBAAgB,EAGjB,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EAAE,kBAAkB,EAAiC,MAAM,SAAS,CAAC;AAE5E,eAAO,MAAM,mBAAmB,+DAA+D,CAAC;AAKhG,qBAAa,eAAgB,YAAW,OAAO;IAC7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAM;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAa;IAE/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IAEjC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;gBAEjB,OAAO,EAAE,kBAAkB;IAwBvC,MAAM,IAAI,MAAM;IAGhB,QAAQ;IAGR,QAAQ;IAGR,YAAY;IAGZ,kBAAkB;IAIlB,QAAQ,IAAI,MAAM;IAIlB,KAAK,IAAI,MAAM;IAIf,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,GAAG,OAAO;IAO1D,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,eAAe;CAG5D;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ,CAAC;QACjB,UAAU,8BAA8B;YACtC,QAAQ,EAAE,eAAe,CAAC;SAC3B;KACF;CACF"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlgorandAddress = exports.AlgorandZeroAddress = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const algosdk_1 = require("algosdk");
6
+ const platform_1 = require("./platform");
7
+ const types_1 = require("./types");
8
+ exports.AlgorandZeroAddress = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ";
9
+ // Note: for ASA/App IDs we encode them as 8 bytes at the start of
10
+ // the 32 byte adddress bytes.
11
+ class AlgorandAddress {
12
+ static byteSize = 32;
13
+ static platform = types_1._platform;
14
+ type = "Native";
15
+ address;
16
+ constructor(address) {
17
+ if (AlgorandAddress.instanceof(address)) {
18
+ this.address = address.address;
19
+ }
20
+ else if (sdk_connect_1.UniversalAddress.instanceof(address)) {
21
+ this.address = address.toUint8Array();
22
+ }
23
+ else if (address instanceof Uint8Array && address.byteLength === AlgorandAddress.byteSize) {
24
+ this.address = address;
25
+ }
26
+ else if (typeof address === "string" && (0, algosdk_1.isValidAddress)(address)) {
27
+ this.address = (0, algosdk_1.decodeAddress)(address).publicKey;
28
+ }
29
+ else if (typeof address === "string" && !isNaN(parseInt(address))) {
30
+ this.address = sdk_connect_1.encoding.bytes.zpad(sdk_connect_1.encoding.bignum.toBytes(BigInt(address), 8), AlgorandAddress.byteSize);
31
+ }
32
+ else if (typeof address === "bigint") {
33
+ this.address = sdk_connect_1.encoding.bytes.zpad(sdk_connect_1.encoding.bignum.toBytes(address, 8), AlgorandAddress.byteSize);
34
+ }
35
+ else if (address instanceof Uint8Array && address.byteLength === 8) {
36
+ this.address = sdk_connect_1.encoding.bytes.zpad(address, AlgorandAddress.byteSize);
37
+ }
38
+ else
39
+ throw new Error(`Invalid Algorand address or ASA ID: ${address}`);
40
+ }
41
+ unwrap() {
42
+ return this.toString();
43
+ }
44
+ toString() {
45
+ return (0, algosdk_1.encodeAddress)(this.address);
46
+ }
47
+ toNative() {
48
+ return this;
49
+ }
50
+ toUint8Array() {
51
+ return this.address;
52
+ }
53
+ toUniversalAddress() {
54
+ return new sdk_connect_1.UniversalAddress(this.toUint8Array());
55
+ }
56
+ toBigInt() {
57
+ return sdk_connect_1.encoding.bignum.decode(this.toUint8Array().slice(24, 32));
58
+ }
59
+ toInt() {
60
+ return (0, types_1.safeBigIntToNumber)(this.toBigInt());
61
+ }
62
+ equals(other) {
63
+ if (AlgorandAddress.instanceof(other)) {
64
+ return other.address === this.address;
65
+ }
66
+ else {
67
+ return this.toUniversalAddress().equals(other);
68
+ }
69
+ }
70
+ static instanceof(address) {
71
+ return address.constructor.platform === platform_1.AlgorandPlatform._platform;
72
+ }
73
+ }
74
+ exports.AlgorandAddress = AlgorandAddress;
75
+ (0, sdk_connect_1.registerNative)(types_1._platform, AlgorandAddress);
76
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ChainContext, Network } from "@wormhole-foundation/sdk-connect";
2
+ import { AlgorandChains } from "./types";
3
+ export declare class AlgorandChain<N extends Network = Network, C extends AlgorandChains = AlgorandChains> extends ChainContext<N, C> {
4
+ }
5
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,aAAa,CACxB,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,CAAC,SAAS,cAAc,GAAG,cAAc,CACzC,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CAAG"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlgorandChain = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ class AlgorandChain extends sdk_connect_1.ChainContext {
6
+ }
7
+ exports.AlgorandChain = AlgorandChain;
8
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":";;;AAAA,kEAAyE;AAGzE,MAAa,aAGX,SAAQ,0BAAkB;CAAG;AAH/B,sCAG+B"}
@@ -0,0 +1,7 @@
1
+ export * from "./address";
2
+ export * from "./chain";
3
+ export * from "./platform";
4
+ export * from "./types";
5
+ export * from "./unsignedTransaction";
6
+ export * from "./signer";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,23 @@
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
+ __exportStar(require("./address"), exports);
18
+ __exportStar(require("./chain"), exports);
19
+ __exportStar(require("./platform"), exports);
20
+ __exportStar(require("./types"), exports);
21
+ __exportStar(require("./unsignedTransaction"), exports);
22
+ __exportStar(require("./signer"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,0CAAwB;AACxB,wDAAsC;AACtC,2CAAyB"}
@@ -0,0 +1,25 @@
1
+ import { Balances, Chain, ChainsConfig, Network, PlatformContext, SignedTx, StaticPlatformMethods, TokenId, TxHash } from "@wormhole-foundation/sdk-connect";
2
+ import { Algodv2 } from "algosdk";
3
+ import { AlgorandChain } from "./chain";
4
+ import { AlgorandChains, AlgorandPlatformType, AnyAlgorandAddress } from "./types";
5
+ /**
6
+ * @category Algorand
7
+ */
8
+ export declare class AlgorandPlatform<N extends Network> extends PlatformContext<N, AlgorandPlatformType> implements StaticPlatformMethods<AlgorandPlatformType, typeof AlgorandPlatform> {
9
+ static _platform: "Algorand";
10
+ constructor(network: N, _config?: ChainsConfig<N, AlgorandPlatformType>);
11
+ getRpc<C extends AlgorandChains>(chain: C): Algodv2;
12
+ getChain<C extends AlgorandChains>(chain: C): AlgorandChain<N, C>;
13
+ static nativeTokenId<N extends Network, C extends AlgorandChains>(network: N, chain: C): TokenId<C>;
14
+ static isNativeTokenId<N extends Network, C extends AlgorandChains>(network: N, chain: C, tokenId: TokenId): boolean;
15
+ static isSupportedChain(chain: Chain): boolean;
16
+ static getDecimals(chain: Chain, rpc: Algodv2, token: AnyAlgorandAddress): Promise<number>;
17
+ static getBalance(chain: Chain, rpc: Algodv2, walletAddr: string, token: AnyAlgorandAddress): Promise<bigint | null>;
18
+ static getBalances(chain: Chain, rpc: Algodv2, walletAddr: string, tokens: AnyAlgorandAddress[]): Promise<Balances>;
19
+ static sendWait(chain: Chain, rpc: Algodv2, stxns: SignedTx[]): Promise<TxHash[]>;
20
+ static getLatestBlock(rpc: Algodv2): Promise<number>;
21
+ static getLatestFinalizedBlock(rpc: Algodv2): Promise<number>;
22
+ static chainFromChainId(genesisId: string): [Network, AlgorandChains];
23
+ static chainFromRpc(rpc: Algodv2): Promise<[Network, AlgorandChains]>;
24
+ }
25
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,OAAO,EACP,eAAe,EACf,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,MAAM,EAOP,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,OAAO,EAKR,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAa,MAAM,SAAS,CAAC;AAE9F;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAC7C,SAAQ,eAAe,CAAC,CAAC,EAAE,oBAAoB,CAC/C,YAAW,qBAAqB,CAAC,oBAAoB,EAAE,OAAO,gBAAgB,CAAC;IAE/E,MAAM,CAAC,SAAS,aAAa;gBAEjB,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,oBAAoB,CAAC;IAIvE,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO;IAKnD,QAAQ,CAAC,CAAC,SAAS,cAAc,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAKjE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,EAC9D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,CAAC,CAAC;IAMb,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,EAChE,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,OAAO,GACf,OAAO;IAOV,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;WAKjC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;WAYnF,UAAU,CACrB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;WAaZ,WAAW,CACtB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,kBAAkB,EAAE,GAC3B,OAAO,CAAC,QAAQ,CAAC;WAoBP,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WA0B1E,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;WAS7C,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IASnE,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC;WAYxD,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;CAK5E"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlgorandPlatform = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const algosdk_1 = require("algosdk");
6
+ const address_1 = require("./address");
7
+ const chain_1 = require("./chain");
8
+ const types_1 = require("./types");
9
+ /**
10
+ * @category Algorand
11
+ */
12
+ class AlgorandPlatform extends sdk_connect_1.PlatformContext {
13
+ static _platform = types_1._platform;
14
+ constructor(network, _config) {
15
+ super(network, _config ?? (0, sdk_connect_1.networkPlatformConfigs)(network, AlgorandPlatform._platform));
16
+ }
17
+ getRpc(chain) {
18
+ if (chain in this.config)
19
+ return new algosdk_1.Algodv2("", this.config[chain].rpc);
20
+ throw new Error("No configuration available for chain: " + chain);
21
+ }
22
+ getChain(chain) {
23
+ if (chain in this.config)
24
+ return new chain_1.AlgorandChain(chain, this);
25
+ throw new Error("No configuration available for chain: " + chain);
26
+ }
27
+ static nativeTokenId(network, chain) {
28
+ if (!AlgorandPlatform.isSupportedChain(chain))
29
+ throw new Error(`invalid chain for Algorand: ${chain}`);
30
+ return sdk_connect_1.Wormhole.chainAddress(chain, address_1.AlgorandZeroAddress);
31
+ }
32
+ static isNativeTokenId(network, chain, tokenId) {
33
+ if (!AlgorandPlatform.isSupportedChain(chain))
34
+ return false;
35
+ if (tokenId.chain !== chain)
36
+ return false;
37
+ const native = this.nativeTokenId(network, chain);
38
+ return native == tokenId;
39
+ }
40
+ static isSupportedChain(chain) {
41
+ const platform = (0, sdk_connect_1.chainToPlatform)(chain);
42
+ return platform === AlgorandPlatform._platform;
43
+ }
44
+ static async getDecimals(chain, rpc, token) {
45
+ // It may come in as a universal address
46
+ const assetId = (0, sdk_connect_1.isNative)(token) ? 0 : new address_1.AlgorandAddress(token).toInt();
47
+ if (assetId === 0)
48
+ return sdk_connect_1.decimals.nativeDecimals(AlgorandPlatform._platform);
49
+ const assetResp = await rpc.getAssetByID(assetId).do();
50
+ const asset = algosdk_1.modelsv2.Asset.from_obj_for_encoding(assetResp);
51
+ if (!asset.params || !asset.params.decimals)
52
+ throw new Error("Could not fetch token details");
53
+ return Number(asset.params.decimals);
54
+ }
55
+ static async getBalance(chain, rpc, walletAddr, token) {
56
+ const assetId = (0, sdk_connect_1.isNative)(token) ? 0 : new address_1.AlgorandAddress(token).toInt();
57
+ if (assetId === 0) {
58
+ const resp = await rpc.accountInformation(walletAddr).do();
59
+ const accountInfo = algosdk_1.modelsv2.Account.from_obj_for_encoding(resp);
60
+ return BigInt(accountInfo.amount);
61
+ }
62
+ const acctAssetInfoResp = await rpc.accountAssetInformation(walletAddr, assetId).do();
63
+ const accountAssetInfo = algosdk_1.modelsv2.AssetHolding.from_obj_for_encoding(acctAssetInfoResp);
64
+ return BigInt(accountAssetInfo.amount);
65
+ }
66
+ static async getBalances(chain, rpc, walletAddr, tokens) {
67
+ let native;
68
+ if (tokens.includes("native")) {
69
+ const acctInfoResp = await rpc.accountInformation(walletAddr).do();
70
+ const accountInfo = algosdk_1.modelsv2.Account.from_obj_for_encoding(acctInfoResp);
71
+ native = BigInt(accountInfo.amount);
72
+ }
73
+ const balancesArr = tokens.map(async (token) => {
74
+ if ((0, sdk_connect_1.isNative)(token)) {
75
+ return { ["native"]: native };
76
+ }
77
+ const asaId = new address_1.AlgorandAddress(token).toInt();
78
+ const acctAssetInfoResp = await rpc.accountAssetInformation(walletAddr, asaId).do();
79
+ const accountAssetInfo = algosdk_1.modelsv2.AssetHolding.from_obj_for_encoding(acctAssetInfoResp);
80
+ return BigInt(accountAssetInfo.amount);
81
+ });
82
+ return balancesArr.reduce((obj, item) => Object.assign(obj, item), {});
83
+ }
84
+ static async sendWait(chain, rpc, stxns) {
85
+ const rounds = 4;
86
+ const decodedStxns = stxns.map((val, idx) => {
87
+ const decodedStxn = (0, algosdk_1.decodeSignedTransaction)(val);
88
+ return decodedStxn;
89
+ });
90
+ const txIds = decodedStxns.map((val, idx) => {
91
+ const id = val.txn.txID();
92
+ return id;
93
+ });
94
+ const { txId } = await rpc.sendRawTransaction(stxns).do();
95
+ if (!txId) {
96
+ throw new Error("Transaction(s) failed to send");
97
+ }
98
+ const confirmResp = await (0, algosdk_1.waitForConfirmation)(rpc, txId, rounds);
99
+ const ptr = algosdk_1.modelsv2.PendingTransactionResponse.from_obj_for_encoding(confirmResp);
100
+ if (!ptr.confirmedRound) {
101
+ throw new Error(`Transaction(s) could not be confirmed in ${rounds} rounds`);
102
+ }
103
+ return txIds;
104
+ }
105
+ static async getLatestBlock(rpc) {
106
+ const statusResp = await rpc.status().do();
107
+ const status = algosdk_1.modelsv2.NodeStatusResponse.from_obj_for_encoding(statusResp);
108
+ if (!status.lastRound) {
109
+ throw new Error("Error getting status from node");
110
+ }
111
+ return Number(status.lastRound);
112
+ }
113
+ static async getLatestFinalizedBlock(rpc) {
114
+ const statusResp = await rpc.status().do();
115
+ const status = algosdk_1.modelsv2.NodeStatusResponse.from_obj_for_encoding(statusResp);
116
+ if (!status.lastRound) {
117
+ throw new Error("Error getting status from node");
118
+ }
119
+ return Number(status.lastRound);
120
+ }
121
+ static chainFromChainId(genesisId) {
122
+ const networkChainPair = sdk_connect_1.nativeChainIds.platformNativeChainIdToNetworkChain(AlgorandPlatform._platform, genesisId);
123
+ if (networkChainPair === undefined)
124
+ throw new Error(`Unknown native chain id ${genesisId}`);
125
+ const [network, chain] = networkChainPair;
126
+ return [network, chain];
127
+ }
128
+ static async chainFromRpc(rpc) {
129
+ const versionResp = await rpc.versionsCheck().do();
130
+ const version = algosdk_1.modelsv2.Version.from_obj_for_encoding(versionResp);
131
+ return this.chainFromChainId(version.genesisId);
132
+ }
133
+ }
134
+ exports.AlgorandPlatform = AlgorandPlatform;
135
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Network, SignOnlySigner, SignedTx, Signer, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
2
+ import { Account, Algodv2 } from "algosdk";
3
+ import { AlgorandChains } from "./types";
4
+ export declare function getAlgorandSigner(rpc: Algodv2, mnemonic: string): Promise<Signer>;
5
+ export declare class AlgorandSigner<N extends Network, C extends AlgorandChains> implements SignOnlySigner<N, C> {
6
+ private _chain;
7
+ private _debug;
8
+ _account: Account;
9
+ constructor(_chain: C, _rpc: Algodv2, mnemonic: string, _debug?: boolean);
10
+ chain(): C;
11
+ address(): string;
12
+ sign(unsignedTxns: UnsignedTransaction[]): Promise<SignedTx[]>;
13
+ }
14
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAsC,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;AAGhE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAGjB;AAGD,qBAAa,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CACrE,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAI7B,OAAO,CAAC,MAAM;IAGd,OAAO,CAAC,MAAM;IALhB,QAAQ,EAAE,OAAO,CAAC;gBAER,MAAM,EAAE,CAAC,EACjB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EACR,MAAM,GAAE,OAAe;IAKjC,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IAIX,IAAI,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAmCrE"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlgorandSigner = exports.getAlgorandSigner = void 0;
4
+ const algosdk_1 = require("algosdk");
5
+ const platform_1 = require("./platform");
6
+ async function getAlgorandSigner(rpc, mnemonic) {
7
+ const [network, chain] = await platform_1.AlgorandPlatform.chainFromRpc(rpc);
8
+ return new AlgorandSigner(chain, rpc, mnemonic);
9
+ }
10
+ exports.getAlgorandSigner = getAlgorandSigner;
11
+ // AlgorandSigner implements SignOnlySender
12
+ class AlgorandSigner {
13
+ _chain;
14
+ _debug;
15
+ _account;
16
+ constructor(_chain, _rpc, mnemonic, _debug = false) {
17
+ this._chain = _chain;
18
+ this._debug = _debug;
19
+ this._account = (0, algosdk_1.mnemonicToSecretKey)(mnemonic);
20
+ }
21
+ chain() {
22
+ return this._chain;
23
+ }
24
+ address() {
25
+ return this._account.addr;
26
+ }
27
+ async sign(unsignedTxns) {
28
+ const signed = [];
29
+ const ungrouped = unsignedTxns.map((val, idx) => {
30
+ return val.transaction.tx;
31
+ });
32
+ const grouped = (0, algosdk_1.assignGroupID)(ungrouped);
33
+ // Replace the ungrouped Transactions with grouped Transactions
34
+ const groupedAlgoUnsignedTxns = unsignedTxns.map((val, idx) => {
35
+ val.transaction.tx = grouped[idx];
36
+ return val;
37
+ });
38
+ for (const algoUnsignedTxn of groupedAlgoUnsignedTxns) {
39
+ const { description, transaction: tsp } = algoUnsignedTxn;
40
+ const { tx, signer } = tsp;
41
+ if (this._debug) {
42
+ console.log(tx._getDictForDisplay());
43
+ console.log(tx.txID());
44
+ }
45
+ if (signer) {
46
+ console.log(`Signing: ${description} with signer ${signer.address} for address ${this.address()}`);
47
+ signed.push(await signer.signTxn(tx));
48
+ }
49
+ else {
50
+ console.log(`Signing: ${description} without signer for address ${this.address()}`);
51
+ signed.push(tx.signTxn(this._account.sk));
52
+ }
53
+ }
54
+ return signed;
55
+ }
56
+ }
57
+ exports.AlgorandSigner = AlgorandSigner;
58
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";;;AAOA,qCAA+E;AAE/E,yCAA8C;AAEvC,KAAK,UAAU,iBAAiB,CACrC,GAAY,EACZ,QAAgB;IAEhB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,2BAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO,IAAI,cAAc,CAA+B,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAChF,CAAC;AAND,8CAMC;AAED,2CAA2C;AAC3C,MAAa,cAAc;IAKf;IAGA;IALV,QAAQ,CAAU;IAClB,YACU,MAAS,EACjB,IAAa,EACb,QAAgB,EACR,SAAkB,KAAK;QAHvB,WAAM,GAAN,MAAM,CAAG;QAGT,WAAM,GAAN,MAAM,CAAiB;QAE/B,IAAI,CAAC,QAAQ,GAAG,IAAA,6BAAmB,EAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,YAAmC;QAC5C,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9C,OAAO,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAC;QAEzC,+DAA+D;QAC/D,MAAM,uBAAuB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5D,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,eAAe,IAAI,uBAAuB,EAAE;YACrD,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC;YAC1D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAA4B,CAAC;YAEpD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;aACxB;YAED,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,GAAG,CACT,YAAY,WAAW,gBAAgB,MAAM,CAAC,OAAO,gBAAgB,IAAI,CAAC,OAAO,EAAE,EAAE,CACtF,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;aACvC;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,+BAA+B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACpF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3C;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxDD,wCAwDC"}
@@ -0,0 +1,2 @@
1
+ export * from "./signer";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,18 @@
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
+ __exportStar(require("./signer"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
@@ -0,0 +1,14 @@
1
+ import { Network, SignOnlySigner, SignedTx, Signer, UnsignedTransaction } from "@wormhole-foundation/connect-sdk";
2
+ import { Account, Algodv2 } from "algosdk";
3
+ import { AlgorandChains } from "../types";
4
+ export declare function getAlgorandSigner(rpc: Algodv2, mnemonic: string): Promise<Signer>;
5
+ export declare class AlgorandSigner<N extends Network, C extends AlgorandChains = "Algorand"> implements SignOnlySigner<N, C> {
6
+ private _chain;
7
+ private _debug;
8
+ _account: Account;
9
+ constructor(_chain: C, _rpc: Algodv2, mnemonic: string, _debug?: boolean);
10
+ chain(): C;
11
+ address(): string;
12
+ sign(unsignedTxns: UnsignedTransaction[]): Promise<SignedTx[]>;
13
+ }
14
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/testing/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAsC,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAyB,MAAM,UAAU,CAAC;AAGjE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAGjB;AAGD,qBAAa,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,GAAG,UAAU,CAClF,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAI7B,OAAO,CAAC,MAAM;IAGd,OAAO,CAAC,MAAM;IALhB,QAAQ,EAAE,OAAO,CAAC;gBAER,MAAM,EAAE,CAAC,EACjB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EACR,MAAM,GAAE,OAAe;IAKjC,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IAIX,IAAI,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAmCrE"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlgorandSigner = exports.getAlgorandSigner = void 0;
4
+ const algosdk_1 = require("algosdk");
5
+ const platform_1 = require("../platform");
6
+ async function getAlgorandSigner(rpc, mnemonic) {
7
+ const [network, chain] = await platform_1.AlgorandPlatform.chainFromRpc(rpc);
8
+ return new AlgorandSigner(chain, rpc, mnemonic);
9
+ }
10
+ exports.getAlgorandSigner = getAlgorandSigner;
11
+ // AlgorandSigner implements SignOnlySender
12
+ class AlgorandSigner {
13
+ _chain;
14
+ _debug;
15
+ _account;
16
+ constructor(_chain, _rpc, mnemonic, _debug = false) {
17
+ this._chain = _chain;
18
+ this._debug = _debug;
19
+ this._account = (0, algosdk_1.mnemonicToSecretKey)(mnemonic);
20
+ }
21
+ chain() {
22
+ return this._chain;
23
+ }
24
+ address() {
25
+ return this._account.addr;
26
+ }
27
+ async sign(unsignedTxns) {
28
+ const signed = [];
29
+ const ungrouped = unsignedTxns.map((val, idx) => {
30
+ return val.transaction.tx;
31
+ });
32
+ const grouped = (0, algosdk_1.assignGroupID)(ungrouped);
33
+ // Replace the ungrouped Transactions with grouped Transactions
34
+ const groupedAlgoUnsignedTxns = unsignedTxns.map((val, idx) => {
35
+ val.transaction.tx = grouped[idx];
36
+ return val;
37
+ });
38
+ for (const algoUnsignedTxn of groupedAlgoUnsignedTxns) {
39
+ const { description, transaction: tsp } = algoUnsignedTxn;
40
+ const { tx, signer } = tsp;
41
+ if (this._debug) {
42
+ console.log(tx._getDictForDisplay());
43
+ console.log(tx.txID());
44
+ }
45
+ if (signer) {
46
+ console.log(`Signing: ${description} with signer ${signer.address} for address ${this.address()}`);
47
+ signed.push(await signer.signTxn(tx));
48
+ }
49
+ else {
50
+ console.log(`Signing: ${description} without signer for address ${this.address()}`);
51
+ signed.push(tx.signTxn(this._account.sk));
52
+ }
53
+ }
54
+ return signed;
55
+ }
56
+ }
57
+ exports.AlgorandSigner = AlgorandSigner;
58
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/testing/signer.ts"],"names":[],"mappings":";;;AAOA,qCAA+E;AAE/E,0CAA+C;AAExC,KAAK,UAAU,iBAAiB,CACrC,GAAY,EACZ,QAAgB;IAEhB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,2BAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO,IAAI,cAAc,CAA+B,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAChF,CAAC;AAND,8CAMC;AAED,2CAA2C;AAC3C,MAAa,cAAc;IAKf;IAGA;IALV,QAAQ,CAAU;IAClB,YACU,MAAS,EACjB,IAAa,EACb,QAAgB,EACR,SAAkB,KAAK;QAHvB,WAAM,GAAN,MAAM,CAAG;QAGT,WAAM,GAAN,MAAM,CAAiB;QAE/B,IAAI,CAAC,QAAQ,GAAG,IAAA,6BAAmB,EAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,YAAmC;QAC5C,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9C,OAAO,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAC;QAEzC,+DAA+D;QAC/D,MAAM,uBAAuB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5D,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,eAAe,IAAI,uBAAuB,EAAE;YACrD,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC;YAC1D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAA4B,CAAC;YAEpD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;aACxB;YAED,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,GAAG,CACT,YAAY,WAAW,gBAAgB,MAAM,CAAC,OAAO,gBAAgB,IAAI,CAAC,OAAO,EAAE,EAAE,CACtF,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;aACvC;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,+BAA+B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACpF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3C;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxDD,wCAwDC"}
@@ -0,0 +1,27 @@
1
+ import { PlatformToChains, UniversalOrNative } from "@wormhole-foundation/sdk-connect";
2
+ import { Transaction } from "algosdk";
3
+ /**
4
+ * Runtime value for the Algorand Platform
5
+ */
6
+ export declare const _platform: "Algorand";
7
+ /**
8
+ * Compile time Type for the Algorand Platform
9
+ */
10
+ export type AlgorandPlatformType = typeof _platform;
11
+ export type AlgorandChains = PlatformToChains<AlgorandPlatformType>;
12
+ export type UniversalOrAlgorand = UniversalOrNative<AlgorandChains>;
13
+ export type AnyAlgorandAddress = UniversalOrAlgorand | string | Uint8Array | bigint;
14
+ export type LsigSigner = {
15
+ address: string;
16
+ signTxn(txn: Transaction): Promise<Uint8Array>;
17
+ };
18
+ export type TransactionSignerPair = {
19
+ tx: Transaction;
20
+ signer?: LsigSigner;
21
+ };
22
+ export type TransactionSet = {
23
+ accounts: string[];
24
+ txs: TransactionSignerPair[];
25
+ };
26
+ export declare function safeBigIntToNumber(b: bigint): number;
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAAuB,CAAC;AAChD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,SAAS,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAEpF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,WAAW,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,qBAAqB,EAAE,CAAC;CAC9B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKpD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.safeBigIntToNumber = exports._platform = void 0;
4
+ /**
5
+ * Runtime value for the Algorand Platform
6
+ */
7
+ exports._platform = "Algorand";
8
+ function safeBigIntToNumber(b) {
9
+ if (b < BigInt(Number.MIN_SAFE_INTEGER) || b > BigInt(Number.MAX_SAFE_INTEGER)) {
10
+ throw new Error("Integer is unsafe");
11
+ }
12
+ return Number(b);
13
+ }
14
+ exports.safeBigIntToNumber = safeBigIntToNumber;
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACU,QAAA,SAAS,GAAe,UAAU,CAAC;AAyBhD,SAAgB,kBAAkB,CAAC,CAAS;IAC1C,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAC9E,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACtC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AALD,gDAKC"}
@@ -0,0 +1,11 @@
1
+ import { Network, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
2
+ import { AlgorandChains, TransactionSignerPair } from "./types";
3
+ export declare class AlgorandUnsignedTransaction<N extends Network, C extends AlgorandChains> implements UnsignedTransaction<N, C> {
4
+ readonly transaction: TransactionSignerPair;
5
+ readonly network: N;
6
+ readonly chain: C;
7
+ readonly description: string;
8
+ readonly parallelizable: boolean;
9
+ constructor(transaction: TransactionSignerPair, network: N, chain: C, description: string, parallelizable?: boolean);
10
+ }
11
+ //# sourceMappingURL=unsignedTransaction.d.ts.map