@bitgo-beta/sdk-coin-sui 3.0.3-beta.14 → 3.0.3-beta.141

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 (57) hide show
  1. package/.mocharc.yml +1 -2
  2. package/CHANGELOG.md +146 -0
  3. package/dist/src/lib/compareTransactionBlocks.d.ts +8 -0
  4. package/dist/src/lib/compareTransactionBlocks.d.ts.map +1 -0
  5. package/dist/src/lib/compareTransactionBlocks.js +13 -0
  6. package/dist/src/lib/constants.d.ts +1 -0
  7. package/dist/src/lib/constants.d.ts.map +1 -1
  8. package/dist/src/lib/constants.js +3 -2
  9. package/dist/src/lib/customTransaction.d.ts +57 -0
  10. package/dist/src/lib/customTransaction.d.ts.map +1 -0
  11. package/dist/src/lib/customTransaction.js +159 -0
  12. package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
  13. package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
  14. package/dist/src/lib/customTransactionBuilder.js +117 -0
  15. package/dist/src/lib/iface.d.ts +22 -4
  16. package/dist/src/lib/iface.d.ts.map +1 -1
  17. package/dist/src/lib/iface.js +14 -1
  18. package/dist/src/lib/index.d.ts +2 -0
  19. package/dist/src/lib/index.d.ts.map +1 -1
  20. package/dist/src/lib/index.js +6 -2
  21. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -1
  22. package/dist/src/lib/mystenlab/builder/Inputs.js +1 -1
  23. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +33 -35
  24. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +2 -0
  25. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -1
  26. package/dist/src/lib/mystenlab/framework/sui-system-state.js +5 -2
  27. package/dist/src/lib/mystenlab/types/coin.d.ts +4 -4
  28. package/dist/src/lib/mystenlab/types/events.d.ts +12 -12
  29. package/dist/src/lib/mystenlab/types/objects.d.ts +49 -49
  30. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -1
  31. package/dist/src/lib/mystenlab/types/sui-bcs.js +2 -2
  32. package/dist/src/lib/mystenlab/types/transactions.d.ts +76 -76
  33. package/dist/src/lib/mystenlab/types/validator.d.ts +4 -4
  34. package/dist/src/lib/stakingBuilder.d.ts +3 -3
  35. package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
  36. package/dist/src/lib/stakingBuilder.js +28 -25
  37. package/dist/src/lib/stakingTransaction.d.ts +1 -0
  38. package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
  39. package/dist/src/lib/stakingTransaction.js +9 -12
  40. package/dist/src/lib/transaction.d.ts +2 -0
  41. package/dist/src/lib/transaction.d.ts.map +1 -1
  42. package/dist/src/lib/transaction.js +19 -2
  43. package/dist/src/lib/transactionBuilderFactory.d.ts +4 -1
  44. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  45. package/dist/src/lib/transactionBuilderFactory.js +11 -1
  46. package/dist/src/lib/transferTransaction.d.ts +1 -0
  47. package/dist/src/lib/transferTransaction.d.ts.map +1 -1
  48. package/dist/src/lib/unstakingBuilder.d.ts +8 -1
  49. package/dist/src/lib/unstakingBuilder.d.ts.map +1 -1
  50. package/dist/src/lib/unstakingBuilder.js +95 -16
  51. package/dist/src/lib/unstakingTransaction.d.ts +26 -1
  52. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -1
  53. package/dist/src/lib/unstakingTransaction.js +146 -21
  54. package/dist/src/lib/utils.d.ts +13 -3
  55. package/dist/src/lib/utils.d.ts.map +1 -1
  56. package/dist/src/lib/utils.js +55 -7
  57. package/package.json +13 -10
package/.mocharc.yml CHANGED
@@ -1,8 +1,7 @@
1
1
  require: 'ts-node/register'
2
- timeout: '60000'
2
+ timeout: 60000
3
3
  reporter: 'min'
4
4
  reporter-option:
5
5
  - 'cdn=true'
6
6
  - 'json=false'
7
7
  exit: true
