@bitgo/sdk-coin-avaxp 0.1.0-rc.7 → 0.2.0-dev.1
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/dist/src/delegatorTxBuilder.d.ts +89 -0
- package/dist/src/delegatorTxBuilder.d.ts.map +1 -0
- package/dist/src/delegatorTxBuilder.js +183 -0
- package/dist/src/iface.d.ts +15 -12
- package/dist/src/iface.d.ts.map +1 -1
- package/dist/src/iface.js +1 -1
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -2
- package/dist/src/keyPair.d.ts +3 -1
- package/dist/src/keyPair.d.ts.map +1 -1
- package/dist/src/keyPair.js +6 -5
- package/dist/src/transaction.d.ts +12 -3
- package/dist/src/transaction.d.ts.map +1 -1
- package/dist/src/transaction.js +54 -6
- package/dist/src/transactionBuilder.d.ts +47 -10
- package/dist/src/transactionBuilder.d.ts.map +1 -1
- package/dist/src/transactionBuilder.js +118 -17
- package/dist/src/transactionBuilderFactory.d.ts +8 -10
- package/dist/src/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/transactionBuilderFactory.js +30 -15
- package/dist/src/transferBuilder.d.ts +2 -1
- package/dist/src/transferBuilder.d.ts.map +1 -1
- package/dist/src/transferBuilder.js +1 -1
- package/dist/src/utils.d.ts +18 -5
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +27 -13
- package/dist/src/validatorTxBuilder.d.ts +32 -0
- package/dist/src/validatorTxBuilder.d.ts.map +1 -0
- package/dist/src/validatorTxBuilder.js +58 -0
- package/dist/tsconfig.tsbuildinfo +4075 -1820
- package/package.json +4 -4
- package/CHANGELOG.md +0 -70
- package/dist/src/constants.d.ts +0 -10
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/constants.js +0 -12
- package/dist/src/walletInitializationBuilder.d.ts +0 -17
- package/dist/src/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/walletInitializationBuilder.js +0 -31
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { BaseUtils } from '@bitgo/sdk-core';
|
|
2
|
+
import { Buffer } from 'avalanche';
|
|
3
|
+
import { NodeIDStringToBuffer } from 'avalanche/dist/utils';
|
|
2
4
|
export declare class Utils implements BaseUtils {
|
|
5
|
+
private binTools;
|
|
6
|
+
cb58Decode: (bytes: string | Buffer) => Buffer;
|
|
7
|
+
cb58Encode: (bytes: Buffer) => string;
|
|
8
|
+
stringToBuffer: (str: string) => Buffer;
|
|
9
|
+
bufferToString: (buff: Buffer) => string;
|
|
10
|
+
NodeIDStringToBuffer: typeof NodeIDStringToBuffer;
|
|
3
11
|
/** @inheritdoc */
|
|
4
12
|
isValidAddress(address: string): boolean;
|
|
5
13
|
/** @inheritdoc */
|
|
@@ -12,18 +20,19 @@ export declare class Utils implements BaseUtils {
|
|
|
12
20
|
* @returns {boolean} - the validation result
|
|
13
21
|
*/
|
|
14
22
|
isValidPublicKey(pub: string): boolean;
|
|
23
|
+
parseAddress: (pub: string) => Buffer;
|
|
15
24
|
/**
|
|
16
|
-
*
|
|
25
|
+
* Returns whether or not the string is a valid protocol private key, or extended
|
|
17
26
|
* private key.
|
|
18
27
|
*
|
|
28
|
+
* The protocol key format is described in the @stacks/transactions npm package, in the
|
|
29
|
+
* createStacksPrivateKey function:
|
|
30
|
+
* https://github.com/blockstack/stacks.js/blob/master/packages/transactions/src/keys.ts#L125
|
|
31
|
+
*
|
|
19
32
|
* @param {string} prv - the private key (or extended private key) to be validated
|
|
20
33
|
* @returns {boolean} - the validation result
|
|
21
34
|
*/
|
|
22
35
|
isValidPrivateKey(prv: string): boolean;
|
|
23
|
-
/** @inheritdoc */
|
|
24
|
-
isValidSignature(signature: string): boolean;
|
|
25
|
-
/** @inheritdoc */
|
|
26
|
-
isValidTransactionId(txId: string): boolean;
|
|
27
36
|
/**
|
|
28
37
|
* Returns whether or not the string is a composed of hex chars only
|
|
29
38
|
*
|
|
@@ -31,6 +40,10 @@ export declare class Utils implements BaseUtils {
|
|
|
31
40
|
* @returns {boolean} - the validation result
|
|
32
41
|
*/
|
|
33
42
|
allHexChars(maybe: string): boolean;
|
|
43
|
+
/** @inheritdoc */
|
|
44
|
+
isValidSignature(signature: string): boolean;
|
|
45
|
+
/** @inheritdoc */
|
|
46
|
+
isValidTransactionId(txId: string): boolean;
|
|
34
47
|
}
|
|
35
48
|
declare const utils: Utils;
|
|
36
49
|
export default utils;
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAY,MAAM,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,qBAAa,KAAM,YAAW,SAAS;IACrC,OAAO,CAAC,QAAQ,CAA0B;IACnC,UAAU,qCAA4B;IACtC,UAAU,4BAA4B;IACtC,cAAc,0BAAgC;IAC9C,cAAc,2BAAgC;IAC9C,oBAAoB,8BAAwB;IAEnD,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;;;;;OAMG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IA0BtC,YAAY,QAAS,MAAM,KAAG,MAAM,CAAyC;IAE7E;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUvC;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG5C;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|
package/dist/src/utils.js
CHANGED
|
@@ -2,8 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Utils = void 0;
|
|
4
4
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
|
+
const avalanche_1 = require("avalanche");
|
|
6
|
+
const utils_1 = require("avalanche/dist/utils");
|
|
5
7
|
const elliptic_1 = require("elliptic");
|
|
6
8
|
class Utils {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.binTools = avalanche_1.BinTools.getInstance();
|
|
11
|
+
this.cb58Decode = this.binTools.cb58Decode;
|
|
12
|
+
this.cb58Encode = this.binTools.cb58Encode;
|
|
13
|
+
this.stringToBuffer = this.binTools.stringToBuffer;
|
|
14
|
+
this.bufferToString = this.binTools.bufferToString;
|
|
15
|
+
this.NodeIDStringToBuffer = utils_1.NodeIDStringToBuffer;
|
|
16
|
+
this.parseAddress = (pub) => this.binTools.parseAddress(pub, 'P');
|
|
17
|
+
}
|
|
7
18
|
/** @inheritdoc */
|
|
8
19
|
isValidAddress(address) {
|
|
9
20
|
throw new sdk_core_1.NotImplementedError('isValidAddress not implemented');
|
|
@@ -36,7 +47,7 @@ class Utils {
|
|
|
36
47
|
// validate the public key
|
|
37
48
|
const secp256k1 = new elliptic_1.ec('secp256k1');
|
|
38
49
|
try {
|
|
39
|
-
const keyPair = secp256k1.keyFromPublic(Buffer.from(pub, 'hex'));
|
|
50
|
+
const keyPair = secp256k1.keyFromPublic(avalanche_1.Buffer.from(pub, 'hex'));
|
|
40
51
|
const { result } = keyPair.validate();
|
|
41
52
|
return result;
|
|
42
53
|
}
|
|
@@ -45,29 +56,24 @@ class Utils {
|
|
|
45
56
|
}
|
|
46
57
|
}
|
|
47
58
|
/**
|
|
48
|
-
*
|
|
59
|
+
* Returns whether or not the string is a valid protocol private key, or extended
|
|
49
60
|
* private key.
|
|
50
61
|
*
|
|
62
|
+
* The protocol key format is described in the @stacks/transactions npm package, in the
|
|
63
|
+
* createStacksPrivateKey function:
|
|
64
|
+
* https://github.com/blockstack/stacks.js/blob/master/packages/transactions/src/keys.ts#L125
|
|
65
|
+
*
|
|
51
66
|
* @param {string} prv - the private key (or extended private key) to be validated
|
|
52
67
|
* @returns {boolean} - the validation result
|
|
53
68
|
*/
|
|
54
69
|
isValidPrivateKey(prv) {
|
|
55
|
-
if (
|
|
56
|
-
return true;
|
|
70
|
+
// if (isValidXprv(prv)) return true;
|
|
57
71
|
if (prv.length !== 64 && prv.length !== 66)
|
|
58
72
|
return false;
|
|
59
73
|
if (prv.length === 66 && prv.slice(64) !== '01')
|
|
60
74
|
return false;
|
|
61
75
|
return this.allHexChars(prv);
|
|
62
76
|
}
|
|
63
|
-
/** @inheritdoc */
|
|
64
|
-
isValidSignature(signature) {
|
|
65
|
-
throw new sdk_core_1.NotImplementedError('isValidSignature not implemented');
|
|
66
|
-
}
|
|
67
|
-
/** @inheritdoc */
|
|
68
|
-
isValidTransactionId(txId) {
|
|
69
|
-
throw new sdk_core_1.NotImplementedError('isValidTransactionId not implemented');
|
|
70
|
-
}
|
|
71
77
|
/**
|
|
72
78
|
* Returns whether or not the string is a composed of hex chars only
|
|
73
79
|
*
|
|
@@ -77,8 +83,16 @@ class Utils {
|
|
|
77
83
|
allHexChars(maybe) {
|
|
78
84
|
return /^([0-9a-f])+$/i.test(maybe);
|
|
79
85
|
}
|
|
86
|
+
/** @inheritdoc */
|
|
87
|
+
isValidSignature(signature) {
|
|
88
|
+
throw new sdk_core_1.NotImplementedError('isValidSignature not implemented');
|
|
89
|
+
}
|
|
90
|
+
/** @inheritdoc */
|
|
91
|
+
isValidTransactionId(txId) {
|
|
92
|
+
throw new sdk_core_1.NotImplementedError('isValidTransactionId not implemented');
|
|
93
|
+
}
|
|
80
94
|
}
|
|
81
95
|
exports.Utils = Utils;
|
|
82
96
|
const utils = new Utils();
|
|
83
97
|
exports.default = utils;
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQThFO0FBQzlFLHlDQUE2QztBQUM3QyxnREFBNEQ7QUFDNUQsdUNBQThCO0FBRTlCLE1BQWEsS0FBSztJQUFsQjtRQUNVLGFBQVEsR0FBRyxvQkFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLGVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxlQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUM5QyxtQkFBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLDRCQUFvQixDQUFDO1FBNkNuRCxpQkFBWSxHQUFHLENBQUMsR0FBVyxFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUEwQy9FLENBQUM7SUFyRkMsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sSUFBSSw4QkFBbUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLElBQVk7UUFDekIsTUFBTSxJQUFJLDhCQUFtQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUFDLEdBQVc7UUFDMUIsSUFBSSxzQkFBVyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWxDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFMUQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEMsMEJBQTBCO1FBQzFCLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxLQUFLLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUzRCx3QkFBd0I7UUFDeEIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUUsSUFBSSxTQUFTLEtBQUssSUFBSSxJQUFJLFNBQVMsS0FBSyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFaEYsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFekMsMEJBQTBCO1FBQzFCLE1BQU0sU0FBUyxHQUFHLElBQUksYUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLElBQUk7WUFDRixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLGtCQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFJRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsaUJBQWlCLENBQUMsR0FBVztRQUMzQixxQ0FBcUM7UUFFckMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV6RCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTlELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsS0FBYTtRQUN2QixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sSUFBSSw4QkFBbUIsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixNQUFNLElBQUksOEJBQW1CLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0Y7QUE3RkQsc0JBNkZDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ZhbGlkWHB1YiwgTm90SW1wbGVtZW50ZWRFcnJvciwgQmFzZVV0aWxzIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJpblRvb2xzLCBCdWZmZXIgfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHsgTm9kZUlEU3RyaW5nVG9CdWZmZXIgfSBmcm9tICdhdmFsYW5jaGUvZGlzdC91dGlscyc7XG5pbXBvcnQgeyBlYyB9IGZyb20gJ2VsbGlwdGljJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgcHJpdmF0ZSBiaW5Ub29scyA9IEJpblRvb2xzLmdldEluc3RhbmNlKCk7XG4gIHB1YmxpYyBjYjU4RGVjb2RlID0gdGhpcy5iaW5Ub29scy5jYjU4RGVjb2RlO1xuICBwdWJsaWMgY2I1OEVuY29kZSA9IHRoaXMuYmluVG9vbHMuY2I1OEVuY29kZTtcbiAgcHVibGljIHN0cmluZ1RvQnVmZmVyID0gdGhpcy5iaW5Ub29scy5zdHJpbmdUb0J1ZmZlcjtcbiAgcHVibGljIGJ1ZmZlclRvU3RyaW5nID0gdGhpcy5iaW5Ub29scy5idWZmZXJUb1N0cmluZztcbiAgcHVibGljIE5vZGVJRFN0cmluZ1RvQnVmZmVyID0gTm9kZUlEU3RyaW5nVG9CdWZmZXI7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdpc1ZhbGlkQWRkcmVzcyBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignaXNWYWxpZEJsb2NrSWQgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBwcm90b2NvbCBwdWJsaWMga2V5IG9yXG4gICAqIGV4dGVuZGVkIHB1YmxpYyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwdWIgLSB0aGUgIHB1YmxpYyBrZXkgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICAgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChpc1ZhbGlkWHB1YihwdWIpKSByZXR1cm4gdHJ1ZTtcblxuICAgIGlmIChwdWIubGVuZ3RoICE9PSA2NiAmJiBwdWIubGVuZ3RoICE9PSAxMzApIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGZpcnN0Qnl0ZSA9IHB1Yi5zbGljZSgwLCAyKTtcblxuICAgIC8vIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gICAgaWYgKHB1Yi5sZW5ndGggPT09IDEzMCAmJiBmaXJzdEJ5dGUgIT09ICcwNCcpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIGNvbXByZXNzZWQgcHVibGljIGtleVxuICAgIGlmIChwdWIubGVuZ3RoID09PSA2NiAmJiBmaXJzdEJ5dGUgIT09ICcwMicgJiYgZmlyc3RCeXRlICE9PSAnMDMnKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMuYWxsSGV4Q2hhcnMocHViKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gdmFsaWRhdGUgdGhlIHB1YmxpYyBrZXlcbiAgICBjb25zdCBzZWNwMjU2azEgPSBuZXcgZWMoJ3NlY3AyNTZrMScpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gc2VjcDI1NmsxLmtleUZyb21QdWJsaWMoQnVmZmVyLmZyb20ocHViLCAnaGV4JykpO1xuICAgICAgY29uc3QgeyByZXN1bHQgfSA9IGtleVBhaXIudmFsaWRhdGUoKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHBhcnNlQWRkcmVzcyA9IChwdWI6IHN0cmluZyk6IEJ1ZmZlciA9PiB0aGlzLmJpblRvb2xzLnBhcnNlQWRkcmVzcyhwdWIsICdQJyk7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHByb3RvY29sIHByaXZhdGUga2V5LCBvciBleHRlbmRlZFxuICAgKiBwcml2YXRlIGtleS5cbiAgICpcbiAgICogVGhlIHByb3RvY29sIGtleSBmb3JtYXQgaXMgZGVzY3JpYmVkIGluIHRoZSBAc3RhY2tzL3RyYW5zYWN0aW9ucyBucG0gcGFja2FnZSwgaW4gdGhlXG4gICAqIGNyZWF0ZVN0YWNrc1ByaXZhdGVLZXkgZnVuY3Rpb246XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ibG9ja3N0YWNrL3N0YWNrcy5qcy9ibG9iL21hc3Rlci9wYWNrYWdlcy90cmFuc2FjdGlvbnMvc3JjL2tleXMudHMjTDEyNVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJ2IC0gdGhlIHByaXZhdGUga2V5IChvciBleHRlbmRlZCBwcml2YXRlIGtleSkgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICAgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkocHJ2OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyBpZiAoaXNWYWxpZFhwcnYocHJ2KSkgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAocHJ2Lmxlbmd0aCAhPT0gNjQgJiYgcHJ2Lmxlbmd0aCAhPT0gNjYpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChwcnYubGVuZ3RoID09PSA2NiAmJiBwcnYuc2xpY2UoNjQpICE9PSAnMDEnKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdGhpcy5hbGxIZXhDaGFycyhwcnYpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIGNvbXBvc2VkIG9mIGhleCBjaGFycyBvbmx5XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtYXliZSAtIHRoZSAgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAgICovXG4gIGFsbEhleENoYXJzKG1heWJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL14oWzAtOWEtZl0pKyQvaS50ZXN0KG1heWJlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2lzVmFsaWRTaWduYXR1cmUgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2lzVmFsaWRUcmFuc2FjdGlvbklkIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { DelegatorTxBuilder } from './delegatorTxBuilder';
|
|
2
|
+
import { BaseCoin } from '@bitgo/statics';
|
|
3
|
+
import { BaseTx } from 'avalanche/dist/apis/platformvm';
|
|
4
|
+
export declare class ValidatorTxBuilder extends DelegatorTxBuilder {
|
|
5
|
+
protected _delegationFeeRate: number;
|
|
6
|
+
/**
|
|
7
|
+
* @param coinConfig
|
|
8
|
+
*/
|
|
9
|
+
constructor(coinConfig: Readonly<BaseCoin>);
|
|
10
|
+
/**
|
|
11
|
+
* set the delegationFeeRate
|
|
12
|
+
* @param value BigInt
|
|
13
|
+
*/
|
|
14
|
+
delegationFeeRate(value: number): this;
|
|
15
|
+
/**
|
|
16
|
+
* Validate that the delegation fee is at least the minDelegationFee
|
|
17
|
+
* @param delegationFeeRate BigInt
|
|
18
|
+
*/
|
|
19
|
+
validateDelegationFeeRate(delegationFeeRate: number): void;
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the builder
|
|
22
|
+
* @param tx BaseTx
|
|
23
|
+
* @returns ValidatorTxBuilder
|
|
24
|
+
*/
|
|
25
|
+
initBuilder(tx?: BaseTx): this;
|
|
26
|
+
/**
|
|
27
|
+
* Build the validator transaction
|
|
28
|
+
* @protected
|
|
29
|
+
*/
|
|
30
|
+
protected buildAvaxpTransaction(): BaseTx;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=validatorTxBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validatorTxBuilder.d.ts","sourceRoot":"","sources":["../../src/validatorTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAkB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAIxE,qBAAa,kBAAmB,SAAQ,kBAAkB;IACxD,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAErC;;OAEG;gBACS,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAI1C;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMtC;;;OAGG;IACH,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI;IAM1D;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAO9B;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,MAAM;CAkB1C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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.ValidatorTxBuilder = void 0;
|
|
7
|
+
const delegatorTxBuilder_1 = require("./delegatorTxBuilder");
|
|
8
|
+
const platformvm_1 = require("avalanche/dist/apis/platformvm");
|
|
9
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
10
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
11
|
+
class ValidatorTxBuilder extends delegatorTxBuilder_1.DelegatorTxBuilder {
|
|
12
|
+
/**
|
|
13
|
+
* @param coinConfig
|
|
14
|
+
*/
|
|
15
|
+
constructor(coinConfig) {
|
|
16
|
+
super(coinConfig);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* set the delegationFeeRate
|
|
20
|
+
* @param value BigInt
|
|
21
|
+
*/
|
|
22
|
+
delegationFeeRate(value) {
|
|
23
|
+
this.validateDelegationFeeRate(value);
|
|
24
|
+
this._delegationFeeRate = value;
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validate that the delegation fee is at least the minDelegationFee
|
|
29
|
+
* @param delegationFeeRate BigInt
|
|
30
|
+
*/
|
|
31
|
+
validateDelegationFeeRate(delegationFeeRate) {
|
|
32
|
+
if (delegationFeeRate < this._network.minDelegationFee) {
|
|
33
|
+
throw new sdk_core_1.BuildTransactionError(`Delegation fee cannot be less than ${this._network.minDelegationFee}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Initialize the builder
|
|
38
|
+
* @param tx BaseTx
|
|
39
|
+
* @returns ValidatorTxBuilder
|
|
40
|
+
*/
|
|
41
|
+
initBuilder(tx) {
|
|
42
|
+
if (!tx)
|
|
43
|
+
return this;
|
|
44
|
+
const vtx = tx;
|
|
45
|
+
this._delegationFeeRate = vtx.getDelegationFee();
|
|
46
|
+
return super.initBuilder(tx);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build the validator transaction
|
|
50
|
+
* @protected
|
|
51
|
+
*/
|
|
52
|
+
buildAvaxpTransaction() {
|
|
53
|
+
const { inputs, outputs } = this.createInputOutput();
|
|
54
|
+
return new platformvm_1.AddValidatorTx(this._networkID, this._blockchainID, outputs, inputs, this._memo, utils_1.default.NodeIDStringToBuffer(this._nodeID), this._startTime, this._endTime, this._stakeAmount, [this.stakeTransferOut()], this.rewardOwnersOutput(), this._delegationFeeRate);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ValidatorTxBuilder = ValidatorTxBuilder;
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRvclR4QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2REFBMEQ7QUFFMUQsK0RBQXdFO0FBQ3hFLDhDQUF3RDtBQUN4RCxvREFBNEI7QUFFNUIsTUFBYSxrQkFBbUIsU0FBUSx1Q0FBa0I7SUFHeEQ7O09BRUc7SUFDSCxZQUFZLFVBQThCO1FBQ3hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCx5QkFBeUIsQ0FBQyxpQkFBeUI7UUFDakQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxzQ0FBc0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7U0FDekc7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxFQUFXO1FBQ3JCLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDckIsTUFBTSxHQUFHLEdBQUcsRUFBb0IsQ0FBQztRQUNqQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDakQsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDTyxxQkFBcUI7UUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUVyRCxPQUFPLElBQUksMkJBQWMsQ0FDdkIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsYUFBYSxFQUNsQixPQUFPLEVBQ1AsTUFBTSxFQUNOLElBQUksQ0FBQyxLQUFLLEVBQ1YsZUFBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDeEMsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxZQUFZLEVBQ2pCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsRUFDekIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWhFRCxnREFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWxlZ2F0b3JUeEJ1aWxkZXIgfSBmcm9tICcuL2RlbGVnYXRvclR4QnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEFkZFZhbGlkYXRvclR4LCBCYXNlVHggfSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL3BsYXRmb3Jtdm0nO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvclR4QnVpbGRlciBleHRlbmRzIERlbGVnYXRvclR4QnVpbGRlciB7XG4gIHByb3RlY3RlZCBfZGVsZWdhdGlvbkZlZVJhdGU6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGNvaW5Db25maWdcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PEJhc2VDb2luPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIHNldCB0aGUgZGVsZWdhdGlvbkZlZVJhdGVcbiAgICogQHBhcmFtIHZhbHVlIEJpZ0ludFxuICAgKi9cbiAgZGVsZWdhdGlvbkZlZVJhdGUodmFsdWU6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVEZWxlZ2F0aW9uRmVlUmF0ZSh2YWx1ZSk7XG4gICAgdGhpcy5fZGVsZWdhdGlvbkZlZVJhdGUgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IHRoZSBkZWxlZ2F0aW9uIGZlZSBpcyBhdCBsZWFzdCB0aGUgbWluRGVsZWdhdGlvbkZlZVxuICAgKiBAcGFyYW0gZGVsZWdhdGlvbkZlZVJhdGUgQmlnSW50XG4gICAqL1xuICB2YWxpZGF0ZURlbGVnYXRpb25GZWVSYXRlKGRlbGVnYXRpb25GZWVSYXRlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoZGVsZWdhdGlvbkZlZVJhdGUgPCB0aGlzLl9uZXR3b3JrLm1pbkRlbGVnYXRpb25GZWUpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYERlbGVnYXRpb24gZmVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gJHt0aGlzLl9uZXR3b3JrLm1pbkRlbGVnYXRpb25GZWV9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHR4IEJhc2VUeFxuICAgKiBAcmV0dXJucyBWYWxpZGF0b3JUeEJ1aWxkZXJcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4PzogQmFzZVR4KTogdGhpcyB7XG4gICAgaWYgKCF0eCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgdnR4ID0gdHggYXMgQWRkVmFsaWRhdG9yVHg7XG4gICAgdGhpcy5fZGVsZWdhdGlvbkZlZVJhdGUgPSB2dHguZ2V0RGVsZWdhdGlvbkZlZSgpO1xuICAgIHJldHVybiBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIHZhbGlkYXRvciB0cmFuc2FjdGlvblxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRBdmF4cFRyYW5zYWN0aW9uKCk6IEJhc2VUeCB7XG4gICAgY29uc3QgeyBpbnB1dHMsIG91dHB1dHMgfSA9IHRoaXMuY3JlYXRlSW5wdXRPdXRwdXQoKTtcblxuICAgIHJldHVybiBuZXcgQWRkVmFsaWRhdG9yVHgoXG4gICAgICB0aGlzLl9uZXR3b3JrSUQsXG4gICAgICB0aGlzLl9ibG9ja2NoYWluSUQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgaW5wdXRzLFxuICAgICAgdGhpcy5fbWVtbyxcbiAgICAgIHV0aWxzLk5vZGVJRFN0cmluZ1RvQnVmZmVyKHRoaXMuX25vZGVJRCksXG4gICAgICB0aGlzLl9zdGFydFRpbWUsXG4gICAgICB0aGlzLl9lbmRUaW1lLFxuICAgICAgdGhpcy5fc3Rha2VBbW91bnQsXG4gICAgICBbdGhpcy5zdGFrZVRyYW5zZmVyT3V0KCldLFxuICAgICAgdGhpcy5yZXdhcmRPd25lcnNPdXRwdXQoKSxcbiAgICAgIHRoaXMuX2RlbGVnYXRpb25GZWVSYXRlXG4gICAgKTtcbiAgfVxufVxuIl19
|