@bitgo-beta/sdk-coin-apt 0.0.0-semantic-release-managed

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 (78) hide show
  1. package/.eslintignore +4 -0
  2. package/.mocharc.yml +8 -0
  3. package/CHANGELOG.md +330 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/apt.d.ts +44 -0
  7. package/dist/src/apt.d.ts.map +1 -0
  8. package/dist/src/apt.js +212 -0
  9. package/dist/src/aptNFTCollection.d.ts +18 -0
  10. package/dist/src/aptNFTCollection.d.ts.map +1 -0
  11. package/dist/src/aptNFTCollection.js +52 -0
  12. package/dist/src/aptToken.d.ts +19 -0
  13. package/dist/src/aptToken.d.ts.map +1 -0
  14. package/dist/src/aptToken.js +52 -0
  15. package/dist/src/index.d.ts +7 -0
  16. package/dist/src/index.d.ts.map +1 -0
  17. package/dist/src/index.js +23 -0
  18. package/dist/src/lib/constants.d.ts +21 -0
  19. package/dist/src/lib/constants.d.ts.map +1 -0
  20. package/dist/src/lib/constants.js +24 -0
  21. package/dist/src/lib/iface.d.ts +108 -0
  22. package/dist/src/lib/iface.d.ts.map +1 -0
  23. package/dist/src/lib/iface.js +3 -0
  24. package/dist/src/lib/index.d.ts +16 -0
  25. package/dist/src/lib/index.d.ts.map +1 -0
  26. package/dist/src/lib/index.js +65 -0
  27. package/dist/src/lib/keyPair.d.ts +18 -0
  28. package/dist/src/lib/keyPair.d.ts.map +1 -0
  29. package/dist/src/lib/keyPair.js +44 -0
  30. package/dist/src/lib/transaction/customTransaction.d.ts +54 -0
  31. package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
  32. package/dist/src/lib/transaction/customTransaction.js +228 -0
  33. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
  34. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
  35. package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
  36. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
  37. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
  38. package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
  39. package/dist/src/lib/transaction/transaction.d.ts +81 -0
  40. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  41. package/dist/src/lib/transaction/transaction.js +332 -0
  42. package/dist/src/lib/transaction/transferTransaction.d.ts +12 -0
  43. package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -0
  44. package/dist/src/lib/transaction/transferTransaction.js +63 -0
  45. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
  46. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  47. package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
  48. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
  49. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  50. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
  51. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
  52. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  53. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
  54. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +68 -0
  55. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  56. package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
  57. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts +13 -0
  58. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  59. package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
  60. package/dist/src/lib/transactionBuilderFactory.d.ts +39 -0
  61. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  62. package/dist/src/lib/transactionBuilderFactory.js +99 -0
  63. package/dist/src/lib/types.d.ts +9 -0
  64. package/dist/src/lib/types.d.ts.map +1 -0
  65. package/dist/src/lib/types.js +3 -0
  66. package/dist/src/lib/utils/validation.d.ts +32 -0
  67. package/dist/src/lib/utils/validation.d.ts.map +1 -0
  68. package/dist/src/lib/utils/validation.js +99 -0
  69. package/dist/src/lib/utils.d.ts +42 -0
  70. package/dist/src/lib/utils.d.ts.map +1 -0
  71. package/dist/src/lib/utils.js +150 -0
  72. package/dist/src/register.d.ts +3 -0
  73. package/dist/src/register.d.ts.map +1 -0
  74. package/dist/src/register.js +19 -0
  75. package/dist/src/tapt.d.ts +17 -0
  76. package/dist/src/tapt.d.ts.map +1 -0
  77. package/dist/src/tapt.js +30 -0
  78. package/package.json +55 -0
