@bitgo/sdk-coin-avaxp 2.1.0 → 2.2.0-hotfix.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +78 -132
  2. package/dist/src/avaxp.d.ts +6 -5
  3. package/dist/src/avaxp.d.ts.map +1 -1
  4. package/dist/src/avaxp.js +53 -29
  5. package/dist/src/constants.d.ts +10 -0
  6. package/dist/src/constants.d.ts.map +1 -0
  7. package/dist/src/constants.js +12 -0
  8. package/dist/src/delegatorTxBuilder.d.ts +100 -0
  9. package/dist/src/delegatorTxBuilder.d.ts.map +1 -0
  10. package/dist/src/delegatorTxBuilder.js +217 -0
  11. package/dist/src/errors.d.ts +8 -0
  12. package/dist/src/errors.d.ts.map +1 -0
  13. package/dist/src/errors.js +19 -0
  14. package/dist/src/iface.d.ts +19 -1
  15. package/dist/src/iface.d.ts.map +1 -1
  16. package/dist/src/iface.js +1 -1
  17. package/dist/src/keyPair.d.ts +39 -0
  18. package/dist/src/keyPair.d.ts.map +1 -0
  19. package/dist/src/keyPair.js +127 -0
  20. package/dist/src/lib/delegatorTxBuilder.d.ts +1 -9
  21. package/dist/src/lib/delegatorTxBuilder.d.ts.map +1 -1
  22. package/dist/src/lib/delegatorTxBuilder.js +11 -18
  23. package/dist/src/lib/iface.d.ts +6 -1
  24. package/dist/src/lib/iface.d.ts.map +1 -1
  25. package/dist/src/lib/iface.js +1 -1
  26. package/dist/src/lib/transaction.d.ts +5 -2
  27. package/dist/src/lib/transaction.d.ts.map +1 -1
  28. package/dist/src/lib/transaction.js +57 -19
  29. package/dist/src/lib/transactionBuilder.d.ts +1 -5
  30. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  31. package/dist/src/lib/transactionBuilder.js +10 -7
  32. package/dist/src/lib/utils.d.ts.map +1 -1
  33. package/dist/src/lib/utils.js +3 -6
  34. package/dist/src/transaction.d.ts +66 -0
  35. package/dist/src/transaction.d.ts.map +1 -0
  36. package/dist/src/transaction.js +160 -0
  37. package/dist/src/transactionBuilder.d.ts +83 -0
  38. package/dist/src/transactionBuilder.d.ts.map +1 -0
  39. package/dist/src/transactionBuilder.js +192 -0
  40. package/dist/src/transactionBuilderFactory.d.ts +22 -0
  41. package/dist/src/transactionBuilderFactory.d.ts.map +1 -0
  42. package/dist/src/transactionBuilderFactory.js +49 -0
  43. package/dist/src/transferBuilder.d.ts +18 -0
  44. package/dist/src/transferBuilder.d.ts.map +1 -0
  45. package/dist/src/transferBuilder.js +31 -0
  46. package/dist/src/utils.d.ts +56 -0
  47. package/dist/src/utils.d.ts.map +1 -0
  48. package/dist/src/utils.js +118 -0
  49. package/dist/src/validatorTxBuilder.d.ts +38 -0
  50. package/dist/src/validatorTxBuilder.d.ts.map +1 -0
  51. package/dist/src/validatorTxBuilder.js +64 -0
  52. package/dist/src/walletInitializationBuilder.d.ts +17 -0
  53. package/dist/src/walletInitializationBuilder.d.ts.map +1 -0
  54. package/dist/src/walletInitializationBuilder.js +31 -0
  55. package/dist/tsconfig.tsbuildinfo +2108 -808
  56. package/package.json +8 -9
