@bitgo/sdk-coin-ada 1.1.1 → 1.2.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,23 +3,18 @@
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
- ## [1.1.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.1-rc.1...@bitgo/sdk-coin-ada@1.1.1) (2022-07-21)
7
-
8
- **Note:** Version bump only for package @bitgo/sdk-coin-ada
9
-
10
-
6
+ # [1.2.0-rc.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.2-rc.1...@bitgo/sdk-coin-ada@1.2.0-rc.0) (2022-08-01)
11
7
 
12
8
 
9
+ ### Features
13
10
 
14
- ## [1.1.1-rc.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.1-rc.0...@bitgo/sdk-coin-ada@1.1.1-rc.1) (2022-07-21)
11
+ * **account-lib:** add transaction builder for ada ([f35974b](https://github.com/BitGo/BitGoJS/commit/f35974b91f561e70bd83804bfc98f15b08923663))
15
12
 
16
- **Note:** Version bump only for package @bitgo/sdk-coin-ada
17
13
 
18
14
 
19
15
 
20
16
 
21
-
22
- ## [1.1.1-rc.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0...@bitgo/sdk-coin-ada@1.1.1-rc.0) (2022-07-20)
17
+ ## [1.1.2-rc.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.2-rc.0...@bitgo/sdk-coin-ada@1.1.2-rc.1) (2022-07-27)
23
18
 
24
19
  **Note:** Version bump only for package @bitgo/sdk-coin-ada
25
20
 
@@ -27,26 +22,26 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
27
22
 
28
23
 
29
24
 
30
- # [1.1.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.7...@bitgo/sdk-coin-ada@1.1.0) (2022-07-19)
25
+ ## [1.1.2-rc.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.1...@bitgo/sdk-coin-ada@1.1.2-rc.0) (2022-07-26)
31
26
 
32
- **Note:** Version bump only for package @bitgo/sdk-coin-ada
33
27
 
28
+ ### Bug Fixes
34
29
 
30
+ * add unit tests to coins ([c8df378](https://github.com/BitGo/BitGoJS/commit/c8df378116dae2f67aaf7e9a6bfb98bf42f158d9))
35
31
 
36
32
 
37
33
 
38
- # [1.1.0-rc.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.5...@bitgo/sdk-coin-ada@1.1.0-rc.7) (2022-07-19)
39
34
 
40
35
 
41
- ### Features
36
+ ## [1.1.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.1-rc.1...@bitgo/sdk-coin-ada@1.1.1) (2022-07-21)
42
37
 
43
- * **sdk-coin-ada:** implement key pair and utils for ada sdk ([9a1aabb](https://github.com/BitGo/BitGoJS/commit/9a1aabb8a07b5787ab3fa645c29be1b940694892))
38
+ **Note:** Version bump only for package @bitgo/sdk-coin-ada
44
39
 
45
40
 
46
41
 
47
42
 
48
43
 
49
- # [1.1.0-rc.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.5...@bitgo/sdk-coin-ada@1.1.0-rc.6) (2022-07-18)
44
+ ## [1.1.1-rc.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.1-rc.0...@bitgo/sdk-coin-ada@1.1.1-rc.1) (2022-07-21)
50
45
 
51
46
  **Note:** Version bump only for package @bitgo/sdk-coin-ada
52
47
 
@@ -54,7 +49,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
54
49
 
55
50
 
56
51
 
57
- # [1.1.0-rc.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.4...@bitgo/sdk-coin-ada@1.1.0-rc.5) (2022-07-15)
52
+ ## [1.1.1-rc.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0...@bitgo/sdk-coin-ada@1.1.1-rc.0) (2022-07-20)
58
53
 
59
54
  **Note:** Version bump only for package @bitgo/sdk-coin-ada
60
55
 
@@ -62,7 +57,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
62
57
 
63
58
 
64
59
 
65
- # [1.1.0-rc.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.2...@bitgo/sdk-coin-ada@1.1.0-rc.4) (2022-07-15)
60
+ # [1.1.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.7...@bitgo/sdk-coin-ada@1.1.0) (2022-07-19)
66
61
 
67
62
  **Note:** Version bump only for package @bitgo/sdk-coin-ada
68
63
 
@@ -70,33 +65,42 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
70
65
 
71
66
 
72
67
 
73
- # [1.1.0-rc.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.2...@bitgo/sdk-coin-ada@1.1.0-rc.3) (2022-07-14)
68
+ # [1.1.0-rc.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.5...@bitgo/sdk-coin-ada@1.1.0-rc.7) (2022-07-19)
74
69
 
75
70
  **Note:** Version bump only for package @bitgo/sdk-coin-ada
76
71
 
72
+ # [1.1.0-rc.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.5...@bitgo/sdk-coin-ada@1.1.0-rc.7) (2022-07-19)
77
73
 
74
+ ### Features
78
75
 
76
+ - **sdk-coin-ada:** implement key pair and utils for ada sdk ([9a1aabb](https://github.com/BitGo/BitGoJS/commit/9a1aabb8a07b5787ab3fa645c29be1b940694892))
79
77
 
80
-
81
- # [1.1.0-rc.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.1...@bitgo/sdk-coin-ada@1.1.0-rc.2) (2022-07-12)
78
+ # [1.1.0-rc.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.5...@bitgo/sdk-coin-ada@1.1.0-rc.6) (2022-07-18)
82
79
 
83
80
  **Note:** Version bump only for package @bitgo/sdk-coin-ada
84
81
 
82
+ # [1.1.0-rc.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.4...@bitgo/sdk-coin-ada@1.1.0-rc.5) (2022-07-15)
85
83
 
84
+ **Note:** Version bump only for package @bitgo/sdk-coin-ada
86
85
 
86
+ # [1.1.0-rc.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.2...@bitgo/sdk-coin-ada@1.1.0-rc.4) (2022-07-15)
87
87
 
88
+ **Note:** Version bump only for package @bitgo/sdk-coin-ada
88
89
 
89
- # [1.1.0-rc.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.0...@bitgo/sdk-coin-ada@1.1.0-rc.1) (2022-07-11)
90
+ # [1.1.0-rc.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.2...@bitgo/sdk-coin-ada@1.1.0-rc.3) (2022-07-14)
90
91
 
91
92
  **Note:** Version bump only for package @bitgo/sdk-coin-ada
92
93
 
94
+ # [1.1.0-rc.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.1...@bitgo/sdk-coin-ada@1.1.0-rc.2) (2022-07-12)
93
95
 
96
+ **Note:** Version bump only for package @bitgo/sdk-coin-ada
94
97
 
98
+ # [1.1.0-rc.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-ada@1.1.0-rc.0...@bitgo/sdk-coin-ada@1.1.0-rc.1) (2022-07-11)
95
99
 
100
+ **Note:** Version bump only for package @bitgo/sdk-coin-ada
96
101
 
97
102
  # 1.1.0-rc.0 (2022-07-07)
98
103
 
99
-
100
104
  ### Features
101
105
 
102
- * **account-lib:** cardano ada coin skeleton ([68f7fe7](https://github.com/BitGo/BitGoJS/commit/68f7fe708d27dba55885da32e4be07aa1e1bbf00))
106
+ - **account-lib:** cardano ada coin skeleton ([68f7fe7](https://github.com/BitGo/BitGoJS/commit/68f7fe708d27dba55885da32e4be07aa1e1bbf00))
@@ -1,7 +1,4 @@
1
- import * as Utils from './utils';
2
- export { KeyPair } from './keyPair';
3
- export { TransactionBuilderFactory } from './transactionBuilderFactory';
4
- export { Utils };
5
- export { Ada } from './ada';
6
- export { Tada } from './tada';
1
+ export * from './lib';
2
+ export * from './ada';
3
+ export * from './tada';
7
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
package/dist/src/index.js CHANGED
@@ -6,28 +6,11 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
6
6
  if (k2 === undefined) k2 = k;
7
7
  o[k2] = m[k];
8
8
  }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
11
  };
21
12
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.Tada = exports.Ada = exports.Utils = exports.TransactionBuilderFactory = exports.KeyPair = void 0;
23
- const Utils = __importStar(require("./utils"));
24
- exports.Utils = Utils;
25
- var keyPair_1 = require("./keyPair");
26
- Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
27
- var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
28
- Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
29
- var ada_1 = require("./ada");
30
- Object.defineProperty(exports, "Ada", { enumerable: true, get: function () { return ada_1.Ada; } });
31
- var tada_1 = require("./tada");
32
- Object.defineProperty(exports, "Tada", { enumerable: true, get: function () { return tada_1.Tada; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUl4QixzQkFBSztBQUZkLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBO0FBRWxDLDZCQUE0QjtBQUFuQiwwRkFBQSxHQUFHLE9BQUE7QUFDWiwrQkFBOEI7QUFBckIsNEZBQUEsSUFBSSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBVdGlscyB9O1xuZXhwb3J0IHsgQWRhIH0gZnJvbSAnLi9hZGEnO1xuZXhwb3J0IHsgVGFkYSB9IGZyb20gJy4vdGFkYSc7XG4iXX0=
13
+ __exportStar(require("./lib"), exports);
14
+ __exportStar(require("./ada"), exports);
15
+ __exportStar(require("./tada"), exports);
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCO0FBQ3RCLHdDQUFzQjtBQUN0Qix5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG5leHBvcnQgKiBmcm9tICcuL2FkYSc7XG5leHBvcnQgKiBmcm9tICcuL3RhZGEnO1xuIl19
@@ -0,0 +1,8 @@
1
+ import * as Utils from './utils';
2
+ export { KeyPair } from './keyPair';
3
+ export { Transaction } from './transaction';
4
+ export { TransactionBuilder } from './transactionBuilder';
5
+ export { TransferBuilder } from './transferBuilder';
6
+ export { TransactionBuilderFactory } from './transactionBuilderFactory';
7
+ export { Utils };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.Utils = exports.TransactionBuilderFactory = exports.TransferBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
23
+ const Utils = __importStar(require("./utils"));
24
+ exports.Utils = Utils;
25
+ var keyPair_1 = require("./keyPair");
26
+ Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
27
+ var transaction_1 = require("./transaction");
28
+ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
29
+ var transactionBuilder_1 = require("./transactionBuilder");
30
+ Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
31
+ var transferBuilder_1 = require("./transferBuilder");
32
+ Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
33
+ var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
34
+ Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFPeEIsc0JBQUs7QUFMZCxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgVXRpbHMgfTtcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { DefaultKeys, KeyPairOptions, Ed25519KeyPair } from '@bitgo/sdk-core';
2
+ export declare class KeyPair extends Ed25519KeyPair {
3
+ /**
4
+ * Public constructor. By default, creates a key pair with a random master seed.
5
+ *
6
+ * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
7
+ *
8
+ */
9
+ constructor(source?: KeyPairOptions);
10
+ /**
11
+ * @returns { Address }
12
+ */
13
+ getAddress(format: any): string;
14
+ getKeys(): DefaultKeys;
15
+ recordKeysFromPrivateKeyInProtocolFormat(prv: string): DefaultKeys;
16
+ recordKeysFromPublicKeyInProtocolFormat(pub: string): DefaultKeys;
17
+ }
18
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAwB,MAAM,iBAAiB,CAAC;AASpG,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC;;OAEG;IACH,UAAU,CAAC,MAAM,KAAA,GAAG,MAAM;IAkB1B,OAAO,IAAI,WAAW;IAQtB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAKlE,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;CAIlE"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyPair = void 0;
4
+ const sdk_core_1 = require("@bitgo/sdk-core");
5
+ const cardano_serialization_lib_nodejs_1 = require("@emurgo/cardano-serialization-lib-nodejs");
6
+ class KeyPair extends sdk_core_1.Ed25519KeyPair {
7
+ /**
8
+ * Public constructor. By default, creates a key pair with a random master seed.
9
+ *
10
+ * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
11
+ *
12
+ */
13
+ constructor(source) {
14
+ super(source);
15
+ }
16
+ /**
17
+ * @returns { Address }
18
+ */
19
+ getAddress(format) {
20
+ const bytesFromHex = new Uint8Array(Buffer.from(this.keyPair.pub, 'hex'));
21
+ const pubKey = cardano_serialization_lib_nodejs_1.PublicKey.from_bytes(bytesFromHex);
22
+ let enterpriseAddress;
23
+ if (format === sdk_core_1.AddressFormat.testnet) {
24
+ enterpriseAddress = cardano_serialization_lib_nodejs_1.EnterpriseAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.testnet().network_id(), cardano_serialization_lib_nodejs_1.StakeCredential.from_keyhash(pubKey.hash()));
25
+ }
26
+ else if (format === sdk_core_1.AddressFormat.mainnet) {
27
+ enterpriseAddress = cardano_serialization_lib_nodejs_1.EnterpriseAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.mainnet().network_id(), cardano_serialization_lib_nodejs_1.StakeCredential.from_keyhash(pubKey.hash()));
28
+ }
29
+ return enterpriseAddress.to_address().to_bech32();
30
+ }
31
+ getKeys() {
32
+ const result = { pub: this.keyPair.pub };
33
+ if (this.keyPair.prv) {
34
+ result.prv = this.keyPair.prv;
35
+ }
36
+ return result;
37
+ }
38
+ recordKeysFromPrivateKeyInProtocolFormat(prv) {
39
+ const rawPrv = cardano_serialization_lib_nodejs_1.PrivateKey.from_bech32(prv).as_bytes();
40
+ return new KeyPair({ prv: sdk_core_1.toHex(rawPrv) }).keyPair;
41
+ }
42
+ recordKeysFromPublicKeyInProtocolFormat(pub) {
43
+ const rawPub = cardano_serialization_lib_nodejs_1.PublicKey.from_bech32(pub).as_bytes();
44
+ return { pub: sdk_core_1.toHex(rawPub) };
45
+ }
46
+ }
47
+ exports.KeyPair = KeyPair;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBb0c7QUFDcEcsK0ZBTWtEO0FBRWxELE1BQWEsT0FBUSxTQUFRLHlCQUFjO0lBQ3pDOzs7OztPQUtHO0lBQ0gsWUFBWSxNQUF1QjtRQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLE1BQU07UUFDZixNQUFNLFlBQVksR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUUsTUFBTSxNQUFNLEdBQUcsNENBQVMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxpQkFBaUIsQ0FBQztRQUN0QixJQUFJLE1BQU0sS0FBSyx3QkFBYSxDQUFDLE9BQU8sRUFBRTtZQUNwQyxpQkFBaUIsR0FBRyxvREFBaUIsQ0FBQyxHQUFHLENBQ3ZDLDhDQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQ2xDLGtEQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM1QyxDQUFDO1NBQ0g7YUFBTSxJQUFJLE1BQU0sS0FBSyx3QkFBYSxDQUFDLE9BQU8sRUFBRTtZQUMzQyxpQkFBaUIsR0FBRyxvREFBaUIsQ0FBQyxHQUFHLENBQ3ZDLDhDQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQ2xDLGtEQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM1QyxDQUFDO1NBQ0g7UUFDRCxPQUFPLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxNQUFNLEdBQWdCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELHdDQUF3QyxDQUFDLEdBQVc7UUFDbEQsTUFBTSxNQUFNLEdBQUcsNkNBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxnQkFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDckQsQ0FBQztJQUVELHVDQUF1QyxDQUFDLEdBQVc7UUFDakQsTUFBTSxNQUFNLEdBQUcsNENBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxnQkFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBakRELDBCQWlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmF1bHRLZXlzLCBLZXlQYWlyT3B0aW9ucywgRWQyNTUxOUtleVBhaXIsIHRvSGV4LCBBZGRyZXNzRm9ybWF0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIFB1YmxpY0tleSxcbiAgUHJpdmF0ZUtleSxcbiAgRW50ZXJwcmlzZUFkZHJlc3MsXG4gIE5ldHdvcmtJbmZvLFxuICBTdGFrZUNyZWRlbnRpYWwsXG59IGZyb20gJ0BlbXVyZ28vY2FyZGFuby1zZXJpYWxpemF0aW9uLWxpYi1ub2RlanMnO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIEVkMjU1MTlLZXlQYWlyIHtcbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4gQnkgZGVmYXVsdCwgY3JlYXRlcyBhIGtleSBwYWlyIHdpdGggYSByYW5kb20gbWFzdGVyIHNlZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7IEtleVBhaXJPcHRpb25zIH0gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5LCBvciBhIHB1YmxpYyBrZXlcbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQHJldHVybnMgeyBBZGRyZXNzIH1cbiAgICovXG4gIGdldEFkZHJlc3MoZm9ybWF0KTogc3RyaW5nIHtcbiAgICBjb25zdCBieXRlc0Zyb21IZXggPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh0aGlzLmtleVBhaXIucHViLCAnaGV4JykpO1xuICAgIGNvbnN0IHB1YktleSA9IFB1YmxpY0tleS5mcm9tX2J5dGVzKGJ5dGVzRnJvbUhleCk7XG4gICAgbGV0IGVudGVycHJpc2VBZGRyZXNzO1xuICAgIGlmIChmb3JtYXQgPT09IEFkZHJlc3NGb3JtYXQudGVzdG5ldCkge1xuICAgICAgZW50ZXJwcmlzZUFkZHJlc3MgPSBFbnRlcnByaXNlQWRkcmVzcy5uZXcoXG4gICAgICAgIE5ldHdvcmtJbmZvLnRlc3RuZXQoKS5uZXR3b3JrX2lkKCksXG4gICAgICAgIFN0YWtlQ3JlZGVudGlhbC5mcm9tX2tleWhhc2gocHViS2V5Lmhhc2goKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChmb3JtYXQgPT09IEFkZHJlc3NGb3JtYXQubWFpbm5ldCkge1xuICAgICAgZW50ZXJwcmlzZUFkZHJlc3MgPSBFbnRlcnByaXNlQWRkcmVzcy5uZXcoXG4gICAgICAgIE5ldHdvcmtJbmZvLm1haW5uZXQoKS5uZXR3b3JrX2lkKCksXG4gICAgICAgIFN0YWtlQ3JlZGVudGlhbC5mcm9tX2tleWhhc2gocHViS2V5Lmhhc2goKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBlbnRlcnByaXNlQWRkcmVzcy50b19hZGRyZXNzKCkudG9fYmVjaDMyKCk7XG4gIH1cblxuICBnZXRLZXlzKCk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCByZXN1bHQ6IERlZmF1bHRLZXlzID0geyBwdWI6IHRoaXMua2V5UGFpci5wdWIgfTtcbiAgICBpZiAodGhpcy5rZXlQYWlyLnBydikge1xuICAgICAgcmVzdWx0LnBydiA9IHRoaXMua2V5UGFpci5wcnY7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXlJblByb3RvY29sRm9ybWF0KHBydjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IHJhd1BydiA9IFByaXZhdGVLZXkuZnJvbV9iZWNoMzIocHJ2KS5hc19ieXRlcygpO1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHBydjogdG9IZXgocmF3UHJ2KSB9KS5rZXlQYWlyO1xuICB9XG5cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXlJblByb3RvY29sRm9ybWF0KHB1Yjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IHJhd1B1YiA9IFB1YmxpY0tleS5mcm9tX2JlY2gzMihwdWIpLmFzX2J5dGVzKCk7XG4gICAgcmV0dXJuIHsgcHViOiB0b0hleChyYXdQdWIpIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,59 @@
1
+ /// <reference types="node" />
2
+ import { BaseKey, BaseTransaction, TransactionType, TransactionExplanation } from '@bitgo/sdk-core';
3
+ import * as CardanoWasm from '@emurgo/cardano-serialization-lib-nodejs';
4
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
5
+ export interface TransactionInput {
6
+ transaction_id: string;
7
+ transaction_index: number;
8
+ }
9
+ export interface TransactionOutput {
10
+ address: string;
11
+ amount: string;
12
+ }
13
+ export interface Witness {
14
+ publicKey: string;
15
+ signature: string;
16
+ }
17
+ /**
18
+ * The transaction data returned from the toJson() function of a transaction
19
+ */
20
+ export interface TxData {
21
+ id: string;
22
+ type: TransactionType;
23
+ inputs: TransactionInput[];
24
+ outputs: TransactionOutput[];
25
+ witnesses: Witness[];
26
+ }
27
+ export declare class Transaction extends BaseTransaction {
28
+ private _transaction;
29
+ constructor(coinConfig: Readonly<CoinConfig>);
30
+ get transaction(): CardanoWasm.Transaction;
31
+ set transaction(tx: CardanoWasm.Transaction);
32
+ /** @inheritdoc */
33
+ canSign(key: BaseKey): boolean;
34
+ toBroadcastFormat(): string;
35
+ /** @inheritdoc */
36
+ toJson(): TxData;
37
+ /**
38
+ * Build input and output field for this transaction
39
+ *
40
+ */
41
+ loadInputsAndOutputs(): void;
42
+ /** @inheritdoc */
43
+ get signablePayload(): Buffer;
44
+ /**
45
+ * Sets this transaction payload
46
+ *
47
+ * @param rawTx
48
+ */
49
+ fromRawTransaction(rawTx: string): void;
50
+ /**
51
+ * Set the transaction type.
52
+ *
53
+ * @param {TransactionType} transactionType The transaction type to be set.
54
+ */
55
+ setTransactionType(transactionType: TransactionType): void;
56
+ /** @inheritdoc */
57
+ explainTransaction(): TransactionExplanation;
58
+ }
59
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAGf,eAAe,EACf,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,WAAW,MAAM,0CAA0C,CAAC;AAExE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,YAAY,CAA0B;gBAElC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,CAEzC;IAED,IAAI,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,WAAW,EAG1C;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAS9B,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IA2ChB;;;OAGG;IACH,oBAAoB,IAAI,IAAI;IAiB5B,kBAAkB;IAClB,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAcvC;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;CAe7C"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.Transaction = void 0;
23
+ const sdk_core_1 = require("@bitgo/sdk-core");
24
+ const CardanoWasm = __importStar(require("@emurgo/cardano-serialization-lib-nodejs"));
25
+ const keyPair_1 = require("./keyPair");
26
+ class Transaction extends sdk_core_1.BaseTransaction {
27
+ constructor(coinConfig) {
28
+ super(coinConfig);
29
+ }
30
+ get transaction() {
31
+ return this._transaction;
32
+ }
33
+ set transaction(tx) {
34
+ this._transaction = tx;
35
+ this._id = Buffer.from(CardanoWasm.hash_transaction(tx.body()).to_bytes()).toString('hex');
36
+ }
37
+ /** @inheritdoc */
38
+ canSign(key) {
39
+ try {
40
+ new keyPair_1.KeyPair({ prv: key.key });
41
+ return true;
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ toBroadcastFormat() {
48
+ if (!this._transaction) {
49
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
50
+ }
51
+ return Buffer.from(this._transaction.to_bytes()).toString('hex');
52
+ }
53
+ /** @inheritdoc */
54
+ toJson() {
55
+ if (!this._transaction) {
56
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
57
+ }
58
+ const result = {
59
+ id: this.id,
60
+ type: this._type,
61
+ inputs: [],
62
+ outputs: [],
63
+ witnesses: [],
64
+ };
65
+ for (let i = 0; i < this._transaction.body().inputs().len(); i++) {
66
+ const input = this._transaction.body().inputs().get(i);
67
+ result.inputs.push({
68
+ transaction_id: Buffer.from(input.transaction_id().to_bytes()).toString('hex'),
69
+ transaction_index: input.index(),
70
+ });
71
+ }
72
+ for (let i = 0; i < this._transaction.body().outputs().len(); i++) {
73
+ const output = this._transaction.body().outputs().get(i);
74
+ result.outputs.push({
75
+ address: output.address().to_bech32(),
76
+ amount: output.amount().coin().to_str(),
77
+ });
78
+ }
79
+ if (this._transaction.witness_set().vkeys() !== undefined) {
80
+ const vkeys = this._transaction.witness_set().vkeys();
81
+ for (let i = 0; i < vkeys.len(); i++) {
82
+ const vkey = this._transaction.witness_set().vkeys().get(i);
83
+ result.witnesses.push({
84
+ publicKey: vkey === null || vkey === void 0 ? void 0 : vkey.vkey().public_key().to_bech32(),
85
+ signature: vkey === null || vkey === void 0 ? void 0 : vkey.signature().to_hex(),
86
+ });
87
+ }
88
+ }
89
+ return result;
90
+ }
91
+ /**
92
+ * Build input and output field for this transaction
93
+ *
94
+ */
95
+ loadInputsAndOutputs() {
96
+ const outputs = [];
97
+ const inputs = [];
98
+ const tx_outputs = this._transaction.body().outputs();
99
+ for (let i = 0; i < tx_outputs.len(); i++) {
100
+ const output = tx_outputs.get(i);
101
+ outputs.push({
102
+ address: output.address().to_bech32(),
103
+ value: output.amount().coin().to_str(),
104
+ });
105
+ }
106
+ this._outputs = outputs;
107
+ this._inputs = inputs;
108
+ }
109
+ /** @inheritdoc */
110
+ get signablePayload() {
111
+ return Buffer.from(CardanoWasm.hash_transaction(this._transaction.body()).to_bytes());
112
+ }
113
+ /**
114
+ * Sets this transaction payload
115
+ *
116
+ * @param rawTx
117
+ */
118
+ fromRawTransaction(rawTx) {
119
+ const HEX_REGEX = /^[0-9a-fA-F]+$/;
120
+ const bufferRawTransaction = HEX_REGEX.test(rawTx) ? Buffer.from(rawTx, 'hex') : Buffer.from(rawTx, 'base64');
121
+ try {
122
+ const txn = CardanoWasm.Transaction.from_bytes(bufferRawTransaction);
123
+ this._transaction = txn;
124
+ this._id = Buffer.from(CardanoWasm.hash_transaction(txn.body()).to_bytes()).toString('hex');
125
+ this._type = sdk_core_1.TransactionType.Send;
126
+ this.loadInputsAndOutputs();
127
+ }
128
+ catch (e) {
129
+ throw new sdk_core_1.InvalidTransactionError('unable to build transaction from raw');
130
+ }
131
+ }
132
+ /**
133
+ * Set the transaction type.
134
+ *
135
+ * @param {TransactionType} transactionType The transaction type to be set.
136
+ */
137
+ setTransactionType(transactionType) {
138
+ this._type = transactionType;
139
+ }
140
+ /** @inheritdoc */
141
+ explainTransaction() {
142
+ const txJson = this.toJson();
143
+ const displayOrder = ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee', 'type'];
144
+ const amount = txJson.outputs.map((o) => ({ amount: BigInt(o.amount) }));
145
+ const outputAmount = amount.reduce((p, n) => p + BigInt(n.amount), BigInt('0')).toString();
146
+ return {
147
+ displayOrder,
148
+ id: txJson.id,
149
+ outputs: txJson.outputs.map((o) => ({ address: o.address, amount: o.amount })),
150
+ outputAmount: outputAmount,
151
+ changeOutputs: [],
152
+ changeAmount: '0',
153
+ fee: { fee: '0' },
154
+ };
155
+ }
156
+ }
157
+ exports.Transaction = Transaction;
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FPeUI7QUFDekIsc0ZBQXdFO0FBQ3hFLHVDQUFvQztBQTRCcEMsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFHOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsRUFBMkI7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLElBQUk7WUFDRixJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE1BQU07WUFDTixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMs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LE9BQU87WUFDTCxZQUFZO1lBQ1osRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLFlBQVksRUFBRSxZQUFZO1lBQzFCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxHQUFHO1lBQ2pCLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7U0FDbEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQW5KRCxrQ0FtSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEVudHJ5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgQ2FyZGFub1dhc20gZnJvbSAnQGVtdXJnby9jYXJkYW5vLXNlcmlhbGl6YXRpb24tbGliLW5vZGVqcyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25JbnB1dCB7XG4gIHRyYW5zYWN0aW9uX2lkOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uX2luZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25PdXRwdXQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdG5lc3Mge1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG59XG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIGlucHV0czogVHJhbnNhY3Rpb25JbnB1dFtdO1xuICBvdXRwdXRzOiBUcmFuc2FjdGlvbk91dHB1dFtdO1xuICB3aXRuZXNzZXM6IFdpdG5lc3NbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgdHJhbnNhY3Rpb24oKTogQ2FyZGFub1dhc20uVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCB0cmFuc2FjdGlvbih0eDogQ2FyZGFub1dhc20uVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIHRoaXMuX2lkID0gQnVmZmVyLmZyb20oQ2FyZGFub1dhc20uaGFzaF90cmFuc2FjdGlvbih0eC5ib2R5KCkpLnRvX2J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl90cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLl90cmFuc2FjdGlvbi50b19ieXRlcygpKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl90cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUgYXMgVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgaW5wdXRzOiBbXSxcbiAgICAgIG91dHB1dHM6IFtdLFxuICAgICAgd2l0bmVzc2VzOiBbXSxcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkuaW5wdXRzKCkubGVuKCk7IGkrKykge1xuICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkuaW5wdXRzKCkuZ2V0KGkpO1xuICAgICAgcmVzdWx0LmlucHV0cy5wdXNoKHtcbiAgICAgICAgdHJhbnNhY3Rpb25faWQ6IEJ1ZmZlci5mcm9tKGlucHV0LnRyYW5zYWN0aW9uX2lkKCkudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB0cmFuc2FjdGlvbl9pbmRleDogaW5wdXQuaW5kZXgoKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fdHJhbnNhY3Rpb24uYm9keSgpLm91dHB1dHMoKS5sZW4oKTsgaSsrKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkub3V0cHV0cygpLmdldChpKTtcbiAgICAgIHJlc3VsdC5vdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcygpLnRvX2JlY2gzMigpLFxuICAgICAgICBhbW91bnQ6IG91dHB1dC5hbW91bnQoKS5jb2luKCkudG9fc3RyKCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24ud2l0bmVzc19zZXQoKS52a2V5cygpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHZrZXlzID0gdGhpcy5fdHJhbnNhY3Rpb24ud2l0bmVzc19zZXQoKS52a2V5cygpIGFzIENhcmRhbm9XYXNtLlZrZXl3aXRuZXNzZXM7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZrZXlzLmxlbigpOyBpKyspIHtcbiAgICAgICAgY29uc3QgdmtleSA9ICh0aGlzLl90cmFuc2FjdGlvbi53aXRuZXNzX3NldCgpLnZrZXlzKCkgYXMgQ2FyZGFub1dhc20uVmtleXdpdG5lc3NlcykuZ2V0KGkpO1xuICAgICAgICByZXN1bHQud2l0bmVzc2VzLnB1c2goe1xuICAgICAgICAgIHB1YmxpY0tleTogdmtleT8udmtleSgpLnB1YmxpY19rZXkoKS50b19iZWNoMzIoKSxcbiAgICAgICAgICBzaWduYXR1cmU6IHZrZXk/LnNpZ25hdHVyZSgpLnRvX2hleCgpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGlucHV0IGFuZCBvdXRwdXQgZmllbGQgZm9yIHRoaXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBjb25zdCBpbnB1dHM6IEVudHJ5W10gPSBbXTtcblxuICAgIGNvbnN0IHR4X291dHB1dHMgPSB0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkub3V0cHV0cygpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHhfb3V0cHV0cy5sZW4oKTsgaSsrKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSB0eF9vdXRwdXRzLmdldChpKTtcbiAgICAgIG91dHB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzKCkudG9fYmVjaDMyKCksXG4gICAgICAgIHZhbHVlOiBvdXRwdXQuYW1vdW50KCkuY29pbigpLnRvX3N0cigpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fb3V0cHV0cyA9IG91dHB1dHM7XG4gICAgdGhpcy5faW5wdXRzID0gaW5wdXRzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oQ2FyZGFub1dhc20uaGFzaF90cmFuc2FjdGlvbih0aGlzLl90cmFuc2FjdGlvbi5ib2R5KCkpLnRvX2J5dGVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSByYXdUeFxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1R4OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBIRVhfUkVHRVggPSAvXlswLTlhLWZBLUZdKyQvO1xuICAgIGNvbnN0IGJ1ZmZlclJhd1RyYW5zYWN0aW9uID0gSEVYX1JFR0VYLnRlc3QocmF3VHgpID8gQnVmZmVyLmZyb20ocmF3VHgsICdoZXgnKSA6IEJ1ZmZlci5mcm9tKHJhd1R4LCAnYmFzZTY0Jyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4biA9IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uLmZyb21fYnl0ZXMoYnVmZmVyUmF3VHJhbnNhY3Rpb24pO1xuICAgICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eG47XG4gICAgICB0aGlzLl9pZCA9IEJ1ZmZlci5mcm9tKENhcmRhbm9XYXNtLmhhc2hfdHJhbnNhY3Rpb24odHhuLmJvZHkoKSkudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndW5hYmxlIHRvIGJ1aWxkIHRyYW5zYWN0aW9uIGZyb20gcmF3Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCB0eEpzb24gPSB0aGlzLnRvSnNvbigpO1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJywgJ3R5cGUnXTtcbiAgICBjb25zdCBhbW91bnQgPSB0eEpzb24ub3V0cHV0cy5tYXAoKG8pID0+ICh7IGFtb3VudDogQmlnSW50KG8uYW1vdW50KSB9KSk7XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gYW1vdW50LnJlZHVjZSgocCwgbikgPT4gcCArIEJpZ0ludChuLmFtb3VudCksIEJpZ0ludCgnMCcpKS50b1N0cmluZygpO1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBpZDogdHhKc29uLmlkLFxuICAgICAgb3V0cHV0czogdHhKc29uLm91dHB1dHMubWFwKChvKSA9PiAoeyBhZGRyZXNzOiBvLmFkZHJlc3MsIGFtb3VudDogby5hbW91bnQgfSkpLFxuICAgICAgb3V0cHV0QW1vdW50OiBvdXRwdXRBbW91bnQsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogJzAnIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,47 @@
1
+ /// <reference types="node" />
2
+ import BigNumber from 'bignumber.js';
3
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
4
+ import { BaseTransactionBuilder, BaseAddress, BaseKey, PublicKey as BasePublicKey } from '@bitgo/sdk-core';
5
+ import { Transaction, TransactionInput, TransactionOutput } from './transaction';
6
+ export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
7
+ private _transaction;
8
+ private _signers;
9
+ private _transactionInputs;
10
+ private _transactionOutputs;
11
+ private _txBuilder;
12
+ private _signatures;
13
+ private _ttl;
14
+ constructor(_coinConfig: Readonly<CoinConfig>);
15
+ input(i: TransactionInput): this;
16
+ output(o: TransactionOutput): this;
17
+ ttl(t: number): this;
18
+ /**
19
+ * Initialize the transaction builder fields using the decoded transaction data
20
+ *
21
+ * @param {Transaction} tx the transaction data
22
+ */
23
+ initBuilder(tx: Transaction): void;
24
+ /** @inheritdoc */
25
+ protected fromImplementation(rawTransaction: string): Transaction;
26
+ /** @inheritdoc */
27
+ protected buildImplementation(): Promise<Transaction>;
28
+ /** @inheritdoc */
29
+ protected signImplementation(key: BaseKey): Transaction;
30
+ /** @inheritdoc */
31
+ protected get transaction(): Transaction;
32
+ /** @inheritdoc */
33
+ protected set transaction(transaction: Transaction);
34
+ /** @inheritdoc */
35
+ validateAddress(address: BaseAddress, addressFormat?: string): void;
36
+ /** @inheritdoc */
37
+ validateKey(key: BaseKey): void;
38
+ /** @inheritdoc */
39
+ validateRawTransaction(rawTransaction: any): void;
40
+ /** @inheritdoc */
41
+ validateTransaction(transaction: Transaction): void;
42
+ /** @inheritdoc */
43
+ validateValue(value: BigNumber): void;
44
+ /** @inheritDoc */
45
+ addSignature(publicKey: BasePublicKey, signature: Buffer): void;
46
+ }
47
+ //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,OAAO,EAEP,SAAS,IAAI,aAAa,EAG3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAKjF,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,IAAI,CAAK;gBAEL,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAqB7C,KAAK,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAKhC,MAAM,CAAC,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAKlC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAoBlC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAMjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IA4C3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAKvD,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAED,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQ/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,GAAG,GAAG,IAAI;IAQjD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAMnD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAOrC,kBAAkB;IAClB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAGhE"}
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.TransactionBuilder = void 0;
26
+ const sdk_core_1 = require("@bitgo/sdk-core");
27
+ const transaction_1 = require("./transaction");
28
+ const keyPair_1 = require("./keyPair");
29
+ const utils_1 = __importDefault(require("./utils"));
30
+ const CardanoWasm = __importStar(require("@emurgo/cardano-serialization-lib-nodejs"));
31
+ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
32
+ constructor(_coinConfig) {
33
+ super(_coinConfig);
34
+ this._signers = [];
35
+ this._transactionInputs = [];
36
+ this._transactionOutputs = [];
37
+ this._signatures = [];
38
+ this._ttl = 0;
39
+ this.transaction = new transaction_1.Transaction(_coinConfig);
40
+ const linearFee = CardanoWasm.LinearFee.new(CardanoWasm.BigNum.from_str('44'), CardanoWasm.BigNum.from_str('155381'));
41
+ const txBuilderCfg = CardanoWasm.TransactionBuilderConfigBuilder.new()
42
+ .fee_algo(linearFee)
43
+ .pool_deposit(CardanoWasm.BigNum.from_str('500000000'))
44
+ .key_deposit(CardanoWasm.BigNum.from_str('2000000'))
45
+ .max_value_size(4000)
46
+ .max_tx_size(8000)
47
+ .coins_per_utxo_word(CardanoWasm.BigNum.from_str('34482'))
48
+ .build();
49
+ this._txBuilder = CardanoWasm.TransactionBuilder.new(txBuilderCfg);
50
+ }
51
+ input(i) {
52
+ this._transactionInputs.push(i);
53
+ return this;
54
+ }
55
+ output(o) {
56
+ this._transactionOutputs.push(o);
57
+ return this;
58
+ }
59
+ ttl(t) {
60
+ this._ttl = t;
61
+ return this;
62
+ }
63
+ /**
64
+ * Initialize the transaction builder fields using the decoded transaction data
65
+ *
66
+ * @param {Transaction} tx the transaction data
67
+ */
68
+ initBuilder(tx) {
69
+ this._transaction = tx;
70
+ const txnBody = tx.transaction.body();
71
+ for (let i = 0; i < txnBody.inputs().len(); i++) {
72
+ const input = txnBody.inputs().get(i);
73
+ this.input({
74
+ transaction_id: Buffer.from(input.transaction_id().to_bytes()).toString('hex'),
75
+ transaction_index: input.index(),
76
+ });
77
+ }
78
+ for (let i = 0; i < txnBody.outputs().len(); i++) {
79
+ const output = txnBody.outputs().get(i);
80
+ this.output({
81
+ address: output.address().to_bech32(),
82
+ amount: output.amount().coin().to_str(),
83
+ });
84
+ }
85
+ this._ttl = tx.transaction.body().ttl();
86
+ }
87
+ /** @inheritdoc */
88
+ fromImplementation(rawTransaction) {
89
+ this.validateRawTransaction(rawTransaction);
90
+ this.buildImplementation();
91
+ return this.transaction;
92
+ }
93
+ /** @inheritdoc */
94
+ async buildImplementation() {
95
+ const inputs = CardanoWasm.TransactionInputs.new();
96
+ this._transactionInputs.forEach((input) => {
97
+ inputs.add(CardanoWasm.TransactionInput.new(CardanoWasm.TransactionHash.from_bytes(Buffer.from(input.transaction_id, 'hex')), input.transaction_index));
98
+ });
99
+ const outputs = CardanoWasm.TransactionOutputs.new();
100
+ this._transactionOutputs.forEach((output) => {
101
+ outputs.add(CardanoWasm.TransactionOutput.new(CardanoWasm.Address.from_bech32(output.address), CardanoWasm.Value.new(CardanoWasm.BigNum.from_str(output.amount))));
102
+ });
103
+ const txBody = CardanoWasm.TransactionBody.new_tx_body(inputs, outputs, CardanoWasm.BigNum.zero());
104
+ txBody.set_ttl(CardanoWasm.BigNum.from_str(this._ttl.toString()));
105
+ const txHash = CardanoWasm.hash_transaction(txBody);
106
+ const witnessSet = CardanoWasm.TransactionWitnessSet.new();
107
+ const vkeyWitnesses = CardanoWasm.Vkeywitnesses.new();
108
+ this._signers.forEach((keyPair) => {
109
+ const prv = keyPair.getKeys().prv;
110
+ const vkeyWitness = CardanoWasm.make_vkey_witness(txHash, CardanoWasm.PrivateKey.from_normal_bytes(Buffer.from(prv, 'hex')));
111
+ vkeyWitnesses.add(vkeyWitness);
112
+ });
113
+ this._signatures.forEach((signature) => {
114
+ const vkey = CardanoWasm.Vkey.new(CardanoWasm.PublicKey.from_bytes(Buffer.from(signature.publicKey.pub, 'hex')));
115
+ const ed255Sig = CardanoWasm.Ed25519Signature.from_bytes(signature.signature);
116
+ vkeyWitnesses.add(CardanoWasm.Vkeywitness.new(vkey, ed255Sig));
117
+ });
118
+ witnessSet.set_vkeys(vkeyWitnesses);
119
+ this.transaction.transaction = CardanoWasm.Transaction.new(txBody, witnessSet);
120
+ return this.transaction;
121
+ }
122
+ /** @inheritdoc */
123
+ signImplementation(key) {
124
+ this._signers.push(new keyPair_1.KeyPair({ prv: key.key }));
125
+ return this._transaction;
126
+ }
127
+ /** @inheritdoc */
128
+ get transaction() {
129
+ return this._transaction;
130
+ }
131
+ /** @inheritdoc */
132
+ set transaction(transaction) {
133
+ this._transaction = transaction;
134
+ }
135
+ /** @inheritdoc */
136
+ validateAddress(address, addressFormat) {
137
+ if (!utils_1.default.isValidAddress(address.address)) {
138
+ throw new sdk_core_1.UtilsError('invalid address ' + address.address);
139
+ }
140
+ }
141
+ /** @inheritdoc */
142
+ validateKey(key) {
143
+ try {
144
+ new keyPair_1.KeyPair({ prv: key.key });
145
+ }
146
+ catch {
147
+ throw new sdk_core_1.BuildTransactionError(`Key validation failed`);
148
+ }
149
+ }
150
+ /** @inheritdoc */
151
+ validateRawTransaction(rawTransaction) {
152
+ try {
153
+ CardanoWasm.Transaction.from_bytes(rawTransaction);
154
+ }
155
+ catch {
156
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction');
157
+ }
158
+ }
159
+ /** @inheritdoc */
160
+ validateTransaction(transaction) {
161
+ if (!transaction.transaction) {
162
+ return;
163
+ }
164
+ }
165
+ /** @inheritdoc */
166
+ validateValue(value) {
167
+ if (value.isLessThan(0)) {
168
+ throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
169
+ }
170
+ }
171
+ // endregion
172
+ /** @inheritDoc */
173
+ addSignature(publicKey, signature) {
174
+ this._signatures.push({ publicKey, signature });
175
+ }
176
+ }
177
+ exports.TransactionBuilder = TransactionBuilder;
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDhDQVF5QjtBQUN6QiwrQ0FBaUY7QUFDakYsdUNBQW9DO0FBQ3BDLG9EQUEyQjtBQUMzQixzRkFBd0U7QUFFeEUsTUFBc0Isa0JBQW1CLFNBQVEsaUNBQXNCO0lBU3JFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUmIsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQUN6Qix1QkFBa0IsR0FBdUIsRUFBRSxDQUFDO1FBQzVDLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFFOUMsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBQzlCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFJZixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVoRCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDekMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ2pDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUN0QyxDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLCtCQUErQixDQUFDLEdBQUcsRUFBRTthQUNuRSxRQUFRLENBQUMsU0FBUyxDQUFDO2FBQ25CLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0RCxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDbkQsY0FBYyxDQUFDLElBQUksQ0FBQzthQUNwQixXQUFXLENBQUMsSUFBSSxDQUFDO2FB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O1FBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFDRCxZQUFZO0lBRVosa0JBQWtCO0lBQ2xCLFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBdExELGdEQXNMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQge1xuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2lnbmF0dXJlLFxuICBVdGlsc0Vycm9yLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uSW5wdXQsIFRyYW5zYWN0aW9uT3V0cHV0IH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB1dGlsIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICogYXMgQ2FyZGFub1dhc20gZnJvbSAnQGVtdXJnby9jYXJkYW5vLXNlcmlhbGl6YXRpb24tbGliLW5vZGVqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb24hOiBUcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBfc2lnbmVyczogS2V5UGFpcltdID0gW107XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uSW5wdXRzOiBUcmFuc2FjdGlvbklucHV0W10gPSBbXTtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25PdXRwdXRzOiBUcmFuc2FjdGlvbk91dHB1dFtdID0gW107XG4gIHByaXZhdGUgX3R4QnVpbGRlcjogQ2FyZGFub1dhc20uVHJhbnNhY3Rpb25CdWlsZGVyO1xuICBwcml2YXRlIF9zaWduYXR1cmVzOiBTaWduYXR1cmVbXSA9IFtdO1xuICBwcml2YXRlIF90dGwgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcblxuICAgIGNvbnN0IGxpbmVhckZlZSA9IENhcmRhbm9XYXNtLkxpbmVhckZlZS5uZXcoXG4gICAgICBDYXJkYW5vV2FzbS5CaWdOdW0uZnJvbV9zdHIoJzQ0JyksXG4gICAgICBDYXJkYW5vV2FzbS5CaWdOdW0uZnJvbV9zdHIoJzE1NTM4MScpXG4gICAgKTtcblxuICAgIGNvbnN0IHR4QnVpbGRlckNmZyA9IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uQnVpbGRlckNvbmZpZ0J1aWxkZXIubmV3KClcbiAgICAgIC5mZWVfYWxnbyhsaW5lYXJGZWUpXG4gICAgICAucG9vbF9kZXBvc2l0KENhcmRhbm9XYXNtLkJpZ051bS5mcm9tX3N0cignNTAwMDAwMDAwJykpXG4gICAgICAua2V5X2RlcG9zaXQoQ2FyZGFub1dhc20uQmlnTnVtLmZyb21fc3RyKCcyMDAwMDAwJykpXG4gICAgICAubWF4X3ZhbHVlX3NpemUoNDAwMClcbiAgICAgIC5tYXhfdHhfc2l6ZSg4MDAwKVxuICAgICAgLmNvaW5zX3Blcl91dHhvX3dvcmQoQ2FyZGFub1dhc20uQmlnTnVtLmZyb21fc3RyKCczNDQ4MicpKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB0aGlzLl90eEJ1aWxkZXIgPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbkJ1aWxkZXIubmV3KHR4QnVpbGRlckNmZyk7XG4gIH1cblxuICBpbnB1dChpOiBUcmFuc2FjdGlvbklucHV0KTogdGhpcyB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb25JbnB1dHMucHVzaChpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG91dHB1dChvOiBUcmFuc2FjdGlvbk91dHB1dCk6IHRoaXMge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uT3V0cHV0cy5wdXNoKG8pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdHRsKHQ6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMuX3R0bCA9IHQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgICBjb25zdCB0eG5Cb2R5ID0gdHgudHJhbnNhY3Rpb24uYm9keSgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHhuQm9keS5pbnB1dHMoKS5sZW4oKTsgaSsrKSB7XG4gICAgICBjb25zdCBpbnB1dCA9IHR4bkJvZHkuaW5wdXRzKCkuZ2V0KGkpO1xuICAgICAgdGhpcy5pbnB1dCh7XG4gICAgICAgIHRyYW5zYWN0aW9uX2lkOiBCdWZmZXIuZnJvbShpbnB1dC50cmFuc2FjdGlvbl9pZCgpLnRvX2J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdHJhbnNhY3Rpb25faW5kZXg6IGlucHV0LmluZGV4KCksXG4gICAgICB9KTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eG5Cb2R5Lm91dHB1dHMoKS5sZW4oKTsgaSsrKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSB0eG5Cb2R5Lm91dHB1dHMoKS5nZXQoaSk7XG4gICAgICB0aGlzLm91dHB1dCh7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzKCkudG9fYmVjaDMyKCksXG4gICAgICAgIGFtb3VudDogb3V0cHV0LmFtb3VudCgpLmNvaW4oKS50b19zdHIoKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLl90dGwgPSB0eC50cmFuc2FjdGlvbi5ib2R5KCkudHRsKCkgYXMgbnVtYmVyO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpbnB1dHMgPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbklucHV0cy5uZXcoKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbklucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgaW5wdXRzLmFkZChcbiAgICAgICAgQ2FyZGFub1dhc20uVHJhbnNhY3Rpb25JbnB1dC5uZXcoXG4gICAgICAgICAgQ2FyZGFub1dhc20uVHJhbnNhY3Rpb25IYXNoLmZyb21fYnl0ZXMoQnVmZmVyLmZyb20oaW5wdXQudHJhbnNhY3Rpb25faWQsICdoZXgnKSksXG4gICAgICAgICAgaW5wdXQudHJhbnNhY3Rpb25faW5kZXhcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICBjb25zdCBvdXRwdXRzID0gQ2FyZGFub1dhc20uVHJhbnNhY3Rpb25PdXRwdXRzLm5ldygpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uT3V0cHV0cy5mb3JFYWNoKChvdXRwdXQpID0+IHtcbiAgICAgIG91dHB1dHMuYWRkKFxuICAgICAgICBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbk91dHB1dC5uZXcoXG4gICAgICAgICAgQ2FyZGFub1dhc20uQWRkcmVzcy5mcm9tX2JlY2gzMihvdXRwdXQuYWRkcmVzcyksXG4gICAgICAgICAgQ2FyZGFub1dhc20uVmFsdWUubmV3KENhcmRhbm9XYXNtLkJpZ051bS5mcm9tX3N0cihvdXRwdXQuYW1vdW50KSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICBjb25zdCB0eEJvZHkgPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbkJvZHkubmV3X3R4X2JvZHkoaW5wdXRzLCBvdXRwdXRzLCBDYXJkYW5vV2FzbS5CaWdOdW0uemVybygpKTtcbiAgICB0eEJvZHkuc2V0X3R0bChDYXJkYW5vV2FzbS5CaWdOdW0uZnJvbV9zdHIodGhpcy5fdHRsLnRvU3RyaW5nKCkpKTtcbiAgICBjb25zdCB0eEhhc2ggPSBDYXJkYW5vV2FzbS5oYXNoX3RyYW5zYWN0aW9uKHR4Qm9keSk7XG5cbiAgICBjb25zdCB3aXRuZXNzU2V0ID0gQ2FyZGFub1dhc20uVHJhbnNhY3Rpb25XaXRuZXNzU2V0Lm5ldygpO1xuICAgIGNvbnN0IHZrZXlXaXRuZXNzZXMgPSBDYXJkYW5vV2FzbS5Wa2V5d2l0bmVzc2VzLm5ldygpO1xuICAgIHRoaXMuX3NpZ25lcnMuZm9yRWFjaCgoa2V5UGFpcikgPT4ge1xuICAgICAgY29uc3QgcHJ2ID0ga2V5UGFpci5nZXRLZXlzKCkucHJ2IGFzIHN0cmluZztcbiAgICAgIGNvbnN0IHZrZXlXaXRuZXNzID0gQ2FyZGFub1dhc20ubWFrZV92a2V5X3dpdG5lc3MoXG4gICAgICAgIHR4SGFzaCxcbiAgICAgICAgQ2FyZGFub1dhc20uUHJpdmF0ZUtleS5mcm9tX25vcm1hbF9ieXRlcyhCdWZmZXIuZnJvbShwcnYsICdoZXgnKSlcbiAgICAgICk7XG4gICAgICB2a2V5V2l0bmVzc2VzLmFkZCh2a2V5V2l0bmVzcyk7XG4gICAgfSk7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5mb3JFYWNoKChzaWduYXR1cmUpID0+IHtcbiAgICAgIGNvbnN0IHZrZXkgPSBDYXJkYW5vV2FzbS5Wa2V5Lm5ldyhDYXJkYW5vV2FzbS5QdWJsaWNLZXkuZnJvbV9ieXRlcyhCdWZmZXIuZnJvbShzaWduYXR1cmUucHVibGljS2V5LnB1YiwgJ2hleCcpKSk7XG4gICAgICBjb25zdCBlZDI1NVNpZyA9IENhcmRhbm9XYXNtLkVkMjU1MTlTaWduYXR1cmUuZnJvbV9ieXRlcyhzaWduYXR1cmUuc2lnbmF0dXJlKTtcbiAgICAgIHZrZXlXaXRuZXNzZXMuYWRkKENhcmRhbm9XYXNtLlZrZXl3aXRuZXNzLm5ldyh2a2V5LCBlZDI1NVNpZykpO1xuICAgIH0pO1xuICAgIHdpdG5lc3NTZXQuc2V0X3ZrZXlzKHZrZXlXaXRuZXNzZXMpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb24gPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbi5uZXcodHhCb2R5LCB3aXRuZXNzU2V0KTtcblxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMuX3NpZ25lcnMucHVzaChuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KSk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlsLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKCdpbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEtleSB2YWxpZGF0aW9uIGZhaWxlZGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBhbnkpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgQ2FyZGFub1dhc20uVHJhbnNhY3Rpb24uZnJvbV9ieXRlcyhyYXdUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24udHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goeyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
3
+ import { TransferBuilder } from './transferBuilder';
4
+ import { WalletInitializationBuilder } from './walletInitializationBuilder';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ import { Transaction } from './transaction';
7
+ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ /** @inheritdoc */
10
+ from(raw: Uint8Array | string): TransactionBuilder;
11
+ /** @inheritdoc */
12
+ getWalletInitializationBuilder(tx?: Transaction): WalletInitializationBuilder;
13
+ /** @inheritdoc */
14
+ getTransferBuilder(tx?: Transaction): TransferBuilder;
15
+ /**
16
+ * Initialize the builder with the given transaction
17
+ *
18
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
19
+ * @param {TransactionBuilder} builder - the builder to be initialized
20
+ * @returns {TransactionBuilder} the builder initialized
21
+ */
22
+ private static initializeBuilder;
23
+ }
24
+ //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAA4C,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,kBAAkB;IAoBlD,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAI7E,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAMjC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionBuilderFactory = void 0;
4
+ const sdk_core_1 = require("@bitgo/sdk-core");
5
+ const transferBuilder_1 = require("./transferBuilder");
6
+ const walletInitializationBuilder_1 = require("./walletInitializationBuilder");
7
+ const transaction_1 = require("./transaction");
8
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
9
+ constructor(_coinConfig) {
10
+ super(_coinConfig);
11
+ }
12
+ /** @inheritdoc */
13
+ from(raw) {
14
+ if (raw instanceof Uint8Array) {
15
+ return this.from(Buffer.from(raw).toString('hex'));
16
+ }
17
+ try {
18
+ const tx = new transaction_1.Transaction(this._coinConfig);
19
+ tx.fromRawTransaction(raw);
20
+ switch (tx.type) {
21
+ case sdk_core_1.TransactionType.Send:
22
+ return this.getTransferBuilder(tx);
23
+ case sdk_core_1.TransactionType.WalletInitialization:
24
+ return this.getWalletInitializationBuilder(tx);
25
+ default:
26
+ throw new sdk_core_1.InvalidTransactionError('unsupported transaction');
27
+ }
28
+ }
29
+ catch (e) {
30
+ throw e;
31
+ }
32
+ }
33
+ /** @inheritdoc */
34
+ getWalletInitializationBuilder(tx) {
35
+ return TransactionBuilderFactory.initializeBuilder(tx, new walletInitializationBuilder_1.WalletInitializationBuilder(this._coinConfig));
36
+ }
37
+ /** @inheritdoc */
38
+ getTransferBuilder(tx) {
39
+ return TransactionBuilderFactory.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
40
+ }
41
+ /**
42
+ * Initialize the builder with the given transaction
43
+ *
44
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
45
+ * @param {TransactionBuilder} builder - the builder to be initialized
46
+ * @returns {TransactionBuilder} the builder initialized
47
+ */
48
+ static initializeBuilder(tx, builder) {
49
+ if (tx) {
50
+ builder.initBuilder(tx);
51
+ }
52
+ return builder;
53
+ }
54
+ }
55
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw4Q0FBMEc7QUFDMUcsdURBQW9EO0FBQ3BELCtFQUE0RTtBQUU1RSwrQ0FBNEM7QUFFNUMsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBd0I7UUFDM0IsSUFBSSxHQUFHLFlBQVksVUFBVSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsSUFBSTtZQUNGLE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0MsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtnQkFDZixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssMEJBQWUsQ0FBQyxvQkFBb0I7b0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRDtvQkFDRSxNQUFNLElBQUksa0NBQXVCLENBQUMseUJBQXlCLENBQUMsQ0FBQzthQUNoRTtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEIsQ0FBQyxFQUFnQjtRQUM3QyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHlEQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBZ0I7UUFDakMsT0FBTyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQUMsaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUNwRyxJQUFJLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFqREQsOERBaURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vd2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGlmIChyYXcgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tKEJ1ZmZlci5mcm9tKHJhdykudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcj4odHg6IFRyYW5zYWN0aW9uIHwgdW5kZWZpbmVkLCBidWlsZGVyOiBUKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { BaseKey } from '@bitgo/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ import { Transaction } from './transaction';
5
+ export declare class TransferBuilder extends TransactionBuilder {
6
+ constructor(_coinConfig: Readonly<CoinConfig>);
7
+ /** @inheritdoc */
8
+ protected buildImplementation(): Promise<Transaction>;
9
+ /** @inheritdoc */
10
+ protected fromImplementation(rawTransaction: any): Transaction;
11
+ /** @inheritdoc */
12
+ protected signImplementation(key: BaseKey): Transaction;
13
+ }
14
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAM3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,GAAG,GAAG,WAAW;IAI9D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAGxD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransferBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo/sdk-core");
5
+ const transactionBuilder_1 = require("./transactionBuilder");
6
+ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
7
+ constructor(_coinConfig) {
8
+ super(_coinConfig);
9
+ }
10
+ /** @inheritdoc */
11
+ async buildImplementation() {
12
+ const tx = await super.buildImplementation();
13
+ tx.setTransactionType(sdk_core_1.TransactionType.Send);
14
+ return tx;
15
+ }
16
+ /** @inheritdoc */
17
+ fromImplementation(rawTransaction) {
18
+ return super.fromImplementation(rawTransaction);
19
+ }
20
+ /** @inheritdoc */
21
+ signImplementation(key) {
22
+ return super.signImplementation(key);
23
+ }
24
+ }
25
+ exports.TransferBuilder = TransferBuilder;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQTJEO0FBRTNELDZEQUEwRDtBQUcxRCxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBQ3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0MsRUFBRSxDQUFDLGtCQUFrQixDQUFDLDBCQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBbUI7UUFDOUMsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBckJELDBDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VLZXksIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gICAgdHguc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogYW55KTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBzdXBlci5zaWduSW1wbGVtZW50YXRpb24oa2V5KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { BaseUtils } from '@bitgo/sdk-core';
2
+ export declare class Utils implements BaseUtils {
3
+ validateBlake2b(hash: string): boolean;
4
+ /** @inheritdoc */
5
+ isValidAddress(address: string): boolean;
6
+ /** @inheritdoc */
7
+ isValidBlockId(hash: string): boolean;
8
+ /** @inheritdoc */
9
+ isValidPrivateKey(key: string): boolean;
10
+ isValidKey(key: string): boolean;
11
+ /** @inheritdoc */
12
+ isValidPublicKey(pubKey: string): boolean;
13
+ /** @inheritdoc */
14
+ isValidSignature(signature: string): boolean;
15
+ /** @inheritdoc */
16
+ isValidTransactionId(txId: string): boolean;
17
+ }
18
+ declare const utils: Utils;
19
+ export default utils;
20
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,qBAAa,KAAM,YAAW,SAAS;IACrC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOtC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAShC,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IASzC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAS5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG5C;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Utils = void 0;
4
+ const cardano_serialization_lib_nodejs_1 = require("@emurgo/cardano-serialization-lib-nodejs");
5
+ const keyPair_1 = require("./keyPair");
6
+ class Utils {
7
+ validateBlake2b(hash) {
8
+ if (hash.length !== 64) {
9
+ return false;
10
+ }
11
+ return hash.match(/^[a-zA-Z0-9]+$/) !== null;
12
+ }
13
+ /** @inheritdoc */
14
+ isValidAddress(address) {
15
+ try {
16
+ cardano_serialization_lib_nodejs_1.Address.from_bech32(address);
17
+ return true;
18
+ }
19
+ catch (err) {
20
+ return false;
21
+ }
22
+ }
23
+ /** @inheritdoc */
24
+ isValidBlockId(hash) {
25
+ return this.validateBlake2b(hash);
26
+ }
27
+ /** @inheritdoc */
28
+ isValidPrivateKey(key) {
29
+ // this will return true for both extended and non-extended ED25519 keys
30
+ return this.isValidKey(key);
31
+ }
32
+ isValidKey(key) {
33
+ try {
34
+ new keyPair_1.KeyPair({ prv: key });
35
+ return true;
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ /** @inheritdoc */
42
+ isValidPublicKey(pubKey) {
43
+ try {
44
+ new keyPair_1.KeyPair({ pub: pubKey });
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ /** @inheritdoc */
52
+ isValidSignature(signature) {
53
+ try {
54
+ cardano_serialization_lib_nodejs_1.Ed25519Signature.from_hex(signature);
55
+ return true;
56
+ }
57
+ catch (err) {
58
+ return false;
59
+ }
60
+ }
61
+ /** @inheritdoc */
62
+ isValidTransactionId(txId) {
63
+ return this.validateBlake2b(txId);
64
+ }
65
+ }
66
+ exports.Utils = Utils;
67
+ const utils = new Utils();
68
+ exports.default = utils;
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtGQUFxRjtBQUNyRix1Q0FBb0M7QUFFcEMsTUFBYSxLQUFLO0lBQ2hCLGVBQWUsQ0FBQyxJQUFZO1FBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLElBQUk7WUFDRiwwQ0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixjQUFjLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLHdFQUF3RTtRQUN4RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUk7WUFDRixJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQUMsTUFBTTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLE1BQWM7UUFDN0IsSUFBSTtZQUNGLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxNQUFNO1lBQ04sT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsSUFBSTtZQUNGLG1EQUFnQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUE5REQsc0JBOERDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVXRpbHMgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgRWQyNTUxOVNpZ25hdHVyZSwgQWRkcmVzcyB9IGZyb20gJ0BlbXVyZ28vY2FyZGFuby1zZXJpYWxpemF0aW9uLWxpYi1ub2RlanMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIHZhbGlkYXRlQmxha2UyYihoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoaGFzaC5sZW5ndGggIT09IDY0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBoYXNoLm1hdGNoKC9eW2EtekEtWjAtOV0rJC8pICE9PSBudWxsO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBBZGRyZXNzLmZyb21fYmVjaDMyKGFkZHJlc3MpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQmxha2UyYihoYXNoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8vIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBmb3IgYm90aCBleHRlbmRlZCBhbmQgbm9uLWV4dGVuZGVkIEVEMjU1MTkga2V5c1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRLZXkoa2V5KTtcbiAgfVxuXG4gIGlzVmFsaWRLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KHB1YktleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBLZXlQYWlyKHsgcHViOiBwdWJLZXkgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBFZDI1NTE5U2lnbmF0dXJlLmZyb21faGV4KHNpZ25hdHVyZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVCbGFrZTJiKHR4SWQpO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
@@ -0,0 +1,14 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { BaseKey } from '@bitgo/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class WalletInitializationBuilder extends TransactionBuilder {
6
+ constructor(_coinConfig: Readonly<CoinConfig>);
7
+ /** @inheritdoc */
8
+ protected buildImplementation(): Promise<Transaction>;
9
+ /** @inheritdoc */
10
+ protected fromImplementation(rawTransaction: any): Transaction;
11
+ /** @inheritdoc */
12
+ protected signImplementation(key: BaseKey): Transaction;
13
+ }
14
+ //# sourceMappingURL=walletInitializationBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/walletInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAuB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,2BAA4B,SAAQ,kBAAkB;gBACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAI3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,GAAG,GAAG,WAAW;IAI9D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAGxD"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletInitializationBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo/sdk-core");
5
+ const transactionBuilder_1 = require("./transactionBuilder");
6
+ class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
7
+ constructor(_coinConfig) {
8
+ super(_coinConfig);
9
+ }
10
+ /** @inheritdoc */
11
+ async buildImplementation() {
12
+ throw new sdk_core_1.NotImplementedError('method not implemented');
13
+ }
14
+ /** @inheritdoc */
15
+ fromImplementation(rawTransaction) {
16
+ throw new sdk_core_1.NotImplementedError('method not implemented');
17
+ }
18
+ /** @inheritdoc */
19
+ signImplementation(key) {
20
+ throw new sdk_core_1.NotImplementedError('method not implemented');
21
+ }
22
+ }
23
+ exports.WalletInitializationBuilder = WalletInitializationBuilder;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOENBQStEO0FBRS9ELDZEQUEwRDtBQUUxRCxNQUFhLDJCQUE0QixTQUFRLHVDQUFrQjtJQUNqRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxNQUFNLElBQUksOEJBQW1CLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBbUI7UUFDOUMsTUFBTSxJQUFJLDhCQUFtQixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsTUFBTSxJQUFJLDhCQUFtQixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBbkJELGtFQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdtZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogYW55KTogVHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdtZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ21ldGhvZCBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/sdk-coin-ada",
3
- "version": "1.1.1",
3
+ "version": "1.2.0-rc.0",
4
4
  "description": "BitGo SDK coin library for Ada",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -41,14 +41,15 @@
41
41
  ]
42
42
  },
43
43
  "dependencies": {
44
- "@bitgo/sdk-core": "^1.1.1",
45
- "@bitgo/statics": "^7.1.0",
44
+ "@bitgo/sdk-core": "^1.2.0-rc.2",
45
+ "@bitgo/statics": "^8.0.0-rc.1",
46
46
  "@emurgo/cardano-serialization-lib-browser": "^10.2.0",
47
47
  "@emurgo/cardano-serialization-lib-nodejs": "^10.2.0",
48
48
  "bignumber.js": "^9.0.2"
49
49
  },
50
50
  "devDependencies": {
51
- "@bitgo/sdk-api": "^1.1.1"
51
+ "@bitgo/sdk-api": "^1.1.2-rc.2",
52
+ "@bitgo/sdk-test": "^1.0.3-rc.2"
52
53
  },
53
- "gitHead": "876591201b3a0ac5da8fc87e8dd29abc456ca424"
54
+ "gitHead": "c87c30518098b3bd892afb774b1d1530b2847757"
54
55
  }