8
- spec: ['test/unit/**/*.ts']
package/CHANGELOG.md CHANGED
@@ -3,6 +3,152 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.3.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.3.0) (2023-09-25)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **root:** update @types/node ([cedc1a0](https://github.com/BitGo/BitGoJS/commit/cedc1a0035e79bb42fda57bf6ac29d606242f50b))
11
+
12
+ ### Features
13
+
14
+ - **sdk-coin-sui:** add custom tx type ([8136220](https://github.com/BitGo/BitGoJS/commit/81362200468f8a2d25b97186f56de5d5729fa0cf))
15
+
16
+ ## [4.2.10](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.10) (2023-09-09)
17
+
18
+ ### Bug Fixes
19
+
20
+ - **root:** update @types/node ([cedc1a0](https://github.com/BitGo/BitGoJS/commit/cedc1a0035e79bb42fda57bf6ac29d606242f50b))
21
+
22
+ ## [4.2.9](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.9) (2023-09-09)
23
+
24
+ ### Bug Fixes
25
+
26
+ - **root:** update @types/node ([cedc1a0](https://github.com/BitGo/BitGoJS/commit/cedc1a0035e79bb42fda57bf6ac29d606242f50b))
27
+
28
+ ## [4.2.8](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.8) (2023-09-07)
29
+
30
+ ### Bug Fixes
31
+
32
+ - **root:** update @types/node ([cedc1a0](https://github.com/BitGo/BitGoJS/commit/cedc1a0035e79bb42fda57bf6ac29d606242f50b))
33
+
34
+ ## [4.2.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.7) (2023-09-05)
35
+
36
+ ### Bug Fixes
37
+
38
+ - **root:** update @types/node ([cedc1a0](https://github.com/BitGo/BitGoJS/commit/cedc1a0035e79bb42fda57bf6ac29d606242f50b))
39
+
40
+ ## [4.2.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.6) (2023-09-01)
41
+
42
+ ### Bug Fixes
43
+
44
+ - **root:** update @types/node ([cedc1a0](https://github.com/BitGo/BitGoJS/commit/cedc1a0035e79bb42fda57bf6ac29d606242f50b))
45
+
46
+ ## [4.2.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.5) (2023-08-29)
47
+
48
+ **Note:** Version bump only for package @bitgo/sdk-coin-sui
49
+
50
+ ## [4.2.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.4) (2023-08-25)
51
+
52
+ **Note:** Version bump only for package @bitgo/sdk-coin-sui
53
+
54
+ ## [4.2.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.3) (2023-08-24)
55
+
56
+ **Note:** Version bump only for package @bitgo/sdk-coin-sui
57
+
58
+ ## [4.2.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.2) (2023-08-16)
59
+
60
+ **Note:** Version bump only for package @bitgo/sdk-coin-sui
61
+
62
+ ## [4.2.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.2.0...@bitgo/sdk-coin-sui@4.2.1) (2023-08-16)
63
+
64
+ **Note:** Version bump only for package @bitgo/sdk-coin-sui
65
+
66
+ # [4.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.0.0...@bitgo/sdk-coin-sui@4.2.0) (2023-08-04)
67
+
68
+ ### Features
69
+
70
+ - **root:** add node 18 to engines and CI ([9cc6a70](https://github.com/BitGo/BitGoJS/commit/9cc6a70ba807161b7c6a0ebe3d7c47f25c7c8eca))
71
+ - **root:** remove node 14 from engines ([6ec47cb](https://github.com/BitGo/BitGoJS/commit/6ec47cbd7996cc78bbf2cf7f16595c24fe43cd41))
72
+
73
+ # [4.1.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@4.0.0...@bitgo/sdk-coin-sui@4.1.0) (2023-07-28)
74
+
75
+ ### Features
76
+
77
+ - **root:** add node 18 to engines and CI ([9cc6a70](https://github.com/BitGo/BitGoJS/commit/9cc6a70ba807161b7c6a0ebe3d7c47f25c7c8eca))
78
+ - **root:** remove node 14 from engines ([6ec47cb](https://github.com/BitGo/BitGoJS/commit/6ec47cbd7996cc78bbf2cf7f16595c24fe43cd41))
79
+
80
+ # [4.0.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.2.0...@bitgo/sdk-coin-sui@4.0.0) (2023-07-18)
81
+
82
+ ### Features
83
+
84
+ - **sdk-coin-sui:** support stakeMany ([a908565](https://github.com/BitGo/BitGoJS/commit/a908565bf1e1b6d28503836f85ba83fc7472b1cf))
85
+
86
+ ### BREAKING CHANGES
87
+
88
+ - **sdk-coin-sui:** change addStake interface to support stake multiple
89
+ validator
90
+
91
+ # [3.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.1.2...@bitgo/sdk-coin-sui@3.2.0) (2023-06-21)
92
+
93
+ ### Bug Fixes
94
+
95
+ - **sdk-coin-sui:** add output value for unstaking txs ([9430e60](https://github.com/BitGo/BitGoJS/commit/9430e60d8000bb8d76e3057501c04d403458c1e7))
96
+ - **sdk-coin-sui:** fix method name for parsing reserialized tx pair ([a0e052b](https://github.com/BitGo/BitGoJS/commit/a0e052be7153f38de0d9fce57fd0776ef2f4a7d2))
97
+
98
+ ### Features
99
+
100
+ - **sdk-coin-sui:** double-check reserialized transactions ([dc2d672](https://github.com/BitGo/BitGoJS/commit/dc2d6725ee23767533a05e06990169b990104f7e))
101
+
102
+ ## [3.1.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.1.1...@bitgo/sdk-coin-sui@3.1.2) (2023-06-14)
103
+
104
+ ### Bug Fixes
105
+
106
+ - **sdk-coin-sui:** fix unstaking again ([ea0345f](https://github.com/BitGo/BitGoJS/commit/ea0345fec578dbb44c4230c9fde520dae1431151))
107
+
108
+ ## [3.1.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.1.0...@bitgo/sdk-coin-sui@3.1.1) (2023-06-13)
109
+
110
+ **Note:** Version bump only for package @bitgo/sdk-coin-sui
111
+
112
+ # [3.1.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.0.7...@bitgo/sdk-coin-sui@3.1.0) (2023-06-07)
113
+
114
+ ### Bug Fixes
115
+
116
+ - **sdk-coin-sui:** add method in RpcClient debug output ([e2541f2](https://github.com/BitGo/BitGoJS/commit/e2541f286ee04eeb96ddf4d9860014a26b47d592))
117
+ - **sdk-coin-sui:** improve unstaking test ([9e63d54](https://github.com/BitGo/BitGoJS/commit/9e63d548036516b3bd71c6527e24a290d5fd6674))
118
+ - **sdk-coin-sui:** remove `spec:` config in mocharc.yml ([4b53e1b](https://github.com/BitGo/BitGoJS/commit/4b53e1b3df47e6f33324a00c01e472f7215dc5ad))
119
+
120
+ ### Features
121
+
122
+ - **sdk-coin-sui:** add support for partial unstaking ([20cdb77](https://github.com/BitGo/BitGoJS/commit/20cdb774159dac7335298f3d4d83f8a29018f3c3))
123
+
124
+ ## [3.0.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.0.6...@bitgo/sdk-coin-sui@3.0.7) (2023-06-05)
125
+
126
+ ### Bug Fixes
127
+
128
+ - **sdk-coin-sui:** add src/lib/mystenlab to .prettierignore ([a90139b](https://github.com/BitGo/BitGoJS/commit/a90139ba7fe07129a1eaa63531c9a61ac23a6759))
129
+
130
+ ## [3.0.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.0.5...@bitgo/sdk-coin-sui@3.0.6) (2023-05-25)
131
+
132
+ ### Bug Fixes
133
+
134
+ - **sdk-coin-sui:** fix amount parsing ([b7e2b40](https://github.com/BitGo/BitGoJS/commit/b7e2b40711161a9f9fe739bcb71f5af00da2c689))
135
+ - **sdk-coin-sui:** fix large transaction ([050f66d](https://github.com/BitGo/BitGoJS/commit/050f66d58e4ad15f16ba94a6d9cc07d4e0ea19c6))
136
+ - **sdk-coin-sui:** fix split transaction ([a46eaff](https://github.com/BitGo/BitGoJS/commit/a46eaffc48506ba568e4c36237e874c32b5a0a24))
137
+
138
+ ## [3.0.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.0.4...@bitgo/sdk-coin-sui@3.0.5) (2023-05-17)
139
+
140
+ ### Bug Fixes
141
+
142
+ - **sdk-coin-sui:** support split coin ([cf34f73](https://github.com/BitGo/BitGoJS/commit/cf34f7391d47080ca0427a3bc62173afc0102f12))
143
+
144
+ ## [3.0.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.0.3...@bitgo/sdk-coin-sui@3.0.4) (2023-05-10)
145
+
146
+ **Note:** Version bump only for package @bitgo/sdk-coin-sui
147
+
148
+ ## [3.0.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.0.2...@bitgo/sdk-coin-sui@3.0.3) (2023-05-03)
149
+
150
+ **Note:** Version bump only for package @bitgo/sdk-coin-sui
151
+
6
152
  ## [3.0.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.0.1...@bitgo/sdk-coin-sui@3.0.2) (2023-04-25)
7
153
 
8
154
  **Note:** Version bump only for package @bitgo/sdk-coin-sui
@@ -0,0 +1,8 @@
1
+ export declare function assertEqualTransactionBlocks(a: {
2
+ inputs: unknown[];
3
+ transactions: unknown[];
4
+ }, b: {
5
+ inputs: unknown[];
6
+ transactions: unknown[];
7
+ }): void;
8
+ //# sourceMappingURL=compareTransactionBlocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compareTransactionBlocks.d.ts","sourceRoot":"","sources":["../../../src/lib/compareTransactionBlocks.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,EACjD,CAAC,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,GAChD,IAAI,CAGN"}
@@ -0,0 +1,13 @@
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.assertEqualTransactionBlocks = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ function assertEqualTransactionBlocks(a, b) {
9
+ assert_1.default.deepStrictEqual(a.inputs, b.inputs, 'Different inputs');
10
+ assert_1.default.deepStrictEqual(a.transactions, b.transactions, 'Different transactions');
11
+ }
12
+ exports.assertEqualTransactionBlocks = assertEqualTransactionBlocks;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZVRyYW5zYWN0aW9uQmxvY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wYXJlVHJhbnNhY3Rpb25CbG9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLFNBQWdCLDRCQUE0QixDQUMxQyxDQUFpRCxFQUNqRCxDQUFpRDtJQUVqRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMvRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBTkQsb0VBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRFcXVhbFRyYW5zYWN0aW9uQmxvY2tzKFxuICBhOiB7IGlucHV0czogdW5rbm93bltdOyB0cmFuc2FjdGlvbnM6IHVua25vd25bXSB9LFxuICBiOiB7IGlucHV0czogdW5rbm93bltdOyB0cmFuc2FjdGlvbnM6IHVua25vd25bXSB9XG4pOiB2b2lkIHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhLmlucHV0cywgYi5pbnB1dHMsICdEaWZmZXJlbnQgaW5wdXRzJyk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYS50cmFuc2FjdGlvbnMsIGIudHJhbnNhY3Rpb25zLCAnRGlmZmVyZW50IHRyYW5zYWN0aW9ucycpO1xufVxuIl19
@@ -6,4 +6,5 @@ export declare const SUI_ADDRESS_LENGTH = 32;
6
6
  export declare const SER_BUFFER_SIZE = 8192;
7
7
  export declare const SUI_INTENT_BYTES: Buffer;
8
8
  export declare const SIGNATURE_SCHEME_BYTES: number[];
9
+ export declare const MIN_STAKING_THRESHOLD = 1000000000;
9
10
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":";AAAA,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAIpD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AAEvD,eAAO,MAAM,sBAAsB,UAAS,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":";AAAA,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAIpD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AAEvD,eAAO,MAAM,sBAAsB,UAAS,CAAC;AAE7C,eAAO,MAAM,qBAAqB,aAAgB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SIGNATURE_SCHEME_BYTES = exports.SUI_INTENT_BYTES = exports.SER_BUFFER_SIZE = exports.SUI_ADDRESS_LENGTH = exports.DUMMY_SUI_GAS_PRICE = exports.AMOUNT_UNKNOWN_TEXT = exports.UNAVAILABLE_TEXT = void 0;
3
+ exports.MIN_STAKING_THRESHOLD = exports.SIGNATURE_SCHEME_BYTES = exports.SUI_INTENT_BYTES = exports.SER_BUFFER_SIZE = exports.SUI_ADDRESS_LENGTH = exports.DUMMY_SUI_GAS_PRICE = exports.AMOUNT_UNKNOWN_TEXT = exports.UNAVAILABLE_TEXT = void 0;
4
4
  exports.UNAVAILABLE_TEXT = 'UNAVAILABLE';
5
5
  exports.AMOUNT_UNKNOWN_TEXT = 'AMOUNT_UNKNOWN';
6
6
  // Refer to
@@ -10,4 +10,5 @@ exports.SUI_ADDRESS_LENGTH = 32;
10
10
  exports.SER_BUFFER_SIZE = 8192;
11
11
  exports.SUI_INTENT_BYTES = Buffer.from([0, 0, 0]);
12
12
  exports.SIGNATURE_SCHEME_BYTES = [0x00];
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7QUFDakMsUUFBQSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQUVwRCxXQUFXO0FBQ1gsbUZBQW1GO0FBQ3RFLFFBQUEsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBQzNCLFFBQUEsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLFFBQUEsZUFBZSxHQUFHLElBQUksQ0FBQztBQUV2QixRQUFBLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFMUMsUUFBQSxzQkFBc0IsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVOQVZBSUxBQkxFX1RFWFQgPSAnVU5BVkFJTEFCTEUnO1xuZXhwb3J0IGNvbnN0IEFNT1VOVF9VTktOT1dOX1RFWFQgPSAnQU1PVU5UX1VOS05PV04nO1xuXG4vLyBSZWZlciB0b1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL015c3RlbkxhYnMvc3VpL2Jsb2IvbWFpbi9jcmF0ZXMvc3VpLXR5cGVzL3NyYy9tZXNzYWdlcy5ycyNMNTBcbmV4cG9ydCBjb25zdCBEVU1NWV9TVUlfR0FTX1BSSUNFID0gMTAwMDtcbmV4cG9ydCBjb25zdCBTVUlfQUREUkVTU19MRU5HVEggPSAzMjtcbmV4cG9ydCBjb25zdCBTRVJfQlVGRkVSX1NJWkUgPSA4MTkyO1xuXG5leHBvcnQgY29uc3QgU1VJX0lOVEVOVF9CWVRFUyA9IEJ1ZmZlci5mcm9tKFswLCAwLCAwXSk7XG5cbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfU0NIRU1FX0JZVEVTID0gWzB4MDBdO1xuIl19
13
+ exports.MIN_STAKING_THRESHOLD = 1000000000; // 1 SUI
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7QUFDakMsUUFBQSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQUVwRCxXQUFXO0FBQ1gsbUZBQW1GO0FBQ3RFLFFBQUEsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBQzNCLFFBQUEsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLFFBQUEsZUFBZSxHQUFHLElBQUksQ0FBQztBQUV2QixRQUFBLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFMUMsUUFBQSxzQkFBc0IsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRWhDLFFBQUEscUJBQXFCLEdBQUcsVUFBYSxDQUFDLENBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBVTkFWQUlMQUJMRV9URVhUID0gJ1VOQVZBSUxBQkxFJztcbmV4cG9ydCBjb25zdCBBTU9VTlRfVU5LTk9XTl9URVhUID0gJ0FNT1VOVF9VTktOT1dOJztcblxuLy8gUmVmZXIgdG9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NeXN0ZW5MYWJzL3N1aS9ibG9iL21haW4vY3JhdGVzL3N1aS10eXBlcy9zcmMvbWVzc2FnZXMucnMjTDUwXG5leHBvcnQgY29uc3QgRFVNTVlfU1VJX0dBU19QUklDRSA9IDEwMDA7XG5leHBvcnQgY29uc3QgU1VJX0FERFJFU1NfTEVOR1RIID0gMzI7XG5leHBvcnQgY29uc3QgU0VSX0JVRkZFUl9TSVpFID0gODE5MjtcblxuZXhwb3J0IGNvbnN0IFNVSV9JTlRFTlRfQllURVMgPSBCdWZmZXIuZnJvbShbMCwgMCwgMF0pO1xuXG5leHBvcnQgY29uc3QgU0lHTkFUVVJFX1NDSEVNRV9CWVRFUyA9IFsweDAwXTtcblxuZXhwb3J0IGNvbnN0IE1JTl9TVEFLSU5HX1RIUkVTSE9MRCA9IDFfMDAwXzAwMF8wMDA7IC8vIDEgU1VJXG4iXX0=
@@ -0,0 +1,57 @@
1
+ import { CustomProgrammableTransaction, TransactionExplanation, TxData } from './iface';
2
+ import { Transaction } from './transaction';
3
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
+ import { BaseKey, Recipient } from '@bitgo-beta/sdk-core';
5
+ export declare class CustomTransaction extends Transaction<CustomProgrammableTransaction> {
6
+ private _rawTransaction;
7
+ private _recipients;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ /**
10
+ * @inheritdoc
11
+ * @param rawTransaction
12
+ */
13
+ fromRawTransaction(rawTransaction: string): void;
14
+ /**
15
+ * @inheritdoc
16
+ */
17
+ get id(): string;
18
+ /**
19
+ * @inheritdoc
20
+ */
21
+ canSign(key: BaseKey): boolean;
22
+ /**
23
+ * @inheritdoc
24
+ */
25
+ toBroadcastFormat(): string;
26
+ /**
27
+ * @inheritdoc
28
+ */
29
+ loadInputsAndOutputs(): void;
30
+ /**
31
+ * Get the raw transaction base64 string
32
+ */
33
+ get rawTransaction(): string;
34
+ /**
35
+ * Get the recipients of the transaction if there is any transfers.
36
+ */
37
+ get recipients(): Recipient[];
38
+ /**
39
+ * @inheritdoc
40
+ */
41
+ getTxData(): TxData;
42
+ /**
43
+ * @inheritdoc
44
+ */
45
+ toJson(): TxData;
46
+ /**
47
+ * @inheritdoc
48
+ */
49
+ explainTransaction(): TransactionExplanation;
50
+ /**
51
+ * Returns a complete explanation of the custom transaction
52
+ * @param json
53
+ * @param explanationResult
54
+ */
55
+ private explainCustomTransaction;
56
+ }
57
+ //# sourceMappingURL=customTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/customTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAG7B,sBAAsB,EACtB,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,OAAO,EAA2B,SAAS,EAAyC,MAAM,sBAAsB,CAAC;AAG1H,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,6BAA6B,CAAC;IAC/E,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;OAGG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAgBhD;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAO3B;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAsB5B;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,SAAS,EAAE,CAE5B;IAED;;OAEG;IACI,SAAS,IAAI,MAAM;IAgB1B;;OAEG;IACI,MAAM,IAAI,MAAM;IAiBvB;;OAEG;IACH,kBAAkB,IAAI,sBAAsB;IAiB5C;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;CAUjC"}
@@ -0,0 +1,159 @@
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.CustomTransaction = void 0;
7
+ const iface_1 = require("./iface");
8
+ const transaction_1 = require("./transaction");
9
+ const utils_1 = __importDefault(require("./utils"));
10
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
+ const constants_1 = require("./constants");
12
+ class CustomTransaction extends transaction_1.Transaction {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ }
16
+ /**
17
+ * @inheritdoc
18
+ * @param rawTransaction
19
+ */
20
+ fromRawTransaction(rawTransaction) {
21
+ try {
22
+ utils_1.default.isValidRawTransaction(rawTransaction);
23
+ this._suiTransaction = transaction_1.Transaction.deserializeSuiTransaction(rawTransaction);
24
+ this._suiTransaction.type = iface_1.SuiTransactionType.CustomTx;
25
+ this._type = sdk_core_1.TransactionType.CustomTx;
26
+ this._id = this._suiTransaction.id;
27
+ this._rawTransaction = rawTransaction;
28
+ this.loadInputsAndOutputs();
29
+ }
30
+ catch (e) {
31
+ throw e;
32
+ }
33
+ }
34
+ /**
35
+ * @inheritdoc
36
+ */
37
+ get id() {
38
+ return this._id || constants_1.UNAVAILABLE_TEXT;
39
+ }
40
+ /**
41
+ * @inheritdoc
42
+ */
43
+ canSign(key) {
44
+ return true;
45
+ }
46
+ /**
47
+ * @inheritdoc
48
+ */
49
+ toBroadcastFormat() {
50
+ if (!this._suiTransaction) {
51
+ throw new sdk_core_1.InvalidTransactionError('empty transaction');
52
+ }
53
+ return this.serialize();
54
+ }
55
+ /**
56
+ * @inheritdoc
57
+ */
58
+ loadInputsAndOutputs() {
59
+ if (!this._suiTransaction) {
60
+ return;
61
+ }
62
+ this._recipients = utils_1.default.getRecipients(this._suiTransaction);
63
+ this._outputs = this._recipients.map((recipient, index) => ({
64
+ address: recipient.address,
65
+ value: recipient.amount,
66
+ coin: this._coinConfig.name,
67
+ }));
68
+ const totalAmount = this._recipients.reduce((accumulator, current) => accumulator + Number(current.amount), 0);
69
+ this._inputs = [
70
+ {
71
+ address: this.suiTransaction.sender,
72
+ value: totalAmount.toString(),
73
+ coin: this._coinConfig.name,
74
+ },
75
+ ];
76
+ }
77
+ /**
78
+ * Get the raw transaction base64 string
79
+ */
80
+ get rawTransaction() {
81
+ return this._rawTransaction;
82
+ }
83
+ /**
84
+ * Get the recipients of the transaction if there is any transfers.
85
+ */
86
+ get recipients() {
87
+ return this._recipients;
88
+ }
89
+ /**
90
+ * @inheritdoc
91
+ */
92
+ getTxData() {
93
+ if (!this._suiTransaction) {
94
+ throw new sdk_core_1.InvalidTransactionError('empty transaction');
95
+ }
96
+ const tx = this._suiTransaction;
97
+ return {
98
+ sender: this._suiTransaction.sender,
99
+ expiration: { None: null },
100
+ gasData: this._suiTransaction.gasData,
101
+ kind: {
102
+ ProgrammableTransaction: tx.tx,
103
+ },
104
+ };
105
+ }
106
+ /**
107
+ * @inheritdoc
108
+ */
109
+ toJson() {
110
+ if (!this._suiTransaction) {
111
+ throw new sdk_core_1.InvalidTransactionError('empty transaction');
112
+ }
113
+ const tx = this._suiTransaction;
114
+ return {
115
+ id: tx.id,
116
+ sender: tx.sender,
117
+ expiration: { None: null },
118
+ gasData: tx.gasData,
119
+ kind: {
120
+ ProgrammableTransaction: tx.tx,
121
+ },
122
+ };
123
+ }
124
+ /**
125
+ * @inheritdoc
126
+ */
127
+ explainTransaction() {
128
+ const result = this.toJson();
129
+ const displayOrder = ['id', 'outputs', 'outputAmount', 'changeOutputs', 'changeAmount', 'fee', 'type'];
130
+ const explanationResult = {
131
+ displayOrder,
132
+ id: this.id,
133
+ outputs: [],
134
+ outputAmount: '0',
135
+ changeOutputs: [],
136
+ changeAmount: '0',
137
+ fee: { fee: this.suiTransaction.gasData.budget.toString() },
138
+ type: this.type,
139
+ };
140
+ return this.explainCustomTransaction(result, explanationResult);
141
+ }
142
+ /**
143
+ * Returns a complete explanation of the custom transaction
144
+ * @param json
145
+ * @param explanationResult
146
+ */
147
+ explainCustomTransaction(json, explanationResult) {
148
+ const recipients = utils_1.default.getRecipients(this.suiTransaction);
149
+ const outputs = recipients.map((recipient) => recipient);
150
+ const outputAmount = recipients.reduce((accumulator, current) => accumulator + Number(current.amount), 0);
151
+ return {
152
+ ...explanationResult,
153
+ outputs,
154
+ outputAmount,
155
+ };
156
+ }
157
+ }
158
+ exports.CustomTransaction = CustomTransaction;
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1DQU1pQjtBQUNqQiwrQ0FBNEM7QUFFNUMsb0RBQTRCO0FBQzVCLG1EQUEwSDtBQUMxSCwyQ0FBK0M7QUFFL0MsTUFBYSxpQkFBa0IsU0FBUSx5QkFBMEM7SUFJL0UsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQixDQUFDLGNBQXNCO1FBQ3ZDLElBQUk7WUFDRixlQUFLLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyx5QkFBVyxDQUFDLHlCQUF5QixDQUMxRCxjQUFjLENBQ2tDLENBQUM7WUFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsMEJBQWtCLENBQUMsUUFBUSxDQUFDO1lBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxRQUFRLENBQUM7WUFDdEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztZQUN0QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSw0QkFBZ0IsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsR0FBWTtRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFp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LGVBQWUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0saUJBQWlCLEdBQTJCO1lBQ2hELFlBQVk7WUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxHQUFHO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxHQUFHO1lBQ2pCLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHdCQUF3QixDQUFDLElBQVksRUFBRSxpQkFBeUM7UUFDdEYsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQTJCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRyxPQUFPO1lBQ0wsR0FBRyxpQkFBaUI7WUFDcEIsT0FBTztZQUNQLFlBQVk7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcktELDhDQXFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEN1c3RvbVByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxuICBTdWlUcmFuc2FjdGlvbixcbiAgU3VpVHJhbnNhY3Rpb25UeXBlLFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBUeERhdGEsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJhc2VLZXksIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBSZWNpcGllbnQsIFRyYW5zYWN0aW9uUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBVTkFWQUlMQUJMRV9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbjxDdXN0b21Qcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBwcml2YXRlIF9yYXdUcmFuc2FjdGlvbjogc3RyaW5nO1xuICBwcml2YXRlIF9yZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICogQHBhcmFtIHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB1dGlscy5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgdGhpcy5fc3VpVHJhbnNhY3Rpb24gPSBUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZVN1aVRyYW5zYWN0aW9uKFxuICAgICAgICByYXdUcmFuc2FjdGlvblxuICAgICAgKSBhcyBTdWlUcmFuc2FjdGlvbjxDdXN0b21Qcm9ncmFtbWFibGVUcmFuc2FjdGlvbj47XG4gICAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbi50eXBlID0gU3VpVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4O1xuICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeDtcbiAgICAgIHRoaXMuX2lkID0gdGhpcy5fc3VpVHJhbnNhY3Rpb24uaWQ7XG4gICAgICB0aGlzLl9yYXdUcmFuc2FjdGlvbiA9IHJhd1RyYW5zYWN0aW9uO1xuICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQgfHwgVU5BVkFJTEFCTEVfVEVYVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ2VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IHV0aWxzLmdldFJlY2lwaWVudHModGhpcy5fc3VpVHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuX291dHB1dHMgPSB0aGlzLl9yZWNpcGllbnRzLm1hcCgocmVjaXBpZW50LCBpbmRleCkgPT4gKHtcbiAgICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSkpO1xuICAgIGNvbnN0IHRvdGFsQW1vdW50ID0gdGhpcy5fcmVjaXBpZW50cy5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50KSA9PiBhY2N1bXVsYXRvciArIE51bWJlcihjdXJyZW50LmFtb3VudCksIDApO1xuXG4gICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLnN1aVRyYW5zYWN0aW9uLnNlbmRlcixcbiAgICAgICAgdmFsdWU6IHRvdGFsQW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJhdyB0cmFuc2FjdGlvbiBiYXNlNjQgc3RyaW5nXG4gICAqL1xuICBnZXQgcmF3VHJhbnNhY3Rpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmF3VHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSByZWNpcGllbnRzIG9mIHRoZSB0cmFuc2FjdGlvbiBpZiB0aGVyZSBpcyBhbnkgdHJhbnNmZXJzLlxuICAgKi9cbiAgZ2V0IHJlY2lwaWVudHMoKTogUmVjaXBpZW50W10ge1xuICAgIHJldHVybiB0aGlzLl9yZWNpcGllbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBwdWJsaWMgZ2V0VHhEYXRhKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHR4ID0gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbmRlcjogdGhpcy5fc3VpVHJhbnNhY3Rpb24uc2VuZGVyLFxuICAgICAgZXhwaXJhdGlvbjogeyBOb25lOiBudWxsIH0sXG4gICAgICBnYXNEYXRhOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5nYXNEYXRhLFxuICAgICAga2luZDoge1xuICAgICAgICBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbjogdHgudHgsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ2VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdHggPSB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHR4LmlkLFxuICAgICAgc2VuZGVyOiB0eC5zZW5kZXIsXG4gICAgICBleHBpcmF0aW9uOiB7IE5vbmU6IG51bGwgfSxcbiAgICAgIGdhc0RhdGE6IHR4Lmdhc0RhdGEsXG4gICAgICBraW5kOiB7XG4gICAgICAgIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiB0eC50eCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRzJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VPdXRwdXRzJywgJ2NoYW5nZUFtb3VudCcsICdmZWUnLCAndHlwZSddO1xuICAgIGNvbnN0IGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzOiBbXSwgLy8gcGxhY2Vob2xkZXIgd2hpY2ggd2lsbCBiZSBmaWxsZWQgaW4gdGhlIG5leHQgc3RlcFxuICAgICAgb3V0cHV0QW1vdW50OiAnMCcsIC8vIHBsYWNlaG9sZGVyIHdoaWNoIHdpbGwgYmUgZmlsbGVkIGluIHRoZSBuZXh0IHN0ZXBcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBmZWU6IHsgZmVlOiB0aGlzLnN1aVRyYW5zYWN0aW9uLmdhc0RhdGEuYnVkZ2V0LnRvU3RyaW5nKCkgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuZXhwbGFpbkN1c3RvbVRyYW5zYWN0aW9uKHJlc3VsdCwgZXhwbGFuYXRpb25SZXN1bHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBvZiB0aGUgY3VzdG9tIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBqc29uXG4gICAqIEBwYXJhbSBleHBsYW5hdGlvblJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBleHBsYWluQ3VzdG9tVHJhbnNhY3Rpb24oanNvbjogVHhEYXRhLCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB1dGlscy5nZXRSZWNpcGllbnRzKHRoaXMuc3VpVHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSByZWNpcGllbnRzLm1hcCgocmVjaXBpZW50KSA9PiByZWNpcGllbnQpO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IHJlY2lwaWVudHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4gYWNjdW11bGF0b3IgKyBOdW1iZXIoY3VycmVudC5hbW91bnQpLCAwKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZXhwbGFuYXRpb25SZXN1bHQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ import { TransactionBuilder } from './transactionBuilder';
2
+ import { CustomProgrammableTransaction, SuiTransaction } from './iface';
3
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
+ import { CustomTransaction } from './customTransaction';
5
+ import { TransactionType } from '@bitgo-beta/sdk-core';
6
+ import { Transaction } from './transaction';
7
+ export declare class CustomTransactionBuilder extends TransactionBuilder<CustomProgrammableTransaction> {
8
+ protected _rawTransaction: string;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ protected get transactionType(): TransactionType;
11
+ /**
12
+ * set the raw transaction base64 string
13
+ * @param rawTransaction
14
+ */
15
+ rawTransaction(rawTransaction: string): this;
16
+ /**
17
+ * @inheritdoc
18
+ */
19
+ protected fromImplementation(rawTransaction: string): Transaction<CustomProgrammableTransaction>;
20
+ /**
21
+ * @inheritdoc
22
+ */
23
+ protected buildImplementation(): Promise<Transaction<CustomProgrammableTransaction>>;
24
+ /**
25
+ * Currently custom tx only allows a combination of 3 types of SUI transactions:
26
+ * 1. SplitCoins
27
+ * 2. TransferObjects
28
+ * 3. MoveCall
29
+ * @inheritdoc
30
+ */
31
+ validateTransaction(transaction: CustomTransaction): void;
32
+ /**
33
+ * Initialize the transaction builder fields using the decoded transaction data
34
+ * @param tx
35
+ */
36
+ initBuilder(tx: CustomTransaction): void;
37
+ /**
38
+ * Validates all fields are defined
39
+ */
40
+ private validateTransactionFields;
41
+ /**
42
+ * Build the SuiTransaction object
43
+ */
44
+ protected buildSuiTransaction(): SuiTransaction<CustomProgrammableTransaction>;
45
+ }
46
+ //# sourceMappingURL=customTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/customTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,cAAc,EAAsB,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAkD,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,wBAAyB,SAAQ,kBAAkB,CAAC,6BAA6B,CAAC;IAC7F,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;gBAEtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,oBAE5B;IAED;;;OAGG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,6BAA6B,CAAC;IAShG;;OAEG;cACa,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IAkB1F;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAiBzD;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI;IAcxC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,6BAA6B,CAAC;CAI/E"}
@@ -0,0 +1,117 @@
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.CustomTransactionBuilder = void 0;
7
+ const transactionBuilder_1 = require("./transactionBuilder");
8
+ const iface_1 = require("./iface");
9
+ const customTransaction_1 = require("./customTransaction");
10
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
+ const transaction_1 = require("./transaction");
12
+ const assert_1 = __importDefault(require("assert"));
13
+ const utils_1 = __importDefault(require("./utils"));
14
+ class CustomTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this._transaction = new customTransaction_1.CustomTransaction(_coinConfig);
18
+ }
19
+ get transactionType() {
20
+ return sdk_core_1.TransactionType.CustomTx;
21
+ }
22
+ /**
23
+ * set the raw transaction base64 string
24
+ * @param rawTransaction
25
+ */
26
+ rawTransaction(rawTransaction) {
27
+ this.validateRawTransaction(rawTransaction);
28
+ this._rawTransaction = rawTransaction;
29
+ return this;
30
+ }
31
+ /**
32
+ * @inheritdoc
33
+ */
34
+ fromImplementation(rawTransaction) {
35
+ const tx = new customTransaction_1.CustomTransaction(this._coinConfig);
36
+ this.validateRawTransaction(rawTransaction);
37
+ tx.fromRawTransaction(rawTransaction);
38
+ this.initBuilder(tx);
39
+ this.validateTransaction(tx);
40
+ return this.transaction;
41
+ }
42
+ /**
43
+ * @inheritdoc
44
+ */
45
+ async buildImplementation() {
46
+ this.transaction.setSuiTransaction(this.buildSuiTransaction());
47
+ this.transaction.transactionType(this.transactionType);
48
+ if (this._signer) {
49
+ this.transaction.sign(this._signer);
50
+ }
51
+ if (this.transaction.signature.length === 0) {
52
+ this._signatures.forEach((signature) => {
53
+ this.transaction.addSignature(signature.publicKey, signature.signature);
54
+ });
55
+ }
56
+ this.transaction.loadInputsAndOutputs();
57
+ return this.transaction;
58
+ }
59
+ /**
60
+ * Currently custom tx only allows a combination of 3 types of SUI transactions:
61
+ * 1. SplitCoins
62
+ * 2. TransferObjects
63
+ * 3. MoveCall
64
+ * @inheritdoc
65
+ */
66
+ validateTransaction(transaction) {
67
+ if (!transaction.suiTransaction) {
68
+ return;
69
+ }
70
+ this.validateTransactionFields();
71
+ try {
72
+ this.transaction.suiTransaction.tx.transactions.forEach((tx) => {
73
+ utils_1.default.getSuiTransactionType(tx);
74
+ });
75
+ }
76
+ catch (e) {
77
+ if (e instanceof sdk_core_1.InvalidTransactionError) {
78
+ throw new sdk_core_1.BuildTransactionError(e.message);
79
+ }
80
+ throw e;
81
+ }
82
+ }
83
+ /**
84
+ * Initialize the transaction builder fields using the decoded transaction data
85
+ * @param tx
86
+ */
87
+ initBuilder(tx) {
88
+ this._transaction = tx;
89
+ if (tx.signature && tx.signature.length > 0) {
90
+ this._signatures = [tx.suiSignature];
91
+ }
92
+ this.type(iface_1.SuiTransactionType.CustomTx);
93
+ const txData = tx.toJson();
94
+ this.sender(txData.sender);
95
+ this.rawTransaction(tx.rawTransaction);
96
+ this.gasData(txData.gasData);
97
+ }
98
+ /**
99
+ * Validates all fields are defined
100
+ */
101
+ validateTransactionFields() {
102
+ assert_1.default(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
103
+ assert_1.default(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
104
+ assert_1.default(this._gasData, new sdk_core_1.BuildTransactionError('gasData is required before building'));
105
+ assert_1.default(this._rawTransaction, new sdk_core_1.BuildTransactionError('rawTransaction is required before building'));
106
+ this.validateGasData(this._gasData);
107
+ }
108
+ /**
109
+ * Build the SuiTransaction object
110
+ */
111
+ buildSuiTransaction() {
112
+ this.validateTransactionFields();
113
+ return transaction_1.Transaction.deserializeSuiTransaction(this._rawTransaction);
114
+ }
115
+ }
116
+ exports.CustomTransactionBuilder = CustomTransactionBuilder;
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkRBQTBEO0FBQzFELG1DQUE0RjtBQUU1RiwyREFBd0Q7QUFDeEQsbURBQXVHO0FBQ3ZHLCtDQUE0QztBQUM1QyxvREFBNEI7QUFDNUIsb0RBQTRCO0FBRTVCLE1BQWEsd0JBQXlCLFNBQVEsdUNBQWlEO0lBRzdGLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxxQ0FBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxjQUFzQjtRQUNuQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxrQkFBa0IsQ0FBQyxjQUFzQjtRQUNqRCxNQUFNLEVBQUUsR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFD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dEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ08sbUJBQW1CO1FBQzNCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLE9BQU8seUJBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFrRCxDQUFDO0lBQ3RILENBQUM7Q0FDRjtBQW5IRCw0REFtSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBDdXN0b21Qcm9ncmFtbWFibGVUcmFuc2FjdGlvbiwgU3VpVHJhbnNhY3Rpb24sIFN1aVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQ3VzdG9tVHJhbnNhY3Rpb24gfSBmcm9tICcuL2N1c3RvbVRyYW5zYWN0aW9uJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI8Q3VzdG9tUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgcHJvdGVjdGVkIF9yYXdUcmFuc2FjdGlvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBDdXN0b21UcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4O1xuICB9XG5cbiAgLyoqXG4gICAqIHNldCB0aGUgcmF3IHRyYW5zYWN0aW9uIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICByYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLl9yYXdUcmFuc2FjdGlvbiA9IHJhd1RyYW5zYWN0aW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbjxDdXN0b21Qcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHR4ID0gbmV3IEN1c3RvbVRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb24odHgpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPEN1c3RvbVByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcblxuICAgIGlmICh0aGlzLl9zaWduZXIpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbih0aGlzLl9zaWduZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZXMuZm9yRWFjaCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24uYWRkU2lnbmF0dXJlKHNpZ25hdHVyZS5wdWJsaWNLZXksIHNpZ25hdHVyZS5zaWduYXR1cmUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1cnJlbnRseSBjdXN0b20gdHggb25seSBhbGxvd3MgYSBjb21iaW5hdGlvbiBvZiAzIHR5cGVzIG9mIFNVSSB0cmFuc2FjdGlvbnM6XG4gICAqIDEuIFNwbGl0Q29pbnNcbiAgICogMi4gVHJhbnNmZXJPYmplY3RzXG4gICAqIDMuIE1vdmVDYWxsXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBDdXN0b21UcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24uc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc3VpVHJhbnNhY3Rpb24udHgudHJhbnNhY3Rpb25zLmZvckVhY2goKHR4KSA9PiB7XG4gICAgICAgIHV0aWxzLmdldFN1aVRyYW5zYWN0aW9uVHlwZSh0eCk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEludmFsaWRUcmFuc2FjdGlvbkVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICogQHBhcmFtIHR4XG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogQ3VzdG9tVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuXG4gICAgaWYgKHR4LnNpZ25hdHVyZSAmJiB0eC5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlcyA9IFt0eC5zdWlTaWduYXR1cmVdO1xuICAgIH1cblxuICAgIHRoaXMudHlwZShTdWlUcmFuc2FjdGlvblR5cGUuQ3VzdG9tVHgpO1xuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuICAgIHRoaXMuc2VuZGVyKHR4RGF0YS5zZW5kZXIpO1xuICAgIHRoaXMucmF3VHJhbnNhY3Rpb24odHgucmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuZ2FzRGF0YSh0eERhdGEuZ2FzRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFsbCBmaWVsZHMgYXJlIGRlZmluZWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBhc3NlcnQodGhpcy5fdHlwZSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndHlwZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZGVyIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fZ2FzRGF0YSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzRGF0YSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3Jhd1RyYW5zYWN0aW9uLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdyYXdUcmFuc2FjdGlvbiBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy52YWxpZGF0ZUdhc0RhdGEodGhpcy5fZ2FzRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIFN1aVRyYW5zYWN0aW9uIG9iamVjdFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248Q3VzdG9tUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb24uZGVzZXJpYWxpemVTdWlUcmFuc2FjdGlvbih0aGlzLl9yYXdUcmFuc2FjdGlvbikgYXMgU3VpVHJhbnNhY3Rpb248Q3VzdG9tUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+O1xuICB9XG59XG4iXX0=