@@ -0,0 +1,63 @@
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.TransferTransaction = void 0;
7
+ const transaction_1 = require("./transaction");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
10
+ const constants_1 = require("../constants");
11
+ const utils_1 = __importDefault(require("../utils"));
12
+ class TransferTransaction extends transaction_1.Transaction {
13
+ constructor(coinConfig) {
14
+ super(coinConfig);
15
+ this.coinTransferAbi = {
16
+ typeParameters: [{ constraints: [] }],
17
+ parameters: [new ts_sdk_1.TypeTagAddress(), new ts_sdk_1.TypeTagU64()],
18
+ };
19
+ this.batchCoinTransferAbi = {
20
+ typeParameters: [{ constraints: [] }],
21
+ parameters: [new ts_sdk_1.TypeTagVector(new ts_sdk_1.TypeTagAddress()), new ts_sdk_1.TypeTagVector(new ts_sdk_1.TypeTagU64())],
22
+ };
23
+ this._type = sdk_core_1.TransactionType.Send;
24
+ this._assetId = constants_1.APTOS_COIN;
25
+ }
26
+ parseTransactionPayload(payload) {
27
+ if (!this.isValidPayload(payload)) {
28
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction payload');
29
+ }
30
+ const entryFunction = payload.entryFunction;
31
+ this._assetId = entryFunction.type_args[0].toString();
32
+ const addressArg = entryFunction.args[0];
33
+ const amountArg = entryFunction.args[1];
34
+ this.recipients = utils_1.default.parseRecipients(addressArg, amountArg);
35
+ }
36
+ getTransactionPayloadData() {
37
+ if (this.recipients.length > 1) {
38
+ return {
39
+ function: constants_1.COIN_BATCH_TRANSFER_FUNCTION,
40
+ typeArguments: [this.assetId],
41
+ functionArguments: [
42
+ this.recipients.map((recipient) => ts_sdk_1.AccountAddress.fromString(recipient.address)),
43
+ this.recipients.map((recipient) => recipient.amount),
44
+ ],
45
+ abi: this.batchCoinTransferAbi,
46
+ };
47
+ }
48
+ return {
49
+ function: constants_1.COIN_TRANSFER_FUNCTION,
50
+ typeArguments: [this.assetId],
51
+ functionArguments: [ts_sdk_1.AccountAddress.fromString(this.recipients[0].address), this.recipients[0].amount],
52
+ abi: this.coinTransferAbi,
53
+ };
54
+ }
55
+ isValidPayload(payload) {
56
+ return (payload instanceof ts_sdk_1.TransactionPayloadEntryFunction &&
57
+ payload.entryFunction.args.length === 2 &&
58
+ payload.entryFunction.type_args.length === 1 &&
59
+ payload.entryFunction.type_args[0].toString().length > 0);
60
+ }
61
+ }
62
+ exports.TransferTransaction = TransferTransaction;
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24vdHJhbnNmZXJUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQ0FBNEM7QUFDNUMsbURBQWdGO0FBQ2hGLCtDQVM0QjtBQUc1Qiw0Q0FBZ0c7QUFDaEcscURBQTZCO0FBRTdCLE1BQWEsbUJBQW9CLFNBQVEseUJBQVc7SUFDbEQsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUE2Q1osb0JBQWUsR0FBcUI7WUFDMUMsY0FBYyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDckMsVUFBVSxFQUFFLENBQUMsSUFBSSx1QkFBYyxFQUFFLEVBQUUsSUFBSSxtQkFBVSxFQUFFLENBQUM7U0FDckQsQ0FBQztRQUVNLHlCQUFvQixHQUFxQjtZQUMvQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNyQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLHNCQUFhLENBQUMsSUFBSSx1QkFBYyxFQUFFLENBQUMsRUFBRSxJQUFJLHNCQUFhLENBQUMsSUFBSSxtQkFBVSxFQUFFLENBQUMsQ0FBQztTQUMzRixDQUFDO1FBcERBLElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxzQkFBVSxDQUFDO0lBQzdCLENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxPQUEyQjtRQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBSSxPQUEyQyxDQUFDLGFBQWEsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBSyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVTLHlCQUF5QjtRQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLHdDQUE0QjtnQkFDdEMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDN0IsaUJBQWlCLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyx1QkFBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2hGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO2lCQUNyRDtnQkFDRCxHQUFHLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjthQUMvQixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU87WUFDTCxRQUFRLEVBQUUsa0NBQXNCO1lBQ2hDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDN0IsaUJBQWlCLEVBQUUsQ0FBQyx1QkFBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3JHLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUEyQjtRQUNoRCxPQUFPLENBQ0wsT0FBTyxZQUFZLHdDQUErQjtZQUNsRCxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN2QyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUM1QyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztDQVdGO0FBeERELGtEQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgQWNjb3VudEFkZHJlc3MsXG4gIEVudHJ5RnVuY3Rpb25BQkksXG4gIElucHV0R2VuZXJhdGVUcmFuc2FjdGlvblBheWxvYWREYXRhLFxuICBUcmFuc2FjdGlvblBheWxvYWQsXG4gIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24sXG4gIFR5cGVUYWdBZGRyZXNzLFxuICBUeXBlVGFnVTY0LFxuICBUeXBlVGFnVmVjdG9yLFxufSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuXG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBBUFRPU19DT0lOLCBDT0lOX0JBVENIX1RSQU5TRkVSX0ZVTkNUSU9OLCBDT0lOX1RSQU5TRkVSX0ZVTkNUSU9OIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlclRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb24ge1xuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICB0aGlzLl9hc3NldElkID0gQVBUT1NfQ09JTjtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZVRyYW5zYWN0aW9uUGF5bG9hZChwYXlsb2FkOiBUcmFuc2FjdGlvblBheWxvYWQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZFBheWxvYWQocGF5bG9hZCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbiBwYXlsb2FkJyk7XG4gICAgfVxuICAgIGNvbnN0IGVudHJ5RnVuY3Rpb24gPSAocGF5bG9hZCBhcyBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uKS5lbnRyeUZ1bmN0aW9uO1xuICAgIHRoaXMuX2Fzc2V0SWQgPSBlbnRyeUZ1bmN0aW9uLnR5cGVfYXJnc1swXS50b1N0cmluZygpO1xuICAgIGNvbnN0IGFkZHJlc3NBcmcgPSBlbnRyeUZ1bmN0aW9uLmFyZ3NbMF07XG4gICAgY29uc3QgYW1vdW50QXJnID0gZW50cnlGdW5jdGlvbi5hcmdzWzFdO1xuICAgIHRoaXMucmVjaXBpZW50cyA9IHV0aWxzLnBhcnNlUmVjaXBpZW50cyhhZGRyZXNzQXJnLCBhbW91bnRBcmcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uUGF5bG9hZERhdGEoKTogSW5wdXRHZW5lcmF0ZVRyYW5zYWN0aW9uUGF5bG9hZERhdGEge1xuICAgIGlmICh0aGlzLnJlY2lwaWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnVuY3Rpb246IENPSU5fQkFUQ0hfVFJBTlNGRVJfRlVOQ1RJT04sXG4gICAgICAgIHR5cGVBcmd1bWVudHM6IFt0aGlzLmFzc2V0SWRdLFxuICAgICAgICBmdW5jdGlvbkFyZ3VtZW50czogW1xuICAgICAgICAgIHRoaXMucmVjaXBpZW50cy5tYXAoKHJlY2lwaWVudCkgPT4gQWNjb3VudEFkZHJlc3MuZnJvbVN0cmluZyhyZWNpcGllbnQuYWRkcmVzcykpLFxuICAgICAgICAgIHRoaXMucmVjaXBpZW50cy5tYXAoKHJlY2lwaWVudCkgPT4gcmVjaXBpZW50LmFtb3VudCksXG4gICAgICAgIF0sXG4gICAgICAgIGFiaTogdGhpcy5iYXRjaENvaW5UcmFuc2ZlckFiaSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBmdW5jdGlvbjogQ09JTl9UUkFOU0ZFUl9GVU5DVElPTixcbiAgICAgIHR5cGVBcmd1bWVudHM6IFt0aGlzLmFzc2V0SWRdLFxuICAgICAgZnVuY3Rpb25Bcmd1bWVudHM6IFtBY2NvdW50QWRkcmVzcy5mcm9tU3RyaW5nKHRoaXMucmVjaXBpZW50c1swXS5hZGRyZXNzKSwgdGhpcy5yZWNpcGllbnRzWzBdLmFtb3VudF0sXG4gICAgICBhYmk6IHRoaXMuY29pblRyYW5zZmVyQWJpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRQYXlsb2FkKHBheWxvYWQ6IFRyYW5zYWN0aW9uUGF5bG9hZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBwYXlsb2FkIGluc3RhbmNlb2YgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbiAmJlxuICAgICAgcGF5bG9hZC5lbnRyeUZ1bmN0aW9uLmFyZ3MubGVuZ3RoID09PSAyICYmXG4gICAgICBwYXlsb2FkLmVudHJ5RnVuY3Rpb24udHlwZV9hcmdzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgcGF5bG9hZC5lbnRyeUZ1bmN0aW9uLnR5cGVfYXJnc1swXS50b1N0cmluZygpLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2luVHJhbnNmZXJBYmk6IEVudHJ5RnVuY3Rpb25BQkkgPSB7XG4gICAgdHlwZVBhcmFtZXRlcnM6IFt7IGNvbnN0cmFpbnRzOiBbXSB9XSxcbiAgICBwYXJhbWV0ZXJzOiBbbmV3IFR5cGVUYWdBZGRyZXNzKCksIG5ldyBUeXBlVGFnVTY0KCldLFxuICB9O1xuXG4gIHByaXZhdGUgYmF0Y2hDb2luVHJhbnNmZXJBYmk6IEVudHJ5RnVuY3Rpb25BQkkgPSB7XG4gICAgdHlwZVBhcmFtZXRlcnM6IFt7IGNvbnN0cmFpbnRzOiBbXSB9XSxcbiAgICBwYXJhbWV0ZXJzOiBbbmV3IFR5cGVUYWdWZWN0b3IobmV3IFR5cGVUYWdBZGRyZXNzKCkpLCBuZXcgVHlwZVRhZ1ZlY3RvcihuZXcgVHlwZVRhZ1U2NCgpKV0sXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,64 @@
1
+ import { TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { EntryFunctionABI, TransactionPayload } from '@aptos-labs/ts-sdk';
4
+ import { Transaction } from '../transaction/transaction';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ import { CustomTransaction } from '../transaction/customTransaction';
7
+ import { CustomTransactionParams } from '../iface';
8
+ /**
9
+ * Builder for Aptos custom transactions.
10
+ * Allows building transactions with any entry function call.
11
+ */
12
+ export declare class CustomTransactionBuilder extends TransactionBuilder {
13
+ protected _transaction: CustomTransaction;
14
+ constructor(_coinConfig: Readonly<CoinConfig>);
15
+ /**
16
+ * @returns {TransactionType} The transaction type
17
+ */
18
+ protected get transactionType(): TransactionType;
19
+ /**
20
+ * Set the custom transaction parameters
21
+ *
22
+ * @param {CustomTransactionParams} params - Custom transaction parameters
23
+ * @returns {CustomTransactionBuilder} The builder instance
24
+ */
25
+ customTransaction(params: CustomTransactionParams): CustomTransactionBuilder;
26
+ /**
27
+ * Set the entry function ABI
28
+ *
29
+ * @param {EntryFunctionABI} abi - The ABI definition for the entry function
30
+ * @returns {CustomTransactionBuilder} The builder instance
31
+ */
32
+ entryFunctionAbi(abi: EntryFunctionABI): CustomTransactionBuilder;
33
+ /**
34
+ * @inheritdoc
35
+ */
36
+ assetId(assetId: string): TransactionBuilder;
37
+ /**
38
+ * Check if a transaction payload is valid for this builder
39
+ *
40
+ * @param {TransactionPayload} payload - The transaction payload to check
41
+ * @returns {boolean} True if the payload is valid for this builder
42
+ */
43
+ protected isValidTransactionPayload(payload: TransactionPayload): boolean;
44
+ /**
45
+ * Initialize the builder from an existing transaction
46
+ *
47
+ * @param {Transaction} tx - The transaction to initialize from
48
+ */
49
+ initBuilder(tx: Transaction): void;
50
+ /**
51
+ * Build the transaction
52
+ *
53
+ * @returns {Promise<CustomTransaction>} The built transaction
54
+ */
55
+ build(): Promise<CustomTransaction>;
56
+ /**
57
+ * Get the transaction builder instance from an existing transaction
58
+ *
59
+ * @param {Transaction} tx - The transaction to convert
60
+ * @returns {TransactionBuilder} The transaction builder
61
+ */
62
+ from(tx: Transaction): TransactionBuilder;
63
+ }
64
+ //# sourceMappingURL=customTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/customTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAmC,MAAM,oBAAoB,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAGnD;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC;gBAE9B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;OAEG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,wBAAwB;IAa5E;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,wBAAwB;IAKjE;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAM5C;;;;;OAKG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAsBzE;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAYlC;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC;IASzC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,EAAE,WAAW,GAAG,kBAAkB;CAQ1C"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomTransactionBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
6
+ const transactionBuilder_1 = require("./transactionBuilder");
7
+ const customTransaction_1 = require("../transaction/customTransaction");
8
+ const validation_1 = require("../utils/validation");
9
+ /**
10
+ * Builder for Aptos custom transactions.
11
+ * Allows building transactions with any entry function call.
12
+ */
13
+ class CustomTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
14
+ constructor(_coinConfig) {
15
+ super(_coinConfig);
16
+ this._transaction = new customTransaction_1.CustomTransaction(_coinConfig);
17
+ }
18
+ /**
19
+ * @returns {TransactionType} The transaction type
20
+ */
21
+ get transactionType() {
22
+ return sdk_core_1.TransactionType.CustomTx;
23
+ }
24
+ /**
25
+ * Set the custom transaction parameters
26
+ *
27
+ * @param {CustomTransactionParams} params - Custom transaction parameters
28
+ * @returns {CustomTransactionBuilder} The builder instance
29
+ */
30
+ customTransaction(params) {
31
+ if (!params.moduleName) {
32
+ throw new sdk_core_1.BuildTransactionError('Missing module name');
33
+ }
34
+ if (!params.functionName) {
35
+ throw new sdk_core_1.BuildTransactionError('Missing function name');
36
+ }
37
+ this._transaction.setCustomTransactionParams(params);
38
+ return this;
39
+ }
40
+ /**
41
+ * Set the entry function ABI
42
+ *
43
+ * @param {EntryFunctionABI} abi - The ABI definition for the entry function
44
+ * @returns {CustomTransactionBuilder} The builder instance
45
+ */
46
+ entryFunctionAbi(abi) {
47
+ this._transaction.setEntryFunctionAbi(abi);
48
+ return this;
49
+ }
50
+ /**
51
+ * @inheritdoc
52
+ */
53
+ assetId(assetId) {
54
+ // Asset ID is optional for custom transactions
55
+ this._transaction.assetId = assetId;
56
+ return this;
57
+ }
58
+ /**
59
+ * Check if a transaction payload is valid for this builder
60
+ *
61
+ * @param {TransactionPayload} payload - The transaction payload to check
62
+ * @returns {boolean} True if the payload is valid for this builder
63
+ */
64
+ isValidTransactionPayload(payload) {
65
+ // Basic payload type check
66
+ if (!(payload instanceof ts_sdk_1.TransactionPayloadEntryFunction)) {
67
+ return false;
68
+ }
69
+ try {
70
+ const entryFunction = payload.entryFunction;
71
+ // Validate module and function identifiers
72
+ const moduleAddress = entryFunction.module_name.address.toString();
73
+ const moduleIdentifier = entryFunction.module_name.name.identifier;
74
+ const functionIdentifier = entryFunction.function_name.identifier;
75
+ const moduleName = `${moduleAddress}::${moduleIdentifier}`;
76
+ if (!(0, validation_1.isValidModuleName)(moduleName) || !(0, validation_1.isValidFunctionName)(functionIdentifier)) {
77
+ return false;
78
+ }
79
+ return true;
80
+ }
81
+ catch (error) {
82
+ return false;
83
+ }
84
+ }
85
+ /**
86
+ * Initialize the builder from an existing transaction
87
+ *
88
+ * @param {Transaction} tx - The transaction to initialize from
89
+ */
90
+ initBuilder(tx) {
91
+ super.initBuilder(tx);
92
+ if (tx instanceof customTransaction_1.CustomTransaction) {
93
+ const params = tx.getCustomTransactionParams();
94
+ // Only set custom transaction params if they are defined
95
+ if (params.moduleName && params.functionName) {
96
+ this.customTransaction(params);
97
+ }
98
+ }
99
+ }
100
+ /**
101
+ * Build the transaction
102
+ *
103
+ * @returns {Promise<CustomTransaction>} The built transaction
104
+ */
105
+ async build() {
106
+ const params = this._transaction.getCustomTransactionParams();
107
+ if (!params.moduleName || !params.functionName) {
108
+ throw new sdk_core_1.BuildTransactionError('Missing required module or function name');
109
+ }
110
+ return (await super.build());
111
+ }
112
+ /**
113
+ * Get the transaction builder instance from an existing transaction
114
+ *
115
+ * @param {Transaction} tx - The transaction to convert
116
+ * @returns {TransactionBuilder} The transaction builder
117
+ */
118
+ from(tx) {
119
+ if (!(tx instanceof customTransaction_1.CustomTransaction)) {
120
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction type');
121
+ }
122
+ this.initBuilder(tx);
123
+ return this;
124
+ }
125
+ }
126
+ exports.CustomTransactionBuilder = CustomTransactionBuilder;
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIvY3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUE4RTtBQUU5RSwrQ0FBMkc7QUFFM0csNkRBQTBEO0FBQzFELHdFQUFxRTtBQUVyRSxvREFBNkU7QUFFN0U7OztHQUdHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSx1Q0FBa0I7SUFHOUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHFDQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNILElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFDLE1BQStCO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxHQUFxQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLE9BQWU7UUFDckIsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLHlCQUF5QixDQUFDLE9BQTJCO1FBQzdELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksd0NBQStCLENBQUMsRUFBRSxDQUFDO1lBQzFELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDNUMsMkNBQTJDO1lBQzNDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25FLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ25FLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDbEUsTUFBTSxVQUFVLEdBQUcsR0FBRyxhQUFhLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUUzRCxJQUFJLENBQUMsSUFBQSw4QkFBaUIsRUFBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUEsZ0NBQW1CLEVBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUMvRSxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRCLElBQUksRUFBRSxZQUFZLHFDQUFpQixFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDL0MseURBQXlEO1lBQ3pELElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLE1BQU0sR0FBSSxJQUFJLENBQUMsWUFBa0MsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3JGLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQXNCLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLEVBQWU7UUFDbEIsSUFBSSxDQUFDLENBQUMsRUFBRSxZQUFZLHFDQUFpQixDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksZ0NBQXFCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQS9IRCw0REErSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEVudHJ5RnVuY3Rpb25BQkksIFRyYW5zYWN0aW9uUGF5bG9hZCwgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbiB9IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEN1c3RvbVRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vY3VzdG9tVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXMgfSBmcm9tICcuLi9pZmFjZSc7XG5pbXBvcnQgeyBpc1ZhbGlkTW9kdWxlTmFtZSwgaXNWYWxpZEZ1bmN0aW9uTmFtZSB9IGZyb20gJy4uL3V0aWxzL3ZhbGlkYXRpb24nO1xuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIEFwdG9zIGN1c3RvbSB0cmFuc2FjdGlvbnMuXG4gKiBBbGxvd3MgYnVpbGRpbmcgdHJhbnNhY3Rpb25zIHdpdGggYW55IGVudHJ5IGZ1bmN0aW9uIGNhbGwuXG4gKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBDdXN0b21UcmFuc2FjdGlvbjtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgQ3VzdG9tVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvblR5cGV9IFRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuQ3VzdG9tVHg7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjdXN0b20gdHJhbnNhY3Rpb24gcGFyYW1ldGVyc1xuICAgKlxuICAgKiBAcGFyYW0ge0N1c3RvbVRyYW5zYWN0aW9uUGFyYW1zfSBwYXJhbXMgLSBDdXN0b20gdHJhbnNhY3Rpb24gcGFyYW1ldGVyc1xuICAgKiBAcmV0dXJucyB7Q3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyfSBUaGUgYnVpbGRlciBpbnN0YW5jZVxuICAgKi9cbiAgY3VzdG9tVHJhbnNhY3Rpb24ocGFyYW1zOiBDdXN0b21UcmFuc2FjdGlvblBhcmFtcyk6IEN1c3RvbVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgaWYgKCFwYXJhbXMubW9kdWxlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBtb2R1bGUgbmFtZScpO1xuICAgIH1cblxuICAgIGlmICghcGFyYW1zLmZ1bmN0aW9uTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBmdW5jdGlvbiBuYW1lJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uc2V0Q3VzdG9tVHJhbnNhY3Rpb25QYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGVudHJ5IGZ1bmN0aW9uIEFCSVxuICAgKlxuICAgKiBAcGFyYW0ge0VudHJ5RnVuY3Rpb25BQkl9IGFiaSAtIFRoZSBBQkkgZGVmaW5pdGlvbiBmb3IgdGhlIGVudHJ5IGZ1bmN0aW9uXG4gICAqIEByZXR1cm5zIHtDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoZSBidWlsZGVyIGluc3RhbmNlXG4gICAqL1xuICBlbnRyeUZ1bmN0aW9uQWJpKGFiaTogRW50cnlGdW5jdGlvbkFCSSk6IEN1c3RvbVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uc2V0RW50cnlGdW5jdGlvbkFiaShhYmkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBhc3NldElkKGFzc2V0SWQ6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgLy8gQXNzZXQgSUQgaXMgb3B0aW9uYWwgZm9yIGN1c3RvbSB0cmFuc2FjdGlvbnNcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5hc3NldElkID0gYXNzZXRJZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHRyYW5zYWN0aW9uIHBheWxvYWQgaXMgdmFsaWQgZm9yIHRoaXMgYnVpbGRlclxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uUGF5bG9hZH0gcGF5bG9hZCAtIFRoZSB0cmFuc2FjdGlvbiBwYXlsb2FkIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBwYXlsb2FkIGlzIHZhbGlkIGZvciB0aGlzIGJ1aWxkZXJcbiAgICovXG4gIHByb3RlY3RlZCBpc1ZhbGlkVHJhbnNhY3Rpb25QYXlsb2FkKHBheWxvYWQ6IFRyYW5zYWN0aW9uUGF5bG9hZCk6IGJvb2xlYW4ge1xuICAgIC8vIEJhc2ljIHBheWxvYWQgdHlwZSBjaGVja1xuICAgIGlmICghKHBheWxvYWQgaW5zdGFuY2VvZiBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZW50cnlGdW5jdGlvbiA9IHBheWxvYWQuZW50cnlGdW5jdGlvbjtcbiAgICAgIC8vIFZhbGlkYXRlIG1vZHVsZSBhbmQgZnVuY3Rpb24gaWRlbnRpZmllcnNcbiAgICAgIGNvbnN0IG1vZHVsZUFkZHJlc3MgPSBlbnRyeUZ1bmN0aW9uLm1vZHVsZV9uYW1lLmFkZHJlc3MudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IG1vZHVsZUlkZW50aWZpZXIgPSBlbnRyeUZ1bmN0aW9uLm1vZHVsZV9uYW1lLm5hbWUuaWRlbnRpZmllcjtcbiAgICAgIGNvbnN0IGZ1bmN0aW9uSWRlbnRpZmllciA9IGVudHJ5RnVuY3Rpb24uZnVuY3Rpb25fbmFtZS5pZGVudGlmaWVyO1xuICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IGAke21vZHVsZUFkZHJlc3N9Ojoke21vZHVsZUlkZW50aWZpZXJ9YDtcblxuICAgICAgaWYgKCFpc1ZhbGlkTW9kdWxlTmFtZShtb2R1bGVOYW1lKSB8fCAhaXNWYWxpZEZ1bmN0aW9uTmFtZShmdW5jdGlvbklkZW50aWZpZXIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgZnJvbSBhbiBleGlzdGluZyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCAtIFRoZSB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIGZyb21cbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcblxuICAgIGlmICh0eCBpbnN0YW5jZW9mIEN1c3RvbVRyYW5zYWN0aW9uKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSB0eC5nZXRDdXN0b21UcmFuc2FjdGlvblBhcmFtcygpO1xuICAgICAgLy8gT25seSBzZXQgY3VzdG9tIHRyYW5zYWN0aW9uIHBhcmFtcyBpZiB0aGV5IGFyZSBkZWZpbmVkXG4gICAgICBpZiAocGFyYW1zLm1vZHVsZU5hbWUgJiYgcGFyYW1zLmZ1bmN0aW9uTmFtZSkge1xuICAgICAgICB0aGlzLmN1c3RvbVRyYW5zYWN0aW9uKHBhcmFtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxDdXN0b21UcmFuc2FjdGlvbj59IFRoZSBidWlsdCB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTxDdXN0b21UcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHBhcmFtcyA9ICh0aGlzLl90cmFuc2FjdGlvbiBhcyBDdXN0b21UcmFuc2FjdGlvbikuZ2V0Q3VzdG9tVHJhbnNhY3Rpb25QYXJhbXMoKTtcbiAgICBpZiAoIXBhcmFtcy5tb2R1bGVOYW1lIHx8ICFwYXJhbXMuZnVuY3Rpb25OYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIG1vZHVsZSBvciBmdW5jdGlvbiBuYW1lJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChhd2FpdCBzdXBlci5idWlsZCgpKSBhcyBDdXN0b21UcmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgaW5zdGFuY2UgZnJvbSBhbiBleGlzdGluZyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCAtIFRoZSB0cmFuc2FjdGlvbiB0byBjb252ZXJ0XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoZSB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBmcm9tKHR4OiBUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgaWYgKCEodHggaW5zdGFuY2VvZiBDdXN0b21UcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { TransactionBuilder } from './transactionBuilder';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { TransactionType } from '@bitgo-beta/sdk-core';
4
+ import { TransactionPayload } from '@aptos-labs/ts-sdk';
5
+ import { DigitalAssetTransfer } from '../transaction/digitalAssetTransfer';
6
+ export declare class DigitalAssetTransferBuilder extends TransactionBuilder {
7
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
+ protected get transactionType(): TransactionType;
9
+ assetId(assetId: string): TransactionBuilder;
10
+ /** @inheritdoc */
11
+ validateTransaction(transaction?: DigitalAssetTransfer): void;
12
+ protected isValidTransactionPayload(payload: TransactionPayload): boolean;
13
+ }
14
+ //# sourceMappingURL=digitalAssetTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalAssetTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/digitalAssetTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAmC,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,qBAAa,2BAA4B,SAAQ,kBAAkB;gBACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAM5C,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAQ7D,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,kBAAkB;CAoBhE"}
@@ -0,0 +1,55 @@
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.DigitalAssetTransferBuilder = void 0;
7
+ const transactionBuilder_1 = require("./transactionBuilder");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const utils_1 = __importDefault(require("../utils"));
10
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
11
+ const digitalAssetTransfer_1 = require("../transaction/digitalAssetTransfer");
12
+ const constants_1 = require("../constants");
13
+ class DigitalAssetTransferBuilder extends transactionBuilder_1.TransactionBuilder {
14
+ constructor(_coinConfig) {
15
+ super(_coinConfig);
16
+ this._transaction = new digitalAssetTransfer_1.DigitalAssetTransfer(_coinConfig);
17
+ }
18
+ get transactionType() {
19
+ return sdk_core_1.TransactionType.SendNFT;
20
+ }
21
+ assetId(assetId) {
22
+ this.validateAddress({ address: assetId });
23
+ this.transaction.assetId = assetId;
24
+ return this;
25
+ }
26
+ /** @inheritdoc */
27
+ validateTransaction(transaction) {
28
+ if (!transaction) {
29
+ throw new Error('transaction not defined');
30
+ }
31
+ super.validateTransaction(transaction);
32
+ this.validateAddress({ address: transaction.assetId });
33
+ }
34
+ isValidTransactionPayload(payload) {
35
+ try {
36
+ if (!(payload instanceof ts_sdk_1.TransactionPayloadEntryFunction) ||
37
+ payload.entryFunction.args.length !== 2 ||
38
+ payload.entryFunction.type_args.length !== 1 ||
39
+ constants_1.DIGITAL_ASSET_TYPE_ARGUMENT !== payload.entryFunction.type_args[0].toString()) {
40
+ console.error('invalid transaction payload');
41
+ return false;
42
+ }
43
+ const entryFunction = payload.entryFunction;
44
+ const digitalAssetAddress = entryFunction.args[0].toString();
45
+ const recipientAddress = entryFunction.args[1].toString();
46
+ return utils_1.default.isValidAddress(recipientAddress) && utils_1.default.isValidAddress(digitalAssetAddress);
47
+ }
48
+ catch (e) {
49
+ console.error('invalid transaction payload', e);
50
+ return false;
51
+ }
52
+ }
53
+ }
54
+ exports.DigitalAssetTransferBuilder = DigitalAssetTransferBuilder;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRhbEFzc2V0VHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIvZGlnaXRhbEFzc2V0VHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDZEQUEwRDtBQUUxRCxtREFBdUQ7QUFDdkQscURBQTZCO0FBQzdCLCtDQUF5RjtBQUN6Riw4RUFBMkU7QUFDM0UsNENBQTJEO0FBRTNELE1BQWEsMkJBQTRCLFNBQVEsdUNBQWtCO0lBQ2pFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQWtDO1FBQ3BELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUyx5QkFBeUIsQ0FBQyxPQUEyQjtRQUM3RCxJQUFJLENBQUM7WUFDSCxJQUNFLENBQUMsQ0FBQyxPQUFPLFlBQVksd0NBQStCLENBQUM7Z0JBQ3JELE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUN2QyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDNUMsdUNBQTJCLEtBQUssT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQzdFLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUM3QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQzVDLE1BQU0sbUJBQW1CLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RCxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUQsT0FBTyxlQUFLLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksZUFBSyxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3Q0Qsa0VBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUGF5bG9hZCwgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbiB9IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgeyBEaWdpdGFsQXNzZXRUcmFuc2ZlciB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL2RpZ2l0YWxBc3NldFRyYW5zZmVyJztcbmltcG9ydCB7IERJR0lUQUxfQVNTRVRfVFlQRV9BUkdVTUVOVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBEaWdpdGFsQXNzZXRUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgRGlnaXRhbEFzc2V0VHJhbnNmZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmRORlQ7XG4gIH1cblxuICBhc3NldElkKGFzc2V0SWQ6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiBhc3NldElkIH0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uYXNzZXRJZCA9IGFzc2V0SWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IERpZ2l0YWxBc3NldFRyYW5zZmVyKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiBub3QgZGVmaW5lZCcpO1xuICAgIH1cbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRyYW5zYWN0aW9uLmFzc2V0SWQgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNWYWxpZFRyYW5zYWN0aW9uUGF5bG9hZChwYXlsb2FkOiBUcmFuc2FjdGlvblBheWxvYWQpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICAhKHBheWxvYWQgaW5zdGFuY2VvZiBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uKSB8fFxuICAgICAgICBwYXlsb2FkLmVudHJ5RnVuY3Rpb24uYXJncy5sZW5ndGggIT09IDIgfHxcbiAgICAgICAgcGF5bG9hZC5lbnRyeUZ1bmN0aW9uLnR5cGVfYXJncy5sZW5ndGggIT09IDEgfHxcbiAgICAgICAgRElHSVRBTF9BU1NFVF9UWVBFX0FSR1VNRU5UICE9PSBwYXlsb2FkLmVudHJ5RnVuY3Rpb24udHlwZV9hcmdzWzBdLnRvU3RyaW5nKClcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIHRyYW5zYWN0aW9uIHBheWxvYWQnKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3QgZW50cnlGdW5jdGlvbiA9IHBheWxvYWQuZW50cnlGdW5jdGlvbjtcbiAgICAgIGNvbnN0IGRpZ2l0YWxBc3NldEFkZHJlc3MgPSBlbnRyeUZ1bmN0aW9uLmFyZ3NbMF0udG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IHJlY2lwaWVudEFkZHJlc3MgPSBlbnRyeUZ1bmN0aW9uLmFyZ3NbMV0udG9TdHJpbmcoKTtcbiAgICAgIHJldHVybiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnRBZGRyZXNzKSAmJiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhkaWdpdGFsQXNzZXRBZGRyZXNzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIHRyYW5zYWN0aW9uIHBheWxvYWQnLCBlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { TransactionBuilder } from './transactionBuilder';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { FungibleAssetTransfer } from '../transaction/fungibleAssetTransfer';
4
+ import { TransactionType } from '@bitgo-beta/sdk-core';
5
+ import { TransactionPayload } from '@aptos-labs/ts-sdk';
6
+ export declare class FungibleAssetTransferBuilder extends TransactionBuilder {
7
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
+ protected get transactionType(): TransactionType;
9
+ assetId(assetId: string): TransactionBuilder;
10
+ /** @inheritdoc */
11
+ validateTransaction(transaction?: FungibleAssetTransfer): void;
12
+ protected isValidTransactionPayload(payload: TransactionPayload): boolean;
13
+ private isValidPayload;
14
+ }
15
+ //# sourceMappingURL=fungibleAssetTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fungibleAssetTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/fungibleAssetTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAmC,MAAM,oBAAoB,CAAC;AAGzF,qBAAa,4BAA6B,SAAQ,kBAAkB;gBACtD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAM5C,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAQ9D,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,kBAAkB;IAmB/D,OAAO,CAAC,cAAc;CASvB"}
@@ -0,0 +1,61 @@
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.FungibleAssetTransferBuilder = void 0;
7
+ const transactionBuilder_1 = require("./transactionBuilder");
8
+ const fungibleAssetTransfer_1 = require("../transaction/fungibleAssetTransfer");
9
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
10
+ const utils_1 = __importDefault(require("../utils"));
11
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
12
+ const constants_1 = require("../constants");
13
+ class FungibleAssetTransferBuilder extends transactionBuilder_1.TransactionBuilder {
14
+ constructor(_coinConfig) {
15
+ super(_coinConfig);
16
+ this._transaction = new fungibleAssetTransfer_1.FungibleAssetTransfer(_coinConfig);
17
+ }
18
+ get transactionType() {
19
+ return sdk_core_1.TransactionType.SendToken;
20
+ }
21
+ //TODO: Ticket: COIN-2941 : Check Statics based asset validation and if possible, implement it
22
+ assetId(assetId) {
23
+ this.validateAddress({ address: assetId });
24
+ this.transaction.assetId = assetId;
25
+ return this;
26
+ }
27
+ /** @inheritdoc */
28
+ validateTransaction(transaction) {
29
+ if (!transaction) {
30
+ throw new Error('fungible asset transaction not defined');
31
+ }
32
+ super.validateTransaction(transaction);
33
+ this.validateAddress({ address: transaction.assetId });
34
+ }
35
+ isValidTransactionPayload(payload) {
36
+ try {
37
+ if (!this.isValidPayload(payload)) {
38
+ console.error('invalid transaction payload');
39
+ return false;
40
+ }
41
+ const entryFunction = payload.entryFunction;
42
+ const fungibleTokenAddress = entryFunction.args[0].toString();
43
+ const addressArg = entryFunction.args[1];
44
+ const amountArg = entryFunction.args[2];
45
+ return (utils_1.default.isValidAddress(fungibleTokenAddress) && utils_1.default.fetchAndValidateRecipients(addressArg, amountArg).isValid);
46
+ }
47
+ catch (e) {
48
+ console.error('invalid transaction payload', e);
49
+ return false;
50
+ }
51
+ }
52
+ isValidPayload(payload) {
53
+ return (payload instanceof ts_sdk_1.TransactionPayloadEntryFunction &&
54
+ payload.entryFunction.args.length === 3 &&
55
+ (payload.entryFunction.type_args.length === 0 ||
56
+ (payload.entryFunction.type_args.length === 1 &&
57
+ constants_1.FUNGIBLE_ASSET_TYPE_ARGUMENT === payload.entryFunction.type_args[0].toString())));
58
+ }
59
+ }
60
+ exports.FungibleAssetTransferBuilder = FungibleAssetTransferBuilder;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZ2libGVBc3NldFRyYW5zZmVyQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyL2Z1bmdpYmxlQXNzZXRUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkRBQTBEO0FBRTFELGdGQUE2RTtBQUM3RSxtREFBdUQ7QUFDdkQscURBQTZCO0FBQzdCLCtDQUF5RjtBQUN6Riw0Q0FBNEQ7QUFFNUQsTUFBYSw0QkFBNkIsU0FBUSx1Q0FBa0I7SUFDbEUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZDQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsOEZBQThGO0lBQzlGLE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQW1DO1FBQ3JELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUyx5QkFBeUIsQ0FBQyxPQUEyQjtRQUM3RCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQzdDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELE1BQU0sYUFBYSxHQUFJLE9BQTJDLENBQUMsYUFBYSxDQUFDO1lBQ2pGLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5RCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsT0FBTyxDQUNMLGVBQUssQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxlQUFLLENBQUMsMEJBQTBCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FDOUcsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQTJCO1FBQ2hELE9BQU8sQ0FDTCxPQUFPLFlBQVksd0NBQStCO1lBQ2xELE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3ZDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQzNDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7b0JBQzNDLHdDQUE0QixLQUFLLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FDckYsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJERCxvRUFxREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBGdW5naWJsZUFzc2V0VHJhbnNmZXIgfSBmcm9tICcuLi90cmFuc2FjdGlvbi9mdW5naWJsZUFzc2V0VHJhbnNmZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUGF5bG9hZCwgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbiB9IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgeyBGVU5HSUJMRV9BU1NFVF9UWVBFX0FSR1VNRU5UIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIEZ1bmdpYmxlQXNzZXRUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgRnVuZ2libGVBc3NldFRyYW5zZmVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW47XG4gIH1cbiAgLy9UT0RPOiBUaWNrZXQ6IENPSU4tMjk0MSA6IENoZWNrIFN0YXRpY3MgYmFzZWQgYXNzZXQgdmFsaWRhdGlvbiBhbmQgaWYgcG9zc2libGUsIGltcGxlbWVudCBpdFxuICBhc3NldElkKGFzc2V0SWQ6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiBhc3NldElkIH0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uYXNzZXRJZCA9IGFzc2V0SWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IEZ1bmdpYmxlQXNzZXRUcmFuc2Zlcik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZnVuZ2libGUgYXNzZXQgdHJhbnNhY3Rpb24gbm90IGRlZmluZWQnKTtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi5hc3NldElkIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVmFsaWRUcmFuc2FjdGlvblBheWxvYWQocGF5bG9hZDogVHJhbnNhY3Rpb25QYXlsb2FkKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghdGhpcy5pc1ZhbGlkUGF5bG9hZChwYXlsb2FkKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIHRyYW5zYWN0aW9uIHBheWxvYWQnKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3QgZW50cnlGdW5jdGlvbiA9IChwYXlsb2FkIGFzIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24pLmVudHJ5RnVuY3Rpb247XG4gICAgICBjb25zdCBmdW5naWJsZVRva2VuQWRkcmVzcyA9IGVudHJ5RnVuY3Rpb24uYXJnc1swXS50b1N0cmluZygpO1xuICAgICAgY29uc3QgYWRkcmVzc0FyZyA9IGVudHJ5RnVuY3Rpb24uYXJnc1sxXTtcbiAgICAgIGNvbnN0IGFtb3VudEFyZyA9IGVudHJ5RnVuY3Rpb24uYXJnc1syXTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKGZ1bmdpYmxlVG9rZW5BZGRyZXNzKSAmJiB1dGlscy5mZXRjaEFuZFZhbGlkYXRlUmVjaXBpZW50cyhhZGRyZXNzQXJnLCBhbW91bnRBcmcpLmlzVmFsaWRcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignaW52YWxpZCB0cmFuc2FjdGlvbiBwYXlsb2FkJywgZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkUGF5bG9hZChwYXlsb2FkOiBUcmFuc2FjdGlvblBheWxvYWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgcGF5bG9hZCBpbnN0YW5jZW9mIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24gJiZcbiAgICAgIHBheWxvYWQuZW50cnlGdW5jdGlvbi5hcmdzLmxlbmd0aCA9PT0gMyAmJlxuICAgICAgKHBheWxvYWQuZW50cnlGdW5jdGlvbi50eXBlX2FyZ3MubGVuZ3RoID09PSAwIHx8XG4gICAgICAgIChwYXlsb2FkLmVudHJ5RnVuY3Rpb24udHlwZV9hcmdzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgIEZVTkdJQkxFX0FTU0VUX1RZUEVfQVJHVU1FTlQgPT09IHBheWxvYWQuZW50cnlGdW5jdGlvbi50eXBlX2FyZ3NbMF0udG9TdHJpbmcoKSkpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,68 @@
1
+ import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey, Recipient, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { Transaction } from '../transaction/transaction';
3
+ import BigNumber from 'bignumber.js';
4
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
5
+ import { GasData } from '../types';
6
+ import { TransactionPayload } from '@aptos-labs/ts-sdk';
7
+ export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
8
+ protected _transaction: Transaction;
9
+ constructor(coinConfig: Readonly<CoinConfig>);
10
+ /**
11
+ * The transaction type.
12
+ */
13
+ protected abstract get transactionType(): TransactionType;
14
+ getRebuiltTransaction(): Transaction;
15
+ getSequenceNumber(): number;
16
+ /**
17
+ * Initialize the transaction builder fields using the decoded transaction data
18
+ *
19
+ * @param {Transaction} tx the transaction data
20
+ */
21
+ initBuilder(tx: Transaction): void;
22
+ /** @inheritdoc */
23
+ protected get transaction(): Transaction;
24
+ /** @inheritdoc */
25
+ protected set transaction(transaction: Transaction);
26
+ /**
27
+ * Sets the sender of this transaction.
28
+ *
29
+ * @param {string} senderAddress the account that is sending this transaction
30
+ * @returns {TransactionBuilder} This transaction builder
31
+ */
32
+ sender(senderAddress: string): this;
33
+ /**
34
+ * @deprecated - use `recipients()`.
35
+ */
36
+ recipient(recipient: Recipient): this;
37
+ recipients(recipients: Recipient[]): this;
38
+ gasData(gasData: GasData): this;
39
+ sequenceNumber(seqNo: number): TransactionBuilder;
40
+ expirationTime(expTimeSec: number): TransactionBuilder;
41
+ abstract assetId(assetId: string): TransactionBuilder;
42
+ /** @inheritdoc */
43
+ protected signImplementation(key: BaseKey): Transaction;
44
+ /** @inheritDoc */
45
+ addSenderSignature(publicKey: BasePublicKey, signature: Buffer): void;
46
+ addFeePayerSignature(publicKey: BasePublicKey, signature: Buffer): void;
47
+ setIsSimulateTxn(value: boolean): void;
48
+ /** @inheritdoc */
49
+ protected fromImplementation(rawTransaction: string): Transaction;
50
+ /** @inheritdoc */
51
+ protected buildImplementation(): Promise<Transaction>;
52
+ /** @inheritdoc */
53
+ validateAddress(address: BaseAddress, addressFormat?: string): void;
54
+ /** @inheritdoc */
55
+ validateKey(key: BaseKey): void;
56
+ protected abstract isValidTransactionPayload(payload: TransactionPayload): any;
57
+ /** @inheritdoc */
58
+ validateTransaction(transaction?: Transaction): void;
59
+ isValidRawTransaction(rawTransaction: string): boolean;
60
+ /** @inheritdoc */
61
+ validateRawTransaction(rawTransaction: string): void;
62
+ /** @inheritdoc */
63
+ validateValue(value: BigNumber): void;
64
+ private validateGasData;
65
+ addFeePayerAddress(address: string): void;
66
+ getFeePayerPubKey(): string;
67
+ }
68
+ //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAGtB,SAAS,IAAI,aAAa,EAC1B,SAAS,EACT,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;gBAExB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C;;OAEG;IACH,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D,qBAAqB,IAAI,WAAW;IAIpC,iBAAiB,IAAI,MAAM;IAI3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIlC,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAMnC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAOrC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IASzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAKjD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAKtD,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAErD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAIvD,kBAAkB;IAClB,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrE,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvE,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAMjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAO3D,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI/B,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,OAAO,EAAE,kBAAkB;IAExE,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;IAWpD,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAYtD,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAQrC,OAAO,CAAC,eAAe;IAKvB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC,iBAAiB,IAAI,MAAM;CAG5B"}