@wormhole-foundation/sdk-aptos 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 (83) hide show
  1. package/dist/cjs/address.d.ts +27 -0
  2. package/dist/cjs/address.d.ts.map +1 -0
  3. package/dist/cjs/address.js +84 -0
  4. package/dist/cjs/address.js.map +1 -0
  5. package/dist/cjs/chain.d.ts +5 -0
  6. package/dist/cjs/chain.d.ts.map +1 -0
  7. package/dist/cjs/chain.js +8 -0
  8. package/dist/cjs/chain.js.map +1 -0
  9. package/dist/cjs/constants.d.ts +3 -0
  10. package/dist/cjs/constants.d.ts.map +1 -0
  11. package/dist/cjs/constants.js +6 -0
  12. package/dist/cjs/constants.js.map +1 -0
  13. package/dist/cjs/index.d.ts +8 -0
  14. package/dist/cjs/index.d.ts.map +1 -0
  15. package/dist/cjs/index.js +24 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/platform.d.ts +27 -0
  18. package/dist/cjs/platform.d.ts.map +1 -0
  19. package/dist/cjs/platform.js +128 -0
  20. package/dist/cjs/platform.js.map +1 -0
  21. package/dist/cjs/signer.d.ts +15 -0
  22. package/dist/cjs/signer.d.ts.map +1 -0
  23. package/dist/cjs/signer.js +61 -0
  24. package/dist/cjs/signer.js.map +1 -0
  25. package/dist/cjs/testing/index.d.ts +2 -0
  26. package/dist/cjs/testing/index.d.ts.map +1 -0
  27. package/dist/cjs/testing/index.js +18 -0
  28. package/dist/cjs/testing/index.js.map +1 -0
  29. package/dist/cjs/testing/signer.d.ts +27 -0
  30. package/dist/cjs/testing/signer.d.ts.map +1 -0
  31. package/dist/cjs/testing/signer.js +61 -0
  32. package/dist/cjs/testing/signer.js.map +1 -0
  33. package/dist/cjs/types.d.ts +30 -0
  34. package/dist/cjs/types.d.ts.map +1 -0
  35. package/dist/cjs/types.js +22 -0
  36. package/dist/cjs/types.js.map +1 -0
  37. package/dist/cjs/unsignedTransaction.d.ts +12 -0
  38. package/dist/cjs/unsignedTransaction.d.ts.map +1 -0
  39. package/dist/cjs/unsignedTransaction.js +19 -0
  40. package/dist/cjs/unsignedTransaction.js.map +1 -0
  41. package/dist/esm/address.d.ts +27 -0
  42. package/dist/esm/address.d.ts.map +1 -0
  43. package/dist/esm/address.js +79 -0
  44. package/dist/esm/address.js.map +1 -0
  45. package/dist/esm/chain.d.ts +5 -0
  46. package/dist/esm/chain.d.ts.map +1 -0
  47. package/dist/esm/chain.js +4 -0
  48. package/dist/esm/chain.js.map +1 -0
  49. package/dist/esm/constants.d.ts +3 -0
  50. package/dist/esm/constants.d.ts.map +1 -0
  51. package/dist/esm/constants.js +3 -0
  52. package/dist/esm/constants.js.map +1 -0
  53. package/dist/esm/index.d.ts +8 -0
  54. package/dist/esm/index.d.ts.map +1 -0
  55. package/dist/esm/index.js +8 -0
  56. package/dist/esm/index.js.map +1 -0
  57. package/dist/esm/platform.d.ts +27 -0
  58. package/dist/esm/platform.d.ts.map +1 -0
  59. package/dist/esm/platform.js +124 -0
  60. package/dist/esm/platform.js.map +1 -0
  61. package/dist/esm/signer.d.ts +15 -0
  62. package/dist/esm/signer.d.ts.map +1 -0
  63. package/dist/esm/signer.js +56 -0
  64. package/dist/esm/signer.js.map +1 -0
  65. package/dist/esm/testing/index.d.ts +2 -0
  66. package/dist/esm/testing/index.d.ts.map +1 -0
  67. package/dist/esm/testing/index.js +2 -0
  68. package/dist/esm/testing/index.js.map +1 -0
  69. package/dist/esm/testing/signer.d.ts +27 -0
  70. package/dist/esm/testing/signer.d.ts.map +1 -0
  71. package/dist/esm/testing/signer.js +56 -0
  72. package/dist/esm/testing/signer.js.map +1 -0
  73. package/dist/esm/types.d.ts +30 -0
  74. package/dist/esm/types.d.ts.map +1 -0
  75. package/dist/esm/types.js +17 -0
  76. package/dist/esm/types.js.map +1 -0
  77. package/dist/esm/unsignedTransaction.d.ts +12 -0
  78. package/dist/esm/unsignedTransaction.d.ts.map +1 -0
  79. package/dist/esm/unsignedTransaction.js +15 -0
  80. package/dist/esm/unsignedTransaction.js.map +1 -0
  81. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  82. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  83. package/package.json +49 -0