@@ -0,0 +1,160 @@
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.Transaction = void 0;
26
+ const sdk_core_1 = require("@bitgo/sdk-core");
27
+ const keyPair_1 = require("./keyPair");
28
+ const platformvm_1 = require("avalanche/dist/apis/platformvm");
29
+ const avalanche_1 = require("avalanche");
30
+ const utils_1 = __importDefault(require("./utils"));
31
+ const createHash = __importStar(require("create-hash"));
32
+ const common_1 = require("avalanche/dist/common");
33
+ class Transaction extends sdk_core_1.BaseTransaction {
34
+ constructor(coinConfig) {
35
+ super(coinConfig);
36
+ this._credentials = [];
37
+ this._threshold = 2;
38
+ this._locktime = new avalanche_1.BN(0);
39
+ this._fromPubKeys = [];
40
+ this._utxos = [];
41
+ this._network = coinConfig.network;
42
+ this._assetId = utils_1.default.cb58Decode(this._network.avaxAssetID);
43
+ this._blockchainID = utils_1.default.cb58Decode(this._network.blockchainID);
44
+ this._networkID = this._network.networkID;
45
+ this._txFee = new avalanche_1.BN(this._network.txFee.toString());
46
+ }
47
+ get avaxPTransaction() {
48
+ return this._avaxpTransaction.getTransaction();
49
+ }
50
+ set avaxPTransaction(tx) {
51
+ this._avaxpTransaction = new platformvm_1.UnsignedTx(tx);
52
+ }
53
+ set credentials(credentials) {
54
+ this._credentials = credentials;
55
+ }
56
+ get credentials() {
57
+ return this._credentials;
58
+ }
59
+ get hasCredentials() {
60
+ return this._credentials !== undefined && this._credentials.length > 0;
61
+ }
62
+ /** @inheritdoc */
63
+ canSign({ key }) {
64
+ try {
65
+ const kp = new keyPair_1.KeyPair({ prv: key });
66
+ const privateKey = kp.getPrivateKey();
67
+ if (!privateKey)
68
+ return false;
69
+ const address = utils_1.default.parseAddress(kp.getAddress(this._network.hrp));
70
+ return this._fromPubKeys.find((a) => address.equals(a)) !== undefined;
71
+ }
72
+ catch {
73
+ return false;
74
+ }
75
+ }
76
+ /**
77
+ * Sign a avaxp transaction and update the transaction hex
78
+ * validator, delegator, import, exports extend baseTx
79
+ * unsignedTx: UnsignedTx = new UnsignedTx(baseTx) (baseTx = addValidatorTx)
80
+ * const tx: Tx = unsignedTx.sign(keychain) (tx is type standard signed tx)
81
+ * get baseTx then create new unsignedTx then sign
82
+ *
83
+ * @param {KeyPair} keyPair
84
+ */
85
+ sign(keyPair) {
86
+ const prv = keyPair.getPrivateKey();
87
+ if (!prv) {
88
+ throw new sdk_core_1.SigningError('Missing private key');
89
+ }
90
+ if (!this.avaxPTransaction) {
91
+ throw new sdk_core_1.InvalidTransactionError('empty transaction to sign');
92
+ }
93
+ if (!this.hasCredentials) {
94
+ throw new sdk_core_1.InvalidTransactionError('empty credentials to sign');
95
+ }
96
+ const signature = this.createSignature(prv);
97
+ this._credentials.forEach((credential) => credential.addSignature(signature));
98
+ }
99
+ /** @inheritdoc */
100
+ /**
101
+ * should be of signedTx doing this with baseTx
102
+ */
103
+ toBroadcastFormat() {
104
+ if (!this.avaxPTransaction) {
105
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
106
+ }
107
+ const buffer = this.hasCredentials
108
+ ? new platformvm_1.Tx(this._avaxpTransaction, this._credentials).toBuffer()
109
+ : this._avaxpTransaction.toBuffer();
110
+ const txSerialized = utils_1.default.cb58Encode(buffer).toString();
111
+ return txSerialized;
112
+ }
113
+ // types - stakingTransaction, import, export
114
+ toJson() {
115
+ if (!this.avaxPTransaction) {
116
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
117
+ }
118
+ return {
119
+ blockchain_id: utils_1.default.cb58Encode(this.avaxPTransaction.getBlockchainID()),
120
+ network_id: this.avaxPTransaction.getNetworkID(),
121
+ inputs: this.avaxPTransaction.getIns(),
122
+ outputs: this.avaxPTransaction.getOuts(),
123
+ memo: utils_1.default.bufferToString(this.avaxPTransaction.getMemo()),
124
+ typeID: this.avaxPTransaction.getTxType(),
125
+ };
126
+ }
127
+ setTransaction(tx) {
128
+ this._avaxpTransaction = tx;
129
+ }
130
+ /**
131
+ * Set the transaction type
132
+ *
133
+ * @param {TransactionType} transactionType The transaction type to be set
134
+ */
135
+ setTransactionType(transactionType) {
136
+ this._type = transactionType;
137
+ }
138
+ /**
139
+ * Returns the portion of the transaction that needs to be signed in Buffer format.
140
+ * Only needed for coins that support adding signatures directly (e.g. TSS).
141
+ */
142
+ get signablePayload() {
143
+ const txbuff = this._avaxpTransaction.toBuffer();
144
+ return createHash.default('sha256').update(txbuff).digest();
145
+ }
146
+ /**
147
+ * Avax wrapper to create signature and return it for credentials
148
+ * @param prv
149
+ */
150
+ createSignature(prv) {
151
+ const ky = new platformvm_1.KeyPair(this._network.hrp, this._network.networkID.toString());
152
+ ky.importKey(avalanche_1.Buffer.from(prv));
153
+ const signval = ky.sign(avalanche_1.Buffer.from(this.signablePayload));
154
+ const sig = new common_1.Signature();
155
+ sig.fromBuffer(signval);
156
+ return sig;
157
+ }
158
+ }
159
+ exports.Transaction = Transaction;
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDhDQUFtSDtBQUNuSCx1Q0FBb0M7QUFFcEMsK0RBQWdHO0FBQ2hHLHlDQUFxRDtBQUNyRCxvREFBNEI7QUFDNUIsd0RBQTBDO0FBQzFDLGtEQUE4RDtBQUU5RCxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQWU5QyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQWRaLGlCQUFZLEdBQWlCLEVBQUUsQ0FBQztRQU9qQyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsY0FBUyxHQUFPLElBQUksY0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUNoQyxXQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUtuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUEyQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGNBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqRCxDQUFD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LENBQUMsa0JBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sR0FBRyxHQUFHLElBQUksa0JBQVMsRUFBRSxDQUFDO1FBQzVCLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFqSkQsa0NBaUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgQXZhbGFuY2hlTmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VLZXksIFNpZ25pbmdFcnJvciwgQmFzZVRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblR5cGUsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgRGVjb2RlZFV0eG9PYmosIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVW5zaWduZWRUeCwgQmFzZVR4LCBLZXlQYWlyIGFzIEtleVBhaXJBdmF4LCBUeCB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2FwaXMvcGxhdGZvcm12bSc7XG5pbXBvcnQgeyBCTiwgQnVmZmVyIGFzIEJ1ZmZlckF2YXggfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICogYXMgY3JlYXRlSGFzaCBmcm9tICdjcmVhdGUtaGFzaCc7XG5pbXBvcnQgeyBDcmVkZW50aWFsLCBTaWduYXR1cmUgfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcm90ZWN0ZWQgX2F2YXhwVHJhbnNhY3Rpb246IFVuc2lnbmVkVHg7XG4gIHByaXZhdGUgX2NyZWRlbnRpYWxzOiBDcmVkZW50aWFsW10gPSBbXTtcbiAgcHVibGljIF90eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIHB1YmxpYyBfbmV0d29yazogQXZhbGFuY2hlTmV0d29yaztcbiAgcHVibGljIF9uZXR3b3JrSUQ6IG51bWJlcjtcbiAgcHVibGljIF9hc3NldElkOiBCdWZmZXJBdmF4O1xuICBwdWJsaWMgX2Jsb2NrY2hhaW5JRDogQnVmZmVyQXZheDtcbiAgcHVibGljIF9tZW1vPzogQnVmZmVyQXZheDtcbiAgcHVibGljIF90aHJlc2hvbGQgPSAyO1xuICBwdWJsaWMgX2xvY2t0aW1lOiBCTiA9IG5ldyBCTigwKTtcbiAgcHVibGljIF9mcm9tUHViS2V5czogQnVmZmVyQXZheFtdID0gW107XG4gIHB1YmxpYyBfdXR4b3M6IERlY29kZWRVdHhvT2JqW10gPSBbXTtcbiAgcHVibGljIF90eEZlZTogQk47XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLl9uZXR3b3JrID0gY29pbkNvbmZpZy5uZXR3b3JrIGFzIEF2YWxhbmNoZU5ldHdvcms7XG4gICAgdGhpcy5fYXNzZXRJZCA9IHV0aWxzLmNiNThEZWNvZGUodGhpcy5fbmV0d29yay5hdmF4QXNzZXRJRCk7XG4gICAgdGhpcy5fYmxvY2tjaGFpbklEID0gdXRpbHMuY2I1OERlY29kZSh0aGlzLl9uZXR3b3JrLmJsb2NrY2hhaW5JRCk7XG4gICAgdGhpcy5fbmV0d29ya0lEID0gdGhpcy5fbmV0d29yay5uZXR3b3JrSUQ7XG4gICAgdGhpcy5fdHhGZWUgPSBuZXcgQk4odGhpcy5fbmV0d29yay50eEZlZS50b1N0cmluZygpKTtcbiAgfVxuXG4gIGdldCBhdmF4UFRyYW5zYWN0aW9uKCk6IEJhc2VUeCB7XG4gICAgcmV0dXJuIHRoaXMuX2F2YXhwVHJhbnNhY3Rpb24uZ2V0VHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIHNldCBhdmF4UFRyYW5zYWN0aW9uKHR4OiBCYXNlVHgpIHtcbiAgICB0aGlzLl9hdmF4cFRyYW5zYWN0aW9uID0gbmV3IFVuc2lnbmVkVHgodHgpO1xuICB9XG5cbiAgc2V0IGNyZWRlbnRpYWxzKGNyZWRlbnRpYWxzOiBDcmVkZW50aWFsW10pIHtcbiAgICB0aGlzLl9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICB9XG5cbiAgZ2V0IGNyZWRlbnRpYWxzKCk6IENyZWRlbnRpYWxbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NyZWRlbnRpYWxzO1xuICB9XG5cbiAgZ2V0IGhhc0NyZWRlbnRpYWxzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jcmVkZW50aWFscyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX2NyZWRlbnRpYWxzLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbih7IGtleSB9OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGtwID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSBrcC5nZXRQcml2YXRlS2V5KCk7XG4gICAgICBpZiAoIXByaXZhdGVLZXkpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IGFkZHJlc3MgPSB1dGlscy5wYXJzZUFkZHJlc3Moa3AuZ2V0QWRkcmVzcyh0aGlzLl9uZXR3b3JrLmhycCkpO1xuICAgICAgcmV0dXJuIHRoaXMuX2Zyb21QdWJLZXlzLmZpbmQoKGEpID0+IGFkZHJlc3MuZXF1YWxzKGEpKSAhPT0gdW5kZWZpbmVkO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgYXZheHAgdHJhbnNhY3Rpb24gYW5kIHVwZGF0ZSB0aGUgdHJhbnNhY3Rpb24gaGV4XG4gICAqIHZhbGlkYXRvciwgZGVsZWdhdG9yLCBpbXBvcnQsIGV4cG9ydHMgZXh0ZW5kIGJhc2VUeFxuICAgKiB1bnNpZ25lZFR4OiBVbnNpZ25lZFR4ID0gbmV3IFVuc2lnbmVkVHgoYmFzZVR4KSAgKGJhc2VUeCA9IGFkZFZhbGlkYXRvclR4KVxuICAgKiBjb25zdCB0eDogVHggPSB1bnNpZ25lZFR4LnNpZ24oa2V5Y2hhaW4pICh0eCBpcyB0eXBlIHN0YW5kYXJkIHNpZ25lZCB0eClcbiAgICogZ2V0IGJhc2VUeCB0aGVuIGNyZWF0ZSBuZXcgdW5zaWduZWRUeCB0aGVuIHNpZ25cbiAgICpcbiAgICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyXG4gICAqL1xuICBzaWduKGtleVBhaXI6IEtleVBhaXIpOiB2b2lkIHtcbiAgICBjb25zdCBwcnYgPSBrZXlQYWlyLmdldFByaXZhdGVLZXkoKTtcbiAgICBpZiAoIXBydikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYXZheFBUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbiB0byBzaWduJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5oYXNDcmVkZW50aWFscykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSBjcmVkZW50aWFscyB0byBzaWduJyk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25hdHVyZSA9IHRoaXMuY3JlYXRlU2lnbmF0dXJlKHBydik7XG4gICAgdGhpcy5fY3JlZGVudGlhbHMuZm9yRWFjaCgoY3JlZGVudGlhbCkgPT4gY3JlZGVudGlhbC5hZGRTaWduYXR1cmUoc2lnbmF0dXJlKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgLyoqXG4gICAqIHNob3VsZCBiZSBvZiBzaWduZWRUeCBkb2luZyB0aGlzIHdpdGggYmFzZVR4XG4gICAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5hdmF4UFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgY29uc3QgYnVmZmVyID0gdGhpcy5oYXNDcmVkZW50aWFsc1xuICAgICAgPyBuZXcgVHgodGhpcy5fYXZheHBUcmFuc2FjdGlvbiwgdGhpcy5fY3JlZGVudGlhbHMpLnRvQnVmZmVyKClcbiAgICAgIDogdGhpcy5fYXZheHBUcmFuc2FjdGlvbi50b0J1ZmZlcigpO1xuICAgIGNvbnN0IHR4U2VyaWFsaXplZCA9IHV0aWxzLmNiNThFbmNvZGUoYnVmZmVyKS50b1N0cmluZygpO1xuICAgIHJldHVybiB0eFNlcmlhbGl6ZWQ7XG4gIH1cblxuICAvLyB0eXBlcyAtIHN0YWtpbmdUcmFuc2FjdGlvbiwgaW1wb3J0LCBleHBvcnRcbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLmF2YXhQVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2tjaGFpbl9pZDogdXRpbHMuY2I1OEVuY29kZSh0aGlzLmF2YXhQVHJhbnNhY3Rpb24uZ2V0QmxvY2tjaGFpbklEKCkpLFxuICAgICAgbmV0d29ya19pZDogdGhpcy5hdmF4UFRyYW5zYWN0aW9uLmdldE5ldHdvcmtJRCgpLFxuICAgICAgaW5wdXRzOiB0aGlzLmF2YXhQVHJhbnNhY3Rpb24uZ2V0SW5zKCksXG4gICAgICBvdXRwdXRzOiB0aGlzLmF2YXhQVHJhbnNhY3Rpb24uZ2V0T3V0cygpLFxuICAgICAgbWVtbzogdXRpbHMuYnVmZmVyVG9TdHJpbmcodGhpcy5hdmF4UFRyYW5zYWN0aW9uLmdldE1lbW8oKSksXG4gICAgICB0eXBlSUQ6IHRoaXMuYXZheFBUcmFuc2FjdGlvbi5nZXRUeFR5cGUoKSxcbiAgICB9O1xuICB9XG5cbiAgc2V0VHJhbnNhY3Rpb24odHg6IFVuc2lnbmVkVHgpOiB2b2lkIHtcbiAgICB0aGlzLl9hdmF4cFRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0XG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHBvcnRpb24gb2YgdGhlIHRyYW5zYWN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgc2lnbmVkIGluIEJ1ZmZlciBmb3JtYXQuXG4gICAqIE9ubHkgbmVlZGVkIGZvciBjb2lucyB0aGF0IHN1cHBvcnQgYWRkaW5nIHNpZ25hdHVyZXMgZGlyZWN0bHkgKGUuZy4gVFNTKS5cbiAgICovXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBjb25zdCB0eGJ1ZmYgPSB0aGlzLl9hdmF4cFRyYW5zYWN0aW9uLnRvQnVmZmVyKCk7XG4gICAgcmV0dXJuIGNyZWF0ZUhhc2guZGVmYXVsdCgnc2hhMjU2JykudXBkYXRlKHR4YnVmZikuZGlnZXN0KCk7XG4gIH1cblxuICAvKipcbiAgICogQXZheCB3cmFwcGVyIHRvIGNyZWF0ZSBzaWduYXR1cmUgYW5kIHJldHVybiBpdCBmb3IgY3JlZGVudGlhbHNcbiAgICogQHBhcmFtIHBydlxuICAgKi9cbiAgY3JlYXRlU2lnbmF0dXJlKHBydjogQnVmZmVyKTogU2lnbmF0dXJlIHtcbiAgICBjb25zdCBreSA9IG5ldyBLZXlQYWlyQXZheCh0aGlzLl9uZXR3b3JrLmhycCwgdGhpcy5fbmV0d29yay5uZXR3b3JrSUQudG9TdHJpbmcoKSk7XG4gICAga3kuaW1wb3J0S2V5KEJ1ZmZlckF2YXguZnJvbShwcnYpKTtcbiAgICBjb25zdCBzaWdudmFsID0ga3kuc2lnbihCdWZmZXJBdmF4LmZyb20odGhpcy5zaWduYWJsZVBheWxvYWQpKTtcbiAgICBjb25zdCBzaWcgPSBuZXcgU2lnbmF0dXJlKCk7XG4gICAgc2lnLmZyb21CdWZmZXIoc2lnbnZhbCk7XG4gICAgcmV0dXJuIHNpZztcbiAgfVxufVxuIl19
@@ -0,0 +1,83 @@
1
+ /// <reference types="bn.js" />
2
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
+ import BigNumber from 'bignumber.js';
4
+ import { BaseAddress, BaseKey, BaseTransactionBuilder, TransactionType, BaseTransaction } from '@bitgo/sdk-core';
5
+ import { Transaction } from './transaction';
6
+ import { KeyPair } from './keyPair';
7
+ import { BN } from 'avalanche';
8
+ import { BaseTx } from 'avalanche/dist/apis/platformvm/basetx';
9
+ import { Credential } from 'avalanche/dist/common';
10
+ import { DecodedUtxoObj } from './iface';
11
+ export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
12
+ private _transaction;
13
+ _signer: KeyPair[];
14
+ protected recoverSigner: boolean;
15
+ /**
16
+ * When using recovery key must be set here
17
+ * TODO: STLX-17317 recovery key signing
18
+ * @param recoverSigner
19
+ */
20
+ recoverMode(recoverSigner?: boolean): this;
21
+ constructor(_coinConfig: Readonly<CoinConfig>);
22
+ /**
23
+ * commented out check until multisig signing is in effect
24
+ * TODO: STLX-17077
25
+ * @param value
26
+ */
27
+ threshold(value: number): this;
28
+ locktime(value: string | number): this;
29
+ fromPubKey(senderPubKey: string | string[]): this;
30
+ utxos(value: DecodedUtxoObj[]): this;
31
+ /**
32
+ *
33
+ * @param value Optional Buffer for the memo
34
+ * @returns value Buffer for the memo
35
+ * set using Buffer.from("message")
36
+ */
37
+ memo(value: string): this;
38
+ /**
39
+ * Initialize the transaction builder fields using the decoded transaction data
40
+ *
41
+ * @param {Transaction} tx the transaction data
42
+ */
43
+ initBuilder(tx?: BaseTx): this;
44
+ credentials(credentials: Credential[]): this;
45
+ /** @inheritdoc */
46
+ protected fromImplementation(rawTransaction: string): Transaction;
47
+ get hasSigner(): boolean;
48
+ /** @inheritdoc */
49
+ protected buildImplementation(): Promise<Transaction>;
50
+ /**
51
+ * Builds the avaxp transaction
52
+ * @return {Transaction} avaxp sdk transaction
53
+ */
54
+ protected abstract buildAvaxpTransaction(): BaseTx;
55
+ /** @inheritdoc */
56
+ protected get transaction(): Transaction;
57
+ protected set transaction(transaction: Transaction);
58
+ protected signImplementation({ key }: BaseKey): BaseTransaction;
59
+ protected abstract get transactionType(): TransactionType;
60
+ /**
61
+ * Validates the threshold
62
+ * @param threshold
63
+ */
64
+ validateThreshold(threshold: number): void;
65
+ /**
66
+ * Validates locktime
67
+ * @param locktime
68
+ */
69
+ validateLocktime(locktime: BN): void;
70
+ /** @inheritdoc */
71
+ validateAddress(address: BaseAddress, addressFormat?: string): void;
72
+ /** @inheritdoc */
73
+ validateKey({ key }: BaseKey): void;
74
+ /** @inheritdoc */
75
+ validateRawTransaction(rawTransaction: string): void;
76
+ /** @inheritdoc */
77
+ validateTransaction(transaction?: Transaction): void;
78
+ /** @inheritdoc */
79
+ validateValue(value: BigNumber): void;
80
+ validateUtxos(values: DecodedUtxoObj[]): void;
81
+ validateUtxo(value: DecodedUtxoObj): void;
82
+ }
83
+ //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../src/transactionBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAEL,WAAW,EACX,OAAO,EACP,sBAAsB,EACtB,eAAe,EAKf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,OAAO,CAAC,YAAY,CAAc;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAM;IAC/B,SAAS,CAAC,aAAa,UAAS;IAEhC;;;;OAIG;IACI,WAAW,CAAC,aAAa,UAAO,GAAG,IAAI;gBAKlC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IAEH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMtC,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAMjD,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAKpC;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAqB9B,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAK5C,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAIjE,IAAI,SAAS,IAAI,OAAO,CAEvB;IACD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAgB3D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,MAAM;IAGlD,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IACD,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAED,SAAS,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,eAAe;IAK/D,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAM1D;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM1C;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI;IAMpC,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,kBAAkB;IAClB,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI;IAMnC,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAWpD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;IAIpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMrC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAO7C,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;CAO1C"}
@@ -0,0 +1,192 @@
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.TransactionBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo/sdk-core");
8
+ const transaction_1 = require("./transaction");
9
+ const keyPair_1 = require("./keyPair");
10
+ const avalanche_1 = require("avalanche");
11
+ const utils_1 = __importDefault(require("./utils"));
12
+ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this._signer = [];
16
+ this.recoverSigner = false;
17
+ this._transaction = new transaction_1.Transaction(_coinConfig);
18
+ }
19
+ /**
20
+ * When using recovery key must be set here
21
+ * TODO: STLX-17317 recovery key signing
22
+ * @param recoverSigner
23
+ */
24
+ recoverMode(recoverSigner = true) {
25
+ this.recoverSigner = recoverSigner;
26
+ return this;
27
+ }
28
+ /**
29
+ * commented out check until multisig signing is in effect
30
+ * TODO: STLX-17077
31
+ * @param value
32
+ */
33
+ threshold(value) {
34
+ // this.validateThreshold(value);
35
+ this._transaction._threshold = value;
36
+ return this;
37
+ }
38
+ locktime(value) {
39
+ this.validateLocktime(new avalanche_1.BN(value));
40
+ this._transaction._locktime = new avalanche_1.BN(value);
41
+ return this;
42
+ }
43
+ fromPubKey(senderPubKey) {
44
+ const pubKeys = senderPubKey instanceof Array ? senderPubKey : [senderPubKey];
45
+ this._transaction._fromPubKeys = pubKeys.map(utils_1.default.parseAddress);
46
+ return this;
47
+ }
48
+ utxos(value) {
49
+ this.validateUtxos(value);
50
+ this._transaction._utxos = value;
51
+ return this;
52
+ }
53
+ /**
54
+ *
55
+ * @param value Optional Buffer for the memo
56
+ * @returns value Buffer for the memo
57
+ * set using Buffer.from("message")
58
+ */
59
+ memo(value) {
60
+ this._transaction._memo = utils_1.default.stringToBuffer(value);
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
+ if (!tx)
70
+ return this;
71
+ if (tx.getNetworkID() !== this._transaction._networkID ||
72
+ !tx.getBlockchainID().equals(this._transaction._blockchainID)) {
73
+ throw new Error('Network or blockchain is not equals');
74
+ }
75
+ this._transaction._memo = tx.getMemo();
76
+ const out = tx.getOuts()[0];
77
+ if (!out.getAssetID().equals(this._transaction._assetId)) {
78
+ throw new Error('AssetID are not equals');
79
+ }
80
+ const secpOut = out.getOutput();
81
+ this._transaction._locktime = secpOut.getLocktime();
82
+ this._transaction._threshold = secpOut.getThreshold();
83
+ this._transaction._fromPubKeys = secpOut.getAddresses();
84
+ this._transaction.avaxPTransaction = tx;
85
+ return this;
86
+ }
87
+ credentials(credentials) {
88
+ this.transaction.credentials = credentials;
89
+ return this;
90
+ }
91
+ /** @inheritdoc */
92
+ fromImplementation(rawTransaction) {
93
+ throw new sdk_core_1.NotSupported('from raw transaction is not supported. See TransactionBuilderFactory.from method');
94
+ }
95
+ get hasSigner() {
96
+ return this._signer !== undefined && this._signer.length > 0;
97
+ }
98
+ /** @inheritdoc */
99
+ async buildImplementation() {
100
+ // TODO: STLX-17317: sign with recovery key
101
+ // if (this.hasSigner) {
102
+ // this.recoverSigner = this._fromPubKeys[1].equals(utils.parseAddress(this._signer[0].getAddress()));
103
+ // }
104
+ this.transaction.avaxPTransaction = this.buildAvaxpTransaction();
105
+ if (this.hasSigner) {
106
+ if (!this.transaction.hasCredentials) {
107
+ this.transaction.credentials = utils_1.default.getCredentials(this.transaction.avaxPTransaction);
108
+ }
109
+ this._signer.forEach((keyPair) => this.transaction.sign(keyPair));
110
+ }
111
+ this.transaction.setTransactionType(this.transactionType);
112
+ return this.transaction;
113
+ }
114
+ // region Getters and Setters
115
+ /** @inheritdoc */
116
+ get transaction() {
117
+ return this._transaction;
118
+ }
119
+ set transaction(transaction) {
120
+ this._transaction = transaction;
121
+ }
122
+ signImplementation({ key }) {
123
+ this._signer.push(new keyPair_1.KeyPair({ prv: key }));
124
+ return this.transaction;
125
+ }
126
+ // endregion
127
+ // region Validators
128
+ /**
129
+ * Validates the threshold
130
+ * @param threshold
131
+ */
132
+ validateThreshold(threshold) {
133
+ if (!threshold || threshold !== 2) {
134
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: threshold must be set to 2');
135
+ }
136
+ }
137
+ /**
138
+ * Validates locktime
139
+ * @param locktime
140
+ */
141
+ validateLocktime(locktime) {
142
+ if (!locktime || locktime.lt(new avalanche_1.BN(0))) {
143
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: locktime must be 0 or higher');
144
+ }
145
+ }
146
+ /** @inheritdoc */
147
+ validateAddress(address, addressFormat) {
148
+ throw new sdk_core_1.NotImplementedError('validateAddress not implemented');
149
+ }
150
+ /** @inheritdoc */
151
+ validateKey({ key }) {
152
+ if (!new keyPair_1.KeyPair({ prv: key })) {
153
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
154
+ }
155
+ }
156
+ /** @inheritdoc */
157
+ validateRawTransaction(rawTransaction) {
158
+ if (!rawTransaction) {
159
+ throw new sdk_core_1.InvalidTransactionError('Raw transaction is empty');
160
+ }
161
+ try {
162
+ utils_1.default.cb58Decode(rawTransaction);
163
+ }
164
+ catch (e) {
165
+ throw new sdk_core_1.ParseTransactionError('Raw transaction is not hex string');
166
+ }
167
+ }
168
+ /** @inheritdoc */
169
+ validateTransaction(transaction) {
170
+ // throw new NotImplementedError('validateTransaction not implemented');
171
+ }
172
+ /** @inheritdoc */
173
+ validateValue(value) {
174
+ if (value.isLessThan(0)) {
175
+ throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
176
+ }
177
+ }
178
+ validateUtxos(values) {
179
+ if (values.length === 0) {
180
+ throw new sdk_core_1.BuildTransactionError("Utxos can't be empty array");
181
+ }
182
+ values.forEach(this.validateUtxo);
183
+ }
184
+ validateUtxo(value) {
185
+ ['outputID', 'amount', 'txid', 'outputidx'].forEach((field) => {
186
+ if (!value.hasOwnProperty(field))
187
+ throw new sdk_core_1.BuildTransactionError(`Utxos required ${field}`);
188
+ });
189
+ }
190
+ }
191
+ exports.TransactionBuilder = TransactionBuilder;
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSw4Q0FXeUI7QUFDekIsK0NBQTRDO0FBQzVDLHVDQUFvQztBQUNwQyx5Q0FBK0I7QUFHL0Isb0RBQTRCO0FBRzVCLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQWVyRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQWRkLFlBQU8sR0FBYyxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFjOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQWJEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsYUFBYSxHQUFHLElBQUk7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT0Q7Ozs7T0FJRztJQUVILFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLGlDQUFpQztRQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQXNCO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGNBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksY0FBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxZQUErQjtRQUN4QyxNQUFNLE9BQU8sR0FBRyxZQUFZLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxD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QUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFxQjtRQUNoQyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFBRSxNQUFNLElBQUksZ0NBQXFCLENBQUMsa0JBQWtCLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBR0Y7QUFwTkQsZ0RBb05DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7XG4gIE5vdEltcGxlbWVudGVkRXJyb3IsXG4gIEJhc2VBZGRyZXNzLFxuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgTm90U3VwcG9ydGVkLFxuICBCYXNlVHJhbnNhY3Rpb24sXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBCTiB9IGZyb20gJ2F2YWxhbmNoZSc7XG5pbXBvcnQgeyBCYXNlVHggfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL3BsYXRmb3Jtdm0vYmFzZXR4JztcbmltcG9ydCB7IENyZWRlbnRpYWwgfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9jb21tb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgRGVjb2RlZFV0eG9PYmogfSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHB1YmxpYyBfc2lnbmVyOiBLZXlQYWlyW10gPSBbXTtcbiAgcHJvdGVjdGVkIHJlY292ZXJTaWduZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hlbiB1c2luZyByZWNvdmVyeSBrZXkgbXVzdCBiZSBzZXQgaGVyZVxuICAgKiBUT0RPOiBTVExYLTE3MzE3IHJlY292ZXJ5IGtleSBzaWduaW5nXG4gICAqIEBwYXJhbSByZWNvdmVyU2lnbmVyXG4gICAqL1xuICBwdWJsaWMgcmVjb3Zlck1vZGUocmVjb3ZlclNpZ25lciA9IHRydWUpOiB0aGlzIHtcbiAgICB0aGlzLnJlY292ZXJTaWduZXIgPSByZWNvdmVyU2lnbmVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb21tZW50ZWQgb3V0IGNoZWNrIHVudGlsIG11bHRpc2lnIHNpZ25pbmcgaXMgaW4gZWZmZWN0XG4gICAqIFRPRE86IFNUTFgtMTcwNzdcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuXG4gIHRocmVzaG9sZCh2YWx1ZTogbnVtYmVyKTogdGhpcyB7XG4gICAgLy8gdGhpcy52YWxpZGF0ZVRocmVzaG9sZCh2YWx1ZSk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uX3RocmVzaG9sZCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9ja3RpbWUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVMb2NrdGltZShuZXcgQk4odmFsdWUpKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5fbG9ja3RpbWUgPSBuZXcgQk4odmFsdWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZnJvbVB1YktleShzZW5kZXJQdWJLZXk6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgY29uc3QgcHViS2V5cyA9IHNlbmRlclB1YktleSBpbnN0YW5jZW9mIEFycmF5ID8gc2VuZGVyUHViS2V5IDogW3NlbmRlclB1YktleV07XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uX2Zyb21QdWJLZXlzID0gcHViS2V5cy5tYXAodXRpbHMucGFyc2VBZGRyZXNzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHV0eG9zKHZhbHVlOiBEZWNvZGVkVXR4b09ialtdKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVV0eG9zKHZhbHVlKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5fdXR4b3MgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIE9wdGlvbmFsIEJ1ZmZlciBmb3IgdGhlIG1lbW9cbiAgICogQHJldHVybnMgdmFsdWUgQnVmZmVyIGZvciB0aGUgbWVtb1xuICAgKiBzZXQgdXNpbmcgQnVmZmVyLmZyb20oXCJtZXNzYWdlXCIpXG4gICAqL1xuICBtZW1vKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5fbWVtbyA9IHV0aWxzLnN0cmluZ1RvQnVmZmVyKHZhbHVlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eD86IEJhc2VUeCk6IHRoaXMge1xuICAgIGlmICghdHgpIHJldHVybiB0aGlzO1xuICAgIGlmIChcbiAgICAgIHR4LmdldE5ldHdvcmtJRCgpICE9PSB0aGlzLl90cmFuc2FjdGlvbi5fbmV0d29ya0lEIHx8XG4gICAgICAhdHguZ2V0QmxvY2tjaGFpbklEKCkuZXF1YWxzKHRoaXMuX3RyYW5zYWN0aW9uLl9ibG9ja2NoYWluSUQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgb3IgYmxvY2tjaGFpbiBpcyBub3QgZXF1YWxzJyk7XG4gICAgfVxuICAgIHRoaXMuX3RyYW5zYWN0aW9uLl9tZW1vID0gdHguZ2V0TWVtbygpO1xuICAgIGNvbnN0IG91dCA9IHR4LmdldE91dHMoKVswXTtcbiAgICBpZiAoIW91dC5nZXRBc3NldElEKCkuZXF1YWxzKHRoaXMuX3RyYW5zYWN0aW9uLl9hc3NldElkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3NldElEIGFyZSBub3QgZXF1YWxzJyk7XG4gICAgfVxuICAgIGNvbnN0IHNlY3BPdXQgPSBvdXQuZ2V0T3V0cHV0KCk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uX2xvY2t0aW1lID0gc2VjcE91dC5nZXRMb2NrdGltZSgpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLl90aHJlc2hvbGQgPSBzZWNwT3V0LmdldFRocmVzaG9sZCgpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLl9mcm9tUHViS2V5cyA9IHNlY3BPdXQuZ2V0QWRkcmVzc2VzKCk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uYXZheFBUcmFuc2FjdGlvbiA9IHR4O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY3JlZGVudGlhbHMoY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXSk6IHRoaXMge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uY3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnZnJvbSByYXcgdHJhbnNhY3Rpb24gaXMgbm90IHN1cHBvcnRlZC4gU2VlIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuZnJvbSBtZXRob2QnKTtcbiAgfVxuXG4gIGdldCBoYXNTaWduZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25lciAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3NpZ25lci5sZW5ndGggPiAwO1xuICB9XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgLy8gVE9ETzogU1RMWC0xNzMxNzogc2lnbiB3aXRoIHJlY292ZXJ5IGtleVxuICAgIC8vIGlmICh0aGlzLmhhc1NpZ25lcikge1xuICAgIC8vICAgIHRoaXMucmVjb3ZlclNpZ25lciA9IHRoaXMuX2Zyb21QdWJLZXlzWzFdLmVxdWFscyh1dGlscy5wYXJzZUFkZHJlc3ModGhpcy5fc2lnbmVyWzBdLmdldEFkZHJlc3MoKSkpO1xuICAgIC8vIH1cbiAgICB0aGlzLnRyYW5zYWN0aW9uLmF2YXhQVHJhbnNhY3Rpb24gPSB0aGlzLmJ1aWxkQXZheHBUcmFuc2FjdGlvbigpO1xuICAgIGlmICh0aGlzLmhhc1NpZ25lcikge1xuICAgICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLmhhc0NyZWRlbnRpYWxzKSB7XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24uY3JlZGVudGlhbHMgPSB1dGlscy5nZXRDcmVkZW50aWFscyh0aGlzLnRyYW5zYWN0aW9uLmF2YXhQVHJhbnNhY3Rpb24pO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2lnbmVyLmZvckVhY2goKGtleVBhaXIpID0+IHRoaXMudHJhbnNhY3Rpb24uc2lnbihrZXlQYWlyKSk7XG4gICAgfVxuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIGF2YXhwIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9ufSBhdmF4cCBzZGsgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBidWlsZEF2YXhwVHJhbnNhY3Rpb24oKTogQmFzZVR4O1xuXG4gIC8vIHJlZ2lvbiBHZXR0ZXJzIGFuZCBTZXR0ZXJzXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbih7IGtleSB9OiBCYXNlS2V5KTogQmFzZVRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLl9zaWduZXIucHVzaChuZXcgS2V5UGFpcih7IHBydjoga2V5IH0pKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRocmVzaG9sZFxuICAgKiBAcGFyYW0gdGhyZXNob2xkXG4gICAqL1xuICB2YWxpZGF0ZVRocmVzaG9sZCh0aHJlc2hvbGQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhyZXNob2xkIHx8IHRocmVzaG9sZCAhPT0gMikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogdGhyZXNob2xkIG11c3QgYmUgc2V0IHRvIDInKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGxvY2t0aW1lXG4gICAqIEBwYXJhbSBsb2NrdGltZVxuICAgKi9cbiAgdmFsaWRhdGVMb2NrdGltZShsb2NrdGltZTogQk4pOiB2b2lkIHtcbiAgICBpZiAoIWxvY2t0aW1lIHx8IGxvY2t0aW1lLmx0KG5ldyBCTigwKSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IGxvY2t0aW1lIG11c3QgYmUgMCBvciBoaWdoZXInKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ3ZhbGlkYXRlQWRkcmVzcyBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleSh7IGtleSB9OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgaWYgKCFuZXcgS2V5UGFpcih7IHBydjoga2V5IH0pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1JhdyB0cmFuc2FjdGlvbiBpcyBlbXB0eScpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgdXRpbHMuY2I1OERlY29kZShyYXdUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignUmF3IHRyYW5zYWN0aW9uIGlzIG5vdCBoZXggc3RyaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIC8vIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCd2YWxpZGF0ZVRyYW5zYWN0aW9uIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVV0eG9zKHZhbHVlczogRGVjb2RlZFV0eG9PYmpbXSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKFwiVXR4b3MgY2FuJ3QgYmUgZW1wdHkgYXJyYXlcIik7XG4gICAgfVxuICAgIHZhbHVlcy5mb3JFYWNoKHRoaXMudmFsaWRhdGVVdHhvKTtcbiAgfVxuXG4gIHZhbGlkYXRlVXR4byh2YWx1ZTogRGVjb2RlZFV0eG9PYmopOiB2b2lkIHtcbiAgICBbJ291dHB1dElEJywgJ2Ftb3VudCcsICd0eGlkJywgJ291dHB1dGlkeCddLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoIXZhbHVlLmhhc093blByb3BlcnR5KGZpZWxkKSkgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgVXR4b3MgcmVxdWlyZWQgJHtmaWVsZH1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ import { TransferBuilder } from './transferBuilder';
5
+ import { ValidatorTxBuilder } from './validatorTxBuilder';
6
+ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
7
+ protected recoverSigner: boolean;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ /** @inheritdoc */
10
+ from(raw: string): TransactionBuilder;
11
+ /** @inheritdoc */
12
+ getTransferBuilder(): TransferBuilder;
13
+ /**
14
+ * Initialize Validator builder
15
+ *
16
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
17
+ * @returns {StakingTxBuilder} the builder initialized
18
+ */
19
+ getValidatorBuilder(): ValidatorTxBuilder;
20
+ getWalletInitializationBuilder(): TransactionBuilder;
21
+ }
22
+ //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../src/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAgB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,SAAS,CAAC,aAAa,UAAS;gBACpB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAcrC,kBAAkB;IAClB,kBAAkB,IAAI,eAAe;IAIrC;;;;;OAKG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC,8BAA8B,IAAI,kBAAkB;CAGrD"}
@@ -0,0 +1,49 @@
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.TransactionBuilderFactory = void 0;
7
+ const sdk_core_1 = require("@bitgo/sdk-core");
8
+ const transferBuilder_1 = require("./transferBuilder");
9
+ const validatorTxBuilder_1 = require("./validatorTxBuilder");
10
+ const utils_1 = __importDefault(require("./utils"));
11
+ const constants_1 = require("avalanche/dist/apis/platformvm/constants");
12
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this.recoverSigner = false;
16
+ }
17
+ /** @inheritdoc */
18
+ from(raw) {
19
+ const tx = utils_1.default.from(raw);
20
+ const baseTx = tx.getUnsignedTx().getTransaction();
21
+ let transactionBuilder;
22
+ if (baseTx.getTypeID() === constants_1.PlatformVMConstants.ADDVALIDATORTX) {
23
+ transactionBuilder = this.getValidatorBuilder();
24
+ }
25
+ else {
26
+ throw new sdk_core_1.NotSupported('Transaction cannot be parsed or has an unsupported transaction type');
27
+ }
28
+ transactionBuilder.initBuilder(baseTx).credentials(tx.getCredentials());
29
+ return transactionBuilder;
30
+ }
31
+ /** @inheritdoc */
32
+ getTransferBuilder() {
33
+ return new transferBuilder_1.TransferBuilder(this._coinConfig);
34
+ }
35
+ /**
36
+ * Initialize Validator builder
37
+ *
38
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
39
+ * @returns {StakingTxBuilder} the builder initialized
40
+ */
41
+ getValidatorBuilder() {
42
+ return new validatorTxBuilder_1.ValidatorTxBuilder(this._coinConfig);
43
+ }
44
+ getWalletInitializationBuilder() {
45
+ throw new sdk_core_1.NotSupported('Wallet initialization is not needed');
46
+ }
47
+ }
48
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhDQUE4RTtBQUU5RSx1REFBb0Q7QUFDcEQsNkRBQTBEO0FBQzFELG9EQUE0QjtBQUM1Qix3RUFBK0U7QUFFL0UsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFFMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFGWCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQUdoQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsTUFBTSxFQUFFLEdBQUcsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkQsSUFBSSxrQkFBc0MsQ0FBQztRQUMzQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSywrQkFBbUIsQ0FBQyxjQUFjLEVBQUU7WUFDN0Qsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDakQ7YUFBTTtZQUNMLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDL0Y7UUFFRCxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksdUNBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCw4QkFBOEI7UUFDNUIsTUFBTSxJQUFJLHVCQUFZLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUF2Q0QsOERBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBOb3RTdXBwb3J0ZWQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgVmFsaWRhdG9yVHhCdWlsZGVyIH0gZnJvbSAnLi92YWxpZGF0b3JUeEJ1aWxkZXInO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUGxhdGZvcm1WTUNvbnN0YW50cyB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2FwaXMvcGxhdGZvcm12bS9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIHJlY292ZXJTaWduZXIgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20ocmF3OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IHR4ID0gdXRpbHMuZnJvbShyYXcpO1xuICAgIGNvbnN0IGJhc2VUeCA9IHR4LmdldFVuc2lnbmVkVHgoKS5nZXRUcmFuc2FjdGlvbigpO1xuICAgIGxldCB0cmFuc2FjdGlvbkJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICBpZiAoYmFzZVR4LmdldFR5cGVJRCgpID09PSBQbGF0Zm9ybVZNQ29uc3RhbnRzLkFERFZBTElEQVRPUlRYKSB7XG4gICAgICB0cmFuc2FjdGlvbkJ1aWxkZXIgPSB0aGlzLmdldFZhbGlkYXRvckJ1aWxkZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnVHJhbnNhY3Rpb24gY2Fubm90IGJlIHBhcnNlZCBvciBoYXMgYW4gdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgIH1cblxuICAgIHRyYW5zYWN0aW9uQnVpbGRlci5pbml0QnVpbGRlcihiYXNlVHgpLmNyZWRlbnRpYWxzKHR4LmdldENyZWRlbnRpYWxzKCkpO1xuICAgIHJldHVybiB0cmFuc2FjdGlvbkJ1aWxkZXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKCk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBWYWxpZGF0b3IgYnVpbGRlclxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHJldHVybnMge1N0YWtpbmdUeEJ1aWxkZXJ9IHRoZSBidWlsZGVyIGluaXRpYWxpemVkXG4gICAqL1xuICBnZXRWYWxpZGF0b3JCdWlsZGVyKCk6IFZhbGlkYXRvclR4QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBWYWxpZGF0b3JUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdXYWxsZXQgaW5pdGlhbGl6YXRpb24gaXMgbm90IG5lZWRlZCcpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { BaseKey, TransactionType } from '@bitgo/sdk-core';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ import { Transaction } from './transaction';
5
+ import { BaseTx } from 'avalanche/dist/apis/platformvm';
6
+ export declare class TransferBuilder extends TransactionBuilder {
7
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
+ protected get transactionType(): TransactionType;
9
+ /** @inheritdoc */
10
+ protected buildAvaxpTransaction(): BaseTx;
11
+ /** @inheritdoc */
12
+ protected buildImplementation(): Promise<Transaction>;
13
+ /** @inheritdoc */
14
+ protected fromImplementation(rawTransaction: string): Transaction;
15
+ /** @inheritdoc */
16
+ protected signImplementation(key: BaseKey): Transaction;
17
+ }
18
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../src/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAuB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,SAAS,CAAC,qBAAqB,IAAI,MAAM;IAIzC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAI3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAIjE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAGxD"}
@@ -0,0 +1,31 @@
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
+ get transactionType() {
11
+ return sdk_core_1.TransactionType.WalletInitialization;
12
+ }
13
+ /** @inheritdoc */
14
+ buildAvaxpTransaction() {
15
+ throw new sdk_core_1.NotImplementedError('buildImplementation not implemented');
16
+ }
17
+ /** @inheritdoc */
18
+ async buildImplementation() {
19
+ throw new sdk_core_1.NotImplementedError('buildImplementation not implemented');
20
+ }
21
+ /** @inheritdoc */
22
+ fromImplementation(rawTransaction) {
23
+ throw new sdk_core_1.NotImplementedError('fromImplementation not implemented');
24
+ }
25
+ /** @inheritdoc */
26
+ signImplementation(key) {
27
+ throw new sdk_core_1.NotImplementedError('signImplementation not implemented');
28
+ }
29
+ }
30
+ exports.TransferBuilder = TransferBuilder;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw4Q0FBZ0Y7QUFDaEYsNkRBQTBEO0FBSTFELE1BQWEsZUFBZ0IsU0FBUSx1Q0FBa0I7SUFDckQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUVELGtCQUFrQjtJQUNSLHFCQUFxQjtRQUM3QixNQUFNLElBQUksOEJBQW1CLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxNQUFNLElBQUksOEJBQW1CLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsTUFBTSxJQUFJLDhCQUFtQixDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsTUFBTSxJQUFJLDhCQUFtQixDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNGO0FBNUJELDBDQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBOb3RJbXBsZW1lbnRlZEVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEJhc2VUeCB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2FwaXMvcGxhdGZvcm12bSc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkQXZheHBUcmFuc2FjdGlvbigpOiBCYXNlVHgge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdidWlsZEltcGxlbWVudGF0aW9uIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignYnVpbGRJbXBsZW1lbnRhdGlvbiBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2Zyb21JbXBsZW1lbnRhdGlvbiBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignc2lnbkltcGxlbWVudGF0aW9uIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59XG4iXX0=