@bitgo/sdk-coin-apt 2.4.15 → 2.5.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 (67) hide show
  1. package/.mocharc.yml +1 -1
  2. package/CHANGELOG.md +6 -0
  3. package/LICENSE +191 -0
  4. package/dist/src/apt.d.ts +43 -0
  5. package/dist/src/apt.d.ts.map +1 -0
  6. package/dist/src/apt.js +206 -0
  7. package/dist/src/aptNFTCollection.d.ts +18 -0
  8. package/dist/src/aptNFTCollection.d.ts.map +1 -0
  9. package/dist/src/aptNFTCollection.js +52 -0
  10. package/dist/src/aptToken.d.ts +19 -0
  11. package/dist/src/aptToken.d.ts.map +1 -0
  12. package/dist/src/aptToken.js +52 -0
  13. package/dist/src/index.d.ts +7 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/index.js +23 -0
  16. package/dist/src/lib/constants.d.ts +21 -0
  17. package/dist/src/lib/constants.d.ts.map +1 -0
  18. package/dist/src/lib/constants.js +24 -0
  19. package/dist/src/lib/iface.d.ts +30 -0
  20. package/dist/src/lib/iface.d.ts.map +1 -0
  21. package/dist/src/lib/iface.js +3 -0
  22. package/dist/src/lib/index.d.ts +14 -0
  23. package/dist/src/lib/index.d.ts.map +1 -0
  24. package/dist/src/lib/index.js +61 -0
  25. package/dist/src/lib/keyPair.d.ts +18 -0
  26. package/dist/src/lib/keyPair.d.ts.map +1 -0
  27. package/dist/src/lib/keyPair.js +44 -0
  28. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
  29. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
  31. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
  32. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
  34. package/dist/src/lib/transaction/transaction.d.ts +81 -0
  35. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/transaction.js +332 -0
  37. package/dist/src/lib/transaction/transferTransaction.d.ts +12 -0
  38. package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/transferTransaction.js +63 -0
  40. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
  41. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  42. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
  43. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
  44. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  45. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
  46. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +68 -0
  47. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  48. package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
  49. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts +13 -0
  50. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
  52. package/dist/src/lib/transactionBuilderFactory.d.ts +31 -0
  53. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  54. package/dist/src/lib/transactionBuilderFactory.js +81 -0
  55. package/dist/src/lib/types.d.ts +9 -0
  56. package/dist/src/lib/types.d.ts.map +1 -0
  57. package/dist/src/lib/types.js +3 -0
  58. package/dist/src/lib/utils.d.ts +42 -0
  59. package/dist/src/lib/utils.d.ts.map +1 -0
  60. package/dist/src/lib/utils.js +149 -0
  61. package/dist/src/register.d.ts +3 -0
  62. package/dist/src/register.d.ts.map +1 -0
  63. package/dist/src/register.js +19 -0
  64. package/dist/src/tapt.d.ts +17 -0
  65. package/dist/src/tapt.d.ts.map +1 -0
  66. package/dist/src/tapt.js +30 -0
  67. package/package.json +7 -7
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Utils = void 0;
7
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
8
+ const sdk_core_1 = require("@bitgo/sdk-core");
9
+ const constants_1 = require("./constants");
10
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
11
+ class Utils {
12
+ /** @inheritdoc */
13
+ isValidAddress(address) {
14
+ return this.isValidHex(address, constants_1.APT_ADDRESS_LENGTH);
15
+ }
16
+ /** @inheritdoc */
17
+ isValidBlockId(hash) {
18
+ return this.isValidHex(hash, constants_1.APT_BLOCK_ID_LENGTH);
19
+ }
20
+ /** @inheritdoc */
21
+ isValidPrivateKey(key) {
22
+ return (0, sdk_core_1.isValidEd25519SecretKey)(key);
23
+ }
24
+ /** @inheritdoc */
25
+ isValidPublicKey(key) {
26
+ return (0, sdk_core_1.isValidEd25519PublicKey)(key);
27
+ }
28
+ /** @inheritdoc */
29
+ isValidSignature(signature) {
30
+ return this.isValidHex(signature, constants_1.APT_SIGNATURE_LENGTH);
31
+ }
32
+ /** @inheritdoc */
33
+ isValidTransactionId(txId) {
34
+ return this.isValidHex(txId, constants_1.APT_TRANSACTION_ID_LENGTH);
35
+ }
36
+ isValidHex(value, length) {
37
+ const regex = new RegExp(`^(0x|0X)[a-fA-F0-9]{${length}}$`);
38
+ return regex.test(value);
39
+ }
40
+ getAddressFromPublicKey(publicKey) {
41
+ const aptosPublicKey = new ts_sdk_1.Ed25519PublicKey(Buffer.from(publicKey, 'hex'));
42
+ const authKey = ts_sdk_1.AuthenticationKey.fromPublicKey({ publicKey: aptosPublicKey });
43
+ const accountAddress = authKey.derivedAddress();
44
+ return accountAddress.toString();
45
+ }
46
+ getTransactionTypeFromTransactionPayload(payload) {
47
+ if (!(payload instanceof ts_sdk_1.TransactionPayloadEntryFunction)) {
48
+ throw new Error('Invalid Payload: Expected TransactionPayloadEntryFunction');
49
+ }
50
+ const entryFunction = payload.entryFunction;
51
+ const moduleAddress = entryFunction.module_name.address.toString();
52
+ const moduleIdentifier = entryFunction.module_name.name.identifier;
53
+ const functionIdentifier = entryFunction.function_name.identifier;
54
+ const uniqueIdentifier = `${moduleAddress}::${moduleIdentifier}::${functionIdentifier}`;
55
+ switch (uniqueIdentifier) {
56
+ case constants_1.COIN_TRANSFER_FUNCTION:
57
+ case constants_1.COIN_BATCH_TRANSFER_FUNCTION:
58
+ return sdk_core_1.TransactionType.Send;
59
+ case constants_1.FUNGIBLE_ASSET_TRANSFER_FUNCTION:
60
+ case constants_1.FUNGIBLE_ASSET_BATCH_TRANSFER_FUNCTION:
61
+ return sdk_core_1.TransactionType.SendToken;
62
+ case constants_1.DIGITAL_ASSET_TRANSFER_FUNCTION:
63
+ return sdk_core_1.TransactionType.SendNFT;
64
+ default:
65
+ throw new sdk_core_1.InvalidTransactionError(`Invalid transaction: unable to fetch transaction type ${moduleIdentifier}`);
66
+ }
67
+ }
68
+ fetchAndValidateRecipients(addressArg, amountArg) {
69
+ const addressBytes = addressArg.bcsToBytes();
70
+ const amountBytes = amountArg.bcsToBytes();
71
+ let deserializedAddresses;
72
+ let deserializedAmounts;
73
+ if (addressBytes.length > constants_1.ADDRESS_BYTES_LENGTH || amountBytes.length > constants_1.AMOUNT_BYTES_LENGTH) {
74
+ deserializedAddresses = utils.deserializeAccountAddressVector(addressBytes);
75
+ deserializedAmounts = utils.deserializeU64Vector(amountBytes);
76
+ if (deserializedAddresses.length !== deserializedAmounts.length) {
77
+ console.error('invalid payload entry function arguments : addresses and amounts length mismatch');
78
+ return { recipients: { deserializedAddresses: [], deserializedAmounts: [] }, isValid: false };
79
+ }
80
+ }
81
+ else {
82
+ deserializedAddresses = [addressArg.toString()];
83
+ deserializedAmounts = [amountBytes];
84
+ }
85
+ const allAddressesValid = deserializedAddresses.every((address) => utils.isValidAddress(address.toString()));
86
+ const allAmountsValid = deserializedAmounts.every((amount) => new bignumber_js_1.default(utils.getAmountFromPayloadArgs(amount)).isGreaterThan(0));
87
+ return {
88
+ recipients: { deserializedAddresses, deserializedAmounts },
89
+ isValid: allAddressesValid && allAmountsValid,
90
+ };
91
+ }
92
+ parseRecipients(addressArg, amountArg) {
93
+ const { recipients, isValid } = utils.fetchAndValidateRecipients(addressArg, amountArg);
94
+ if (!isValid) {
95
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction recipients');
96
+ }
97
+ return recipients.deserializedAddresses.map((address, index) => ({
98
+ address,
99
+ amount: utils.getAmountFromPayloadArgs(recipients.deserializedAmounts[index]),
100
+ }));
101
+ }
102
+ deserializeSignedTransaction(rawTransaction) {
103
+ const txnBytes = ts_sdk_1.Hex.fromHexString(rawTransaction).toUint8Array();
104
+ const deserializer = new ts_sdk_1.Deserializer(txnBytes);
105
+ return deserializer.deserialize(ts_sdk_1.SignedTransaction);
106
+ }
107
+ deserializeAccountAddressVector(serializedBytes) {
108
+ const deserializer = new ts_sdk_1.Deserializer(serializedBytes);
109
+ const deserializedAddresses = deserializer.deserializeVector(ts_sdk_1.AccountAddress);
110
+ return deserializedAddresses.map((address) => address.toString());
111
+ }
112
+ deserializeU64Vector(serializedBytes) {
113
+ const deserializer = new ts_sdk_1.Deserializer(serializedBytes);
114
+ const deserializedAmounts = deserializer.deserializeVector(ts_sdk_1.U64);
115
+ return deserializedAmounts.map((amount) => amount.bcsToBytes());
116
+ }
117
+ getBufferFromHexString(hexString) {
118
+ return Buffer.from(ts_sdk_1.Hex.fromHexString(hexString).toUint8Array());
119
+ }
120
+ castToNumber(value) {
121
+ return new bignumber_js_1.default(value.toString()).toNumber();
122
+ }
123
+ /**
124
+ * Strip hex prefix
125
+ * @param str
126
+ * @returns hex string without 0x prefix
127
+ */
128
+ stripHexPrefix(str) {
129
+ return str.replace(/^0x/i, '');
130
+ }
131
+ getAmountFromPayloadArgs(amountArg) {
132
+ const amountBuffer = Buffer.from(amountArg);
133
+ const low = BigInt(amountBuffer.readUint32LE());
134
+ const high = BigInt(amountBuffer.readUint32LE(4));
135
+ const amount = (high << BigInt(32)) + low;
136
+ return amount.toString();
137
+ }
138
+ /**
139
+ * Returns the Aptos transaction expiration timestamp in seconds.
140
+ * It is set to 1 week from now.
141
+ */
142
+ getTxnExpirationTimestamp() {
143
+ return Math.floor(Date.now() / 1e3) + constants_1.SECONDS_PER_WEEK;
144
+ }
145
+ }
146
+ exports.Utils = Utils;
147
+ const utils = new Utils();
148
+ exports.default = utils;
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQVc0QjtBQUM1Qiw4Q0FPeUI7QUFDekIsMkNBYXFCO0FBQ3JCLGdFQUFxQztBQUdyQyxNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsOEJBQWtCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsK0JBQW1CLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsT0FBTyxJQUFBLGtDQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUEsa0NBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGdDQUFvQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUscUNBQXlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLHVCQUF1QixNQUFNLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxL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U0FBUyxDQUFDLENBQUM7UUFDNUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzFDLE9BQU8sTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyw0QkFBZ0IsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUE1SkQsc0JBNEpDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY2NvdW50QWRkcmVzcyxcbiAgQXV0aGVudGljYXRpb25LZXksXG4gIERlc2VyaWFsaXplcixcbiAgRWQyNTUxOVB1YmxpY0tleSxcbiAgRW50cnlGdW5jdGlvbkFyZ3VtZW50LFxuICBIZXgsXG4gIFNpZ25lZFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblBheWxvYWQsXG4gIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24sXG4gIFU2NCxcbn0gZnJvbSAnQGFwdG9zLWxhYnMvdHMtc2RrJztcbmltcG9ydCB7XG4gIEJhc2VVdGlscyxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5LFxuICBpc1ZhbGlkRWQyNTUxOVNlY3JldEtleSxcbiAgVHJhbnNhY3Rpb25SZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIEFQVF9BRERSRVNTX0xFTkdUSCxcbiAgQVBUX0JMT0NLX0lEX0xFTkdUSCxcbiAgQVBUX1NJR05BVFVSRV9MRU5HVEgsXG4gIEFQVF9UUkFOU0FDVElPTl9JRF9MRU5HVEgsXG4gIENPSU5fQkFUQ0hfVFJBTlNGRVJfRlVOQ1RJT04sXG4gIENPSU5fVFJBTlNGRVJfRlVOQ1RJT04sXG4gIERJR0lUQUxfQVNTRVRfVFJBTlNGRVJfRlVOQ1RJT04sXG4gIEZVTkdJQkxFX0FTU0VUX1RSQU5TRkVSX0ZVTkNUSU9OLFxuICBTRUNPTkRTX1BFUl9XRUVLLFxuICBBRERSRVNTX0JZVEVTX0xFTkdUSCxcbiAgQU1PVU5UX0JZVEVTX0xFTkdUSCxcbiAgRlVOR0lCTEVfQVNTRVRfQkFUQ0hfVFJBTlNGRVJfRlVOQ1RJT04sXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFJlY2lwaWVudHNWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGV4KGFkZHJlc3MsIEFQVF9BRERSRVNTX0xFTkdUSCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEhleChoYXNoLCBBUFRfQkxPQ0tfSURfTEVOR1RIKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVNlY3JldEtleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEhleChzaWduYXR1cmUsIEFQVF9TSUdOQVRVUkVfTEVOR1RIKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGV4KHR4SWQsIEFQVF9UUkFOU0FDVElPTl9JRF9MRU5HVEgpO1xuICB9XG5cbiAgaXNWYWxpZEhleCh2YWx1ZTogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXigweHwwWClbYS1mQS1GMC05XXske2xlbmd0aH19JGApO1xuICAgIHJldHVybiByZWdleC50ZXN0KHZhbHVlKTtcbiAgfVxuXG4gIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KHB1YmxpY0tleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcHRvc1B1YmxpY0tleSA9IG5ldyBFZDI1NTE5UHVibGljS2V5KEJ1ZmZlci5mcm9tKHB1YmxpY0tleSwgJ2hleCcpKTtcbiAgICBjb25zdCBhdXRoS2V5ID0gQXV0aGVudGljYXRpb25LZXkuZnJvbVB1YmxpY0tleSh7IHB1YmxpY0tleTogYXB0b3NQdWJsaWNLZXkgfSk7XG4gICAgY29uc3QgYWNjb3VudEFkZHJlc3MgPSBhdXRoS2V5LmRlcml2ZWRBZGRyZXNzKCk7XG4gICAgcmV0dXJuIGFjY291bnRBZGRyZXNzLnRvU3RyaW5nKCk7XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvblR5cGVGcm9tVHJhbnNhY3Rpb25QYXlsb2FkKHBheWxvYWQ6IFRyYW5zYWN0aW9uUGF5bG9hZCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgaWYgKCEocGF5bG9hZCBpbnN0YW5jZW9mIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUGF5bG9hZDogRXhwZWN0ZWQgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBlbnRyeUZ1bmN0aW9uID0gcGF5bG9hZC5lbnRyeUZ1bmN0aW9uO1xuICAgIGNvbnN0IG1vZHVsZUFkZHJlc3MgPSBlbnRyeUZ1bmN0aW9uLm1vZHVsZV9uYW1lLmFkZHJlc3MudG9TdHJpbmcoKTtcbiAgICBjb25zdCBtb2R1bGVJZGVudGlmaWVyID0gZW50cnlGdW5jdGlvbi5tb2R1bGVfbmFtZS5uYW1lLmlkZW50aWZpZXI7XG4gICAgY29uc3QgZnVuY3Rpb25JZGVudGlmaWVyID0gZW50cnlGdW5jdGlvbi5mdW5jdGlvbl9uYW1lLmlkZW50aWZpZXI7XG4gICAgY29uc3QgdW5pcXVlSWRlbnRpZmllciA9IGAke21vZHVsZUFkZHJlc3N9Ojoke21vZHVsZUlkZW50aWZpZXJ9Ojoke2Z1bmN0aW9uSWRlbnRpZmllcn1gO1xuICAgIHN3aXRjaCAodW5pcXVlSWRlbnRpZmllcikge1xuICAgICAgY2FzZSBDT0lOX1RSQU5TRkVSX0ZVTkNUSU9OOlxuICAgICAgY2FzZSBDT0lOX0JBVENIX1RSQU5TRkVSX0ZVTkNUSU9OOlxuICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gICAgICBjYXNlIEZVTkdJQkxFX0FTU0VUX1RSQU5TRkVSX0ZVTkNUSU9OOlxuICAgICAgY2FzZSBGVU5HSUJMRV9BU1NFVF9CQVRDSF9UUkFOU0ZFUl9GVU5DVElPTjpcbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW47XG4gICAgICBjYXNlIERJR0lUQUxfQVNTRVRfVFJBTlNGRVJfRlVOQ1RJT046XG4gICAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZE5GVDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0cmFuc2FjdGlvbjogdW5hYmxlIHRvIGZldGNoIHRyYW5zYWN0aW9uIHR5cGUgJHttb2R1bGVJZGVudGlmaWVyfWApO1xuICAgIH1cbiAgfVxuXG4gIGZldGNoQW5kVmFsaWRhdGVSZWNpcGllbnRzKFxuICAgIGFkZHJlc3NBcmc6IEVudHJ5RnVuY3Rpb25Bcmd1bWVudCxcbiAgICBhbW91bnRBcmc6IEVudHJ5RnVuY3Rpb25Bcmd1bWVudFxuICApOiBSZWNpcGllbnRzVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgY29uc3QgYWRkcmVzc0J5dGVzID0gYWRkcmVzc0FyZy5iY3NUb0J5dGVzKCk7XG4gICAgY29uc3QgYW1vdW50Qnl0ZXMgPSBhbW91bnRBcmcuYmNzVG9CeXRlcygpO1xuICAgIGxldCBkZXNlcmlhbGl6ZWRBZGRyZXNzZXM6IHN0cmluZ1tdO1xuICAgIGxldCBkZXNlcmlhbGl6ZWRBbW91bnRzOiBVaW50OEFycmF5PEFycmF5QnVmZmVyPltdO1xuICAgIGlmIChhZGRyZXNzQnl0ZXMubGVuZ3RoID4gQUREUkVTU19CWVRFU19MRU5HVEggfHwgYW1vdW50Qnl0ZXMubGVuZ3RoID4gQU1PVU5UX0JZVEVTX0xFTkdUSCkge1xuICAgICAgZGVzZXJpYWxpemVkQWRkcmVzc2VzID0gdXRpbHMuZGVzZXJpYWxpemVBY2NvdW50QWRkcmVzc1ZlY3RvcihhZGRyZXNzQnl0ZXMpO1xuICAgICAgZGVzZXJpYWxpemVkQW1vdW50cyA9IHV0aWxzLmRlc2VyaWFsaXplVTY0VmVjdG9yKGFtb3VudEJ5dGVzKTtcbiAgICAgIGlmIChkZXNlcmlhbGl6ZWRBZGRyZXNzZXMubGVuZ3RoICE9PSBkZXNlcmlhbGl6ZWRBbW91bnRzLmxlbmd0aCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIHBheWxvYWQgZW50cnkgZnVuY3Rpb24gYXJndW1lbnRzIDogYWRkcmVzc2VzIGFuZCBhbW91bnRzIGxlbmd0aCBtaXNtYXRjaCcpO1xuICAgICAgICByZXR1cm4geyByZWNpcGllbnRzOiB7IGRlc2VyaWFsaXplZEFkZHJlc3NlczogW10sIGRlc2VyaWFsaXplZEFtb3VudHM6IFtdIH0sIGlzVmFsaWQ6IGZhbHNlIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlc2VyaWFsaXplZEFkZHJlc3NlcyA9IFthZGRyZXNzQXJnLnRvU3RyaW5nKCldO1xuICAgICAgZGVzZXJpYWxpemVkQW1vdW50cyA9IFthbW91bnRCeXRlc107XG4gICAgfVxuICAgIGNvbnN0IGFsbEFkZHJlc3Nlc1ZhbGlkID0gZGVzZXJpYWxpemVkQWRkcmVzc2VzLmV2ZXJ5KChhZGRyZXNzKSA9PiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLnRvU3RyaW5nKCkpKTtcbiAgICBjb25zdCBhbGxBbW91bnRzVmFsaWQgPSBkZXNlcmlhbGl6ZWRBbW91bnRzLmV2ZXJ5KChhbW91bnQpID0+XG4gICAgICBuZXcgQmlnTnVtYmVyKHV0aWxzLmdldEFtb3VudEZyb21QYXlsb2FkQXJncyhhbW91bnQpKS5pc0dyZWF0ZXJUaGFuKDApXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVjaXBpZW50czogeyBkZXNlcmlhbGl6ZWRBZGRyZXNzZXMsIGRlc2VyaWFsaXplZEFtb3VudHMgfSxcbiAgICAgIGlzVmFsaWQ6IGFsbEFkZHJlc3Nlc1ZhbGlkICYmIGFsbEFtb3VudHNWYWxpZCxcbiAgICB9O1xuICB9XG5cbiAgcGFyc2VSZWNpcGllbnRzKGFkZHJlc3NBcmc6IEVudHJ5RnVuY3Rpb25Bcmd1bWVudCwgYW1vdW50QXJnOiBFbnRyeUZ1bmN0aW9uQXJndW1lbnQpOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdIHtcbiAgICBjb25zdCB7IHJlY2lwaWVudHMsIGlzVmFsaWQgfSA9IHV0aWxzLmZldGNoQW5kVmFsaWRhdGVSZWNpcGllbnRzKGFkZHJlc3NBcmcsIGFtb3VudEFyZyk7XG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gcmVjaXBpZW50cycpO1xuICAgIH1cbiAgICByZXR1cm4gcmVjaXBpZW50cy5kZXNlcmlhbGl6ZWRBZGRyZXNzZXMubWFwKChhZGRyZXNzLCBpbmRleCkgPT4gKHtcbiAgICAgIGFkZHJlc3MsXG4gICAgICBhbW91bnQ6IHV0aWxzLmdldEFtb3VudEZyb21QYXlsb2FkQXJncyhyZWNpcGllbnRzLmRlc2VyaWFsaXplZEFtb3VudHNbaW5kZXhdKSxcbiAgICB9KSkgYXMgVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbiAgfVxuXG4gIGRlc2VyaWFsaXplU2lnbmVkVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eG5CeXRlcyA9IEhleC5mcm9tSGV4U3RyaW5nKHJhd1RyYW5zYWN0aW9uKS50b1VpbnQ4QXJyYXkoKTtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgRGVzZXJpYWxpemVyKHR4bkJ5dGVzKTtcbiAgICByZXR1cm4gZGVzZXJpYWxpemVyLmRlc2VyaWFsaXplKFNpZ25lZFRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIGRlc2VyaWFsaXplQWNjb3VudEFkZHJlc3NWZWN0b3Ioc2VyaWFsaXplZEJ5dGVzOiBVaW50OEFycmF5KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBEZXNlcmlhbGl6ZXIoc2VyaWFsaXplZEJ5dGVzKTtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZWRBZGRyZXNzZXMgPSBkZXNlcmlhbGl6ZXIuZGVzZXJpYWxpemVWZWN0b3IoQWNjb3VudEFkZHJlc3MpO1xuICAgIHJldHVybiBkZXNlcmlhbGl6ZWRBZGRyZXNzZXMubWFwKChhZGRyZXNzKSA9PiBhZGRyZXNzLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgZGVzZXJpYWxpemVVNjRWZWN0b3Ioc2VyaWFsaXplZEJ5dGVzOiBVaW50OEFycmF5KTogVWludDhBcnJheVtdIHtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgRGVzZXJpYWxpemVyKHNlcmlhbGl6ZWRCeXRlcyk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVkQW1vdW50cyA9IGRlc2VyaWFsaXplci5kZXNlcmlhbGl6ZVZlY3RvcihVNjQpO1xuICAgIHJldHVybiBkZXNlcmlhbGl6ZWRBbW91bnRzLm1hcCgoYW1vdW50KSA9PiBhbW91bnQuYmNzVG9CeXRlcygpKTtcbiAgfVxuXG4gIGdldEJ1ZmZlckZyb21IZXhTdHJpbmcoaGV4U3RyaW5nOiBzdHJpbmcpOiBCdWZmZXIge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShIZXguZnJvbUhleFN0cmluZyhoZXhTdHJpbmcpLnRvVWludDhBcnJheSgpKTtcbiAgfVxuXG4gIGNhc3RUb051bWJlcih2YWx1ZTogYmlnaW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IEJpZ051bWJlcih2YWx1ZS50b1N0cmluZygpKS50b051bWJlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmlwIGhleCBwcmVmaXhcbiAgICogQHBhcmFtIHN0clxuICAgKiBAcmV0dXJucyBoZXggc3RyaW5nIHdpdGhvdXQgMHggcHJlZml4XG4gICAqL1xuICBzdHJpcEhleFByZWZpeChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eMHgvaSwgJycpO1xuICB9XG5cbiAgZ2V0QW1vdW50RnJvbVBheWxvYWRBcmdzKGFtb3VudEFyZzogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgY29uc3QgYW1vdW50QnVmZmVyID0gQnVmZmVyLmZyb20oYW1vdW50QXJnKTtcbiAgICBjb25zdCBsb3cgPSBCaWdJbnQoYW1vdW50QnVmZmVyLnJlYWRVaW50MzJMRSgpKTtcbiAgICBjb25zdCBoaWdoID0gQmlnSW50KGFtb3VudEJ1ZmZlci5yZWFkVWludDMyTEUoNCkpO1xuICAgIGNvbnN0IGFtb3VudCA9IChoaWdoIDw8IEJpZ0ludCgzMikpICsgbG93O1xuICAgIHJldHVybiBhbW91bnQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBBcHRvcyB0cmFuc2FjdGlvbiBleHBpcmF0aW9uIHRpbWVzdGFtcCBpbiBzZWNvbmRzLlxuICAgKiBJdCBpcyBzZXQgdG8gMSB3ZWVrIGZyb20gbm93LlxuICAgKi9cbiAgZ2V0VHhuRXhwaXJhdGlvblRpbWVzdGFtcCgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxZTMpICsgU0VDT05EU19QRVJfV0VFSztcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { BitGoBase } from '@bitgo/sdk-core';
2
+ export declare const register: (sdk: BitGoBase) => void;
3
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IASzC,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = void 0;
4
+ const apt_1 = require("./apt");
5
+ const tapt_1 = require("./tapt");
6
+ const aptToken_1 = require("./aptToken");
7
+ const aptNFTCollection_1 = require("./aptNFTCollection");
8
+ const register = (sdk) => {
9
+ sdk.register('apt', apt_1.Apt.createInstance);
10
+ sdk.register('tapt', tapt_1.Tapt.createInstance);
11
+ aptToken_1.AptToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
12
+ sdk.register(name, coinConstructor);
13
+ });
14
+ aptNFTCollection_1.AptNFTCollection.createNFTCollectionConstructors().forEach(({ name, coinConstructor }) => {
15
+ sdk.register(name, coinConstructor);
16
+ });
17
+ };
18
+ exports.register = register;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUM5Qix5Q0FBc0M7QUFDdEMseURBQXNEO0FBRS9DLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBYyxFQUFRLEVBQUU7SUFDL0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxQyxtQkFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRTtRQUN2RSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNILG1DQUFnQixDQUFDLCtCQUErQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRTtRQUN2RixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQVRXLFFBQUEsUUFBUSxZQVNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBBcHQgfSBmcm9tICcuL2FwdCc7XG5pbXBvcnQgeyBUYXB0IH0gZnJvbSAnLi90YXB0JztcbmltcG9ydCB7IEFwdFRva2VuIH0gZnJvbSAnLi9hcHRUb2tlbic7XG5pbXBvcnQgeyBBcHRORlRDb2xsZWN0aW9uIH0gZnJvbSAnLi9hcHRORlRDb2xsZWN0aW9uJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIHNkay5yZWdpc3RlcignYXB0JywgQXB0LmNyZWF0ZUluc3RhbmNlKTtcbiAgc2RrLnJlZ2lzdGVyKCd0YXB0JywgVGFwdC5jcmVhdGVJbnN0YW5jZSk7XG4gIEFwdFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIHNkay5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcbiAgQXB0TkZUQ29sbGVjdGlvbi5jcmVhdGVORlRDb2xsZWN0aW9uQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIHNkay5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcbn07XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { BaseCoin, BitGoBase } from '@bitgo/sdk-core';
2
+ import { Apt } from './apt';
3
+ import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics';
4
+ export declare class Tapt extends Apt {
5
+ protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
6
+ protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
7
+ static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
8
+ /**
9
+ * Identifier for the blockchain which supports this coin
10
+ */
11
+ getChain(): string;
12
+ /**
13
+ * Complete human-readable name of this coin
14
+ */
15
+ getFullName(): string;
16
+ }
17
+ //# sourceMappingURL=tapt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tapt.d.ts","sourceRoot":"","sources":["../../src/tapt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7D,qBAAa,IAAK,SAAQ,GAAG;IAC3B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,WAAW,IAAI,MAAM;CAG7B"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tapt = void 0;
4
+ const apt_1 = require("./apt");
5
+ class Tapt extends apt_1.Apt {
6
+ constructor(bitgo, staticsCoin) {
7
+ super(bitgo, staticsCoin);
8
+ if (!staticsCoin) {
9
+ throw new Error('missing required constructor parameter staticsCoin');
10
+ }
11
+ this._staticsCoin = staticsCoin;
12
+ }
13
+ static createInstance(bitgo, staticsCoin) {
14
+ return new Tapt(bitgo, staticsCoin);
15
+ }
16
+ /**
17
+ * Identifier for the blockchain which supports this coin
18
+ */
19
+ getChain() {
20
+ return 'tapt';
21
+ }
22
+ /**
23
+ * Complete human-readable name of this coin
24
+ */
25
+ getFullName() {
26
+ return 'Testnet Aptos';
27
+ }
28
+ }
29
+ exports.Tapt = Tapt;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUE0QjtBQUc1QixNQUFhLElBQUssU0FBUSxTQUFHO0lBRTNCLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQTdCRCxvQkE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiwgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEFwdCB9IGZyb20gJy4vYXB0JztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcblxuZXhwb3J0IGNsYXNzIFRhcHQgZXh0ZW5kcyBBcHQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0YXRpY3NDb2luOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+O1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0aWNzQ29pbiA9IHN0YXRpY3NDb2luO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRhcHQoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGUgYmxvY2tjaGFpbiB3aGljaCBzdXBwb3J0cyB0aGlzIGNvaW5cbiAgICovXG4gIHB1YmxpYyBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAndGFwdCc7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGxldGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIGNvaW5cbiAgICovXG4gIHB1YmxpYyBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnVGVzdG5ldCBBcHRvcyc7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/sdk-coin-apt",
3
- "version": "2.4.15",
3
+ "version": "2.5.0",
4
4
  "description": "BitGo SDK coin library for APT (Aptos) coin",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -41,15 +41,15 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@aptos-labs/ts-sdk": "1.33.1",
44
- "@bitgo/sdk-core": "^36.4.0",
45
- "@bitgo/statics": "^57.4.0",
44
+ "@bitgo/sdk-core": "^36.5.0",
45
+ "@bitgo/statics": "^57.5.0",
46
46
  "bignumber.js": "^9.1.2",
47
47
  "lodash": "^4.17.21"
48
48
  },
49
49
  "devDependencies": {
50
- "@bitgo/sdk-api": "^1.66.3",
51
- "@bitgo/sdk-lib-mpc": "^10.6.0",
52
- "@bitgo/sdk-test": "^9.0.4"
50
+ "@bitgo/sdk-api": "^1.67.0",
51
+ "@bitgo/sdk-lib-mpc": "^10.7.0",
52
+ "@bitgo/sdk-test": "^9.0.5"
53
53
  },
54
- "gitHead": "7647f437fdb9b12d9b749274615285e5a69cf899"
54
+ "gitHead": "b37533c54509d4c7ac9590aed5c57995fc7ac859"
55
55
  }