@bitgo-beta/sdk-coin-polyx 1.0.0-alpha.206 → 1.0.0-alpha.208
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/lib/constants.d.ts +4 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +6 -2
- package/dist/src/lib/hexTokenTransferBuilder.d.ts +21 -0
- package/dist/src/lib/hexTokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/hexTokenTransferBuilder.js +43 -0
- package/dist/src/lib/hexTransferBuilder.d.ts +26 -0
- package/dist/src/lib/hexTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/hexTransferBuilder.js +49 -0
- package/dist/src/lib/index.d.ts +3 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +8 -2
- package/dist/src/lib/nominateBuilder.d.ts +18 -0
- package/dist/src/lib/nominateBuilder.d.ts.map +1 -0
- package/dist/src/lib/nominateBuilder.js +99 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +6 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +22 -2
- package/dist/src/lib/txnSchema.js +5 -5
- package/dist/src/lib/utils.d.ts +20 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +43 -1
- package/dist/src/polyx.d.ts +2 -1
- package/dist/src/polyx.d.ts.map +1 -1
- package/dist/src/polyx.js +6 -3
- package/dist/test/resources/index.d.ts +6 -0
- package/dist/test/resources/index.d.ts.map +1 -1
- package/dist/test/resources/index.js +11 -2
- package/dist/test/unit/polyx.js +68 -1
- package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.js +261 -0
- package/dist/test/unit/transactionBuilder/hexTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/hexTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/hexTransferBuilder.js +389 -0
- package/dist/test/unit/transactionBuilder/nominateBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/nominateBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/nominateBuilder.js +169 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
|
@@ -14,4 +14,8 @@ export declare const TPOLYX_ADDRESS_FORMAT = 42;
|
|
|
14
14
|
* DIDs are 32-byte hex strings (0x prefix + 64 hex characters)
|
|
15
15
|
*/
|
|
16
16
|
export declare const POLYX_DID_REGEX: RegExp;
|
|
17
|
+
/** 32-byte memo as 0x-prefixed hex (same shape as POLYX_DID_REGEX). */
|
|
18
|
+
export declare const MEMO_HEX_REGEX: RegExp;
|
|
19
|
+
/** Maximum UTF-8 byte length for an on-chain Polymesh memo. */
|
|
20
|
+
export declare const MEMO_MAX_BYTES = 32;
|
|
17
21
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAwB,CAAC;AAErD,uEAAuE;AACvE,eAAO,MAAM,cAAc,QAAkB,CAAC;AAE9C,+DAA+D;AAC/D,eAAO,MAAM,cAAc,KAAK,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Address format constants for Polyx networks
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.POLYX_DID_REGEX = exports.TPOLYX_ADDRESS_FORMAT = exports.POLYX_ADDRESS_FORMAT = void 0;
|
|
6
|
+
exports.MEMO_MAX_BYTES = exports.MEMO_HEX_REGEX = exports.POLYX_DID_REGEX = exports.TPOLYX_ADDRESS_FORMAT = exports.POLYX_ADDRESS_FORMAT = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* Polyx mainnet address format
|
|
9
9
|
*/
|
|
@@ -17,4 +17,8 @@ exports.TPOLYX_ADDRESS_FORMAT = 42;
|
|
|
17
17
|
* DIDs are 32-byte hex strings (0x prefix + 64 hex characters)
|
|
18
18
|
*/
|
|
19
19
|
exports.POLYX_DID_REGEX = /^0x[a-fA-F0-9]{64}$/;
|
|
20
|
-
|
|
20
|
+
/** 32-byte memo as 0x-prefixed hex (same shape as POLYX_DID_REGEX). */
|
|
21
|
+
exports.MEMO_HEX_REGEX = exports.POLYX_DID_REGEX;
|
|
22
|
+
/** Maximum UTF-8 byte length for an on-chain Polymesh memo. */
|
|
23
|
+
exports.MEMO_MAX_BYTES = 32;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSDs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBRXZDOztHQUVHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFFeEM7OztHQUdHO0FBQ1UsUUFBQSxlQUFlLEdBQUcscUJBQXFCLENBQUM7QUFFckQsdUVBQXVFO0FBQzFELFFBQUEsY0FBYyxHQUFHLHVCQUFlLENBQUM7QUFFOUMsK0RBQStEO0FBQ2xELFFBQUEsY0FBYyxHQUFHLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRkcmVzcyBmb3JtYXQgY29uc3RhbnRzIGZvciBQb2x5eCBuZXR3b3Jrc1xuICovXG5cbi8qKlxuICogUG9seXggbWFpbm5ldCBhZGRyZXNzIGZvcm1hdFxuICovXG5leHBvcnQgY29uc3QgUE9MWVhfQUREUkVTU19GT1JNQVQgPSAxMjtcblxuLyoqXG4gKiBUcG9seXggdGVzdG5ldCBhZGRyZXNzIGZvcm1hdFxuICovXG5leHBvcnQgY29uc3QgVFBPTFlYX0FERFJFU1NfRk9STUFUID0gNDI7XG5cbi8qKlxuICogUmVnZXggcGF0dGVybiBmb3IgdmFsaWRhdGluZyBQb2x5bWVzaCBESUQgKERlY2VudHJhbGl6ZWQgSWRlbnRpZmllcilcbiAqIERJRHMgYXJlIDMyLWJ5dGUgaGV4IHN0cmluZ3MgKDB4IHByZWZpeCArIDY0IGhleCBjaGFyYWN0ZXJzKVxuICovXG5leHBvcnQgY29uc3QgUE9MWVhfRElEX1JFR0VYID0gL14weFthLWZBLUYwLTldezY0fSQvO1xuXG4vKiogMzItYnl0ZSBtZW1vIGFzIDB4LXByZWZpeGVkIGhleCAoc2FtZSBzaGFwZSBhcyBQT0xZWF9ESURfUkVHRVgpLiAqL1xuZXhwb3J0IGNvbnN0IE1FTU9fSEVYX1JFR0VYID0gUE9MWVhfRElEX1JFR0VYO1xuXG4vKiogTWF4aW11bSBVVEYtOCBieXRlIGxlbmd0aCBmb3IgYW4gb24tY2hhaW4gUG9seW1lc2ggbWVtby4gKi9cbmV4cG9ydCBjb25zdCBNRU1PX01BWF9CWVRFUyA9IDMyO1xuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
|
+
import { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
3
|
+
/**
|
|
4
|
+
* Builds a POLYX settlement.addAndAffirmWithMediators transaction using the NEW Polymesh memo encoding:
|
|
5
|
+
* UTF-8 bytes right-padded with 0x00 to 32 bytes, passed as a 0x-prefixed hex string.
|
|
6
|
+
*
|
|
7
|
+
* OLD encoding (TokenTransferBuilder): plain string, left-padded with ASCII '0' to 32 chars.
|
|
8
|
+
* NEW encoding (this class): 0x-prefixed hex, right-padded with 0x00 to 32 bytes.
|
|
9
|
+
*/
|
|
10
|
+
export declare class HexTokenTransferBuilder extends TokenTransferBuilder {
|
|
11
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
12
|
+
/**
|
|
13
|
+
* Encode memo using the NEW Polymesh format.
|
|
14
|
+
*
|
|
15
|
+
* If the value is already a 0x-prefixed 32-byte hex string (e.g. when decoding an
|
|
16
|
+
* existing NEW-encoded transaction via fromImplementation), it is stored as-is.
|
|
17
|
+
* Otherwise the text is converted to UTF-8 hex and right-padded with 0x00 to 32 bytes.
|
|
18
|
+
*/
|
|
19
|
+
memo(memo: string): this;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=hexTokenTransferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hexTokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/hexTokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,oBAAoB;gBACnD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAWzB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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.HexTokenTransferBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
11
|
+
/**
|
|
12
|
+
* Builds a POLYX settlement.addAndAffirmWithMediators transaction using the NEW Polymesh memo encoding:
|
|
13
|
+
* UTF-8 bytes right-padded with 0x00 to 32 bytes, passed as a 0x-prefixed hex string.
|
|
14
|
+
*
|
|
15
|
+
* OLD encoding (TokenTransferBuilder): plain string, left-padded with ASCII '0' to 32 chars.
|
|
16
|
+
* NEW encoding (this class): 0x-prefixed hex, right-padded with 0x00 to 32 bytes.
|
|
17
|
+
*/
|
|
18
|
+
class HexTokenTransferBuilder extends tokenTransferBuilder_1.TokenTransferBuilder {
|
|
19
|
+
constructor(_coinConfig) {
|
|
20
|
+
super(_coinConfig);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Encode memo using the NEW Polymesh format.
|
|
24
|
+
*
|
|
25
|
+
* If the value is already a 0x-prefixed 32-byte hex string (e.g. when decoding an
|
|
26
|
+
* existing NEW-encoded transaction via fromImplementation), it is stored as-is.
|
|
27
|
+
* Otherwise the text is converted to UTF-8 hex and right-padded with 0x00 to 32 bytes.
|
|
28
|
+
*/
|
|
29
|
+
memo(memo) {
|
|
30
|
+
if (memo.startsWith('0x') && memo.length === 66) {
|
|
31
|
+
if (!constants_1.MEMO_HEX_REGEX.test(memo)) {
|
|
32
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid memo hex encoding: ${memo}`);
|
|
33
|
+
}
|
|
34
|
+
this._memo = memo;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this._memo = utils_1.default.encodeMemoNew(memo);
|
|
38
|
+
}
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.HexTokenTransferBuilder = HexTokenTransferBuilder;
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4VG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hleFRva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLG1EQUErRDtBQUMvRCxpRUFBOEQ7QUFDOUQsMkNBQTZDO0FBQzdDLG9EQUE0QjtBQUU1Qjs7Ozs7O0dBTUc7QUFDSCxNQUFhLHVCQUF3QixTQUFRLDJDQUFvQjtJQUMvRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUF2QkQsMERBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgTUVNT19IRVhfUkVHRVggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQnVpbGRzIGEgUE9MWVggc2V0dGxlbWVudC5hZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBORVcgUG9seW1lc2ggbWVtbyBlbmNvZGluZzpcbiAqIFVURi04IGJ5dGVzIHJpZ2h0LXBhZGRlZCB3aXRoIDB4MDAgdG8gMzIgYnl0ZXMsIHBhc3NlZCBhcyBhIDB4LXByZWZpeGVkIGhleCBzdHJpbmcuXG4gKlxuICogT0xEIGVuY29kaW5nIChUb2tlblRyYW5zZmVyQnVpbGRlcik6IHBsYWluIHN0cmluZywgbGVmdC1wYWRkZWQgd2l0aCBBU0NJSSAnMCcgdG8gMzIgY2hhcnMuXG4gKiBORVcgZW5jb2RpbmcgKHRoaXMgY2xhc3MpOiAgICAgICAgICAgMHgtcHJlZml4ZWQgaGV4LCByaWdodC1wYWRkZWQgd2l0aCAweDAwIHRvIDMyIGJ5dGVzLlxuICovXG5leHBvcnQgY2xhc3MgSGV4VG9rZW5UcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgbWVtbyB1c2luZyB0aGUgTkVXIFBvbHltZXNoIGZvcm1hdC5cbiAgICpcbiAgICogSWYgdGhlIHZhbHVlIGlzIGFscmVhZHkgYSAweC1wcmVmaXhlZCAzMi1ieXRlIGhleCBzdHJpbmcgKGUuZy4gd2hlbiBkZWNvZGluZyBhblxuICAgKiBleGlzdGluZyBORVctZW5jb2RlZCB0cmFuc2FjdGlvbiB2aWEgZnJvbUltcGxlbWVudGF0aW9uKSwgaXQgaXMgc3RvcmVkIGFzLWlzLlxuICAgKiBPdGhlcndpc2UgdGhlIHRleHQgaXMgY29udmVydGVkIHRvIFVURi04IGhleCBhbmQgcmlnaHQtcGFkZGVkIHdpdGggMHgwMCB0byAzMiBieXRlcy5cbiAgICovXG4gIG1lbW8obWVtbzogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKG1lbW8uc3RhcnRzV2l0aCgnMHgnKSAmJiBtZW1vLmxlbmd0aCA9PT0gNjYpIHtcbiAgICAgIGlmICghTUVNT19IRVhfUkVHRVgudGVzdChtZW1vKSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgbWVtbyBoZXggZW5jb2Rpbmc6ICR7bWVtb31gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX21lbW8gPSBtZW1vO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9tZW1vID0gdXRpbHMuZW5jb2RlTWVtb05ldyhtZW1vKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
|
+
import { TransferBuilder } from './transferBuilder';
|
|
3
|
+
/**
|
|
4
|
+
* Builds a POLYX transferWithMemo transaction using the NEW Polymesh memo encoding:
|
|
5
|
+
* UTF-8 bytes right-padded with 0x00 to 32 bytes, passed as a 0x-prefixed hex string.
|
|
6
|
+
*
|
|
7
|
+
* OLD encoding (TransferBuilder): plain string, left-padded with ASCII '0' to 32 chars.
|
|
8
|
+
* NEW encoding (this class): 0x-prefixed hex, right-padded with 0x00 to 32 bytes.
|
|
9
|
+
*
|
|
10
|
+
* Same intended memo produces different on-chain bytes depending on which builder is used.
|
|
11
|
+
* Use this builder when the recipient or downstream tooling expects Polymesh-native encoding.
|
|
12
|
+
*/
|
|
13
|
+
export declare class HexTransferBuilder extends TransferBuilder {
|
|
14
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
15
|
+
/**
|
|
16
|
+
* Encode memo using the NEW Polymesh format.
|
|
17
|
+
*
|
|
18
|
+
* If the value is already a 0x-prefixed 32-byte hex string (e.g. when decoding an
|
|
19
|
+
* existing NEW-encoded transaction via fromImplementation), it is stored as-is.
|
|
20
|
+
* Otherwise the text is converted to UTF-8 hex and right-padded with 0x00 to 32 bytes.
|
|
21
|
+
*
|
|
22
|
+
* @param memo The intended memo string (e.g. "56594", "testmemo")
|
|
23
|
+
*/
|
|
24
|
+
memo(memo: string): this;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=hexTransferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hexTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/hexTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAYzB"}
|
|
@@ -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.HexTransferBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const transferBuilder_1 = require("./transferBuilder");
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
11
|
+
/**
|
|
12
|
+
* Builds a POLYX transferWithMemo transaction using the NEW Polymesh memo encoding:
|
|
13
|
+
* UTF-8 bytes right-padded with 0x00 to 32 bytes, passed as a 0x-prefixed hex string.
|
|
14
|
+
*
|
|
15
|
+
* OLD encoding (TransferBuilder): plain string, left-padded with ASCII '0' to 32 chars.
|
|
16
|
+
* NEW encoding (this class): 0x-prefixed hex, right-padded with 0x00 to 32 bytes.
|
|
17
|
+
*
|
|
18
|
+
* Same intended memo produces different on-chain bytes depending on which builder is used.
|
|
19
|
+
* Use this builder when the recipient or downstream tooling expects Polymesh-native encoding.
|
|
20
|
+
*/
|
|
21
|
+
class HexTransferBuilder extends transferBuilder_1.TransferBuilder {
|
|
22
|
+
constructor(_coinConfig) {
|
|
23
|
+
super(_coinConfig);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Encode memo using the NEW Polymesh format.
|
|
27
|
+
*
|
|
28
|
+
* If the value is already a 0x-prefixed 32-byte hex string (e.g. when decoding an
|
|
29
|
+
* existing NEW-encoded transaction via fromImplementation), it is stored as-is.
|
|
30
|
+
* Otherwise the text is converted to UTF-8 hex and right-padded with 0x00 to 32 bytes.
|
|
31
|
+
*
|
|
32
|
+
* @param memo The intended memo string (e.g. "56594", "testmemo")
|
|
33
|
+
*/
|
|
34
|
+
memo(memo) {
|
|
35
|
+
if (memo.startsWith('0x') && memo.length === 66) {
|
|
36
|
+
if (!constants_1.MEMO_HEX_REGEX.test(memo)) {
|
|
37
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid memo hex encoding: ${memo}`);
|
|
38
|
+
}
|
|
39
|
+
// already a fully-encoded 32-byte hex memo — store as-is (round-trip from fromImplementation)
|
|
40
|
+
this._memo = memo;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this._memo = utils_1.default.encodeMemoNew(memo);
|
|
44
|
+
}
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.HexTransferBuilder = HexTransferBuilder;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4VHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9oZXhUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsbURBQStEO0FBQy9ELHVEQUFvRDtBQUNwRCwyQ0FBNkM7QUFDN0Msb0RBQTRCO0FBRTVCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsaUNBQWU7SUFDckQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCw4RkFBOEY7WUFDOUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBMUJELGdEQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgTUVNT19IRVhfUkVHRVggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQnVpbGRzIGEgUE9MWVggdHJhbnNmZXJXaXRoTWVtbyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgTkVXIFBvbHltZXNoIG1lbW8gZW5jb2Rpbmc6XG4gKiBVVEYtOCBieXRlcyByaWdodC1wYWRkZWQgd2l0aCAweDAwIHRvIDMyIGJ5dGVzLCBwYXNzZWQgYXMgYSAweC1wcmVmaXhlZCBoZXggc3RyaW5nLlxuICpcbiAqIE9MRCBlbmNvZGluZyAoVHJhbnNmZXJCdWlsZGVyKTogcGxhaW4gc3RyaW5nLCBsZWZ0LXBhZGRlZCB3aXRoIEFTQ0lJICcwJyB0byAzMiBjaGFycy5cbiAqIE5FVyBlbmNvZGluZyAodGhpcyBjbGFzcyk6ICAgICAgMHgtcHJlZml4ZWQgaGV4LCByaWdodC1wYWRkZWQgd2l0aCAweDAwIHRvIDMyIGJ5dGVzLlxuICpcbiAqIFNhbWUgaW50ZW5kZWQgbWVtbyBwcm9kdWNlcyBkaWZmZXJlbnQgb24tY2hhaW4gYnl0ZXMgZGVwZW5kaW5nIG9uIHdoaWNoIGJ1aWxkZXIgaXMgdXNlZC5cbiAqIFVzZSB0aGlzIGJ1aWxkZXIgd2hlbiB0aGUgcmVjaXBpZW50IG9yIGRvd25zdHJlYW0gdG9vbGluZyBleHBlY3RzIFBvbHltZXNoLW5hdGl2ZSBlbmNvZGluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIEhleFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zZmVyQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgbWVtbyB1c2luZyB0aGUgTkVXIFBvbHltZXNoIGZvcm1hdC5cbiAgICpcbiAgICogSWYgdGhlIHZhbHVlIGlzIGFscmVhZHkgYSAweC1wcmVmaXhlZCAzMi1ieXRlIGhleCBzdHJpbmcgKGUuZy4gd2hlbiBkZWNvZGluZyBhblxuICAgKiBleGlzdGluZyBORVctZW5jb2RlZCB0cmFuc2FjdGlvbiB2aWEgZnJvbUltcGxlbWVudGF0aW9uKSwgaXQgaXMgc3RvcmVkIGFzLWlzLlxuICAgKiBPdGhlcndpc2UgdGhlIHRleHQgaXMgY29udmVydGVkIHRvIFVURi04IGhleCBhbmQgcmlnaHQtcGFkZGVkIHdpdGggMHgwMCB0byAzMiBieXRlcy5cbiAgICpcbiAgICogQHBhcmFtIG1lbW8gVGhlIGludGVuZGVkIG1lbW8gc3RyaW5nIChlLmcuIFwiNTY1OTRcIiwgXCJ0ZXN0bWVtb1wiKVxuICAgKi9cbiAgbWVtbyhtZW1vOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAobWVtby5zdGFydHNXaXRoKCcweCcpICYmIG1lbW8ubGVuZ3RoID09PSA2Nikge1xuICAgICAgaWYgKCFNRU1PX0hFWF9SRUdFWC50ZXN0KG1lbW8pKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBtZW1vIGhleCBlbmNvZGluZzogJHttZW1vfWApO1xuICAgICAgfVxuICAgICAgLy8gYWxyZWFkeSBhIGZ1bGx5LWVuY29kZWQgMzItYnl0ZSBoZXggbWVtbyDigJQgc3RvcmUgYXMtaXMgKHJvdW5kLXRyaXAgZnJvbSBmcm9tSW1wbGVtZW50YXRpb24pXG4gICAgICB0aGlzLl9tZW1vID0gbWVtbztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbWVtbyA9IHV0aWxzLmVuY29kZU1lbW9OZXcobWVtbyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -2,13 +2,16 @@ export { Constants, Errors, Interface, KeyPair, SingletonRegistry, Transaction,
|
|
|
2
2
|
export { TransactionBuilderFactory } from './transactionBuilderFactory';
|
|
3
3
|
export { PolyxBaseBuilder } from './baseBuilder';
|
|
4
4
|
export { TransferBuilder } from './transferBuilder';
|
|
5
|
+
export { HexTransferBuilder } from './hexTransferBuilder';
|
|
5
6
|
export { RegisterDidWithCDDBuilder } from './registerDidWithCDDBuilder';
|
|
6
7
|
export { PreApproveAssetBuilder } from './preApproveAssetBuilder';
|
|
7
8
|
export { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
9
|
+
export { HexTokenTransferBuilder } from './hexTokenTransferBuilder';
|
|
8
10
|
export { RejectInstructionBuilder } from './rejectInstructionBuilder';
|
|
9
11
|
export { Transaction as PolyxTransaction } from './transaction';
|
|
10
12
|
export { BondExtraBuilder } from './bondExtraBuilder';
|
|
11
13
|
export { BatchStakingBuilder as BatchBuilder } from './batchStakingBuilder';
|
|
14
|
+
export { NominateBuilder } from './nominateBuilder';
|
|
12
15
|
export { BatchUnstakingBuilder } from './batchUnstakingBuilder';
|
|
13
16
|
export { UnbondBuilder } from './unbondBuilder';
|
|
14
17
|
export { WithdrawUnbondedBuilder } from './withdrawUnbondedBuilder';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAClD,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAClD,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAAqC,CAAC"}
|
package/dist/src/lib/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.isValidDid = exports.utils = exports.Utils = exports.WithdrawUnbondedBuilder = exports.UnbondBuilder = exports.BatchUnstakingBuilder = exports.BatchBuilder = exports.BondExtraBuilder = exports.PolyxTransaction = exports.RejectInstructionBuilder = exports.TokenTransferBuilder = exports.PreApproveAssetBuilder = exports.RegisterDidWithCDDBuilder = exports.TransferBuilder = exports.PolyxBaseBuilder = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.SingletonRegistry = exports.KeyPair = exports.Interface = exports.Errors = exports.Constants = void 0;
|
|
20
|
+
exports.isValidDid = exports.utils = exports.Utils = exports.WithdrawUnbondedBuilder = exports.UnbondBuilder = exports.BatchUnstakingBuilder = exports.NominateBuilder = exports.BatchBuilder = exports.BondExtraBuilder = exports.PolyxTransaction = exports.RejectInstructionBuilder = exports.HexTokenTransferBuilder = exports.TokenTransferBuilder = exports.PreApproveAssetBuilder = exports.RegisterDidWithCDDBuilder = exports.HexTransferBuilder = exports.TransferBuilder = exports.PolyxBaseBuilder = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.SingletonRegistry = exports.KeyPair = exports.Interface = exports.Errors = exports.Constants = void 0;
|
|
21
21
|
var abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
|
|
22
22
|
Object.defineProperty(exports, "Constants", { enumerable: true, get: function () { return abstract_substrate_1.Constants; } });
|
|
23
23
|
Object.defineProperty(exports, "Errors", { enumerable: true, get: function () { return abstract_substrate_1.Errors; } });
|
|
@@ -32,12 +32,16 @@ var baseBuilder_1 = require("./baseBuilder");
|
|
|
32
32
|
Object.defineProperty(exports, "PolyxBaseBuilder", { enumerable: true, get: function () { return baseBuilder_1.PolyxBaseBuilder; } });
|
|
33
33
|
var transferBuilder_1 = require("./transferBuilder");
|
|
34
34
|
Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
|
|
35
|
+
var hexTransferBuilder_1 = require("./hexTransferBuilder");
|
|
36
|
+
Object.defineProperty(exports, "HexTransferBuilder", { enumerable: true, get: function () { return hexTransferBuilder_1.HexTransferBuilder; } });
|
|
35
37
|
var registerDidWithCDDBuilder_1 = require("./registerDidWithCDDBuilder");
|
|
36
38
|
Object.defineProperty(exports, "RegisterDidWithCDDBuilder", { enumerable: true, get: function () { return registerDidWithCDDBuilder_1.RegisterDidWithCDDBuilder; } });
|
|
37
39
|
var preApproveAssetBuilder_1 = require("./preApproveAssetBuilder");
|
|
38
40
|
Object.defineProperty(exports, "PreApproveAssetBuilder", { enumerable: true, get: function () { return preApproveAssetBuilder_1.PreApproveAssetBuilder; } });
|
|
39
41
|
var tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
40
42
|
Object.defineProperty(exports, "TokenTransferBuilder", { enumerable: true, get: function () { return tokenTransferBuilder_1.TokenTransferBuilder; } });
|
|
43
|
+
var hexTokenTransferBuilder_1 = require("./hexTokenTransferBuilder");
|
|
44
|
+
Object.defineProperty(exports, "HexTokenTransferBuilder", { enumerable: true, get: function () { return hexTokenTransferBuilder_1.HexTokenTransferBuilder; } });
|
|
41
45
|
var rejectInstructionBuilder_1 = require("./rejectInstructionBuilder");
|
|
42
46
|
Object.defineProperty(exports, "RejectInstructionBuilder", { enumerable: true, get: function () { return rejectInstructionBuilder_1.RejectInstructionBuilder; } });
|
|
43
47
|
var transaction_1 = require("./transaction");
|
|
@@ -46,6 +50,8 @@ var bondExtraBuilder_1 = require("./bondExtraBuilder");
|
|
|
46
50
|
Object.defineProperty(exports, "BondExtraBuilder", { enumerable: true, get: function () { return bondExtraBuilder_1.BondExtraBuilder; } });
|
|
47
51
|
var batchStakingBuilder_1 = require("./batchStakingBuilder");
|
|
48
52
|
Object.defineProperty(exports, "BatchBuilder", { enumerable: true, get: function () { return batchStakingBuilder_1.BatchStakingBuilder; } });
|
|
53
|
+
var nominateBuilder_1 = require("./nominateBuilder");
|
|
54
|
+
Object.defineProperty(exports, "NominateBuilder", { enumerable: true, get: function () { return nominateBuilder_1.NominateBuilder; } });
|
|
49
55
|
var batchUnstakingBuilder_1 = require("./batchUnstakingBuilder");
|
|
50
56
|
Object.defineProperty(exports, "BatchUnstakingBuilder", { enumerable: true, get: function () { return batchUnstakingBuilder_1.BatchUnstakingBuilder; } });
|
|
51
57
|
var unbondBuilder_1 = require("./unbondBuilder");
|
|
@@ -66,4 +72,4 @@ __exportStar(require("./iface"), exports);
|
|
|
66
72
|
*/
|
|
67
73
|
const isValidDid = (did) => utils_1.default.isValidDid(did);
|
|
68
74
|
exports.isValidDid = isValidDid;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUVBUXdDO0FBUHRDLCtHQUFBLFNBQVMsT0FBQTtBQUNULDRHQUFBLE1BQU0sT0FBQTtBQUNOLCtHQUFBLFNBQVMsT0FBQTtBQUNULDZHQUFBLE9BQU8sT0FBQTtBQUNQLHVIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLGlIQUFBLFdBQVcsT0FBQTtBQUNYLHdIQUFBLGtCQUFrQixPQUFBO0FBR3BCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQTtBQUNsQyw2Q0FBaUQ7QUFBeEMsK0dBQUEsZ0JBQWdCLE9BQUE7QUFDekIscURBQW9EO0FBQTNDLGtIQUFBLGVBQWUsT0FBQTtBQUN4QiwyREFBMEQ7QUFBakQsd0hBQUEsa0JBQWtCLE9BQUE7QUFDM0IseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBO0FBQ2xDLG1FQUFrRTtBQUF6RCxnSUFBQSxzQkFBc0IsT0FBQTtBQUMvQiwrREFBOEQ7QUFBckQsNEhBQUEsb0JBQW9CLE9BQUE7QUFDN0IscUVBQW9FO0FBQTNELGtJQUFBLHVCQUF1QixPQUFBO0FBQ2hDLHVFQUFzRTtBQUE3RCxvSUFBQSx3QkFBd0IsT0FBQTtBQUNqQyw2Q0FBZ0U7QUFBdkQsK0dBQUEsV0FBVyxPQUFvQjtBQUN4Qyx1REFBc0Q7QUFBN0Msb0hBQUEsZ0JBQWdCLE9BQUE7QUFDekIsNkRBQTRFO0FBQW5FLG1IQUFBLG1CQUFtQixPQUFnQjtBQUM1QyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLGlFQUFnRTtBQUF2RCw4SEFBQSxxQkFBcUIsT0FBQTtBQUM5QixpREFBZ0Q7QUFBdkMsOEdBQUEsYUFBYSxPQUFBO0FBQ3RCLHFFQUFvRTtBQUEzRCxrSUFBQSx1QkFBdUIsT0FBQTtBQUNoQyxvREFBaUM7QUFDakMsaUNBQWtEO0FBQXpDLDhGQUFBLEtBQUssT0FBQTtBQUFFLCtHQUFBLE9BQU8sT0FBUztBQUNoQywwQ0FBd0I7QUFJeEI7Ozs7OztHQU1HO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFXLEVBQVcsRUFBRSxDQUFDLGVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFBbEUsUUFBQSxVQUFVLGNBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgQ29uc3RhbnRzLFxuICBFcnJvcnMsXG4gIEludGVyZmFjZSxcbiAgS2V5UGFpcixcbiAgU2luZ2xldG9uUmVnaXN0cnksXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkJ1aWxkZXIsXG59IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXN1YnN0cmF0ZSc7XG5cbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgUG9seXhCYXNlQnVpbGRlciB9IGZyb20gJy4vYmFzZUJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgSGV4VHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9oZXhUcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgUmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlciB9IGZyb20gJy4vcmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlcic7XG5leHBvcnQgeyBQcmVBcHByb3ZlQXNzZXRCdWlsZGVyIH0gZnJvbSAnLi9wcmVBcHByb3ZlQXNzZXRCdWlsZGVyJztcbmV4cG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBIZXhUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vaGV4VG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgUmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9yZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24gYXMgUG9seXhUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgQm9uZEV4dHJhQnVpbGRlciB9IGZyb20gJy4vYm9uZEV4dHJhQnVpbGRlcic7XG5leHBvcnQgeyBCYXRjaFN0YWtpbmdCdWlsZGVyIGFzIEJhdGNoQnVpbGRlciB9IGZyb20gJy4vYmF0Y2hTdGFraW5nQnVpbGRlcic7XG5leHBvcnQgeyBOb21pbmF0ZUJ1aWxkZXIgfSBmcm9tICcuL25vbWluYXRlQnVpbGRlcic7XG5leHBvcnQgeyBCYXRjaFVuc3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL2JhdGNoVW5zdGFraW5nQnVpbGRlcic7XG5leHBvcnQgeyBVbmJvbmRCdWlsZGVyIH0gZnJvbSAnLi91bmJvbmRCdWlsZGVyJztcbmV4cG9ydCB7IFdpdGhkcmF3VW5ib25kZWRCdWlsZGVyIH0gZnJvbSAnLi93aXRoZHJhd1VuYm9uZGVkQnVpbGRlcic7XG5pbXBvcnQgcG9seXhVdGlscyBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IFV0aWxzLCBkZWZhdWx0IGFzIHV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IHsgQm9uZEFyZ3MsIE5vbWluYXRlQXJncywgQmF0Y2hDYWxsT2JqZWN0LCBCYXRjaEFyZ3MgfSBmcm9tICcuL2lmYWNlJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBzdHJpbmcgaXMgYSB2YWxpZCBQb2x5bWVzaCBESUQgKERlY2VudHJhbGl6ZWQgSWRlbnRpZmllcilcbiAqIERJRHMgYXJlIDMyLWJ5dGUgaGV4IHN0cmluZ3MgKDB4IHByZWZpeCArIDY0IGhleCBjaGFyYWN0ZXJzKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaWQgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB2YWxpZCBESUQgZm9ybWF0LCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGNvbnN0IGlzVmFsaWREaWQgPSAoZGlkOiBzdHJpbmcpOiBib29sZWFuID0+IHBvbHl4VXRpbHMuaXNWYWxpZERpZChkaWQpO1xuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Transaction } from './transaction';
|
|
2
|
+
import { PolyxBaseBuilder } from './baseBuilder';
|
|
3
|
+
import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
4
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
5
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
6
|
+
export declare class NominateBuilder extends PolyxBaseBuilder {
|
|
7
|
+
protected _validators: string[];
|
|
8
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
9
|
+
protected get transactionType(): TransactionType;
|
|
10
|
+
validators(validators: string[]): this;
|
|
11
|
+
getValidators(): string[];
|
|
12
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
13
|
+
validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
|
|
14
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
15
|
+
validateTransaction(tx: Transaction): void;
|
|
16
|
+
private validateFields;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=nominateBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nominateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/nominateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKhF,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;gBAEzB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IActC,aAAa,IAAI,MAAM,EAAE;IAIzB,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAUjD,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAsBrF,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAuBjE,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAK1C,OAAO,CAAC,cAAc;CAUvB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
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.NominateBuilder = void 0;
|
|
7
|
+
const baseBuilder_1 = require("./baseBuilder");
|
|
8
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
9
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
|
+
const txnSchema_1 = require("./txnSchema");
|
|
11
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
12
|
+
class NominateBuilder extends baseBuilder_1.PolyxBaseBuilder {
|
|
13
|
+
constructor(_coinConfig) {
|
|
14
|
+
super(_coinConfig);
|
|
15
|
+
this._validators = [];
|
|
16
|
+
this.material(utils_1.default.getMaterial(_coinConfig.network.type));
|
|
17
|
+
}
|
|
18
|
+
get transactionType() {
|
|
19
|
+
return sdk_core_1.TransactionType.StakingVote;
|
|
20
|
+
}
|
|
21
|
+
validators(validators) {
|
|
22
|
+
if (validators.length === 0) {
|
|
23
|
+
throw new sdk_core_1.InvalidTransactionError('validators must have at least 1 entry');
|
|
24
|
+
}
|
|
25
|
+
if (validators.length > 16) {
|
|
26
|
+
throw new sdk_core_1.InvalidTransactionError('validators must have at most 16 entries');
|
|
27
|
+
}
|
|
28
|
+
for (const address of validators) {
|
|
29
|
+
this.validateAddress({ address });
|
|
30
|
+
}
|
|
31
|
+
this._validators = validators;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
getValidators() {
|
|
35
|
+
return this._validators;
|
|
36
|
+
}
|
|
37
|
+
buildTransaction() {
|
|
38
|
+
if (this._validators.length === 0) {
|
|
39
|
+
throw new sdk_core_1.InvalidTransactionError('validators must have at least 1 entry');
|
|
40
|
+
}
|
|
41
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
42
|
+
return txwrapper_polkadot_1.methods.staking.nominate({ targets: this._validators }, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
43
|
+
}
|
|
44
|
+
validateDecodedTransaction(decodedTxn) {
|
|
45
|
+
const methodName = decodedTxn.method?.name;
|
|
46
|
+
if (methodName !== 'nominate') {
|
|
47
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid transaction type: ${methodName}`);
|
|
48
|
+
}
|
|
49
|
+
const args = decodedTxn.method.args;
|
|
50
|
+
const targetAddresses = args.targets.map((target) => {
|
|
51
|
+
if (typeof target === 'string') {
|
|
52
|
+
return target;
|
|
53
|
+
}
|
|
54
|
+
else if (target && typeof target === 'object' && 'id' in target) {
|
|
55
|
+
return target.id;
|
|
56
|
+
}
|
|
57
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid target format: ${JSON.stringify(target)}`);
|
|
58
|
+
});
|
|
59
|
+
const validationResult = txnSchema_1.NominateTransactionSchema.validate({ validators: targetAddresses });
|
|
60
|
+
if (validationResult.error) {
|
|
61
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid nominate args: ${validationResult.error.message}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
fromImplementation(rawTransaction) {
|
|
65
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
66
|
+
if (this._method?.name !== 'nominate') {
|
|
67
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected nominate`);
|
|
68
|
+
}
|
|
69
|
+
if (this._method) {
|
|
70
|
+
const args = this._method.args;
|
|
71
|
+
const targetAddresses = args.targets.map((target) => {
|
|
72
|
+
if (typeof target === 'string') {
|
|
73
|
+
return target;
|
|
74
|
+
}
|
|
75
|
+
else if (target && typeof target === 'object' && 'id' in target) {
|
|
76
|
+
return target.id;
|
|
77
|
+
}
|
|
78
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid target format: ${JSON.stringify(target)}`);
|
|
79
|
+
});
|
|
80
|
+
this._validators = targetAddresses;
|
|
81
|
+
}
|
|
82
|
+
return tx;
|
|
83
|
+
}
|
|
84
|
+
validateTransaction(tx) {
|
|
85
|
+
super.validateTransaction(tx);
|
|
86
|
+
this.validateFields();
|
|
87
|
+
}
|
|
88
|
+
validateFields() {
|
|
89
|
+
if (this._validators.length === 0) {
|
|
90
|
+
throw new sdk_core_1.InvalidTransactionError('validators must have at least 1 entry');
|
|
91
|
+
}
|
|
92
|
+
const validationResult = txnSchema_1.NominateTransactionSchema.validate({ validators: this._validators });
|
|
93
|
+
if (validationResult.error) {
|
|
94
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid transaction: ${validationResult.error.message}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.NominateBuilder = NominateBuilder;
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9taW5hdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ub21pbmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsK0NBQWlEO0FBRWpELHNFQUF3RDtBQUV4RCxtREFBZ0Y7QUFDaEYsMkNBQXdEO0FBQ3hELG9EQUE0QjtBQUc1QixNQUFhLGVBQWdCLFNBQVEsOEJBQWdCO0lBR25ELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSFgsZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFJbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxXQUFXLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFvQjtRQUM3QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksa0NBQXVCLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsS0FBSyxNQUFNLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTNDLE9BQU8sNEJBQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRUQsMEJBQTBCLENBQUMsVUFBbUQ7UUFDNUUsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFjLENBQUM7UUFDckQsSUFBSSxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQStCLENBQUM7UUFDL0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNsRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO2lCQUFNLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ2xFLE9BQVEsTUFBeUIsQ0FBQyxFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUNELE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGdCQUFnQixHQUFHLHFDQUF5QixDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDBCQUEwQixnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRyxDQUFDO0lBQ0gsQ0FBQztJQUVTLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVwRCxJQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBZSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLHFCQUFxQixDQUFDLENBQUM7UUFDMUcsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBK0IsQ0FBQztZQUMxRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNsRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUMvQixPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQztxQkFBTSxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNsRSxPQUFRLE1BQXlCLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxDQUFDO2dCQUNELE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEYsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsbUJBQW1CLENBQUMsRUFBZTtRQUNqQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcscUNBQXlCLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHdCQUF3QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5RixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBcEdELDBDQW9HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBQb2x5eEJhc2VCdWlsZGVyIH0gZnJvbSAnLi9iYXNlQnVpbGRlcic7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBOb21pbmF0ZVRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgTm9taW5hdGVBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBOb21pbmF0ZUJ1aWxkZXIgZXh0ZW5kcyBQb2x5eEJhc2VCdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF92YWxpZGF0b3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLm1hdGVyaWFsKHV0aWxzLmdldE1hdGVyaWFsKF9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdWb3RlO1xuICB9XG5cbiAgdmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIGlmICh2YWxpZGF0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd2YWxpZGF0b3JzIG11c3QgaGF2ZSBhdCBsZWFzdCAxIGVudHJ5Jyk7XG4gICAgfVxuICAgIGlmICh2YWxpZGF0b3JzLmxlbmd0aCA+IDE2KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3ZhbGlkYXRvcnMgbXVzdCBoYXZlIGF0IG1vc3QgMTYgZW50cmllcycpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGFkZHJlc3Mgb2YgdmFsaWRhdG9ycykge1xuICAgICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIH1cbiAgICB0aGlzLl92YWxpZGF0b3JzID0gdmFsaWRhdG9ycztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldFZhbGlkYXRvcnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3JzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3ZhbGlkYXRvcnMgbXVzdCBoYXZlIGF0IGxlYXN0IDEgZW50cnknKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG5cbiAgICByZXR1cm4gbWV0aG9kcy5zdGFraW5nLm5vbWluYXRlKHsgdGFyZ2V0czogdGhpcy5fdmFsaWRhdG9ycyB9LCBiYXNlVHhJbmZvLmJhc2VUeEluZm8sIGJhc2VUeEluZm8ub3B0aW9ucyk7XG4gIH1cblxuICB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiB2b2lkIHtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgYXMgc3RyaW5nO1xuICAgIGlmIChtZXRob2ROYW1lICE9PSAnbm9taW5hdGUnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb24gdHlwZTogJHttZXRob2ROYW1lfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGFyZ3MgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgTm9taW5hdGVBcmdzO1xuICAgIGNvbnN0IHRhcmdldEFkZHJlc3NlcyA9IGFyZ3MudGFyZ2V0cy5tYXAoKHRhcmdldCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldCAmJiB0eXBlb2YgdGFyZ2V0ID09PSAnb2JqZWN0JyAmJiAnaWQnIGluIHRhcmdldCkge1xuICAgICAgICByZXR1cm4gKHRhcmdldCBhcyB7IGlkOiBzdHJpbmcgfSkuaWQ7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdGFyZ2V0IGZvcm1hdDogJHtKU09OLnN0cmluZ2lmeSh0YXJnZXQpfWApO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IE5vbWluYXRlVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyB2YWxpZGF0b3JzOiB0YXJnZXRBZGRyZXNzZXMgfSk7XG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBub21pbmF0ZSBhcmdzOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuXG4gICAgaWYgKCh0aGlzLl9tZXRob2Q/Lm5hbWUgYXMgc3RyaW5nKSAhPT0gJ25vbWluYXRlJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7dGhpcy5fbWV0aG9kPy5uYW1lfS4gRXhwZWN0ZWQgbm9taW5hdGVgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbWV0aG9kKSB7XG4gICAgICBjb25zdCBhcmdzID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBOb21pbmF0ZUFyZ3M7XG4gICAgICBjb25zdCB0YXJnZXRBZGRyZXNzZXMgPSBhcmdzLnRhcmdldHMubWFwKCh0YXJnZXQpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldCA9PT0gJ29iamVjdCcgJiYgJ2lkJyBpbiB0YXJnZXQpIHtcbiAgICAgICAgICByZXR1cm4gKHRhcmdldCBhcyB7IGlkOiBzdHJpbmcgfSkuaWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRhcmdldCBmb3JtYXQ6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0KX1gKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fdmFsaWRhdG9ycyA9IHRhcmdldEFkZHJlc3NlcztcbiAgICB9XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24odHgpO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3ZhbGlkYXRvcnMgbXVzdCBoYXZlIGF0IGxlYXN0IDEgZW50cnknKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gTm9taW5hdGVUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHZhbGlkYXRvcnM6IHRoaXMuX3ZhbGlkYXRvcnMgfSk7XG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0cmFuc2FjdGlvbjogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
3
|
import { TransferBuilder } from './transferBuilder';
|
|
4
|
+
import { HexTransferBuilder } from './hexTransferBuilder';
|
|
4
5
|
import { RegisterDidWithCDDBuilder } from './registerDidWithCDDBuilder';
|
|
5
6
|
import { BondExtraBuilder } from './bondExtraBuilder';
|
|
6
7
|
import { BatchStakingBuilder } from './batchStakingBuilder';
|
|
@@ -13,21 +14,26 @@ import { Transaction as BaseTransaction } from '@bitgo-beta/abstract-substrate';
|
|
|
13
14
|
import { Transaction as PolyxTransaction } from './transaction';
|
|
14
15
|
import { PreApproveAssetBuilder } from './preApproveAssetBuilder';
|
|
15
16
|
import { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
17
|
+
import { HexTokenTransferBuilder } from './hexTokenTransferBuilder';
|
|
16
18
|
import { RejectInstructionBuilder } from './rejectInstructionBuilder';
|
|
19
|
+
import { NominateBuilder } from './nominateBuilder';
|
|
17
20
|
export type SupportedTransaction = BaseTransaction | PolyxTransaction;
|
|
18
21
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
19
22
|
protected _material: Interface.Material;
|
|
20
23
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
21
24
|
getTransferBuilder(): TransferBuilder;
|
|
25
|
+
getHexTransferBuilder(): HexTransferBuilder;
|
|
22
26
|
getRegisterDidWithCDDBuilder(): RegisterDidWithCDDBuilder;
|
|
23
27
|
getPreApproveAssetBuilder(): PreApproveAssetBuilder;
|
|
24
28
|
getTokenTransferBuilder(): TokenTransferBuilder;
|
|
29
|
+
getHexTokenTransferBuilder(): HexTokenTransferBuilder;
|
|
25
30
|
getRejectInstructionBuilder(): RejectInstructionBuilder;
|
|
26
31
|
getBondExtraBuilder(): BondExtraBuilder;
|
|
27
32
|
getBatchBuilder(): BatchStakingBuilder;
|
|
28
33
|
getBatchUnstakingBuilder(): BatchUnstakingBuilder;
|
|
29
34
|
getUnbondBuilder(): UnbondBuilder;
|
|
30
35
|
getWithdrawUnbondedBuilder(): WithdrawUnbondedBuilder;
|
|
36
|
+
getNominateBuilder(): NominateBuilder;
|
|
31
37
|
getWalletInitializationBuilder(): void;
|
|
32
38
|
from(rawTxn: string): TransactionBuilder<TxMethod, SupportedTransaction>;
|
|
33
39
|
material(material: Interface.Material): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAuB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAqB,kBAAkB,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAuB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAqB,kBAAkB,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,QAAQ,EAA+D,MAAM,SAAS,CAAC;AAChG,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEtE,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC;gBAE5B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,kBAAkB,IAAI,eAAe;IAIrC,qBAAqB,IAAI,kBAAkB;IAI3C,4BAA4B,IAAI,yBAAyB;IAIzD,yBAAyB,IAAI,sBAAsB;IAInD,uBAAuB,IAAI,oBAAoB;IAI/C,0BAA0B,IAAI,uBAAuB;IAIrD,2BAA2B,IAAI,wBAAwB;IAIvD,mBAAmB,IAAI,gBAAgB;IAIvC,eAAe,IAAI,mBAAmB;IAItC,wBAAwB,IAAI,qBAAqB;IAIjD,gBAAgB,IAAI,aAAa;IAIjC,0BAA0B,IAAI,uBAAuB;IAIrD,kBAAkB,IAAI,eAAe;IAIrC,8BAA8B,IAAI,IAAI;IAItC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IAMxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI;IAK5C,OAAO,CAAC,UAAU;CA6DnB"}
|