@@ -0,0 +1,27 @@
1
+ import { Address, Platform, UniversalAddress } from "@wormhole-foundation/sdk-connect";
2
+ import { AnyAptosAddress } from "./types";
3
+ export declare const AptosZeroAddress = "0x";
4
+ export declare function ensureFullAptosAddress(address: string): string;
5
+ export declare class AptosAddress implements Address {
6
+ static readonly byteSize = 32;
7
+ readonly platform: Platform;
8
+ readonly type: string;
9
+ readonly address: Uint8Array;
10
+ readonly module: string | undefined;
11
+ constructor(address: AnyAptosAddress);
12
+ unwrap(): string;
13
+ toString(): string;
14
+ toNative(): this;
15
+ toUint8Array(): Uint8Array;
16
+ toUniversalAddress(): UniversalAddress;
17
+ static instanceof(address: any): address is AptosAddress;
18
+ equals(other: AptosAddress | UniversalAddress): boolean;
19
+ }
20
+ declare global {
21
+ namespace Wormhole {
22
+ interface PlatformToNativeAddressMapping {
23
+ Aptos: AptosAddress;
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,eAAe,EAA+B,MAAM,SAAS,CAAC;AAEvE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAIrC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,UAMrD;AAED,qBAAa,YAAa,YAAW,OAAO;IAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAM;IAC9B,SAAgB,QAAQ,EAAE,QAAQ,CAA2B;IAE7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IAGjC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAG7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;gBAExB,OAAO,EAAE,eAAe;IAyBpC,MAAM,IAAI,MAAM;IAKhB,QAAQ,IAAI,MAAM;IAGlB,QAAQ;IAGR,YAAY;IAGZ,kBAAkB;IAIlB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,YAAY;IAIxD,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB,GAAG,OAAO;CAOxD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ,CAAC;QACjB,UAAiB,8BAA8B;YAC7C,KAAK,EAAE,YAAY,CAAC;SACrB;KACF;CACF"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AptosAddress = exports.ensureFullAptosAddress = exports.AptosZeroAddress = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const constants_1 = require("./constants");
6
+ const platform_1 = require("./platform");
7
+ const types_1 = require("./types");
8
+ exports.AptosZeroAddress = "0x";
9
+ // Sometimes Aptos addresses will be trimmed of leading 0s
10
+ // add them back if necessary
11
+ function ensureFullAptosAddress(address) {
12
+ if (address.length % 2 !== 0 || address.length < 66) {
13
+ address = address.startsWith("0x") ? address.slice(2) : address;
14
+ return "0x" + address.padStart(64, "0");
15
+ }
16
+ return address;
17
+ }
18
+ exports.ensureFullAptosAddress = ensureFullAptosAddress;
19
+ class AptosAddress {
20
+ static byteSize = 32;
21
+ platform = platform_1.AptosPlatform._platform;
22
+ type = "Native";
23
+ // Full 32 bytes of Address
24
+ address;
25
+ // Optional module and contract name
26
+ module;
27
+ constructor(address) {
28
+ if (AptosAddress.instanceof(address)) {
29
+ this.address = address.address;
30
+ this.module = address.module;
31
+ }
32
+ else if (sdk_connect_1.UniversalAddress.instanceof(address)) {
33
+ this.address = address.toUint8Array();
34
+ }
35
+ else if (typeof address === "string") {
36
+ // If we've got an address of the form `0x1234...::module::...` then
37
+ // stuff anything after the first `::` into the module field
38
+ // and continue processing the address
39
+ if ((0, types_1.isValidAptosType)(address)) {
40
+ const chunks = address.split(constants_1.APTOS_SEPARATOR);
41
+ this.module = chunks.slice(1).join(constants_1.APTOS_SEPARATOR);
42
+ address = chunks[0];
43
+ }
44
+ address = ensureFullAptosAddress(address);
45
+ if (!sdk_connect_1.encoding.hex.valid(address))
46
+ throw new Error("Invalid Aptos address: " + address);
47
+ this.address = sdk_connect_1.encoding.hex.decode(address);
48
+ }
49
+ else {
50
+ this.address = address;
51
+ }
52
+ }
53
+ unwrap() {
54
+ const addr = sdk_connect_1.encoding.hex.encode(this.address).replace(/^0+/, "");
55
+ const module = this.module ? constants_1.APTOS_SEPARATOR + this.module : "";
56
+ return `0x${addr}${module}`;
57
+ }
58
+ toString() {
59
+ return this.unwrap();
60
+ }
61
+ toNative() {
62
+ return this;
63
+ }
64
+ toUint8Array() {
65
+ return this.address;
66
+ }
67
+ toUniversalAddress() {
68
+ return new sdk_connect_1.UniversalAddress(this.toUint8Array());
69
+ }
70
+ static instanceof(address) {
71
+ return address.platform === platform_1.AptosPlatform._platform;
72
+ }
73
+ equals(other) {
74
+ if (AptosAddress.instanceof(other)) {
75
+ return other.unwrap() === this.unwrap();
76
+ }
77
+ else {
78
+ return this.toUniversalAddress().equals(other);
79
+ }
80
+ }
81
+ }
82
+ exports.AptosAddress = AptosAddress;
83
+ (0, sdk_connect_1.registerNative)(types_1._platform, AptosAddress);
84
+ //# 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 { AptosChains } from "./types";
3
+ export declare class AptosChain<N extends Network, C extends AptosChains> 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,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,WAAW,CAAE,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CAAG"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AptosChain = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ class AptosChain extends sdk_connect_1.ChainContext {
6
+ }
7
+ exports.AptosChain = AptosChain;
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,UAAqD,SAAQ,0BAAkB;CAAG;AAA/F,gCAA+F"}
@@ -0,0 +1,3 @@
1
+ export declare const APTOS_COIN = "0x1::aptos_coin::AptosCoin";
2
+ export declare const APTOS_SEPARATOR = "::";
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,+BAA+B,CAAC;AACvD,eAAO,MAAM,eAAe,OAAO,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.APTOS_SEPARATOR = exports.APTOS_COIN = void 0;
4
+ exports.APTOS_COIN = "0x1::aptos_coin::AptosCoin";
5
+ exports.APTOS_SEPARATOR = "::";
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,4BAA4B,CAAC;AAC1C,QAAA,eAAe,GAAG,IAAI,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from "./address";
2
+ export * from "./platform";
3
+ export * from "./chain";
4
+ export * from "./unsignedTransaction";
5
+ export * from "./constants";
6
+ export * from "./types";
7
+ export * from "./signer";
8
+ //# 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,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,24 @@
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("./platform"), exports);
19
+ __exportStar(require("./chain"), exports);
20
+ __exportStar(require("./unsignedTransaction"), exports);
21
+ __exportStar(require("./constants"), exports);
22
+ __exportStar(require("./types"), exports);
23
+ __exportStar(require("./signer"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB;AACxB,wDAAsC;AACtC,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB"}
@@ -0,0 +1,27 @@
1
+ import { StaticPlatformMethods, Chain, Network, PlatformContext, ChainsConfig } from "@wormhole-foundation/sdk-connect";
2
+ import { AptosClient } from "aptos";
3
+ import { AptosChain } from "./chain";
4
+ import { AptosChains, AptosPlatformType } from "./types";
5
+ import { Balances, SignedTx, TokenId, TxHash } from "@wormhole-foundation/sdk-connect";
6
+ import { AnyAptosAddress } from "./types";
7
+ /**
8
+ * @category Aptos
9
+ */
10
+ export declare class AptosPlatform<N extends Network> extends PlatformContext<N, AptosPlatformType> implements StaticPlatformMethods<AptosPlatformType, typeof AptosPlatform> {
11
+ static _platform: "Aptos";
12
+ constructor(network: N, config?: ChainsConfig<N, AptosPlatformType>);
13
+ getRpc<C extends AptosChains>(chain: C): AptosClient;
14
+ getChain<C extends AptosChains>(chain: C, rpc?: AptosClient): AptosChain<N, C>;
15
+ static nativeTokenId<N extends Network, C extends AptosChains>(network: N, chain: C): TokenId<C>;
16
+ static isNativeTokenId<N extends Network, C extends AptosChains>(network: N, chain: C, tokenId: TokenId): boolean;
17
+ static isSupportedChain<C extends AptosChains>(chain: C): boolean;
18
+ static getDecimals(chain: Chain, rpc: AptosClient, token: AnyAptosAddress): Promise<number>;
19
+ static getBalance(chain: Chain, rpc: AptosClient, walletAddress: string, token: AnyAptosAddress): Promise<bigint | null>;
20
+ static getBalances(chain: Chain, rpc: AptosClient, walletAddress: string, tokens: AnyAptosAddress[]): Promise<Balances>;
21
+ static sendWait(chain: Chain, rpc: AptosClient, stxns: SignedTx[]): Promise<TxHash[]>;
22
+ static getLatestBlock(rpc: AptosClient): Promise<number>;
23
+ static getLatestFinalizedBlock(rpc: AptosClient): Promise<number>;
24
+ static chainFromChainId(chainId: string | bigint): [Network, AptosChains];
25
+ static chainFromRpc(rpc: AptosClient): Promise<[Network, AptosChains]>;
26
+ }
27
+ //# 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,qBAAqB,EACrB,KAAK,EACL,OAAO,EACP,eAAe,EAEf,YAAY,EAGb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAa,MAAM,SAAS,CAAC;AAEpE,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EAIP,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;GAEG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,OAAO,CAC1C,SAAQ,eAAe,CAAC,CAAC,EAAE,iBAAiB,CAC5C,YAAW,qBAAqB,CAAC,iBAAiB,EAAE,OAAO,aAAa,CAAC;IAEzE,MAAM,CAAC,SAAS,UAAa;gBAEjB,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAC;IAInE,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW;IAKpD,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IAK9E,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKhG,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,WAAW,EAC7D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,OAAO,GACf,OAAO;IAOV,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO;WAKpD,WAAW,CACtB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,MAAM,CAAC;WAYL,UAAU,CACrB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,WAAW,EAChB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;WAmBZ,WAAW,CACtB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,WAAW,EAChB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,eAAe,EAAE,GACxB,OAAO,CAAC,QAAQ,CAAC;WA4BP,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAW9E,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;WAKjD,uBAAuB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC;WAa5D,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;CAK7E"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AptosPlatform = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const aptos_1 = require("aptos");
6
+ const chain_1 = require("./chain");
7
+ const types_1 = require("./types");
8
+ const sdk_connect_2 = require("@wormhole-foundation/sdk-connect");
9
+ const aptos_2 = require("aptos");
10
+ const constants_1 = require("./constants");
11
+ /**
12
+ * @category Aptos
13
+ */
14
+ class AptosPlatform extends sdk_connect_1.PlatformContext {
15
+ static _platform = types_1._platform;
16
+ constructor(network, config) {
17
+ super(network, config ?? (0, sdk_connect_1.networkPlatformConfigs)(network, AptosPlatform._platform));
18
+ }
19
+ getRpc(chain) {
20
+ if (chain in this.config)
21
+ return new aptos_1.AptosClient(this.config[chain].rpc);
22
+ throw new Error("No configuration available for chain: " + chain);
23
+ }
24
+ getChain(chain, rpc) {
25
+ if (chain in this.config)
26
+ return new chain_1.AptosChain(chain, this);
27
+ throw new Error("No configuration available for chain: " + chain);
28
+ }
29
+ static nativeTokenId(network, chain) {
30
+ if (!this.isSupportedChain(chain))
31
+ throw new Error(`invalid chain: ${chain}`);
32
+ return sdk_connect_1.Wormhole.tokenId(chain, constants_1.APTOS_COIN);
33
+ }
34
+ static isNativeTokenId(network, chain, tokenId) {
35
+ if (!this.isSupportedChain(chain))
36
+ return false;
37
+ if (tokenId.chain !== chain)
38
+ return false;
39
+ const native = this.nativeTokenId(network, chain);
40
+ return native == tokenId;
41
+ }
42
+ static isSupportedChain(chain) {
43
+ const platform = (0, sdk_connect_2.chainToPlatform)(chain);
44
+ return platform === AptosPlatform._platform;
45
+ }
46
+ static async getDecimals(chain, rpc, token) {
47
+ if ((0, sdk_connect_1.isNative)(token))
48
+ return sdk_connect_2.decimals.nativeDecimals(AptosPlatform._platform);
49
+ const tokenAddr = token.toString();
50
+ const coinType = `0x1::coin::CoinInfo<${tokenAddr}>`;
51
+ const decimals = (await rpc.getAccountResource(tokenAddr.split(constants_1.APTOS_SEPARATOR)[0], coinType)).data.decimals;
52
+ return decimals;
53
+ }
54
+ static async getBalance(chain, rpc, walletAddress, token) {
55
+ const tokenAddress = (0, sdk_connect_1.isNative)(token) ? constants_1.APTOS_COIN : token.toString();
56
+ const cc = new aptos_2.CoinClient(rpc);
57
+ try {
58
+ const balance = await cc.checkBalance(walletAddress, {
59
+ coinType: tokenAddress,
60
+ });
61
+ return balance;
62
+ }
63
+ catch (e) {
64
+ if ((e instanceof aptos_2.Types.ApiError || e.errorCode === "resource_not_found") &&
65
+ e.status === 404) {
66
+ return null;
67
+ }
68
+ throw e;
69
+ }
70
+ }
71
+ static async getBalances(chain, rpc, walletAddress, tokens) {
72
+ return {};
73
+ // const tb = await AptosPlatform.getTokenBridge(rpc);
74
+ // const addresses = await Promise.all(
75
+ // tokens.map((tokenId) => await tb.getOriginalAsset(tokenId)),
76
+ // );
77
+ // let coinBalances: CoinBalance[] = [];
78
+ // let offset = 0;
79
+ // const limit = 100;
80
+ // while (true) {
81
+ // const result = await this.fetchCurrentCoins(walletAddress, offset, limit);
82
+ // coinBalances = [...coinBalances, ...result.data.current_coin_balances];
83
+ // if (result.data.current_coin_balances.length < limit) {
84
+ // break;
85
+ // }
86
+ // offset += result.data.current_coin_balances.length;
87
+ // }
88
+ // return addresses.map((address) =>
89
+ // !address
90
+ // ? null
91
+ // : BigNumber.from(
92
+ // coinBalances.find((bal) => bal.coin_type === address)?.amount || 0,
93
+ // ),
94
+ // );
95
+ }
96
+ static async sendWait(chain, rpc, stxns) {
97
+ // TODO: concurrent
98
+ const txhashes = [];
99
+ for (const stxn of stxns) {
100
+ const pendingTx = await rpc.submitTransaction(stxn);
101
+ const res = await rpc.waitForTransactionWithResult(pendingTx.hash);
102
+ txhashes.push(res.hash);
103
+ }
104
+ return txhashes;
105
+ }
106
+ static async getLatestBlock(rpc) {
107
+ const li = await rpc.getLedgerInfo();
108
+ return Number(li.block_height);
109
+ }
110
+ static async getLatestFinalizedBlock(rpc) {
111
+ const li = await rpc.getLedgerInfo();
112
+ return Number(li.block_height);
113
+ }
114
+ static chainFromChainId(chainId) {
115
+ const netChain = sdk_connect_2.nativeChainIds.platformNativeChainIdToNetworkChain(AptosPlatform._platform, BigInt(chainId));
116
+ if (!netChain)
117
+ throw new Error(`No matching chainId to determine network and chain: ${chainId}`);
118
+ const [network, chain] = netChain;
119
+ return [network, chain];
120
+ }
121
+ static async chainFromRpc(rpc) {
122
+ const conn = rpc;
123
+ const ci = await conn.getChainId();
124
+ return this.chainFromChainId(ci.toString());
125
+ }
126
+ }
127
+ exports.AptosPlatform = AptosPlatform;
128
+ //# 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,15 @@
1
+ import { Network, RpcConnection, SignAndSendSigner, Signer, TxHash, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
2
+ import { AptosAccount, AptosClient } from "aptos";
3
+ import { AptosChains } from "./types";
4
+ export declare function getAptosSigner(rpc: RpcConnection<"Aptos">, privateKey: string): Promise<Signer>;
5
+ export declare class AptosSigner<N extends Network, C extends AptosChains> implements SignAndSendSigner<N, C> {
6
+ private _chain;
7
+ private _account;
8
+ private _rpc;
9
+ constructor(_chain: C, _account: AptosAccount, _rpc: AptosClient);
10
+ chain(): C;
11
+ address(): string;
12
+ signAndSend(tx: UnsignedTransaction[]): Promise<TxHash[]>;
13
+ private _simSignSend;
14
+ }
15
+ //# 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,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,mBAAmB,EAEpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAA0B,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,qBAAa,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,WAAW,CAC/D,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGhC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;gBAFJ,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,WAAW;IAG3B,KAAK;IAIL,OAAO,IAAI,MAAM;IAIX,WAAW,CAAC,EAAE,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YA6BjD,YAAY;CAgB3B"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AptosSigner = exports.getAptosSigner = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const aptos_1 = require("aptos");
6
+ const platform_1 = require("./platform");
7
+ // returns a SignOnlySigner for the Aptos platform
8
+ async function getAptosSigner(rpc, privateKey) {
9
+ const [_, chain] = await platform_1.AptosPlatform.chainFromRpc(rpc);
10
+ return new AptosSigner(chain, new aptos_1.AptosAccount(sdk_connect_1.encoding.hex.decode(privateKey)), rpc);
11
+ }
12
+ exports.getAptosSigner = getAptosSigner;
13
+ class AptosSigner {
14
+ _chain;
15
+ _account;
16
+ _rpc;
17
+ constructor(_chain, _account, _rpc) {
18
+ this._chain = _chain;
19
+ this._account = _account;
20
+ this._rpc = _rpc;
21
+ }
22
+ chain() {
23
+ return this._chain;
24
+ }
25
+ address() {
26
+ return this._account.address().hex();
27
+ }
28
+ async signAndSend(tx) {
29
+ const txhashes = [];
30
+ for (const txn of tx) {
31
+ const { description, transaction } = txn;
32
+ console.log(`Signing: ${description} for ${this.address()}`);
33
+ // overwriting `max_gas_amount` and `gas_unit_price` defaults
34
+ // rest of defaults are defined here: https://aptos-labs.github.io/ts-sdk-doc/classes/AptosClient.html#generateTransaction
35
+ const customOpts = {
36
+ gas_unit_price: "100",
37
+ max_gas_amount: "30000",
38
+ expiration_timestamp_secs: (BigInt(Date.now() + 8 * 60 * 60 * 1000) / 1000n).toString(),
39
+ };
40
+ const tx = await this._rpc.generateTransaction(this._account.address(), transaction, customOpts);
41
+ const { hash } = await this._simSignSend(tx);
42
+ txhashes.push(hash);
43
+ }
44
+ return txhashes;
45
+ }
46
+ async _simSignSend(rawTx) {
47
+ // simulate transaction
48
+ await this._rpc.simulateTransaction(this._account, rawTx).then((sims) => sims.forEach((tx) => {
49
+ if (!tx.success) {
50
+ throw new Error(`Transaction failed: ${tx.vm_status}\n${JSON.stringify(tx, null, 2)}`);
51
+ }
52
+ }));
53
+ // sign & submit transaction
54
+ return this._rpc
55
+ .signTransaction(this._account, rawTx)
56
+ .then((signedTx) => this._rpc.submitTransaction(signedTx))
57
+ .then((pendingTx) => this._rpc.waitForTransactionWithResult(pendingTx.hash));
58
+ }
59
+ }
60
+ exports.AptosSigner = AptosSigner;
61
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";;;AAAA,kEAQ0C;AAC1C,iCAA0E;AAC1E,yCAA2C;AAG3C,kDAAkD;AAC3C,KAAK,UAAU,cAAc,CAClC,GAA2B,EAC3B,UAAkB;IAElB,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,wBAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,oBAAY,CAAC,sBAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxF,CAAC;AAND,wCAMC;AAED,MAAa,WAAW;IAIZ;IACA;IACA;IAHV,YACU,MAAS,EACT,QAAsB,EACtB,IAAiB;QAFjB,WAAM,GAAN,MAAM,CAAG;QACT,aAAQ,GAAR,QAAQ,CAAc;QACtB,SAAI,GAAJ,IAAI,CAAa;IACxB,CAAC;IAEJ,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAyB;QACzC,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,EAAE,EAAE;YACpB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,GAGpC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAE7D,6DAA6D;YAC7D,0HAA0H;YAC1H,MAAM,UAAU,GAAG;gBACjB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,OAAO;gBACvB,yBAAyB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,EAAE;aAC7C,CAAC;YAE7C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EACvB,WAAW,EACX,UAAU,CACX,CAAC;YAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAqC;QAC9D,uBAAuB;QACvB,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACtE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAClB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aACxF;QACH,CAAC,CAAC,CACH,CAAC;QAEF,4BAA4B;QAC5B,OAAO,IAAI,CAAC,IAAI;aACb,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;aACrC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;aACzD,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;CACF;AA9DD,kCA8DC"}
@@ -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,27 @@
1
+ import {
2
+ Network,
3
+ RpcConnection,
4
+ SignAndSendSigner,
5
+ Signer,
6
+ TxHash,
7
+ UnsignedTransaction,
8
+ } from "@wormhole-foundation/connect-sdk";
9
+ import { AptosAccount, AptosClient } from "aptos";
10
+ import { AptosChains } from "./types";
11
+ export declare function getAptosSigner(
12
+ rpc: RpcConnection<"Aptos">,
13
+ privateKey: string,
14
+ ): Promise<Signer>;
15
+ export declare class AptosSigner<N extends Network, C extends AptosChains>
16
+ implements SignAndSendSigner<N, C>
17
+ {
18
+ private _chain;
19
+ private _account;
20
+ private _rpc;
21
+ constructor(_chain: C, _account: AptosAccount, _rpc: AptosClient);
22
+ chain(): C;
23
+ address(): string;
24
+ signAndSend(tx: UnsignedTransaction[]): Promise<TxHash[]>;
25
+ private _simSignSend;
26
+ }
27
+ //# 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,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,mBAAmB,EAEpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAA0B,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,qBAAa,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,WAAW,CAC/D,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGhC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;gBAFJ,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,WAAW;IAG3B,KAAK;IAIL,OAAO,IAAI,MAAM;IAIX,WAAW,CAAC,EAAE,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YA6BjD,YAAY;CAgB3B"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AptosSigner = exports.getAptosSigner = void 0;
4
+ const connect_sdk_1 = require("@wormhole-foundation/connect-sdk");
5
+ const aptos_1 = require("aptos");
6
+ const platform_1 = require("../platform");
7
+ // returns a SignOnlySigner for the Aptos platform
8
+ async function getAptosSigner(rpc, privateKey) {
9
+ const [_, chain] = await platform_1.AptosPlatform.chainFromRpc(rpc);
10
+ return new AptosSigner(chain, new aptos_1.AptosAccount(connect_sdk_1.encoding.hex.decode(privateKey)), rpc);
11
+ }
12
+ exports.getAptosSigner = getAptosSigner;
13
+ class AptosSigner {
14
+ _chain;
15
+ _account;
16
+ _rpc;
17
+ constructor(_chain, _account, _rpc) {
18
+ this._chain = _chain;
19
+ this._account = _account;
20
+ this._rpc = _rpc;
21
+ }
22
+ chain() {
23
+ return this._chain;
24
+ }
25
+ address() {
26
+ return this._account.address().hex();
27
+ }
28
+ async signAndSend(tx) {
29
+ const txhashes = [];
30
+ for (const txn of tx) {
31
+ const { description, transaction } = txn;
32
+ console.log(`Signing: ${description} for ${this.address()}`);
33
+ // overwriting `max_gas_amount` and `gas_unit_price` defaults
34
+ // rest of defaults are defined here: https://aptos-labs.github.io/ts-sdk-doc/classes/AptosClient.html#generateTransaction
35
+ const customOpts = {
36
+ gas_unit_price: "100",
37
+ max_gas_amount: "30000",
38
+ expiration_timestamp_secs: (BigInt(Date.now() + 8 * 60 * 60 * 1000) / 1000n).toString(),
39
+ };
40
+ const tx = await this._rpc.generateTransaction(this._account.address(), transaction, customOpts);
41
+ const { hash } = await this._simSignSend(tx);
42
+ txhashes.push(hash);
43
+ }
44
+ return txhashes;
45
+ }
46
+ async _simSignSend(rawTx) {
47
+ // simulate transaction
48
+ await this._rpc.simulateTransaction(this._account, rawTx).then((sims) => sims.forEach((tx) => {
49
+ if (!tx.success) {
50
+ throw new Error(`Transaction failed: ${tx.vm_status}\n${JSON.stringify(tx, null, 2)}`);
51
+ }
52
+ }));
53
+ // sign & submit transaction
54
+ return this._rpc
55
+ .signTransaction(this._account, rawTx)
56
+ .then((signedTx) => this._rpc.submitTransaction(signedTx))
57
+ .then((pendingTx) => this._rpc.waitForTransactionWithResult(pendingTx.hash));
58
+ }
59
+ }
60
+ exports.AptosSigner = AptosSigner;
61
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/testing/signer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { PlatformToChains, UniversalOrNative } from "@wormhole-foundation/sdk-connect";
2
+ export declare const unusedNonce = 0;
3
+ export declare const unusedArbiterFee = 0n;
4
+ export declare const _platform: "Aptos";
5
+ export type AptosPlatformType = typeof _platform;
6
+ export type AptosChains = PlatformToChains<AptosPlatformType>;
7
+ export type UniversalOrAptos = UniversalOrNative<AptosChains>;
8
+ export type AnyAptosAddress = UniversalOrAptos | string | Uint8Array;
9
+ export type CurrentCoinBalancesResponse = {
10
+ data: {
11
+ current_coin_balances: CoinBalance[];
12
+ };
13
+ };
14
+ export type CoinBalance = {
15
+ coin_type: string;
16
+ amount: number;
17
+ };
18
+ /**
19
+ * Test if given string is a valid fully qualified type of moduleAddress::moduleName::structName.
20
+ * @param str String to test
21
+ * @returns Whether or not given string is a valid type
22
+ */
23
+ export declare const isValidAptosType: (str: string) => boolean;
24
+ /**
25
+ * Returns module address from given fully qualified type/module address.
26
+ * @param str FQT or module address
27
+ * @returns Module address
28
+ */
29
+ export declare const coalesceModuleAddress: (str: string) => string;
30
+ //# 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;AAGvF,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,OAAiB,CAAC;AAC1C,MAAM,MAAM,iBAAiB,GAAG,OAAO,SAAS,CAAC;AACjD,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC;AAErE,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE;QAAE,qBAAqB,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,OAAoD,CAAC;AAEpG;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAS,MAAM,KAAG,MAAwC,CAAC"}