@bitgo/sdk-coin-polyx 1.16.4 → 1.17.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/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 +2 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -2
- package/dist/src/lib/transactionBuilderFactory.d.ts +4 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +17 -1
- 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 +4 -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/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
|
@@ -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/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,gBAAgB,CAAC;AAExD,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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4VG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hleFRva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhDQUEwRDtBQUMxRCxpRUFBOEQ7QUFDOUQsMkNBQTZDO0FBQzdDLG9EQUE0QjtBQUU1Qjs7Ozs7O0dBTUc7QUFDSCxNQUFhLHVCQUF3QixTQUFRLDJDQUFvQjtJQUMvRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUF2QkQsMERBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBNRU1PX0hFWF9SRUdFWCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBCdWlsZHMgYSBQT0xZWCBzZXR0bGVtZW50LmFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnMgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIE5FVyBQb2x5bWVzaCBtZW1vIGVuY29kaW5nOlxuICogVVRGLTggYnl0ZXMgcmlnaHQtcGFkZGVkIHdpdGggMHgwMCB0byAzMiBieXRlcywgcGFzc2VkIGFzIGEgMHgtcHJlZml4ZWQgaGV4IHN0cmluZy5cbiAqXG4gKiBPTEQgZW5jb2RpbmcgKFRva2VuVHJhbnNmZXJCdWlsZGVyKTogcGxhaW4gc3RyaW5nLCBsZWZ0LXBhZGRlZCB3aXRoIEFTQ0lJICcwJyB0byAzMiBjaGFycy5cbiAqIE5FVyBlbmNvZGluZyAodGhpcyBjbGFzcyk6ICAgICAgICAgICAweC1wcmVmaXhlZCBoZXgsIHJpZ2h0LXBhZGRlZCB3aXRoIDB4MDAgdG8gMzIgYnl0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIZXhUb2tlblRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRva2VuVHJhbnNmZXJCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZSBtZW1vIHVzaW5nIHRoZSBORVcgUG9seW1lc2ggZm9ybWF0LlxuICAgKlxuICAgKiBJZiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBhIDB4LXByZWZpeGVkIDMyLWJ5dGUgaGV4IHN0cmluZyAoZS5nLiB3aGVuIGRlY29kaW5nIGFuXG4gICAqIGV4aXN0aW5nIE5FVy1lbmNvZGVkIHRyYW5zYWN0aW9uIHZpYSBmcm9tSW1wbGVtZW50YXRpb24pLCBpdCBpcyBzdG9yZWQgYXMtaXMuXG4gICAqIE90aGVyd2lzZSB0aGUgdGV4dCBpcyBjb252ZXJ0ZWQgdG8gVVRGLTggaGV4IGFuZCByaWdodC1wYWRkZWQgd2l0aCAweDAwIHRvIDMyIGJ5dGVzLlxuICAgKi9cbiAgbWVtbyhtZW1vOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAobWVtby5zdGFydHNXaXRoKCcweCcpICYmIG1lbW8ubGVuZ3RoID09PSA2Nikge1xuICAgICAgaWYgKCFNRU1PX0hFWF9SRUdFWC50ZXN0KG1lbW8pKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBtZW1vIGhleCBlbmNvZGluZzogJHttZW1vfWApO1xuICAgICAgfVxuICAgICAgdGhpcy5fbWVtbyA9IG1lbW87XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX21lbW8gPSB1dGlscy5lbmNvZGVNZW1vTmV3KG1lbW8pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo/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,gBAAgB,CAAC;AAExD,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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4VHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9oZXhUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOENBQTBEO0FBQzFELHVEQUFvRDtBQUNwRCwyQ0FBNkM7QUFDN0Msb0RBQTRCO0FBRTVCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsaUNBQWU7SUFDckQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCw4RkFBOEY7WUFDOUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBMUJELGdEQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBNRU1PX0hFWF9SRUdFWCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBCdWlsZHMgYSBQT0xZWCB0cmFuc2ZlcldpdGhNZW1vIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBORVcgUG9seW1lc2ggbWVtbyBlbmNvZGluZzpcbiAqIFVURi04IGJ5dGVzIHJpZ2h0LXBhZGRlZCB3aXRoIDB4MDAgdG8gMzIgYnl0ZXMsIHBhc3NlZCBhcyBhIDB4LXByZWZpeGVkIGhleCBzdHJpbmcuXG4gKlxuICogT0xEIGVuY29kaW5nIChUcmFuc2ZlckJ1aWxkZXIpOiBwbGFpbiBzdHJpbmcsIGxlZnQtcGFkZGVkIHdpdGggQVNDSUkgJzAnIHRvIDMyIGNoYXJzLlxuICogTkVXIGVuY29kaW5nICh0aGlzIGNsYXNzKTogICAgICAweC1wcmVmaXhlZCBoZXgsIHJpZ2h0LXBhZGRlZCB3aXRoIDB4MDAgdG8gMzIgYnl0ZXMuXG4gKlxuICogU2FtZSBpbnRlbmRlZCBtZW1vIHByb2R1Y2VzIGRpZmZlcmVudCBvbi1jaGFpbiBieXRlcyBkZXBlbmRpbmcgb24gd2hpY2ggYnVpbGRlciBpcyB1c2VkLlxuICogVXNlIHRoaXMgYnVpbGRlciB3aGVuIHRoZSByZWNpcGllbnQgb3IgZG93bnN0cmVhbSB0b29saW5nIGV4cGVjdHMgUG9seW1lc2gtbmF0aXZlIGVuY29kaW5nLlxuICovXG5leHBvcnQgY2xhc3MgSGV4VHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNmZXJCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZSBtZW1vIHVzaW5nIHRoZSBORVcgUG9seW1lc2ggZm9ybWF0LlxuICAgKlxuICAgKiBJZiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBhIDB4LXByZWZpeGVkIDMyLWJ5dGUgaGV4IHN0cmluZyAoZS5nLiB3aGVuIGRlY29kaW5nIGFuXG4gICAqIGV4aXN0aW5nIE5FVy1lbmNvZGVkIHRyYW5zYWN0aW9uIHZpYSBmcm9tSW1wbGVtZW50YXRpb24pLCBpdCBpcyBzdG9yZWQgYXMtaXMuXG4gICAqIE90aGVyd2lzZSB0aGUgdGV4dCBpcyBjb252ZXJ0ZWQgdG8gVVRGLTggaGV4IGFuZCByaWdodC1wYWRkZWQgd2l0aCAweDAwIHRvIDMyIGJ5dGVzLlxuICAgKlxuICAgKiBAcGFyYW0gbWVtbyBUaGUgaW50ZW5kZWQgbWVtbyBzdHJpbmcgKGUuZy4gXCI1NjU5NFwiLCBcInRlc3RtZW1vXCIpXG4gICAqL1xuICBtZW1vKG1lbW86IHN0cmluZyk6IHRoaXMge1xuICAgIGlmIChtZW1vLnN0YXJ0c1dpdGgoJzB4JykgJiYgbWVtby5sZW5ndGggPT09IDY2KSB7XG4gICAgICBpZiAoIU1FTU9fSEVYX1JFR0VYLnRlc3QobWVtbykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIG1lbW8gaGV4IGVuY29kaW5nOiAke21lbW99YCk7XG4gICAgICB9XG4gICAgICAvLyBhbHJlYWR5IGEgZnVsbHktZW5jb2RlZCAzMi1ieXRlIGhleCBtZW1vIOKAlCBzdG9yZSBhcy1pcyAocm91bmQtdHJpcCBmcm9tIGZyb21JbXBsZW1lbnRhdGlvbilcbiAgICAgIHRoaXMuX21lbW8gPSBtZW1vO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9tZW1vID0gdXRpbHMuZW5jb2RlTWVtb05ldyhtZW1vKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -2,9 +2,11 @@ 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';
|
|
@@ -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,2BAA2B,CAAC;AAEnC,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,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"}
|
|
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,2BAA2B,CAAC;AAEnC,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.NominateBuilder = 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/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");
|
|
@@ -68,4 +72,4 @@ __exportStar(require("./iface"), exports);
|
|
|
68
72
|
*/
|
|
69
73
|
const isValidDid = (did) => utils_1.default.isValidDid(did);
|
|
70
74
|
exports.isValidDid = isValidDid;
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBUW1DO0FBUGpDLCtHQUFBLFNBQVMsT0FBQTtBQUNULDRHQUFBLE1BQU0sT0FBQTtBQUNOLCtHQUFBLFNBQVMsT0FBQTtBQUNULDZHQUFBLE9BQU8sT0FBQTtBQUNQLHVIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLGlIQUFBLFdBQVcsT0FBQTtBQUNYLHdIQUFBLGtCQUFrQixPQUFBO0FBR3BCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQTtBQUNsQyw2Q0FBaUQ7QUFBeEMsK0dBQUEsZ0JBQWdCLE9BQUE7QUFDekIscURBQW9EO0FBQTNDLGtIQUFBLGVBQWUsT0FBQTtBQUN4QiwyREFBMEQ7QUFBakQsd0hBQUEsa0JBQWtCLE9BQUE7QUFDM0IseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBO0FBQ2xDLG1FQUFrRTtBQUF6RCxnSUFBQSxzQkFBc0IsT0FBQTtBQUMvQiwrREFBOEQ7QUFBckQsNEhBQUEsb0JBQW9CLE9BQUE7QUFDN0IscUVBQW9FO0FBQTNELGtJQUFBLHVCQUF1QixPQUFBO0FBQ2hDLHVFQUFzRTtBQUE3RCxvSUFBQSx3QkFBd0IsT0FBQTtBQUNqQyw2Q0FBZ0U7QUFBdkQsK0dBQUEsV0FBVyxPQUFvQjtBQUN4Qyx1REFBc0Q7QUFBN0Msb0hBQUEsZ0JBQWdCLE9BQUE7QUFDekIsNkRBQTRFO0FBQW5FLG1IQUFBLG1CQUFtQixPQUFnQjtBQUM1QyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLGlFQUFnRTtBQUF2RCw4SEFBQSxxQkFBcUIsT0FBQTtBQUM5QixpREFBZ0Q7QUFBdkMsOEdBQUEsYUFBYSxPQUFBO0FBQ3RCLHFFQUFvRTtBQUEzRCxrSUFBQSx1QkFBdUIsT0FBQTtBQUNoQyxvREFBaUM7QUFDakMsaUNBQWtEO0FBQXpDLDhGQUFBLEtBQUssT0FBQTtBQUFFLCtHQUFBLE9BQU8sT0FBUztBQUNoQywwQ0FBd0I7QUFJeEI7Ozs7OztHQU1HO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFXLEVBQVcsRUFBRSxDQUFDLGVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFBbEUsUUFBQSxVQUFVLGNBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgQ29uc3RhbnRzLFxuICBFcnJvcnMsXG4gIEludGVyZmFjZSxcbiAgS2V5UGFpcixcbiAgU2luZ2xldG9uUmVnaXN0cnksXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkJ1aWxkZXIsXG59IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1zdWJzdHJhdGUnO1xuXG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCB7IFBvbHl4QmFzZUJ1aWxkZXIgfSBmcm9tICcuL2Jhc2VCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IEhleFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vaGV4VHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIgfSBmcm9tICcuL3JlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXInO1xuZXhwb3J0IHsgUHJlQXBwcm92ZUFzc2V0QnVpbGRlciB9IGZyb20gJy4vcHJlQXBwcm92ZUFzc2V0QnVpbGRlcic7XG5leHBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgSGV4VG9rZW5UcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2hleFRva2VuVHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFJlamVjdEluc3RydWN0aW9uQnVpbGRlciB9IGZyb20gJy4vcmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uIGFzIFBvbHl4VHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCB7IEJvbmRFeHRyYUJ1aWxkZXIgfSBmcm9tICcuL2JvbmRFeHRyYUJ1aWxkZXInO1xuZXhwb3J0IHsgQmF0Y2hTdGFraW5nQnVpbGRlciBhcyBCYXRjaEJ1aWxkZXIgfSBmcm9tICcuL2JhdGNoU3Rha2luZ0J1aWxkZXInO1xuZXhwb3J0IHsgTm9taW5hdGVCdWlsZGVyIH0gZnJvbSAnLi9ub21pbmF0ZUJ1aWxkZXInO1xuZXhwb3J0IHsgQmF0Y2hVbnN0YWtpbmdCdWlsZGVyIH0gZnJvbSAnLi9iYXRjaFVuc3Rha2luZ0J1aWxkZXInO1xuZXhwb3J0IHsgVW5ib25kQnVpbGRlciB9IGZyb20gJy4vdW5ib25kQnVpbGRlcic7XG5leHBvcnQgeyBXaXRoZHJhd1VuYm9uZGVkQnVpbGRlciB9IGZyb20gJy4vd2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXInO1xuaW1wb3J0IHBvbHl4VXRpbHMgZnJvbSAnLi91dGlscyc7XG5leHBvcnQgeyBVdGlscywgZGVmYXVsdCBhcyB1dGlscyB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCB7IEJvbmRBcmdzLCBOb21pbmF0ZUFyZ3MsIEJhdGNoQ2FsbE9iamVjdCwgQmF0Y2hBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgc3RyaW5nIGlzIGEgdmFsaWQgUG9seW1lc2ggRElEIChEZWNlbnRyYWxpemVkIElkZW50aWZpZXIpXG4gKiBESURzIGFyZSAzMi1ieXRlIGhleCBzdHJpbmdzICgweCBwcmVmaXggKyA2NCBoZXggY2hhcmFjdGVycylcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlkIC0gVGhlIHN0cmluZyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdmFsaWQgRElEIGZvcm1hdCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBjb25zdCBpc1ZhbGlkRGlkID0gKGRpZDogc3RyaW5nKTogYm9vbGVhbiA9PiBwb2x5eFV0aWxzLmlzVmFsaWREaWQoZGlkKTtcbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
|
|
2
2
|
import { BaseCoin as CoinConfig } from '@bitgo/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,6 +14,7 @@ import { Transaction as BaseTransaction } from '@bitgo/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';
|
|
17
19
|
import { NominateBuilder } from './nominateBuilder';
|
|
18
20
|
export type SupportedTransaction = BaseTransaction | PolyxTransaction;
|
|
@@ -20,9 +22,11 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
|
|
|
20
22
|
protected _material: Interface.Material;
|
|
21
23
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
22
24
|
getTransferBuilder(): TransferBuilder;
|
|
25
|
+
getHexTransferBuilder(): HexTransferBuilder;
|
|
23
26
|
getRegisterDidWithCDDBuilder(): RegisterDidWithCDDBuilder;
|
|
24
27
|
getPreApproveAssetBuilder(): PreApproveAssetBuilder;
|
|
25
28
|
getTokenTransferBuilder(): TokenTransferBuilder;
|
|
29
|
+
getHexTokenTransferBuilder(): HexTokenTransferBuilder;
|
|
26
30
|
getRejectInstructionBuilder(): RejectInstructionBuilder;
|
|
27
31
|
getBondExtraBuilder(): BondExtraBuilder;
|
|
28
32
|
getBatchBuilder(): BatchStakingBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAuB,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,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,iBAAiB,CAAC;AACrF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,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,2BAA2B,CAAC;AAC3E,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"}
|
|
@@ -7,6 +7,7 @@ exports.TransactionBuilderFactory = void 0;
|
|
|
7
7
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
8
|
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
9
9
|
const transferBuilder_1 = require("./transferBuilder");
|
|
10
|
+
const hexTransferBuilder_1 = require("./hexTransferBuilder");
|
|
10
11
|
const registerDidWithCDDBuilder_1 = require("./registerDidWithCDDBuilder");
|
|
11
12
|
const bondExtraBuilder_1 = require("./bondExtraBuilder");
|
|
12
13
|
const batchStakingBuilder_1 = require("./batchStakingBuilder");
|
|
@@ -18,6 +19,7 @@ const _1 = require("./");
|
|
|
18
19
|
const iface_1 = require("./iface");
|
|
19
20
|
const preApproveAssetBuilder_1 = require("./preApproveAssetBuilder");
|
|
20
21
|
const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
22
|
+
const hexTokenTransferBuilder_1 = require("./hexTokenTransferBuilder");
|
|
21
23
|
const rejectInstructionBuilder_1 = require("./rejectInstructionBuilder");
|
|
22
24
|
const nominateBuilder_1 = require("./nominateBuilder");
|
|
23
25
|
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
@@ -28,6 +30,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
28
30
|
getTransferBuilder() {
|
|
29
31
|
return new transferBuilder_1.TransferBuilder(this._coinConfig).material(this._material);
|
|
30
32
|
}
|
|
33
|
+
getHexTransferBuilder() {
|
|
34
|
+
return new hexTransferBuilder_1.HexTransferBuilder(this._coinConfig).material(this._material);
|
|
35
|
+
}
|
|
31
36
|
getRegisterDidWithCDDBuilder() {
|
|
32
37
|
return new registerDidWithCDDBuilder_1.RegisterDidWithCDDBuilder(this._coinConfig).material(this._material);
|
|
33
38
|
}
|
|
@@ -37,6 +42,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
37
42
|
getTokenTransferBuilder() {
|
|
38
43
|
return new tokenTransferBuilder_1.TokenTransferBuilder(this._coinConfig).material(this._material);
|
|
39
44
|
}
|
|
45
|
+
getHexTokenTransferBuilder() {
|
|
46
|
+
return new hexTokenTransferBuilder_1.HexTokenTransferBuilder(this._coinConfig).material(this._material);
|
|
47
|
+
}
|
|
40
48
|
getRejectInstructionBuilder() {
|
|
41
49
|
return new rejectInstructionBuilder_1.RejectInstructionBuilder(this._coinConfig).material(this._material);
|
|
42
50
|
}
|
|
@@ -78,6 +86,10 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
78
86
|
});
|
|
79
87
|
const methodName = decodedTxn.method?.name;
|
|
80
88
|
if (methodName === _1.Interface.MethodNames.TransferWithMemo) {
|
|
89
|
+
const args = decodedTxn.method.args;
|
|
90
|
+
if (utils_1.default.isNewMemoEncoding(args.memo)) {
|
|
91
|
+
return this.getHexTransferBuilder();
|
|
92
|
+
}
|
|
81
93
|
return this.getTransferBuilder();
|
|
82
94
|
}
|
|
83
95
|
else if (methodName === iface_1.MethodNames.RegisterDidWithCDD) {
|
|
@@ -87,6 +99,10 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
87
99
|
return this.getPreApproveAssetBuilder();
|
|
88
100
|
}
|
|
89
101
|
else if (methodName === iface_1.MethodNames.AddAndAffirmWithMediators) {
|
|
102
|
+
const args = decodedTxn.method.args;
|
|
103
|
+
if (utils_1.default.isNewMemoEncoding(args.instructionMemo)) {
|
|
104
|
+
return this.getHexTokenTransferBuilder();
|
|
105
|
+
}
|
|
90
106
|
return this.getTokenTransferBuilder();
|
|
91
107
|
}
|
|
92
108
|
else if (methodName === iface_1.MethodNames.RejectInstruction) {
|
|
@@ -132,4 +148,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
132
148
|
}
|
|
133
149
|
}
|
|
134
150
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBcUY7QUFFckYsc0VBQXVEO0FBQ3ZELHVEQUFvRDtBQUNwRCwyRUFBd0U7QUFDeEUseURBQXNEO0FBQ3RELCtEQUE0RDtBQUM1RCxtRUFBZ0U7QUFDaEUsbURBQWdEO0FBQ2hELHVFQUFvRTtBQUNwRSxvREFBNEI7QUFDNUIseUJBQXNFO0FBQ3RFLG1DQUFpRTtBQUdqRSxxRUFBa0U7QUFDbEUsaUVBQThEO0FBQzlELHlFQUFzRTtBQUN0RSx1REFBb0Q7QUFJcEQsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFHMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLE9BQU8sSUFBSSxxREFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSwrQ0FBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSwyQ0FBb0Is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Q0FBQzthQUFNLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNqQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUM3QyxPQUFPLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDekYsQ0FBQztDQUNGO0FBeEhELDhEQXdIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBSZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyIH0gZnJvbSAnLi9yZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyJztcbmltcG9ydCB7IEJvbmRFeHRyYUJ1aWxkZXIgfSBmcm9tICcuL2JvbmRFeHRyYUJ1aWxkZXInO1xuaW1wb3J0IHsgQmF0Y2hTdGFraW5nQnVpbGRlciB9IGZyb20gJy4vYmF0Y2hTdGFraW5nQnVpbGRlcic7XG5pbXBvcnQgeyBCYXRjaFVuc3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL2JhdGNoVW5zdGFraW5nQnVpbGRlcic7XG5pbXBvcnQgeyBVbmJvbmRCdWlsZGVyIH0gZnJvbSAnLi91bmJvbmRCdWlsZGVyJztcbmltcG9ydCB7IFdpdGhkcmF3VW5ib25kZWRCdWlsZGVyIH0gZnJvbSAnLi93aXRoZHJhd1VuYm9uZGVkQnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBJbnRlcmZhY2UsIFNpbmdsZXRvblJlZ2lzdHJ5LCBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLyc7XG5pbXBvcnQgeyBUeE1ldGhvZCwgQmF0Y2hDYWxsT2JqZWN0LCBNZXRob2ROYW1lcyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgQmFzZVRyYW5zYWN0aW9uIH0gZnJvbSAnQGJpdGdvL2Fic3RyYWN0LXN1YnN0cmF0ZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBQb2x5eFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBQcmVBcHByb3ZlQXNzZXRCdWlsZGVyIH0gZnJvbSAnLi9wcmVBcHByb3ZlQXNzZXRCdWlsZGVyJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3JlamVjdEluc3RydWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBOb21pbmF0ZUJ1aWxkZXIgfSBmcm9tICcuL25vbWluYXRlQnVpbGRlcic7XG5cbmV4cG9ydCB0eXBlIFN1cHBvcnRlZFRyYW5zYWN0aW9uID0gQmFzZVRyYW5zYWN0aW9uIHwgUG9seXhUcmFuc2FjdGlvbjtcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIHByb3RlY3RlZCBfbWF0ZXJpYWw6IEludGVyZmFjZS5NYXRlcmlhbDtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fbWF0ZXJpYWwgPSB1dGlscy5nZXRNYXRlcmlhbChfY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUpO1xuICB9XG5cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKCk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0UmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlcigpOiBSZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0UHJlQXBwcm92ZUFzc2V0QnVpbGRlcigpOiBQcmVBcHByb3ZlQXNzZXRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFByZUFwcHJvdmVBc3NldEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0VG9rZW5UcmFuc2ZlckJ1aWxkZXIoKTogVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVG9rZW5UcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0UmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyKCk6IFJlamVjdEluc3RydWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0Qm9uZEV4dHJhQnVpbGRlcigpOiBCb25kRXh0cmFCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEJvbmRFeHRyYUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0QmF0Y2hCdWlsZGVyKCk6IEJhdGNoU3Rha2luZ0J1aWxkZXIge1xuICAgIHJldHVybiBuZXcgQmF0Y2hTdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRCYXRjaFVuc3Rha2luZ0J1aWxkZXIoKTogQmF0Y2hVbnN0YWtpbmdCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEJhdGNoVW5zdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRVbmJvbmRCdWlsZGVyKCk6IFVuYm9uZEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVW5ib25kQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRXaXRoZHJhd1VuYm9uZGVkQnVpbGRlcigpOiBXaXRoZHJhd1VuYm9uZGVkQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBXaXRoZHJhd1VuYm9uZGVkQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXROb21pbmF0ZUJ1aWxkZXIoKTogTm9taW5hdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IE5vbWluYXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoYHdhbGxldEluaXRpYWxpemF0aW9uIGZvciAke3RoaXMuX2NvaW5Db25maWcubmFtZX0gbm90IGltcGxlbWVudGVkYCk7XG4gIH1cblxuICBmcm9tKHJhd1R4bjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyPFR4TWV0aG9kLCBTdXBwb3J0ZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSB0aGlzLmdldEJ1aWxkZXIocmF3VHhuKTtcbiAgICBidWlsZGVyLmZyb20ocmF3VHhuKTtcbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIG1hdGVyaWFsKG1hdGVyaWFsOiBJbnRlcmZhY2UuTWF0ZXJpYWwpOiB0aGlzIHtcbiAgICB0aGlzLl9tYXRlcmlhbCA9IG1hdGVyaWFsO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCdWlsZGVyKHJhd1R4bjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyPFR4TWV0aG9kLCBTdXBwb3J0ZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UodGhpcy5fbWF0ZXJpYWwpO1xuICAgIGNvbnN0IGRlY29kZWRUeG4gPSBkZWNvZGUocmF3VHhuLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICByZWdpc3RyeTogcmVnaXN0cnksXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXRob2ROYW1lID0gZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWU7XG4gICAgaWYgKG1ldGhvZE5hbWUgPT09IEludGVyZmFjZS5NZXRob2ROYW1lcy5UcmFuc2ZlcldpdGhNZW1vKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IE1ldGhvZE5hbWVzLlJlZ2lzdGVyRGlkV2l0aENERCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gTWV0aG9kTmFtZXMuUHJlQXBwcm92ZUFzc2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQcmVBcHByb3ZlQXNzZXRCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSBNZXRob2ROYW1lcy5BZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUb2tlblRyYW5zZmVyQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gTWV0aG9kTmFtZXMuUmVqZWN0SW5zdHJ1Y3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlamVjdEluc3RydWN0aW9uQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ2JvbmRFeHRyYScpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEJvbmRFeHRyYUJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICdiYXRjaEFsbCcpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHsgY2FsbHM/OiBCYXRjaENhbGxPYmplY3RbXSB9O1xuXG4gICAgICBpZiAoYXJncy5jYWxscyAmJiBhcmdzLmNhbGxzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAvLyBEZWNvZGUgbWV0aG9kIG5hbWVzIGZyb20gdGhlIGNhbGxzIHVzaW5nIHV0aWxzLmRlY29kZU1ldGhvZE5hbWVcbiAgICAgICAgY29uc3QgZmlyc3RDYWxsTWV0aG9kID0gdXRpbHMuZGVjb2RlTWV0aG9kTmFtZShhcmdzLmNhbGxzWzBdLCByZWdpc3RyeSk7XG4gICAgICAgIGNvbnN0IHNlY29uZENhbGxNZXRob2QgPSB1dGlscy5kZWNvZGVNZXRob2ROYW1lKGFyZ3MuY2FsbHNbMV0sIHJlZ2lzdHJ5KTtcblxuICAgICAgICAvLyBDaGVjayBmb3IgYmF0Y2ggc3Rha2luZyBwYXR0ZXJuOiBib25kICsgbm9taW5hdGVcbiAgICAgICAgaWYgKGZpcnN0Q2FsbE1ldGhvZCA9PT0gJ2JvbmQnICYmIHNlY29uZENhbGxNZXRob2QgPT09ICdub21pbmF0ZScpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCYXRjaEJ1aWxkZXIoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDaGVjayBmb3IgYmF0Y2ggdW5zdGFraW5nIHBhdHRlcm46IGNoaWxsICsgdW5ib25kXG4gICAgICAgIGlmIChmaXJzdENhbGxNZXRob2QgPT09ICdjaGlsbCcgJiYgc2Vjb25kQ2FsbE1ldGhvZCA9PT0gJ3VuYm9uZCcpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCYXRjaFVuc3Rha2luZ0J1aWxkZXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRmFsbCBiYWNrIHRvIGdlbmVyYWwgYmF0Y2ggYnVpbGRlciBmb3Igb3RoZXIgYmF0Y2hBbGwgY2FzZXNcbiAgICAgIHJldHVybiB0aGlzLmdldEJhdGNoQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ2JhdGNoJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QmF0Y2hCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSAnYm9uZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEJhdGNoQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ25vbWluYXRlJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Tm9taW5hdGVCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSAndW5ib25kJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VW5ib25kQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ3dpdGhkcmF3VW5ib25kZWQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRXaXRoZHJhd1VuYm9uZGVkQnVpbGRlcigpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignVHJhbnNhY3Rpb24gY2Fubm90IGJlIHBhcnNlZCBvciBoYXMgYW4gdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICB9XG59XG4iXX0=
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBcUY7QUFFckYsc0VBQXVEO0FBQ3ZELHVEQUFvRDtBQUNwRCw2REFBMEQ7QUFDMUQsMkVBQXdFO0FBQ3hFLHlEQUFzRDtBQUN0RCwrREFBNEQ7QUFDNUQsbUVBQWdFO0FBQ2hFLG1EQUFnRDtBQUNoRCx1RUFBb0U7QUFDcEUsb0RBQTRCO0FBQzVCLHlCQUFzRTtBQUN0RSxtQ0FBZ0c7QUFHaEcscUVBQWtFO0FBQ2xFLGlFQUE4RDtBQUM5RCx1RUFBb0U7QUFDcEUseUVBQXNFO0FBQ3RFLHVEQUFvRDtBQUlwRCxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUcxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLGVBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLHVDQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsT0FBTyxJQUFJLHFEQUF5QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCx5QkFB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QztRQUNqQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUM3QyxPQUFPLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDekYsQ0FBQztDQUNGO0FBeElELDhEQXdJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBIZXhUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2hleFRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBSZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyIH0gZnJvbSAnLi9yZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyJztcbmltcG9ydCB7IEJvbmRFeHRyYUJ1aWxkZXIgfSBmcm9tICcuL2JvbmRFeHRyYUJ1aWxkZXInO1xuaW1wb3J0IHsgQmF0Y2hTdGFraW5nQnVpbGRlciB9IGZyb20gJy4vYmF0Y2hTdGFraW5nQnVpbGRlcic7XG5pbXBvcnQgeyBCYXRjaFVuc3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL2JhdGNoVW5zdGFraW5nQnVpbGRlcic7XG5pbXBvcnQgeyBVbmJvbmRCdWlsZGVyIH0gZnJvbSAnLi91bmJvbmRCdWlsZGVyJztcbmltcG9ydCB7IFdpdGhkcmF3VW5ib25kZWRCdWlsZGVyIH0gZnJvbSAnLi93aXRoZHJhd1VuYm9uZGVkQnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBJbnRlcmZhY2UsIFNpbmdsZXRvblJlZ2lzdHJ5LCBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLyc7XG5pbXBvcnQgeyBUeE1ldGhvZCwgQmF0Y2hDYWxsT2JqZWN0LCBNZXRob2ROYW1lcywgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc0FyZ3MgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbiB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1zdWJzdHJhdGUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgUG9seXhUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgUHJlQXBwcm92ZUFzc2V0QnVpbGRlciB9IGZyb20gJy4vcHJlQXBwcm92ZUFzc2V0QnVpbGRlcic7XG5pbXBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgSGV4VG9rZW5UcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2hleFRva2VuVHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFJlamVjdEluc3RydWN0aW9uQnVpbGRlciB9IGZyb20gJy4vcmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IE5vbWluYXRlQnVpbGRlciB9IGZyb20gJy4vbm9taW5hdGVCdWlsZGVyJztcblxuZXhwb3J0IHR5cGUgU3VwcG9ydGVkVHJhbnNhY3Rpb24gPSBCYXNlVHJhbnNhY3Rpb24gfCBQb2x5eFRyYW5zYWN0aW9uO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIF9tYXRlcmlhbDogSW50ZXJmYWNlLk1hdGVyaWFsO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl9tYXRlcmlhbCA9IHV0aWxzLmdldE1hdGVyaWFsKF9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSk7XG4gIH1cblxuICBnZXRUcmFuc2ZlckJ1aWxkZXIoKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRIZXhUcmFuc2ZlckJ1aWxkZXIoKTogSGV4VHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEhleFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRSZWdpc3RlckRpZFdpdGhDRERCdWlsZGVyKCk6IFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgUmVnaXN0ZXJEaWRXaXRoQ0REQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRQcmVBcHByb3ZlQXNzZXRCdWlsZGVyKCk6IFByZUFwcHJvdmVBc3NldEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgUHJlQXBwcm92ZUFzc2V0QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRUb2tlblRyYW5zZmVyQnVpbGRlcigpOiBUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUb2tlblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRIZXhUb2tlblRyYW5zZmVyQnVpbGRlcigpOiBIZXhUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBIZXhUb2tlblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRSZWplY3RJbnN0cnVjdGlvbkJ1aWxkZXIoKTogUmVqZWN0SW5zdHJ1Y3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFJlamVjdEluc3RydWN0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRCb25kRXh0cmFCdWlsZGVyKCk6IEJvbmRFeHRyYUJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgQm9uZEV4dHJhQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKS5tYXRlcmlhbCh0aGlzLl9tYXRlcmlhbCk7XG4gIH1cblxuICBnZXRCYXRjaEJ1aWxkZXIoKTogQmF0Y2hTdGFraW5nQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBCYXRjaFN0YWtpbmdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldEJhdGNoVW5zdGFraW5nQnVpbGRlcigpOiBCYXRjaFVuc3Rha2luZ0J1aWxkZXIge1xuICAgIHJldHVybiBuZXcgQmF0Y2hVbnN0YWtpbmdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldFVuYm9uZEJ1aWxkZXIoKTogVW5ib25kQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBVbmJvbmRCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldFdpdGhkcmF3VW5ib25kZWRCdWlsZGVyKCk6IFdpdGhkcmF3VW5ib25kZWRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFdpdGhkcmF3VW5ib25kZWRCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldE5vbWluYXRlQnVpbGRlcigpOiBOb21pbmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgTm9taW5hdGVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLm1hdGVyaWFsKHRoaXMuX21hdGVyaWFsKTtcbiAgfVxuXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcihgd2FsbGV0SW5pdGlhbGl6YXRpb24gZm9yICR7dGhpcy5fY29pbkNvbmZpZy5uYW1lfSBub3QgaW1wbGVtZW50ZWRgKTtcbiAgfVxuXG4gIGZyb20ocmF3VHhuOiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXI8VHhNZXRob2QsIFN1cHBvcnRlZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgYnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcihyYXdUeG4pO1xuICAgIGJ1aWxkZXIuZnJvbShyYXdUeG4pO1xuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgbWF0ZXJpYWwobWF0ZXJpYWw6IEludGVyZmFjZS5NYXRlcmlhbCk6IHRoaXMge1xuICAgIHRoaXMuX21hdGVyaWFsID0gbWF0ZXJpYWw7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIGdldEJ1aWxkZXIocmF3VHhuOiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXI8VHhNZXRob2QsIFN1cHBvcnRlZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgcmVnaXN0cnkgPSBTaW5nbGV0b25SZWdpc3RyeS5nZXRJbnN0YW5jZSh0aGlzLl9tYXRlcmlhbCk7XG4gICAgY29uc3QgZGVjb2RlZFR4biA9IGRlY29kZShyYXdUeG4sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIHJlZ2lzdHJ5OiByZWdpc3RyeSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZTtcbiAgICBpZiAobWV0aG9kTmFtZSA9PT0gSW50ZXJmYWNlLk1ldGhvZE5hbWVzLlRyYW5zZmVyV2l0aE1lbW8pIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIEludGVyZmFjZS5UcmFuc2ZlcldpdGhNZW1vQXJncztcbiAgICAgIGlmICh1dGlscy5pc05ld01lbW9FbmNvZGluZyhhcmdzLm1lbW8pKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEhleFRyYW5zZmVyQnVpbGRlcigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSBNZXRob2ROYW1lcy5SZWdpc3RlckRpZFdpdGhDREQpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlZ2lzdGVyRGlkV2l0aENEREJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IE1ldGhvZE5hbWVzLlByZUFwcHJvdmVBc3NldCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJlQXBwcm92ZUFzc2V0QnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gTWV0aG9kTmFtZXMuQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9ycykge1xuICAgICAgY29uc3QgYXJncyA9IGRlY29kZWRUeG4ubWV0aG9kLmFyZ3MgYXMgQWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9yc0FyZ3M7XG4gICAgICBpZiAodXRpbHMuaXNOZXdNZW1vRW5jb2RpbmcoYXJncy5pbnN0cnVjdGlvbk1lbW8pKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEhleFRva2VuVHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRUb2tlblRyYW5zZmVyQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gTWV0aG9kTmFtZXMuUmVqZWN0SW5zdHJ1Y3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlamVjdEluc3RydWN0aW9uQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ2JvbmRFeHRyYScpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEJvbmRFeHRyYUJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICdiYXRjaEFsbCcpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHsgY2FsbHM/OiBCYXRjaENhbGxPYmplY3RbXSB9O1xuXG4gICAgICBpZiAoYXJncy5jYWxscyAmJiBhcmdzLmNhbGxzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAvLyBEZWNvZGUgbWV0aG9kIG5hbWVzIGZyb20gdGhlIGNhbGxzIHVzaW5nIHV0aWxzLmRlY29kZU1ldGhvZE5hbWVcbiAgICAgICAgY29uc3QgZmlyc3RDYWxsTWV0aG9kID0gdXRpbHMuZGVjb2RlTWV0aG9kTmFtZShhcmdzLmNhbGxzWzBdLCByZWdpc3RyeSk7XG4gICAgICAgIGNvbnN0IHNlY29uZENhbGxNZXRob2QgPSB1dGlscy5kZWNvZGVNZXRob2ROYW1lKGFyZ3MuY2FsbHNbMV0sIHJlZ2lzdHJ5KTtcblxuICAgICAgICAvLyBDaGVjayBmb3IgYmF0Y2ggc3Rha2luZyBwYXR0ZXJuOiBib25kICsgbm9taW5hdGVcbiAgICAgICAgaWYgKGZpcnN0Q2FsbE1ldGhvZCA9PT0gJ2JvbmQnICYmIHNlY29uZENhbGxNZXRob2QgPT09ICdub21pbmF0ZScpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCYXRjaEJ1aWxkZXIoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDaGVjayBmb3IgYmF0Y2ggdW5zdGFraW5nIHBhdHRlcm46IGNoaWxsICsgdW5ib25kXG4gICAgICAgIGlmIChmaXJzdENhbGxNZXRob2QgPT09ICdjaGlsbCcgJiYgc2Vjb25kQ2FsbE1ldGhvZCA9PT0gJ3VuYm9uZCcpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCYXRjaFVuc3Rha2luZ0J1aWxkZXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRmFsbCBiYWNrIHRvIGdlbmVyYWwgYmF0Y2ggYnVpbGRlciBmb3Igb3RoZXIgYmF0Y2hBbGwgY2FzZXNcbiAgICAgIHJldHVybiB0aGlzLmdldEJhdGNoQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ2JhdGNoJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QmF0Y2hCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSAnYm9uZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEJhdGNoQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ25vbWluYXRlJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Tm9taW5hdGVCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSAndW5ib25kJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VW5ib25kQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ3dpdGhkcmF3VW5ib25kZWQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRXaXRoZHJhd1VuYm9uZGVkQnVpbGRlcigpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignVHJhbnNhY3Rpb24gY2Fubm90IGJlIHBhcnNlZCBvciBoYXMgYW4gdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICB9XG59XG4iXX0=
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -19,6 +19,26 @@ export declare class Utils extends SubstrateUtils {
|
|
|
19
19
|
* @returns {boolean} true if valid DID format, false otherwise
|
|
20
20
|
*/
|
|
21
21
|
isValidDid(did: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Encode a memo string using the NEW Polymesh format:
|
|
24
|
+
* UTF-8 bytes right-padded with 0x00 to 32 bytes, returned as a 0x-prefixed hex string.
|
|
25
|
+
*
|
|
26
|
+
* @param text The intended memo string
|
|
27
|
+
* @returns 0x-prefixed 66-character hex string representing the 32-byte encoded memo
|
|
28
|
+
*/
|
|
29
|
+
encodeMemoNew(text: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Detect whether a decoded 32-byte memo (0x-prefixed hex from txwrapper decode()) uses NEW encoding.
|
|
32
|
+
*
|
|
33
|
+
* Detection rules (see problem.md):
|
|
34
|
+
* - Any 0x00 byte → NEW (null right-padding)
|
|
35
|
+
* - All 0x30 bytes → OLD (memo "0" in ASCII-left-padded form)
|
|
36
|
+
* - Leading 0x30 bytes then non-0x30 content → OLD (ASCII '0' left-padding)
|
|
37
|
+
* - Otherwise → NEW (content at byte 0, full 32-byte memo, or no ASCII pad)
|
|
38
|
+
*
|
|
39
|
+
* @param memo 0x-prefixed 66-char hex string as returned by txwrapper decode()
|
|
40
|
+
*/
|
|
41
|
+
isNewMemoEncoding(memo: string): boolean;
|
|
22
42
|
getMaterial(networkType: NetworkType): Interface.Material;
|
|
23
43
|
decodeMethodName(call: BatchCallObject, registry: TypeRegistry): string;
|
|
24
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,qBAAa,KAAM,SAAQ,cAAc;IACvC;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK1C;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,QAAQ;IAIzD,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM;CA0BxE;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,qBAAa,KAAM,SAAQ,cAAc;IACvC;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK1C;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASnC;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAiBxC,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,QAAQ;IAIzD,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM;CA0BxE;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC"}
|
package/dist/src/lib/utils.js
CHANGED
|
@@ -27,6 +27,48 @@ class Utils extends abstract_substrate_1.Utils {
|
|
|
27
27
|
isValidDid(did) {
|
|
28
28
|
return constants_1.POLYX_DID_REGEX.test(did);
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Encode a memo string using the NEW Polymesh format:
|
|
32
|
+
* UTF-8 bytes right-padded with 0x00 to 32 bytes, returned as a 0x-prefixed hex string.
|
|
33
|
+
*
|
|
34
|
+
* @param text The intended memo string
|
|
35
|
+
* @returns 0x-prefixed 66-character hex string representing the 32-byte encoded memo
|
|
36
|
+
*/
|
|
37
|
+
encodeMemoNew(text) {
|
|
38
|
+
const bytes = Buffer.from(text, 'utf8');
|
|
39
|
+
if (bytes.length > constants_1.MEMO_MAX_BYTES) {
|
|
40
|
+
throw new Error(`Memo exceeds maximum length of ${constants_1.MEMO_MAX_BYTES} bytes (got ${bytes.length} bytes)`);
|
|
41
|
+
}
|
|
42
|
+
const textHex = bytes.toString('hex');
|
|
43
|
+
return `0x${textHex.padEnd(64, '0')}`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Detect whether a decoded 32-byte memo (0x-prefixed hex from txwrapper decode()) uses NEW encoding.
|
|
47
|
+
*
|
|
48
|
+
* Detection rules (see problem.md):
|
|
49
|
+
* - Any 0x00 byte → NEW (null right-padding)
|
|
50
|
+
* - All 0x30 bytes → OLD (memo "0" in ASCII-left-padded form)
|
|
51
|
+
* - Leading 0x30 bytes then non-0x30 content → OLD (ASCII '0' left-padding)
|
|
52
|
+
* - Otherwise → NEW (content at byte 0, full 32-byte memo, or no ASCII pad)
|
|
53
|
+
*
|
|
54
|
+
* @param memo 0x-prefixed 66-char hex string as returned by txwrapper decode()
|
|
55
|
+
*/
|
|
56
|
+
isNewMemoEncoding(memo) {
|
|
57
|
+
if (!constants_1.MEMO_HEX_REGEX.test(memo))
|
|
58
|
+
return false;
|
|
59
|
+
const bytes = Buffer.from(memo.slice(2), 'hex');
|
|
60
|
+
if (bytes.some((b) => b === 0x00))
|
|
61
|
+
return true;
|
|
62
|
+
if (bytes.every((b) => b === 0x30))
|
|
63
|
+
return false;
|
|
64
|
+
let leadingAsciiZeros = 0;
|
|
65
|
+
while (leadingAsciiZeros < bytes.length && bytes[leadingAsciiZeros] === 0x30) {
|
|
66
|
+
leadingAsciiZeros++;
|
|
67
|
+
}
|
|
68
|
+
if (leadingAsciiZeros > 0 && leadingAsciiZeros < bytes.length)
|
|
69
|
+
return false;
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
30
72
|
getMaterial(networkType) {
|
|
31
73
|
return (networkType === statics_1.NetworkType.MAINNET ? resources_1.mainnetMaterial : resources_1.testnetMaterial);
|
|
32
74
|
}
|
|
@@ -58,4 +100,4 @@ class Utils extends abstract_substrate_1.Utils {
|
|
|
58
100
|
exports.Utils = Utils;
|
|
59
101
|
const utils = new Utils();
|
|
60
102
|
exports.default = utils;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtFQUErRTtBQUMvRSw0Q0FBNkM7QUFFN0MsNENBQWdFO0FBRWhFLDJDQUE4RTtBQUU5RSxNQUFhLEtBQU0sU0FBUSwwQkFBYztJQUN2Qzs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUMvQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFDO1FBQ3JELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsVUFBVSxDQUFDLEdBQVc7UUFDcEIsT0FBTywyQkFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUFDLElBQVk7UUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLDBCQUFjLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQywwQkFBYyxlQUFlLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ3hHLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsaUJBQWlCLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFN0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWhELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9DLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRWpELElBQUksaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLE9BQU8saUJBQWlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3RSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLGlCQUFpQixHQUFHLENBQUMsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTVFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVcsQ0FBQyxXQUF3QjtRQUNsQyxPQUFPLENBQUMsV0FBVyxLQUFLLHFCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywyQkFBZSxDQUFDLENBQUMsQ0FBQywyQkFBZSxDQUFrQyxDQUFDO0lBQ3BILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFxQixFQUFFLFFBQXNCO1FBQzVELDJDQUEyQztRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFnRCxDQUFDO1FBQ3ZFLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRWhFLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6Qyx5Q0FBeUM7WUFDekMsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyRSxJQUFJLENBQUM7b0JBQ0gsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FDdkMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3ZFLENBQUM7b0JBQ0YsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDO2dCQUM1QixDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsZ0RBQWdEO29CQUNoRCxPQUFPLGdCQUFnQixDQUFDO2dCQUMxQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLCtCQUErQjtnQkFDL0IsT0FBTyxnQkFBZ0IsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQztRQUVELFdBQVc7UUFDWCxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQWxHRCxzQkFrR0M7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBQzFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFV0aWxzIGFzIFN1YnN0cmF0ZVV0aWxzLCBJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28vYWJzdHJhY3Qtc3Vic3RyYXRlJztcbmltcG9ydCB7IE5ldHdvcmtUeXBlIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgbWFpbm5ldE1hdGVyaWFsLCB0ZXN0bmV0TWF0ZXJpYWwgfSBmcm9tICcuLi9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQmF0Y2hDYWxsT2JqZWN0IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBNRU1PX0hFWF9SRUdFWCwgTUVNT19NQVhfQllURVMsIFBPTFlYX0RJRF9SRUdFWCB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGV4dGVuZHMgU3Vic3RyYXRlVXRpbHMge1xuICAvKipcbiAgICogR2V0IHRoZSBhcHByb3ByaWF0ZSBhZGRyZXNzIGZvcm1hdCBiYXNlZCBvbiBuZXR3b3JrIHR5cGVcbiAgICogUmV0dXJucyAxMiBmb3IgbWFpbm5ldCBhbmQgNDIgZm9yIHRlc3RuZXRcbiAgICpcbiAgICogQHBhcmFtIGNvaW5OYW1lIFRoZSBuYW1lIG9mIHRoZSBjb2luXG4gICAqIEByZXR1cm5zIFRoZSBhZGRyZXNzIGZvcm1hdCB0byB1c2VcbiAgICovXG4gIGdldEFkZHJlc3NGb3JtYXQoY29pbk5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgaXNNYWlubmV0ID0gY29pbk5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3BvbHl4JztcbiAgICByZXR1cm4gaXNNYWlubmV0ID8gMTIgOiA0MjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBzdHJpbmcgaXMgYSB2YWxpZCBQb2x5bWVzaCBESUQgKERlY2VudHJhbGl6ZWQgSWRlbnRpZmllcilcbiAgICogRElEcyBhcmUgMzItYnl0ZSBoZXggc3RyaW5ncyAoMHggcHJlZml4ICsgNjQgaGV4IGNoYXJhY3RlcnMpXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaWQgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHZhbGlkIERJRCBmb3JtYXQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaXNWYWxpZERpZChkaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBQT0xZWF9ESURfUkVHRVgudGVzdChkaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZSBhIG1lbW8gc3RyaW5nIHVzaW5nIHRoZSBORVcgUG9seW1lc2ggZm9ybWF0OlxuICAgKiBVVEYtOCBieXRlcyByaWdodC1wYWRkZWQgd2l0aCAweDAwIHRvIDMyIGJ5dGVzLCByZXR1cm5lZCBhcyBhIDB4LXByZWZpeGVkIGhleCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB0ZXh0IFRoZSBpbnRlbmRlZCBtZW1vIHN0cmluZ1xuICAgKiBAcmV0dXJucyAweC1wcmVmaXhlZCA2Ni1jaGFyYWN0ZXIgaGV4IHN0cmluZyByZXByZXNlbnRpbmcgdGhlIDMyLWJ5dGUgZW5jb2RlZCBtZW1vXG4gICAqL1xuICBlbmNvZGVNZW1vTmV3KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYnl0ZXMgPSBCdWZmZXIuZnJvbSh0ZXh0LCAndXRmOCcpO1xuICAgIGlmIChieXRlcy5sZW5ndGggPiBNRU1PX01BWF9CWVRFUykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNZW1vIGV4Y2VlZHMgbWF4aW11bSBsZW5ndGggb2YgJHtNRU1PX01BWF9CWVRFU30gYnl0ZXMgKGdvdCAke2J5dGVzLmxlbmd0aH0gYnl0ZXMpYCk7XG4gICAgfVxuICAgIGNvbnN0IHRleHRIZXggPSBieXRlcy50b1N0cmluZygnaGV4Jyk7XG4gICAgcmV0dXJuIGAweCR7dGV4dEhleC5wYWRFbmQoNjQsICcwJyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3Qgd2hldGhlciBhIGRlY29kZWQgMzItYnl0ZSBtZW1vICgweC1wcmVmaXhlZCBoZXggZnJvbSB0eHdyYXBwZXIgZGVjb2RlKCkpIHVzZXMgTkVXIGVuY29kaW5nLlxuICAgKlxuICAgKiBEZXRlY3Rpb24gcnVsZXMgKHNlZSBwcm9ibGVtLm1kKTpcbiAgICogLSBBbnkgMHgwMCBieXRlIOKGkiBORVcgKG51bGwgcmlnaHQtcGFkZGluZylcbiAgICogLSBBbGwgMHgzMCBieXRlcyDihpIgT0xEIChtZW1vIFwiMFwiIGluIEFTQ0lJLWxlZnQtcGFkZGVkIGZvcm0pXG4gICAqIC0gTGVhZGluZyAweDMwIGJ5dGVzIHRoZW4gbm9uLTB4MzAgY29udGVudCDihpIgT0xEIChBU0NJSSAnMCcgbGVmdC1wYWRkaW5nKVxuICAgKiAtIE90aGVyd2lzZSDihpIgTkVXIChjb250ZW50IGF0IGJ5dGUgMCwgZnVsbCAzMi1ieXRlIG1lbW8sIG9yIG5vIEFTQ0lJIHBhZClcbiAgICpcbiAgICogQHBhcmFtIG1lbW8gMHgtcHJlZml4ZWQgNjYtY2hhciBoZXggc3RyaW5nIGFzIHJldHVybmVkIGJ5IHR4d3JhcHBlciBkZWNvZGUoKVxuICAgKi9cbiAgaXNOZXdNZW1vRW5jb2RpbmcobWVtbzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFNRU1PX0hFWF9SRUdFWC50ZXN0KG1lbW8pKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBieXRlcyA9IEJ1ZmZlci5mcm9tKG1lbW8uc2xpY2UoMiksICdoZXgnKTtcblxuICAgIGlmIChieXRlcy5zb21lKChiKSA9PiBiID09PSAweDAwKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKGJ5dGVzLmV2ZXJ5KChiKSA9PiBiID09PSAweDMwKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgbGV0IGxlYWRpbmdBc2NpaVplcm9zID0gMDtcbiAgICB3aGlsZSAobGVhZGluZ0FzY2lpWmVyb3MgPCBieXRlcy5sZW5ndGggJiYgYnl0ZXNbbGVhZGluZ0FzY2lpWmVyb3NdID09PSAweDMwKSB7XG4gICAgICBsZWFkaW5nQXNjaWlaZXJvcysrO1xuICAgIH1cbiAgICBpZiAobGVhZGluZ0FzY2lpWmVyb3MgPiAwICYmIGxlYWRpbmdBc2NpaVplcm9zIDwgYnl0ZXMubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldE1hdGVyaWFsKG5ldHdvcmtUeXBlOiBOZXR3b3JrVHlwZSk6IEludGVyZmFjZS5NYXRlcmlhbCB7XG4gICAgcmV0dXJuIChuZXR3b3JrVHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/IG1haW5uZXRNYXRlcmlhbCA6IHRlc3RuZXRNYXRlcmlhbCkgYXMgdW5rbm93biBhcyBJbnRlcmZhY2UuTWF0ZXJpYWw7XG4gIH1cblxuICBkZWNvZGVNZXRob2ROYW1lKGNhbGw6IEJhdGNoQ2FsbE9iamVjdCwgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSk6IHN0cmluZyB7XG4gICAgLy8gSGFuZGxlIGJvdGggY2FsbEluZGV4IGFuZCBtZXRob2QgZm9ybWF0c1xuICAgIGNvbnN0IGNhbGxXaXRoSW5kZXggPSBjYWxsIGFzIEJhdGNoQ2FsbE9iamVjdCAmIHsgY2FsbEluZGV4Pzogc3RyaW5nIH07XG4gICAgY29uc3QgbWV0aG9kSWRlbnRpZmllciA9IGNhbGxXaXRoSW5kZXguY2FsbEluZGV4IHx8IGNhbGwubWV0aG9kO1xuXG4gICAgaWYgKHR5cGVvZiBtZXRob2RJZGVudGlmaWVyID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQ2hlY2sgaWYgaXQgbG9va3MgbGlrZSBhIGhleCBjYWxsSW5kZXhcbiAgICAgIGlmIChtZXRob2RJZGVudGlmaWVyLnN0YXJ0c1dpdGgoJzB4JykgJiYgbWV0aG9kSWRlbnRpZmllci5sZW5ndGggPiAyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSByZWdpc3RyeS5maW5kTWV0YUNhbGwoXG4gICAgICAgICAgICBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShtZXRob2RJZGVudGlmaWVyLnJlcGxhY2UoJzB4JywgJycpLCAnaGV4JykpXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZGVjb2RlZENhbGwubWV0aG9kO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gRmFsbGJhY2s6IGFzc3VtZSBpdCdzIGFscmVhZHkgdGhlIG1ldGhvZCBuYW1lXG4gICAgICAgICAgcmV0dXJuIG1ldGhvZElkZW50aWZpZXI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFscmVhZHkgYSBzaW1wbGUgbWV0aG9kIG5hbWVcbiAgICAgICAgcmV0dXJuIG1ldGhvZElkZW50aWZpZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2tcbiAgICByZXR1cm4gU3RyaW5nKG1ldGhvZElkZW50aWZpZXIpO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
|
package/dist/src/polyx.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics';
|
|
|
4
4
|
import { SubstrateCoin, Interface } from '@bitgo/abstract-substrate';
|
|
5
5
|
import { BatchStakingBuilder } from './lib/batchStakingBuilder';
|
|
6
6
|
import { BondExtraBuilder } from './lib/bondExtraBuilder';
|
|
7
|
-
import { TransactionBuilderFactory } from './lib';
|
|
7
|
+
import { TransactionBuilderFactory, HexTransferBuilder } from './lib';
|
|
8
8
|
export declare class Polyx extends SubstrateCoin {
|
|
9
9
|
protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
|
|
10
10
|
protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
|
|
@@ -22,6 +22,7 @@ export declare class Polyx extends SubstrateCoin {
|
|
|
22
22
|
auditDecryptedKey({ publicKey, prv, multiSigType }: AuditDecryptedKeyParams): void;
|
|
23
23
|
stakingBatch(): BatchStakingBuilder;
|
|
24
24
|
bondExtra(): BondExtraBuilder;
|
|
25
|
+
hexTransfer(): HexTransferBuilder;
|
|
25
26
|
/**
|
|
26
27
|
* Retrieves the address format for Polyx.
|
|
27
28
|
*
|
package/dist/src/polyx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyx.d.ts","sourceRoot":"","sources":["../../src/polyx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,SAAS,EAGT,kBAAkB,EAClB,WAAW,EACX,KAAK,EAIL,uBAAuB,EACvB,MAAM,EACN,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAgC,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAA+B,aAAa,EAAe,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,yBAAyB,EAAmB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"polyx.d.ts","sourceRoot":"","sources":["../../src/polyx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,SAAS,EAGT,kBAAkB,EAClB,WAAW,EACX,KAAK,EAIL,uBAAuB,EACvB,MAAM,EACN,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAgC,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAA+B,aAAa,EAAe,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,yBAAyB,EAAmB,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEvF,qBAAa,KAAM,SAAQ,aAAa;IACtC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,SAAS,CAAC,MAAM,CAAC,kBAAkB,UAAS;IAC5C,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC;IAEjC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,UAAU,IAAI,yBAAyB;IAIvC;;OAEG;IACI,aAAa,IAAI,MAAM;IAIvB,QAAQ,IAAI,MAAM;IAIlB,WAAW,IAAI,MAAM;IAI5B,kBAAkB;IAClB,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,uBAAuB;IAI3E,YAAY,IAAI,mBAAmB;IAInC,SAAS,IAAI,gBAAgB;IAI7B,WAAW,IAAI,kBAAkB;IAIjC;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM;cAIpB,qBAAqB,IAAI,OAAO,CAAC,UAAU,CAAC;cAS5C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;cAOnF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAM1E,aAAa,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;cAMtE,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;IAY1D;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;IAgJvE,oBAAoB;IACd,mCAAmC,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmE3F;;;;;;OAMG;IACH,wBAAwB,IAAI,qBAAqB;CAWlD"}
|