@bitgo/sdk-coin-stx 4.0.19 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/lib/constants.d.ts +12 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +24 -2
- package/dist/src/lib/contractBuilder.d.ts.map +1 -1
- package/dist/src/lib/contractBuilder.js +36 -4
- package/dist/src/lib/index.d.ts +1 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +2 -1
- package/dist/src/lib/pox5Builder.d.ts +78 -0
- package/dist/src/lib/pox5Builder.d.ts.map +1 -0
- package/dist/src/lib/pox5Builder.js +148 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +2 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +8 -1
- package/dist/src/lib/utils.d.ts +5 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +29 -2
- package/dist/test/unit/transactionBuilder/contractBuilder.js +45 -3
- package/dist/test/unit/transactionBuilder/fungibleTokenTransferBuilder.js +5 -1
- package/dist/test/unit/transactionBuilder/pox5Builder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/pox5Builder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/pox5Builder.js +250 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
export declare const FUNCTION_NAME_SENDMANY = "send-many";
|
|
2
2
|
export declare const CONTRACT_NAME_SENDMANY = "send-many-memo";
|
|
3
3
|
export declare const CONTRACT_NAME_STAKING = "pox-4";
|
|
4
|
+
export declare const CONTRACT_NAME_POX5 = "pox-5";
|
|
5
|
+
export declare const VALID_STAKING_CONTRACT_NAMES: string[];
|
|
4
6
|
export declare const FUNCTION_NAME_TRANSFER = "transfer";
|
|
5
7
|
export declare const CONTRACT_NAME_SBTC_WITHDRAWAL = "sbtc-withdrawal";
|
|
6
8
|
export declare const FUNCTION_NAME_INITIATE_WITHDRAWAL = "initiate-withdrawal-request";
|
|
9
|
+
export declare const FUNCTION_NAME_STAKE = "stake";
|
|
10
|
+
export declare const FUNCTION_NAME_STAKE_UPDATE = "stake-update";
|
|
11
|
+
export declare const FUNCTION_NAME_UNSTAKE = "unstake";
|
|
12
|
+
export declare const FUNCTION_NAME_REGISTER_FOR_BOND = "register-for-bond";
|
|
13
|
+
export declare const FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = "announce-l1-early-exit";
|
|
14
|
+
export declare const FUNCTION_NAME_UPDATE_BOND_REGISTRATION = "update-bond-registration";
|
|
15
|
+
export declare const FUNCTION_NAME_CLAIM_REWARDS = "claim-rewards";
|
|
16
|
+
export declare const FUNCTION_NAME_CLAIM_STAKER_REWARDS = "claim-staker-rewards-for-signer";
|
|
17
|
+
export declare const FUNCTION_NAME_CALCULATE_REWARDS = "calculate-rewards";
|
|
18
|
+
export declare const VALID_POX5_CONTRACT_FUNCTION_NAMES: string[];
|
|
7
19
|
export declare const VALID_CONTRACT_FUNCTION_NAMES: string[];
|
|
8
20
|
export declare const DEFAULT_SEED_SIZE_BYTES = 64;
|
|
9
21
|
export declare const ANCHOR_MODE = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAC/D,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,eAAO,MAAM,6BAA6B,UASzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,2BAA2B,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,4BAA4B,UAA8C,CAAC;AACxF,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAC/D,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,+BAA+B,sBAAsB,CAAC;AACnE,eAAO,MAAM,oCAAoC,2BAA2B,CAAC;AAC7E,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AACjF,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,eAAO,MAAM,kCAAkC,oCAAoC,CAAC;AACpF,eAAO,MAAM,+BAA+B,sBAAsB,CAAC;AAEnE,eAAO,MAAM,kCAAkC,UAU9C,CAAC;AAEF,eAAO,MAAM,6BAA6B,UASzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,2BAA2B,IAAI,CAAC"}
|
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_MULTISIG_SIG_NUMBER = exports.ANCHOR_MODE = exports.DEFAULT_SEED_SIZE_BYTES = exports.VALID_CONTRACT_FUNCTION_NAMES = exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = exports.CONTRACT_NAME_SBTC_WITHDRAWAL = exports.FUNCTION_NAME_TRANSFER = exports.CONTRACT_NAME_STAKING = exports.CONTRACT_NAME_SENDMANY = exports.FUNCTION_NAME_SENDMANY = void 0;
|
|
3
|
+
exports.DEFAULT_MULTISIG_SIG_NUMBER = exports.ANCHOR_MODE = exports.DEFAULT_SEED_SIZE_BYTES = exports.VALID_CONTRACT_FUNCTION_NAMES = exports.VALID_POX5_CONTRACT_FUNCTION_NAMES = exports.FUNCTION_NAME_CALCULATE_REWARDS = exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS = exports.FUNCTION_NAME_CLAIM_REWARDS = exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION = exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = exports.FUNCTION_NAME_REGISTER_FOR_BOND = exports.FUNCTION_NAME_UNSTAKE = exports.FUNCTION_NAME_STAKE_UPDATE = exports.FUNCTION_NAME_STAKE = exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = exports.CONTRACT_NAME_SBTC_WITHDRAWAL = exports.FUNCTION_NAME_TRANSFER = exports.VALID_STAKING_CONTRACT_NAMES = exports.CONTRACT_NAME_POX5 = exports.CONTRACT_NAME_STAKING = exports.CONTRACT_NAME_SENDMANY = exports.FUNCTION_NAME_SENDMANY = void 0;
|
|
4
4
|
exports.FUNCTION_NAME_SENDMANY = 'send-many';
|
|
5
5
|
exports.CONTRACT_NAME_SENDMANY = 'send-many-memo';
|
|
6
6
|
exports.CONTRACT_NAME_STAKING = 'pox-4';
|
|
7
|
+
exports.CONTRACT_NAME_POX5 = 'pox-5';
|
|
8
|
+
exports.VALID_STAKING_CONTRACT_NAMES = [exports.CONTRACT_NAME_STAKING, exports.CONTRACT_NAME_POX5];
|
|
7
9
|
exports.FUNCTION_NAME_TRANSFER = 'transfer';
|
|
8
10
|
exports.CONTRACT_NAME_SBTC_WITHDRAWAL = 'sbtc-withdrawal';
|
|
9
11
|
exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = 'initiate-withdrawal-request';
|
|
12
|
+
exports.FUNCTION_NAME_STAKE = 'stake';
|
|
13
|
+
exports.FUNCTION_NAME_STAKE_UPDATE = 'stake-update';
|
|
14
|
+
exports.FUNCTION_NAME_UNSTAKE = 'unstake';
|
|
15
|
+
exports.FUNCTION_NAME_REGISTER_FOR_BOND = 'register-for-bond';
|
|
16
|
+
exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = 'announce-l1-early-exit';
|
|
17
|
+
exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION = 'update-bond-registration';
|
|
18
|
+
exports.FUNCTION_NAME_CLAIM_REWARDS = 'claim-rewards';
|
|
19
|
+
exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS = 'claim-staker-rewards-for-signer';
|
|
20
|
+
exports.FUNCTION_NAME_CALCULATE_REWARDS = 'calculate-rewards';
|
|
21
|
+
exports.VALID_POX5_CONTRACT_FUNCTION_NAMES = [
|
|
22
|
+
exports.FUNCTION_NAME_STAKE,
|
|
23
|
+
exports.FUNCTION_NAME_STAKE_UPDATE,
|
|
24
|
+
exports.FUNCTION_NAME_UNSTAKE,
|
|
25
|
+
exports.FUNCTION_NAME_REGISTER_FOR_BOND,
|
|
26
|
+
exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION,
|
|
27
|
+
exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT,
|
|
28
|
+
exports.FUNCTION_NAME_CLAIM_REWARDS,
|
|
29
|
+
exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS,
|
|
30
|
+
exports.FUNCTION_NAME_CALCULATE_REWARDS,
|
|
31
|
+
];
|
|
10
32
|
exports.VALID_CONTRACT_FUNCTION_NAMES = [
|
|
11
33
|
'stack-stx',
|
|
12
34
|
'delegate-stx',
|
|
@@ -21,4 +43,4 @@ exports.DEFAULT_SEED_SIZE_BYTES = 64;
|
|
|
21
43
|
// https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-encoding
|
|
22
44
|
exports.ANCHOR_MODE = 3;
|
|
23
45
|
exports.DEFAULT_MULTISIG_SIG_NUMBER = 2;
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxzQkFBc0IsR0FBRyxXQUFXLENBQUM7QUFDckMsUUFBQSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUMxQyxRQUFBLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUNoQyxRQUFBLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUM3QixRQUFBLDRCQUE0QixHQUFHLENBQUMsNkJBQXFCLEVBQUUsMEJBQWtCLENBQUMsQ0FBQztBQUMzRSxRQUFBLHNCQUFzQixHQUFHLFVBQVUsQ0FBQztBQUNwQyxRQUFBLDZCQUE2QixHQUFHLGlCQUFpQixDQUFDO0FBQ2xELFFBQUEsaUNBQWlDLEdBQUcsNkJBQTZCLENBQUM7QUFFbEUsUUFBQSxtQkFBbUIsR0FBRyxPQUFPLENBQUM7QUFDOUIsUUFBQSwwQkFBMEIsR0FBRyxjQUFjLENBQUM7QUFDNUMsUUFBQSxxQkFBcUIsR0FBRyxTQUFTLENBQUM7QUFDbEMsUUFBQSwrQkFBK0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxRQUFBLG9DQUFvQyxHQUFHLHdCQUF3QixDQUFDO0FBQ2hFLFFBQUEsc0NBQXNDLEdBQUcsMEJBQTBCLENBQUM7QUFDcEUsUUFBQSwyQkFBMkIsR0FBRyxlQUFlLENBQUM7QUFDOUMsUUFBQSxrQ0FBa0MsR0FBRyxpQ0FBaUMsQ0FBQztBQUN2RSxRQUFBLCtCQUErQixHQUFHLG1CQUFtQixDQUFDO0FBRXRELFFBQUEsa0NBQWtDLEdBQUc7SUFDaEQsMkJBQW1CO0lBQ25CLGtDQUEwQjtJQUMxQiw2QkFBcUI7SUFDckIsdUNBQStCO0lBQy9CLDhDQUFzQztJQUN0Qyw0Q0FBb0M7SUFDcEMsbUNBQTJCO0lBQzNCLDBDQUFrQztJQUNsQyx1Q0FBK0I7Q0FDaEMsQ0FBQztBQUVXLFFBQUEsNkJBQTZCLEdBQUc7SUFDM0MsV0FBVztJQUNYLGNBQWM7SUFDZCxvQkFBb0I7SUFDcEIsMEJBQTBCO0lBQzFCLHFCQUFxQjtJQUNyQixXQUFXO0lBQ1gsVUFBVTtJQUNWLDZCQUE2QjtDQUM5QixDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFMUMsbUhBQW1IO0FBQ3RHLFFBQUEsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNoQixRQUFBLDJCQUEyQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NFTkRNQU5ZID0gJ3NlbmQtbWFueSc7XG5leHBvcnQgY29uc3QgQ09OVFJBQ1RfTkFNRV9TRU5ETUFOWSA9ICdzZW5kLW1hbnktbWVtbyc7XG5leHBvcnQgY29uc3QgQ09OVFJBQ1RfTkFNRV9TVEFLSU5HID0gJ3BveC00JztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FX1BPWDUgPSAncG94LTUnO1xuZXhwb3J0IGNvbnN0IFZBTElEX1NUQUtJTkdfQ09OVFJBQ1RfTkFNRVMgPSBbQ09OVFJBQ1RfTkFNRV9TVEFLSU5HLCBDT05UUkFDVF9OQU1FX1BPWDVdO1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfVFJBTlNGRVIgPSAndHJhbnNmZXInO1xuZXhwb3J0IGNvbnN0IENPTlRSQUNUX05BTUVfU0JUQ19XSVRIRFJBV0FMID0gJ3NidGMtd2l0aGRyYXdhbCc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9JTklUSUFURV9XSVRIRFJBV0FMID0gJ2luaXRpYXRlLXdpdGhkcmF3YWwtcmVxdWVzdCc7XG5cbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NUQUtFID0gJ3N0YWtlJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NUQUtFX1VQREFURSA9ICdzdGFrZS11cGRhdGUnO1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfVU5TVEFLRSA9ICd1bnN0YWtlJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1JFR0lTVEVSX0ZPUl9CT05EID0gJ3JlZ2lzdGVyLWZvci1ib25kJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0FOTk9VTkNFX0wxX0VBUkxZX0VYSVQgPSAnYW5ub3VuY2UtbDEtZWFybHktZXhpdCc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9VUERBVEVfQk9ORF9SRUdJU1RSQVRJT04gPSAndXBkYXRlLWJvbmQtcmVnaXN0cmF0aW9uJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0NMQUlNX1JFV0FSRFMgPSAnY2xhaW0tcmV3YXJkcyc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9DTEFJTV9TVEFLRVJfUkVXQVJEUyA9ICdjbGFpbS1zdGFrZXItcmV3YXJkcy1mb3Itc2lnbmVyJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0NBTENVTEFURV9SRVdBUkRTID0gJ2NhbGN1bGF0ZS1yZXdhcmRzJztcblxuZXhwb3J0IGNvbnN0IFZBTElEX1BPWDVfQ09OVFJBQ1RfRlVOQ1RJT05fTkFNRVMgPSBbXG4gIEZVTkNUSU9OX05BTUVfU1RBS0UsXG4gIEZVTkNUSU9OX05BTUVfU1RBS0VfVVBEQVRFLFxuICBGVU5DVElPTl9OQU1FX1VOU1RBS0UsXG4gIEZVTkNUSU9OX05BTUVfUkVHSVNURVJfRk9SX0JPTkQsXG4gIEZVTkNUSU9OX05BTUVfVVBEQVRFX0JPTkRfUkVHSVNUUkFUSU9OLFxuICBGVU5DVElPTl9OQU1FX0FOTk9VTkNFX0wxX0VBUkxZX0VYSVQsXG4gIEZVTkNUSU9OX05BTUVfQ0xBSU1fUkVXQVJEUyxcbiAgRlVOQ1RJT05fTkFNRV9DTEFJTV9TVEFLRVJfUkVXQVJEUyxcbiAgRlVOQ1RJT05fTkFNRV9DQUxDVUxBVEVfUkVXQVJEUyxcbl07XG5cbmV4cG9ydCBjb25zdCBWQUxJRF9DT05UUkFDVF9GVU5DVElPTl9OQU1FUyA9IFtcbiAgJ3N0YWNrLXN0eCcsXG4gICdkZWxlZ2F0ZS1zdHgnLFxuICAnZGVsZWdhdGUtc3RhY2stc3R4JyxcbiAgJ3N0YWNrLWFnZ3JlZ2F0aW9uLWNvbW1pdCcsXG4gICdyZXZva2UtZGVsZWdhdGUtc3R4JyxcbiAgJ3NlbmQtbWFueScsXG4gICd0cmFuc2ZlcicsXG4gICdpbml0aWF0ZS13aXRoZHJhd2FsLXJlcXVlc3QnLFxuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gNjQ7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3Nnb3Yvc2lwcy9ibG9iL21haW4vc2lwcy9zaXAtMDA1L3NpcC0wMDUtYmxvY2tzLWFuZC10cmFuc2FjdGlvbnMubWQjdHJhbnNhY3Rpb24tZW5jb2RpbmdcbmV4cG9ydCBjb25zdCBBTkNIT1JfTU9ERSA9IDM7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NVUxUSVNJR19TSUdfTlVNQkVSID0gMjtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/contractBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAuC,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAKL,YAAY,
|
|
1
|
+
{"version":3,"file":"contractBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/contractBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAuC,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAKL,YAAY,EAQb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,qBAAa,eAAgB,SAAQ,uBAAuB;gBAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAUlC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAWtC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAchC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhC,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI;IAY7D,OAAO,CAAC,OAAO;CA2DhB"}
|
|
@@ -46,8 +46,11 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
46
46
|
if (name.length === 0) {
|
|
47
47
|
throw new sdk_core_1.InvalidParameterValueError('Invalid name');
|
|
48
48
|
}
|
|
49
|
-
if (
|
|
50
|
-
throw new sdk_core_1.InvalidParameterValueError('Only pox-4 and send-many-memo contracts supported');
|
|
49
|
+
if (!constants_1.VALID_STAKING_CONTRACT_NAMES.includes(name) && name !== constants_1.CONTRACT_NAME_SENDMANY) {
|
|
50
|
+
throw new sdk_core_1.InvalidParameterValueError('Only pox-4, pox-5, and send-many-memo contracts supported');
|
|
51
|
+
}
|
|
52
|
+
if (this._functionName && !_1.Utils.isValidContractFunctionName(this._functionName, name)) {
|
|
53
|
+
throw new sdk_core_1.InvalidParameterValueError(`${this._functionName} is not supported contract function name`);
|
|
51
54
|
}
|
|
52
55
|
this._contractName = name;
|
|
53
56
|
return this;
|
|
@@ -62,7 +65,7 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
62
65
|
if (name.length === 0) {
|
|
63
66
|
throw new sdk_core_1.InvalidParameterValueError('Invalid name');
|
|
64
67
|
}
|
|
65
|
-
if (!_1.Utils.isValidContractFunctionName(name)) {
|
|
68
|
+
if (!_1.Utils.isValidContractFunctionName(name, this._contractName)) {
|
|
66
69
|
throw new sdk_core_1.InvalidParameterValueError(`${name} is not supported contract function name`);
|
|
67
70
|
}
|
|
68
71
|
this._functionName = name;
|
|
@@ -89,6 +92,22 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
89
92
|
else {
|
|
90
93
|
return (0, transactions_1.someCV)(this.parseCv(arg.val));
|
|
91
94
|
}
|
|
95
|
+
case 'list':
|
|
96
|
+
if (arg.val instanceof Array) {
|
|
97
|
+
return (0, transactions_1.listCV)(arg.val.map((value) => this.parseCv(value)));
|
|
98
|
+
}
|
|
99
|
+
throw new sdk_core_1.InvalidParameterValueError('list requires Array val');
|
|
100
|
+
case 'response':
|
|
101
|
+
if (arg.val && typeof arg.val === 'object' && !Array.isArray(arg.val)) {
|
|
102
|
+
const response = arg.val;
|
|
103
|
+
if (response.type === 'ok' && response.val !== undefined) {
|
|
104
|
+
return (0, transactions_1.responseOkCV)(this.parseCv(response.val));
|
|
105
|
+
}
|
|
106
|
+
if (response.type === 'err' && response.val !== undefined) {
|
|
107
|
+
return (0, transactions_1.responseErrorCV)(this.parseCv(response.val));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
throw new sdk_core_1.InvalidParameterValueError('response requires { type: ok|err, val }');
|
|
92
111
|
case 'tuple':
|
|
93
112
|
if (arg.val instanceof Array) {
|
|
94
113
|
const data = {};
|
|
@@ -98,6 +117,19 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
98
117
|
return (0, transactions_1.tupleCV)(data);
|
|
99
118
|
}
|
|
100
119
|
throw new sdk_core_1.InvalidParameterValueError('tuple require Array val');
|
|
120
|
+
case 'contractPrincipal':
|
|
121
|
+
case 'contract-principal': {
|
|
122
|
+
if (typeof arg.val !== 'string') {
|
|
123
|
+
throw new sdk_core_1.InvalidParameterValueError('contract principal requires string val');
|
|
124
|
+
}
|
|
125
|
+
return (0, utils_1.contractPrincipalCVFromString)(arg.val);
|
|
126
|
+
}
|
|
127
|
+
case 'standardPrincipal':
|
|
128
|
+
case 'standard-principal':
|
|
129
|
+
if (typeof arg.val !== 'string') {
|
|
130
|
+
throw new sdk_core_1.InvalidParameterValueError('standard principal requires string val');
|
|
131
|
+
}
|
|
132
|
+
return (0, utils_1.standardPrincipalCVFromString)(arg.val);
|
|
101
133
|
case 'buffer':
|
|
102
134
|
if (arg.val instanceof Buffer) {
|
|
103
135
|
return (0, transactions_1.bufferCV)(arg.val);
|
|
@@ -113,4 +145,4 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
113
145
|
}
|
|
114
146
|
}
|
|
115
147
|
exports.ContractBuilder = ContractBuilder;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBVThCO0FBQzlCLDhDQUE2RDtBQUU3RCxtQ0FBeUM7QUFFekMsd0JBQTBCO0FBQzFCLDJDQUE0RTtBQUM1RSx1RUFBb0U7QUFFcEUsTUFBYSxlQUFnQixTQUFRLGlEQUF1QjtJQUMxRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsUUFBSyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQTZCLENBQUMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENB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O2dCQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1QsT0FBTyxJQUFBLHVCQUFRLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO2dCQUNELE9BQU8sSUFBQSxpQ0FBa0IsRUFBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckM7Z0JBQ0UsT0FBTyxJQUFBLGlDQUFrQixFQUFDLEdBQUcsQ0FBQyxJQUFzQixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBNUdELDBDQTRHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcsIFN0YWNrc05ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgYnVmZmVyQ1YsXG4gIGJ1ZmZlckNWRnJvbVN0cmluZyxcbiAgQ2xhcml0eUFiaVR5cGUsXG4gIENsYXJpdHlUeXBlLFxuICBDbGFyaXR5VmFsdWUsXG4gIGVuY29kZUNsYXJpdHlWYWx1ZSxcbiAgbm9uZUNWLFxuICBzb21lQ1YsXG4gIHR1cGxlQ1YsXG59IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBpc1ZhbGlkQWRkcmVzcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQ2xhcml0eVZhbHVlSnNvbiB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuJztcbmltcG9ydCB7IENPTlRSQUNUX05BTUVfU0VORE1BTlksIENPTlRSQUNUX05BTUVfU1RBS0lORyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJhY3RCdWlsZGVyIH0gZnJvbSAnLi9hYnN0cmFjdENvbnRyYWN0QnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBDb250cmFjdEJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdENvbnRyYWN0QnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICAvLyBSZXRybyBjb21wYXRpYmlsaXR5LCBjaGVja3MgcGFyYW1ldGVycy5cbiAgICB0aGlzLmNvbnRyYWN0QWRkcmVzcyh0aGlzLl9jb250cmFjdEFkZHJlc3MpO1xuICAgIHRoaXMuY29udHJhY3ROYW1lKHRoaXMuX2NvbnRyYWN0TmFtZSk7XG4gICAgdGhpcy5mdW5jdGlvbk5hbWUodGhpcy5fZnVuY3Rpb25OYW1lKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyh0aGlzLl9mdW5jdGlvbkFyZ3MpO1xuICB9XG5cbiAgLy8gcmVnaW9uIENvbnRyYWN0IGZpZWxkc1xuICAvKipcbiAgICogU2V0IHRoZSBjb250cmFjdCBhZGRyZXNzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBhZGRyZXNzIGRlcGxveWVkIHRoZSBjb250cmFjdFxuICAgKiBAcmV0dXJucyB7Q29udHJhY3RCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSBuZXcgcGFyYW1ldGVyIHNldFxuICAgKi9cbiAgY29udHJhY3RBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICghVXRpbHMuaXNWYWxpZENvbnRyYWN0QWRkcmVzcyhhZGRyZXNzLCB0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbnRyYWN0IGFkZHJlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fY29udHJhY3RBZGRyZXNzID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbnRyYWN0IG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgbmFtZSBvZiBjb250cmFjdFxuICAgKiBAcmV0dXJucyB7Q29udHJhY3RCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSBuZXcgcGFyYW1ldGVyIHNldFxuICAgKi9cbiAgY29udHJhY3ROYW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmIChuYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIG5hbWUnKTtcbiAgICB9XG4gICAgaWYgKG5hbWUgIT09IENPTlRSQUNUX05BTUVfU1RBS0lORyAmJiBuYW1lICE9PSBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ09ubHkgcG94LTQgYW5kIHNlbmQtbWFueS1tZW1vIGNvbnRyYWN0cyBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gICAgdGhpcy5fY29udHJhY3ROYW1lID0gbmFtZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGZ1bmN0aW9uIG5hbWUgaW4gY29udHJhY3RcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgbmFtZSBvZiBmdW5jdGlvblxuICAgKiBAcmV0dXJucyB7Q29udHJhY3RCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSBuZXcgcGFyYW1ldGVyIHNldFxuICAgKi9cbiAgZnVuY3Rpb25OYW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmIChuYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIG5hbWUnKTtcbiAgICB9XG4gICAgaWYgKCFVdGlscy5pc1ZhbGlkQ29udHJhY3RGdW5jdGlvbk5hbWUobmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcihgJHtuYW1lfSBpcyBub3Qgc3VwcG9ydGVkIGNvbnRyYWN0IGZ1bmN0aW9uIG5hbWVgKTtcbiAgICB9XG4gICAgdGhpcy5fZnVuY3Rpb25OYW1lID0gbmFtZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZ1bmN0aW9uQXJncyhhcmdzOiBDbGFyaXR5VmFsdWVKc29uW10gfCBDbGFyaXR5VmFsdWVbXSk6IHRoaXMge1xuICAgIHRoaXMuX2Z1bmN0aW9uQXJncyA9IGFyZ3MubWFwKChhcmcpID0+IHtcbiAgICAgIGlmICghQ2xhcml0eVR5cGVbYXJnLnR5cGVdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlQ3YoYXJnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGdvdCBkaXJlY3QgY2xhcml0eSB2YWx1ZSBhZnRlciBkZXNlcmlhbGl6YXRpb24gaW4gZnJvbUltcGxlbWVudGF0aW9uXG4gICAgICAgIHJldHVybiBhcmc7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ3YoYXJnOiBDbGFyaXR5VmFsdWVKc29uKTogQ2xhcml0eVZhbHVlIHtcbiAgICBzd2l0Y2ggKGFyZy50eXBlKSB7XG4gICAgICBjYXNlICdvcHRpb25hbCc6XG4gICAgICAgIGlmIChhcmcudmFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gbm9uZUNWKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHNvbWVDVih0aGlzLnBhcnNlQ3YoYXJnLnZhbCkpO1xuICAgICAgICB9XG4gICAgICBjYXNlICd0dXBsZSc6XG4gICAgICAgIGlmIChhcmcudmFsIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0ge307XG4gICAgICAgICAgYXJnLnZhbC5mb3JFYWNoKChhKSA9PiB7XG4gICAgICAgICAgICBkYXRhW2Eua2V5XSA9IHRoaXMucGFyc2VDdih7IHR5cGU6IGEudHlwZSwgdmFsOiBhLnZhbCB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gdHVwbGVDVihkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ3R1cGxlIHJlcXVpcmUgQXJyYXkgdmFsJyk7XG4gICAgICBjYXNlICdidWZmZXInOlxuICAgICAgICBpZiAoYXJnLnZhbCBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgICAgIHJldHVybiBidWZmZXJDVihhcmcudmFsKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBudmFsID0gTnVtYmVyKGFyZy52YWwpO1xuICAgICAgICBpZiAobnZhbCkge1xuICAgICAgICAgIHJldHVybiBidWZmZXJDVihCdWZmZXIub2YobnZhbCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidWZmZXJDVkZyb21TdHJpbmcoYXJnLnZhbCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZW5jb2RlQ2xhcml0eVZhbHVlKGFyZy50eXBlIGFzIENsYXJpdHlBYmlUeXBlLCBhcmcudmFsKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBYThCO0FBQzlCLDhDQUE2RDtBQUU3RCxtQ0FBdUc7QUFFdkcsd0JBQTBCO0FBQzFCLDJDQUFtRjtBQUNuRix1RUFBb0U7QUFFcEUsTUFBYSxlQUFnQixTQUFRLGlEQUF1QjtJQUMxRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsUUFBSyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQTZCLENBQUMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBTdGFja3NOZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7XG4gIGJ1ZmZlckNWLFxuICBidWZmZXJDVkZyb21TdHJpbmcsXG4gIENsYXJpdHlBYmlUeXBlLFxuICBDbGFyaXR5VHlwZSxcbiAgQ2xhcml0eVZhbHVlLFxuICBlbmNvZGVDbGFyaXR5VmFsdWUsXG4gIG5vbmVDVixcbiAgbGlzdENWLFxuICByZXNwb25zZUVycm9yQ1YsXG4gIHJlc3BvbnNlT2tDVixcbiAgc29tZUNWLFxuICB0dXBsZUNWLFxufSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgY29udHJhY3RQcmluY2lwYWxDVkZyb21TdHJpbmcsIGlzVmFsaWRBZGRyZXNzLCBzdGFuZGFyZFByaW5jaXBhbENWRnJvbVN0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQ2xhcml0eVZhbHVlSnNvbiB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuJztcbmltcG9ydCB7IENPTlRSQUNUX05BTUVfU0VORE1BTlksIFZBTElEX1NUQUtJTkdfQ09OVFJBQ1RfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyYWN0QnVpbGRlciB9IGZyb20gJy4vYWJzdHJhY3RDb250cmFjdEJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgQ29udHJhY3RCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgLy8gUmV0cm8gY29tcGF0aWJpbGl0eSwgY2hlY2tzIHBhcmFtZXRlcnMuXG4gICAgdGhpcy5jb250cmFjdEFkZHJlc3ModGhpcy5fY29udHJhY3RBZGRyZXNzKTtcbiAgICB0aGlzLmNvbnRyYWN0TmFtZSh0aGlzLl9jb250cmFjdE5hbWUpO1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKHRoaXMuX2Z1bmN0aW9uTmFtZSk7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3ModGhpcy5fZnVuY3Rpb25BcmdzKTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBDb250cmFjdCBmaWVsZHNcbiAgLyoqXG4gICAqIFNldCB0aGUgY29udHJhY3QgYWRkcmVzc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyBkZXBsb3llZCB0aGUgY29udHJhY3RcbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGNvbnRyYWN0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgICBpZiAoIVV0aWxzLmlzVmFsaWRDb250cmFjdEFkZHJlc3MoYWRkcmVzcywgdGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yaykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBjb250cmFjdCBhZGRyZXNzJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbnRyYWN0QWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb250cmFjdCBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIG5hbWUgb2YgY29udHJhY3RcbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGNvbnRyYWN0TmFtZShuYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAobmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBuYW1lJyk7XG4gICAgfVxuICAgIGlmICghVkFMSURfU1RBS0lOR19DT05UUkFDVF9OQU1FUy5pbmNsdWRlcyhuYW1lKSAmJiBuYW1lICE9PSBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ09ubHkgcG94LTQsIHBveC01LCBhbmQgc2VuZC1tYW55LW1lbW8gY29udHJhY3RzIHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZnVuY3Rpb25OYW1lICYmICFVdGlscy5pc1ZhbGlkQ29udHJhY3RGdW5jdGlvbk5hbWUodGhpcy5fZnVuY3Rpb25OYW1lLCBuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKGAke3RoaXMuX2Z1bmN0aW9uTmFtZX0gaXMgbm90IHN1cHBvcnRlZCBjb250cmFjdCBmdW5jdGlvbiBuYW1lYCk7XG4gICAgfVxuICAgIHRoaXMuX2NvbnRyYWN0TmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdW5jdGlvbiBuYW1lIGluIGNvbnRyYWN0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIG5hbWUgb2YgZnVuY3Rpb25cbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGZ1bmN0aW9uTmFtZShuYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAobmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBuYW1lJyk7XG4gICAgfVxuICAgIGlmICghVXRpbHMuaXNWYWxpZENvbnRyYWN0RnVuY3Rpb25OYW1lKG5hbWUsIHRoaXMuX2NvbnRyYWN0TmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcihgJHtuYW1lfSBpcyBub3Qgc3VwcG9ydGVkIGNvbnRyYWN0IGZ1bmN0aW9uIG5hbWVgKTtcbiAgICB9XG4gICAgdGhpcy5fZnVuY3Rpb25OYW1lID0gbmFtZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZ1bmN0aW9uQXJncyhhcmdzOiBDbGFyaXR5VmFsdWVKc29uW10gfCBDbGFyaXR5VmFsdWVbXSk6IHRoaXMge1xuICAgIHRoaXMuX2Z1bmN0aW9uQXJncyA9IGFyZ3MubWFwKChhcmcpID0+IHtcbiAgICAgIGlmICghQ2xhcml0eVR5cGVbYXJnLnR5cGVdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlQ3YoYXJnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGdvdCBkaXJlY3QgY2xhcml0eSB2YWx1ZSBhZnRlciBkZXNlcmlhbGl6YXRpb24gaW4gZnJvbUltcGxlbWVudGF0aW9uXG4gICAgICAgIHJldHVybiBhcmc7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ3YoYXJnOiBDbGFyaXR5VmFsdWVKc29uKTogQ2xhcml0eVZhbHVlIHtcbiAgICBzd2l0Y2ggKGFyZy50eXBlKSB7XG4gICAgICBjYXNlICdvcHRpb25hbCc6XG4gICAgICAgIGlmIChhcmcudmFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gbm9uZUNWKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHNvbWVDVih0aGlzLnBhcnNlQ3YoYXJnLnZhbCkpO1xuICAgICAgICB9XG4gICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgaWYgKGFyZy52YWwgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIHJldHVybiBsaXN0Q1YoYXJnLnZhbC5tYXAoKHZhbHVlKSA9PiB0aGlzLnBhcnNlQ3YodmFsdWUpKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdsaXN0IHJlcXVpcmVzIEFycmF5IHZhbCcpO1xuICAgICAgY2FzZSAncmVzcG9uc2UnOlxuICAgICAgICBpZiAoYXJnLnZhbCAmJiB0eXBlb2YgYXJnLnZhbCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoYXJnLnZhbCkpIHtcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGFyZy52YWwgYXMgeyB0eXBlPzogc3RyaW5nOyB2YWw/OiBDbGFyaXR5VmFsdWVKc29uIH07XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09ICdvaycgJiYgcmVzcG9uc2UudmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZU9rQ1YodGhpcy5wYXJzZUN2KHJlc3BvbnNlLnZhbCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ2VycicgJiYgcmVzcG9uc2UudmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZUVycm9yQ1YodGhpcy5wYXJzZUN2KHJlc3BvbnNlLnZhbCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ3Jlc3BvbnNlIHJlcXVpcmVzIHsgdHlwZTogb2t8ZXJyLCB2YWwgfScpO1xuICAgICAgY2FzZSAndHVwbGUnOlxuICAgICAgICBpZiAoYXJnLnZhbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHt9O1xuICAgICAgICAgIGFyZy52YWwuZm9yRWFjaCgoYSkgPT4ge1xuICAgICAgICAgICAgZGF0YVthLmtleV0gPSB0aGlzLnBhcnNlQ3YoeyB0eXBlOiBhLnR5cGUsIHZhbDogYS52YWwgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHR1cGxlQ1YoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCd0dXBsZSByZXF1aXJlIEFycmF5IHZhbCcpO1xuICAgICAgY2FzZSAnY29udHJhY3RQcmluY2lwYWwnOlxuICAgICAgY2FzZSAnY29udHJhY3QtcHJpbmNpcGFsJzoge1xuICAgICAgICBpZiAodHlwZW9mIGFyZy52YWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdjb250cmFjdCBwcmluY2lwYWwgcmVxdWlyZXMgc3RyaW5nIHZhbCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250cmFjdFByaW5jaXBhbENWRnJvbVN0cmluZyhhcmcudmFsKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3N0YW5kYXJkUHJpbmNpcGFsJzpcbiAgICAgIGNhc2UgJ3N0YW5kYXJkLXByaW5jaXBhbCc6XG4gICAgICAgIGlmICh0eXBlb2YgYXJnLnZhbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ3N0YW5kYXJkIHByaW5jaXBhbCByZXF1aXJlcyBzdHJpbmcgdmFsJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0YW5kYXJkUHJpbmNpcGFsQ1ZGcm9tU3RyaW5nKGFyZy52YWwpO1xuICAgICAgY2FzZSAnYnVmZmVyJzpcbiAgICAgICAgaWYgKGFyZy52YWwgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gYnVmZmVyQ1YoYXJnLnZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnZhbCA9IE51bWJlcihhcmcudmFsKTtcbiAgICAgICAgaWYgKG52YWwpIHtcbiAgICAgICAgICByZXR1cm4gYnVmZmVyQ1YoQnVmZmVyLm9mKG52YWwpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnVmZmVyQ1ZGcm9tU3RyaW5nKGFyZy52YWwpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGVuY29kZUNsYXJpdHlWYWx1ZShhcmcudHlwZSBhcyBDbGFyaXR5QWJpVHlwZSwgYXJnLnZhbCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './transaction';
|
|
|
4
4
|
export * from './transactionBuilderFactory';
|
|
5
5
|
export * from './sbtcWithdrawBuilder';
|
|
6
6
|
export * from './btcAddressUtils';
|
|
7
|
+
export * from './pox5Builder';
|
|
7
8
|
export * from './iface';
|
|
8
9
|
export * as Utils from './utils';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
|
package/dist/src/lib/index.js
CHANGED
|
@@ -45,6 +45,7 @@ __exportStar(require("./transaction"), exports);
|
|
|
45
45
|
__exportStar(require("./transactionBuilderFactory"), exports);
|
|
46
46
|
__exportStar(require("./sbtcWithdrawBuilder"), exports);
|
|
47
47
|
__exportStar(require("./btcAddressUtils"), exports);
|
|
48
|
+
__exportStar(require("./pox5Builder"), exports);
|
|
48
49
|
__exportStar(require("./iface"), exports);
|
|
49
50
|
exports.Utils = __importStar(require("./utils"));
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1RTtBQUE5RCw4R0FBQSxjQUFjLE9BQUE7QUFBRSwrR0FBQSxlQUFlLE9BQUE7QUFDeEMsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5Qiw4REFBNEM7QUFDNUMsd0RBQXNDO0FBQ3RDLG9EQUFrQztBQUNsQyxnREFBOEI7QUFDOUIsMENBQXdCO0FBQ3hCLGlEQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFkZHJlc3NWZXJzaW9uLCBBZGRyZXNzSGFzaE1vZGUgfSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9zYnRjV2l0aGRyYXdCdWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYnRjQWRkcmVzc1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcG94NUJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbiJdfQ==
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
+
import { ContractCallPayload } from '@stacks/transactions';
|
|
3
|
+
import { ContractBuilder } from './contractBuilder';
|
|
4
|
+
type Integer = bigint | number | string;
|
|
5
|
+
type ByteValue = Buffer | Uint8Array | string;
|
|
6
|
+
export interface Pox5LockupOutput {
|
|
7
|
+
height: number;
|
|
8
|
+
tx: ByteValue;
|
|
9
|
+
outputIndex: number;
|
|
10
|
+
header: ByteValue;
|
|
11
|
+
leafHashes: ByteValue[];
|
|
12
|
+
txCount: number;
|
|
13
|
+
txIndex: number;
|
|
14
|
+
amount: Integer;
|
|
15
|
+
unlockBurnHeight: number;
|
|
16
|
+
}
|
|
17
|
+
export type Pox5Lockup = {
|
|
18
|
+
kind: 'btc';
|
|
19
|
+
outputs: Pox5LockupOutput[];
|
|
20
|
+
unlockBytes: ByteValue;
|
|
21
|
+
} | {
|
|
22
|
+
kind: 'sbtc';
|
|
23
|
+
sbtcSats: Integer;
|
|
24
|
+
};
|
|
25
|
+
export interface Pox5RegisterForBondParams {
|
|
26
|
+
bondIndex: Integer;
|
|
27
|
+
signerManager: string;
|
|
28
|
+
amountUstx: Integer;
|
|
29
|
+
lockup: Pox5Lockup;
|
|
30
|
+
signerCalldata?: ByteValue;
|
|
31
|
+
}
|
|
32
|
+
export interface Pox5UpdateBondRegistrationParams {
|
|
33
|
+
signerManager: string;
|
|
34
|
+
oldSignerManager: string;
|
|
35
|
+
signerCalldata?: ByteValue;
|
|
36
|
+
}
|
|
37
|
+
export interface Pox5AnnounceL1EarlyExitParams {
|
|
38
|
+
staker: string;
|
|
39
|
+
oldSignerManager: string;
|
|
40
|
+
}
|
|
41
|
+
export interface Pox5StakeParams {
|
|
42
|
+
signerManager: string;
|
|
43
|
+
amountUstx: Integer;
|
|
44
|
+
numCycles: Integer;
|
|
45
|
+
startBurnHt: Integer;
|
|
46
|
+
signerCalldata?: ByteValue;
|
|
47
|
+
}
|
|
48
|
+
export interface Pox5StakeUpdateParams {
|
|
49
|
+
signerManager: string;
|
|
50
|
+
oldSignerManager: string;
|
|
51
|
+
cyclesToExtend?: Integer;
|
|
52
|
+
amountIncrease?: Integer;
|
|
53
|
+
signerCalldata?: ByteValue;
|
|
54
|
+
}
|
|
55
|
+
export interface Pox5ClaimRewardsParams {
|
|
56
|
+
bondIndices: Integer[];
|
|
57
|
+
rewardCycle: Integer;
|
|
58
|
+
}
|
|
59
|
+
export interface Pox5ClaimStakerRewardsParams {
|
|
60
|
+
staker: string;
|
|
61
|
+
rewardCycle: Integer;
|
|
62
|
+
bondIndex?: Integer;
|
|
63
|
+
}
|
|
64
|
+
export declare class Pox5Builder extends ContractBuilder {
|
|
65
|
+
constructor(coinConfig: Readonly<CoinConfig>);
|
|
66
|
+
static isValidContractCall(coinConfig: Readonly<CoinConfig>, payload: ContractCallPayload): boolean;
|
|
67
|
+
registerForBond(params: Pox5RegisterForBondParams): this;
|
|
68
|
+
updateBondRegistration(params: Pox5UpdateBondRegistrationParams): this;
|
|
69
|
+
announceL1EarlyExit(params: Pox5AnnounceL1EarlyExitParams): this;
|
|
70
|
+
stake(params: Pox5StakeParams): this;
|
|
71
|
+
stakeUpdate(params: Pox5StakeUpdateParams): this;
|
|
72
|
+
unstake(oldSignerManager: string): this;
|
|
73
|
+
calculateRewards(bondIndices: Integer[]): this;
|
|
74
|
+
claimRewards(params: Pox5ClaimRewardsParams): this;
|
|
75
|
+
claimStakerRewardsForSigner(params: Pox5ClaimStakerRewardsParams): this;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=pox5Builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pox5Builder.d.ts","sourceRoot":"","sources":["../../../src/lib/pox5Builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Pox5Builder = void 0;
|
|
4
|
+
const transactions_1 = require("@stacks/transactions");
|
|
5
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
6
|
+
const contractBuilder_1 = require("./contractBuilder");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
const utils_1 = require("./utils");
|
|
9
|
+
function byteBuffer(value, field, expectedLength) {
|
|
10
|
+
// String inputs are hexadecimal, with an optional 0x prefix; use Buffer for text bytes.
|
|
11
|
+
let buffer;
|
|
12
|
+
if (Buffer.isBuffer(value)) {
|
|
13
|
+
buffer = value;
|
|
14
|
+
}
|
|
15
|
+
else if (value instanceof Uint8Array) {
|
|
16
|
+
buffer = Buffer.from(value);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const hex = value.startsWith('0x') ? value.slice(2) : value;
|
|
20
|
+
if (hex.length % 2 !== 0 || !/^[0-9a-f]*$/i.test(hex)) {
|
|
21
|
+
throw new sdk_core_1.InvalidParameterValueError(`${field} must be an even-length hexadecimal string`);
|
|
22
|
+
}
|
|
23
|
+
buffer = Buffer.from(hex, 'hex');
|
|
24
|
+
}
|
|
25
|
+
if (expectedLength !== undefined && buffer.length !== expectedLength) {
|
|
26
|
+
throw new sdk_core_1.InvalidParameterValueError(`${field} must be exactly ${expectedLength} bytes`);
|
|
27
|
+
}
|
|
28
|
+
return buffer;
|
|
29
|
+
}
|
|
30
|
+
function optionalBuffer(value) {
|
|
31
|
+
return value === undefined ? (0, transactions_1.noneCV)() : (0, transactions_1.someCV)((0, transactions_1.bufferCV)(byteBuffer(value, 'signerCalldata')));
|
|
32
|
+
}
|
|
33
|
+
function lockupValue(lockup) {
|
|
34
|
+
if (lockup.kind === 'sbtc') {
|
|
35
|
+
// PoX-5 ABI represents an sBTC lockup as err uint and an L1 BTC lockup as ok tuple.
|
|
36
|
+
return (0, transactions_1.responseErrorCV)((0, transactions_1.uintCV)(lockup.sbtcSats));
|
|
37
|
+
}
|
|
38
|
+
if (lockup.outputs.length === 0 || lockup.outputs.length > 10) {
|
|
39
|
+
throw new sdk_core_1.InvalidParameterValueError('btc lockup outputs must contain between 1 and 10 outputs');
|
|
40
|
+
}
|
|
41
|
+
for (const [index, output] of lockup.outputs.entries()) {
|
|
42
|
+
if (output.leafHashes.length > 14) {
|
|
43
|
+
throw new sdk_core_1.InvalidParameterValueError(`btc lockup output ${index} has more than 14 merkle siblings`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return (0, transactions_1.responseOkCV)((0, transactions_1.tupleCV)({
|
|
47
|
+
outputs: (0, transactions_1.listCV)(lockup.outputs.map((output) => (0, transactions_1.tupleCV)({
|
|
48
|
+
height: (0, transactions_1.uintCV)(output.height),
|
|
49
|
+
tx: (0, transactions_1.bufferCV)(byteBuffer(output.tx, 'tx')),
|
|
50
|
+
'output-index': (0, transactions_1.uintCV)(output.outputIndex),
|
|
51
|
+
header: (0, transactions_1.bufferCV)(byteBuffer(output.header, 'header', 80)),
|
|
52
|
+
'leaf-hashes': (0, transactions_1.listCV)(output.leafHashes.map((hash) => (0, transactions_1.bufferCV)(byteBuffer(hash, 'leafHash', 32)))),
|
|
53
|
+
'tx-count': (0, transactions_1.uintCV)(output.txCount),
|
|
54
|
+
'tx-index': (0, transactions_1.uintCV)(output.txIndex),
|
|
55
|
+
amount: (0, transactions_1.uintCV)(output.amount),
|
|
56
|
+
'unlock-burn-height': (0, transactions_1.uintCV)(output.unlockBurnHeight),
|
|
57
|
+
}))),
|
|
58
|
+
'staker-unlock-bytes': (0, transactions_1.bufferCV)(byteBuffer(lockup.unlockBytes, 'unlockBytes')),
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
class Pox5Builder extends contractBuilder_1.ContractBuilder {
|
|
62
|
+
constructor(coinConfig) {
|
|
63
|
+
super(coinConfig);
|
|
64
|
+
this._contractAddress = coinConfig.network.stakingContractAddress;
|
|
65
|
+
this._contractName = constants_1.CONTRACT_NAME_POX5;
|
|
66
|
+
}
|
|
67
|
+
static isValidContractCall(coinConfig, payload) {
|
|
68
|
+
return (coinConfig.network.stakingContractAddress === (0, transactions_1.addressToString)(payload.contractAddress) &&
|
|
69
|
+
payload.contractName.content === constants_1.CONTRACT_NAME_POX5);
|
|
70
|
+
}
|
|
71
|
+
registerForBond(params) {
|
|
72
|
+
this.functionName(constants_1.FUNCTION_NAME_REGISTER_FOR_BOND);
|
|
73
|
+
this.functionArgs([
|
|
74
|
+
(0, transactions_1.uintCV)(params.bondIndex),
|
|
75
|
+
(0, utils_1.contractPrincipalCVFromString)(params.signerManager),
|
|
76
|
+
(0, transactions_1.uintCV)(params.amountUstx),
|
|
77
|
+
lockupValue(params.lockup),
|
|
78
|
+
optionalBuffer(params.signerCalldata),
|
|
79
|
+
]);
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
updateBondRegistration(params) {
|
|
83
|
+
this.functionName(constants_1.FUNCTION_NAME_UPDATE_BOND_REGISTRATION);
|
|
84
|
+
this.functionArgs([
|
|
85
|
+
(0, utils_1.contractPrincipalCVFromString)(params.signerManager),
|
|
86
|
+
(0, utils_1.contractPrincipalCVFromString)(params.oldSignerManager),
|
|
87
|
+
optionalBuffer(params.signerCalldata),
|
|
88
|
+
]);
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
announceL1EarlyExit(params) {
|
|
92
|
+
this.functionName(constants_1.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT);
|
|
93
|
+
this.functionArgs([
|
|
94
|
+
(0, utils_1.standardPrincipalCVFromString)(params.staker),
|
|
95
|
+
(0, utils_1.contractPrincipalCVFromString)(params.oldSignerManager),
|
|
96
|
+
]);
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
stake(params) {
|
|
100
|
+
this.functionName(constants_1.FUNCTION_NAME_STAKE);
|
|
101
|
+
this.functionArgs([
|
|
102
|
+
(0, utils_1.contractPrincipalCVFromString)(params.signerManager),
|
|
103
|
+
(0, transactions_1.uintCV)(params.amountUstx),
|
|
104
|
+
(0, transactions_1.uintCV)(params.numCycles),
|
|
105
|
+
(0, transactions_1.uintCV)(params.startBurnHt),
|
|
106
|
+
optionalBuffer(params.signerCalldata),
|
|
107
|
+
]);
|
|
108
|
+
return this;
|
|
109
|
+
}
|
|
110
|
+
stakeUpdate(params) {
|
|
111
|
+
this.functionName(constants_1.FUNCTION_NAME_STAKE_UPDATE);
|
|
112
|
+
this.functionArgs([
|
|
113
|
+
(0, utils_1.contractPrincipalCVFromString)(params.signerManager),
|
|
114
|
+
(0, utils_1.contractPrincipalCVFromString)(params.oldSignerManager),
|
|
115
|
+
// The PoX-5 ABI uses uint values; omitted values intentionally encode zero.
|
|
116
|
+
(0, transactions_1.uintCV)(params.cyclesToExtend ?? 0),
|
|
117
|
+
(0, transactions_1.uintCV)(params.amountIncrease ?? 0),
|
|
118
|
+
optionalBuffer(params.signerCalldata),
|
|
119
|
+
]);
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
unstake(oldSignerManager) {
|
|
123
|
+
this.functionName(constants_1.FUNCTION_NAME_UNSTAKE);
|
|
124
|
+
this.functionArgs([(0, utils_1.contractPrincipalCVFromString)(oldSignerManager)]);
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
calculateRewards(bondIndices) {
|
|
128
|
+
this.functionName(constants_1.FUNCTION_NAME_CALCULATE_REWARDS);
|
|
129
|
+
this.functionArgs([(0, transactions_1.listCV)(bondIndices.map((bondIndex) => (0, transactions_1.uintCV)(bondIndex)))]);
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
claimRewards(params) {
|
|
133
|
+
this.functionName(constants_1.FUNCTION_NAME_CLAIM_REWARDS);
|
|
134
|
+
this.functionArgs([(0, transactions_1.listCV)(params.bondIndices.map((bondIndex) => (0, transactions_1.uintCV)(bondIndex))), (0, transactions_1.uintCV)(params.rewardCycle)]);
|
|
135
|
+
return this;
|
|
136
|
+
}
|
|
137
|
+
claimStakerRewardsForSigner(params) {
|
|
138
|
+
this.functionName(constants_1.FUNCTION_NAME_CLAIM_STAKER_REWARDS);
|
|
139
|
+
this.functionArgs([
|
|
140
|
+
(0, utils_1.standardPrincipalCVFromString)(params.staker),
|
|
141
|
+
(0, transactions_1.uintCV)(params.rewardCycle),
|
|
142
|
+
params.bondIndex === undefined ? (0, transactions_1.noneCV)() : (0, transactions_1.someCV)((0, transactions_1.uintCV)(params.bondIndex)),
|
|
143
|
+
]);
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.Pox5Builder = Pox5Builder;
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG94NUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BveDVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVEQVk4QjtBQUM5Qiw4Q0FBNkQ7QUFDN0QsdURBQW9EO0FBQ3BELDJDQVdxQjtBQUNyQixtQ0FBdUY7QUEwRXZGLFNBQVMsVUFBVSxDQUFDLEtBQWdCLEVBQUUsS0FBYSxFQUFFLGNBQXVCO0lBQzFFLHdGQUF3RjtJQUN4RixJQUFJLE1BQWMsQ0FBQztJQUNuQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLENBQUM7U0FBTSxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1RCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUkscUNBQTBCLENBQUMsR0FBRyxLQUFLLDRDQUE0QyxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxjQUFjLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssY0FBYyxFQUFFLENBQUM7UUFDckUsTUFBTSxJQUFJ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TSxFQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDMUIsTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUEscUJBQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFBLHFCQUFNLEVBQUMsSUFBQSxxQkFBTSxFQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3RSxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQWpHRCxrQ0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBTdGFja3NOZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7XG4gIGJ1ZmZlckNWLFxuICBDb250cmFjdENhbGxQYXlsb2FkLFxuICBDbGFyaXR5VmFsdWUsXG4gIGxpc3RDVixcbiAgbm9uZUNWLFxuICByZXNwb25zZUVycm9yQ1YsXG4gIHJlc3BvbnNlT2tDVixcbiAgc29tZUNWLFxuICB0dXBsZUNWLFxuICB1aW50Q1YsXG4gIGFkZHJlc3NUb1N0cmluZyxcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQ29udHJhY3RCdWlsZGVyIH0gZnJvbSAnLi9jb250cmFjdEJ1aWxkZXInO1xuaW1wb3J0IHtcbiAgQ09OVFJBQ1RfTkFNRV9QT1g1LFxuICBGVU5DVElPTl9OQU1FX0FOTk9VTkNFX0wxX0VBUkxZX0VYSVQsXG4gIEZVTkNUSU9OX05BTUVfQ0FMQ1VMQVRFX1JFV0FSRFMsXG4gIEZVTkNUSU9OX05BTUVfQ0xBSU1fUkVXQVJEUyxcbiAgRlVOQ1RJT05fTkFNRV9DTEFJTV9TVEFLRVJfUkVXQVJEUyxcbiAgRlVOQ1RJT05fTkFNRV9SRUdJU1RFUl9GT1JfQk9ORCxcbiAgRlVOQ1RJT05fTkFNRV9TVEFLRSxcbiAgRlVOQ1RJT05fTkFNRV9TVEFLRV9VUERBVEUsXG4gIEZVTkNUSU9OX05BTUVfVU5TVEFLRSxcbiAgRlVOQ1RJT05fTkFNRV9VUERBVEVfQk9ORF9SRUdJU1RSQVRJT04sXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGNvbnRyYWN0UHJpbmNpcGFsQ1ZGcm9tU3RyaW5nLCBzdGFuZGFyZFByaW5jaXBhbENWRnJvbVN0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuXG50eXBlIEludGVnZXIgPSBiaWdpbnQgfCBudW1iZXIgfCBzdHJpbmc7XG50eXBlIEJ5dGVWYWx1ZSA9IEJ1ZmZlciB8IFVpbnQ4QXJyYXkgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG94NUxvY2t1cE91dHB1dCB7XG4gIGhlaWdodDogbnVtYmVyO1xuICB0eDogQnl0ZVZhbHVlO1xuICBvdXRwdXRJbmRleDogbnVtYmVyO1xuICBoZWFkZXI6IEJ5dGVWYWx1ZTtcbiAgbGVhZkhhc2hlczogQnl0ZVZhbHVlW107XG4gIHR4Q291bnQ6IG51bWJlcjtcbiAgdHhJbmRleDogbnVtYmVyO1xuICBhbW91bnQ6IEludGVnZXI7XG4gIHVubG9ja0J1cm5IZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgUG94NUxvY2t1cCA9XG4gIHwge1xuICAgICAga2luZDogJ2J0Yyc7XG4gICAgICBvdXRwdXRzOiBQb3g1TG9ja3VwT3V0cHV0W107XG4gICAgICB1bmxvY2tCeXRlczogQnl0ZVZhbHVlO1xuICAgIH1cbiAgfCB7XG4gICAgICBraW5kOiAnc2J0Yyc7XG4gICAgICBzYnRjU2F0czogSW50ZWdlcjtcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBveDVSZWdpc3RlckZvckJvbmRQYXJhbXMge1xuICBib25kSW5kZXg6IEludGVnZXI7XG4gIHNpZ25lck1hbmFnZXI6IHN0cmluZztcbiAgYW1vdW50VXN0eDogSW50ZWdlcjtcbiAgbG9ja3VwOiBQb3g1TG9ja3VwO1xuICBzaWduZXJDYWxsZGF0YT86IEJ5dGVWYWx1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3g1VXBkYXRlQm9uZFJlZ2lzdHJhdGlvblBhcmFtcyB7XG4gIHNpZ25lck1hbmFnZXI6IHN0cmluZztcbiAgb2xkU2lnbmVyTWFuYWdlcjogc3RyaW5nO1xuICBzaWduZXJDYWxsZGF0YT86IEJ5dGVWYWx1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3g1QW5ub3VuY2VMMUVhcmx5RXhpdFBhcmFtcyB7XG4gIHN0YWtlcjogc3RyaW5nO1xuICBvbGRTaWduZXJNYW5hZ2VyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG94NVN0YWtlUGFyYW1zIHtcbiAgc2lnbmVyTWFuYWdlcjogc3RyaW5nO1xuICBhbW91bnRVc3R4OiBJbnRlZ2VyO1xuICBudW1DeWNsZXM6IEludGVnZXI7XG4gIHN0YXJ0QnVybkh0OiBJbnRlZ2VyO1xuICBzaWduZXJDYWxsZGF0YT86IEJ5dGVWYWx1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3g1U3Rha2VVcGRhdGVQYXJhbXMge1xuICBzaWduZXJNYW5hZ2VyOiBzdHJpbmc7XG4gIG9sZFNpZ25lck1hbmFnZXI6IHN0cmluZztcbiAgY3ljbGVzVG9FeHRlbmQ/OiBJbnRlZ2VyO1xuICBhbW91bnRJbmNyZWFzZT86IEludGVnZXI7XG4gIHNpZ25lckNhbGxkYXRhPzogQnl0ZVZhbHVlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBveDVDbGFpbVJld2FyZHNQYXJhbXMge1xuICBib25kSW5kaWNlczogSW50ZWdlcltdO1xuICByZXdhcmRDeWNsZTogSW50ZWdlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3g1Q2xhaW1TdGFrZXJSZXdhcmRzUGFyYW1zIHtcbiAgc3Rha2VyOiBzdHJpbmc7XG4gIHJld2FyZEN5Y2xlOiBJbnRlZ2VyO1xuICBib25kSW5kZXg/OiBJbnRlZ2VyO1xufVxuXG5mdW5jdGlvbiBieXRlQnVmZmVyKHZhbHVlOiBCeXRlVmFsdWUsIGZpZWxkOiBzdHJpbmcsIGV4cGVjdGVkTGVuZ3RoPzogbnVtYmVyKTogQnVmZmVyIHtcbiAgLy8gU3RyaW5nIGlucHV0cyBhcmUgaGV4YWRlY2ltYWwsIHdpdGggYW4gb3B0aW9uYWwgMHggcHJlZml4OyB1c2UgQnVmZmVyIGZvciB0ZXh0IGJ5dGVzLlxuICBsZXQgYnVmZmVyOiBCdWZmZXI7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgYnVmZmVyID0gdmFsdWU7XG4gIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgYnVmZmVyID0gQnVmZmVyLmZyb20odmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGhleCA9IHZhbHVlLnN0YXJ0c1dpdGgoJzB4JykgPyB2YWx1ZS5zbGljZSgyKSA6IHZhbHVlO1xuICAgIGlmIChoZXgubGVuZ3RoICUgMiAhPT0gMCB8fCAhL15bMC05YS1mXSokL2kudGVzdChoZXgpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoYCR7ZmllbGR9IG11c3QgYmUgYW4gZXZlbi1sZW5ndGggaGV4YWRlY2ltYWwgc3RyaW5nYCk7XG4gICAgfVxuICAgIGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpO1xuICB9XG4gIGlmIChleHBlY3RlZExlbmd0aCAhPT0gdW5kZWZpbmVkICYmIGJ1ZmZlci5sZW5ndGggIT09IGV4cGVjdGVkTGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKGAke2ZpZWxkfSBtdXN0IGJlIGV4YWN0bHkgJHtleHBlY3RlZExlbmd0aH0gYnl0ZXNgKTtcbiAgfVxuICByZXR1cm4gYnVmZmVyO1xufVxuXG5mdW5jdGlvbiBvcHRpb25hbEJ1ZmZlcih2YWx1ZTogQnl0ZVZhbHVlIHwgdW5kZWZpbmVkKTogQ2xhcml0eVZhbHVlIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyBub25lQ1YoKSA6IHNvbWVDVihidWZmZXJDVihieXRlQnVmZmVyKHZhbHVlLCAnc2lnbmVyQ2FsbGRhdGEnKSkpO1xufVxuXG5mdW5jdGlvbiBsb2NrdXBWYWx1ZShsb2NrdXA6IFBveDVMb2NrdXApOiBDbGFyaXR5VmFsdWUge1xuICBpZiAobG9ja3VwLmtpbmQgPT09ICdzYnRjJykge1xuICAgIC8vIFBvWC01IEFCSSByZXByZXNlbnRzIGFuIHNCVEMgbG9ja3VwIGFzIGVyciB1aW50IGFuZCBhbiBMMSBCVEMgbG9ja3VwIGFzIG9rIHR1cGxlLlxuICAgIHJldHVybiByZXNwb25zZUVycm9yQ1YodWludENWKGxvY2t1cC5zYnRjU2F0cykpO1xuICB9XG4gIGlmIChsb2NrdXAub3V0cHV0cy5sZW5ndGggPT09IDAgfHwgbG9ja3VwLm91dHB1dHMubGVuZ3RoID4gMTApIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ2J0YyBsb2NrdXAgb3V0cHV0cyBtdXN0IGNvbnRhaW4gYmV0d2VlbiAxIGFuZCAxMCBvdXRwdXRzJyk7XG4gIH1cbiAgZm9yIChjb25zdCBbaW5kZXgsIG91dHB1dF0gb2YgbG9ja3VwLm91dHB1dHMuZW50cmllcygpKSB7XG4gICAgaWYgKG91dHB1dC5sZWFmSGFzaGVzLmxlbmd0aCA+IDE0KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoYGJ0YyBsb2NrdXAgb3V0cHV0ICR7aW5kZXh9IGhhcyBtb3JlIHRoYW4gMTQgbWVya2xlIHNpYmxpbmdzYCk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNwb25zZU9rQ1YoXG4gICAgdHVwbGVDVih7XG4gICAgICBvdXRwdXRzOiBsaXN0Q1YoXG4gICAgICAgIGxvY2t1cC5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PlxuICAgICAgICAgIHR1cGxlQ1Yoe1xuICAgICAgICAgICAgaGVpZ2h0OiB1aW50Q1Yob3V0cHV0LmhlaWdodCksXG4gICAgICAgICAgICB0eDogYnVmZmVyQ1YoYnl0ZUJ1ZmZlcihvdXRwdXQudHgsICd0eCcpKSxcbiAgICAgICAgICAgICdvdXRwdXQtaW5kZXgnOiB1aW50Q1Yob3V0cHV0Lm91dHB1dEluZGV4KSxcbiAgICAgICAgICAgIGhlYWRlcjogYnVmZmVyQ1YoYnl0ZUJ1ZmZlcihvdXRwdXQuaGVhZGVyLCAnaGVhZGVyJywgODApKSxcbiAgICAgICAgICAgICdsZWFmLWhhc2hlcyc6IGxpc3RDVihvdXRwdXQubGVhZkhhc2hlcy5tYXAoKGhhc2gpID0+IGJ1ZmZlckNWKGJ5dGVCdWZmZXIoaGFzaCwgJ2xlYWZIYXNoJywgMzIpKSkpLFxuICAgICAgICAgICAgJ3R4LWNvdW50JzogdWludENWKG91dHB1dC50eENvdW50KSxcbiAgICAgICAgICAgICd0eC1pbmRleCc6IHVpbnRDVihvdXRwdXQudHhJbmRleCksXG4gICAgICAgICAgICBhbW91bnQ6IHVpbnRDVihvdXRwdXQuYW1vdW50KSxcbiAgICAgICAgICAgICd1bmxvY2stYnVybi1oZWlnaHQnOiB1aW50Q1Yob3V0cHV0LnVubG9ja0J1cm5IZWlnaHQpLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICAnc3Rha2VyLXVubG9jay1ieXRlcyc6IGJ1ZmZlckNWKGJ5dGVCdWZmZXIobG9ja3VwLnVubG9ja0J5dGVzLCAndW5sb2NrQnl0ZXMnKSksXG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGNsYXNzIFBveDVCdWlsZGVyIGV4dGVuZHMgQ29udHJhY3RCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLl9jb250cmFjdEFkZHJlc3MgPSAoY29pbkNvbmZpZy5uZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yaykuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcztcbiAgICB0aGlzLl9jb250cmFjdE5hbWUgPSBDT05UUkFDVF9OQU1FX1BPWDU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRDb250cmFjdENhbGwoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sIHBheWxvYWQ6IENvbnRyYWN0Q2FsbFBheWxvYWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgKGNvaW5Db25maWcubmV0d29yayBhcyBCaXRnb1N0YWNrc05ldHdvcmspLnN0YWtpbmdDb250cmFjdEFkZHJlc3MgPT09IGFkZHJlc3NUb1N0cmluZyhwYXlsb2FkLmNvbnRyYWN0QWRkcmVzcykgJiZcbiAgICAgIHBheWxvYWQuY29udHJhY3ROYW1lLmNvbnRlbnQgPT09IENPTlRSQUNUX05BTUVfUE9YNVxuICAgICk7XG4gIH1cblxuICByZWdpc3RlckZvckJvbmQocGFyYW1zOiBQb3g1UmVnaXN0ZXJGb3JCb25kUGFyYW1zKTogdGhpcyB7XG4gICAgdGhpcy5mdW5jdGlvbk5hbWUoRlVOQ1RJT05fTkFNRV9SRUdJU1RFUl9GT1JfQk9ORCk7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3MoW1xuICAgICAgdWludENWKHBhcmFtcy5ib25kSW5kZXgpLFxuICAgICAgY29udHJhY3RQcmluY2lwYWxDVkZyb21TdHJpbmcocGFyYW1zLnNpZ25lck1hbmFnZXIpLFxuICAgICAgdWludENWKHBhcmFtcy5hbW91bnRVc3R4KSxcbiAgICAgIGxvY2t1cFZhbHVlKHBhcmFtcy5sb2NrdXApLFxuICAgICAgb3B0aW9uYWxCdWZmZXIocGFyYW1zLnNpZ25lckNhbGxkYXRhKSxcbiAgICBdKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHVwZGF0ZUJvbmRSZWdpc3RyYXRpb24ocGFyYW1zOiBQb3g1VXBkYXRlQm9uZFJlZ2lzdHJhdGlvblBhcmFtcyk6IHRoaXMge1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKEZVTkNUSU9OX05BTUVfVVBEQVRFX0JPTkRfUkVHSVNUUkFUSU9OKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyhbXG4gICAgICBjb250cmFjdFByaW5jaXBhbENWRnJvbVN0cmluZyhwYXJhbXMuc2lnbmVyTWFuYWdlciksXG4gICAgICBjb250cmFjdFByaW5jaXBhbENWRnJvbVN0cmluZyhwYXJhbXMub2xkU2lnbmVyTWFuYWdlciksXG4gICAgICBvcHRpb25hbEJ1ZmZlcihwYXJhbXMuc2lnbmVyQ2FsbGRhdGEpLFxuICAgIF0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYW5ub3VuY2VMMUVhcmx5RXhpdChwYXJhbXM6IFBveDVBbm5vdW5jZUwxRWFybHlFeGl0UGFyYW1zKTogdGhpcyB7XG4gICAgdGhpcy5mdW5jdGlvbk5hbWUoRlVOQ1RJT05fTkFNRV9BTk5PVU5DRV9MMV9FQVJMWV9FWElUKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyhbXG4gICAgICBzdGFuZGFyZFByaW5jaXBhbENWRnJvbVN0cmluZyhwYXJhbXMuc3Rha2VyKSxcbiAgICAgIGNvbnRyYWN0UHJpbmNpcGFsQ1ZGcm9tU3RyaW5nKHBhcmFtcy5vbGRTaWduZXJNYW5hZ2VyKSxcbiAgICBdKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0YWtlKHBhcmFtczogUG94NVN0YWtlUGFyYW1zKTogdGhpcyB7XG4gICAgdGhpcy5mdW5jdGlvbk5hbWUoRlVOQ1RJT05fTkFNRV9TVEFLRSk7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3MoW1xuICAgICAgY29udHJhY3RQcmluY2lwYWxDVkZyb21TdHJpbmcocGFyYW1zLnNpZ25lck1hbmFnZXIpLFxuICAgICAgdWludENWKHBhcmFtcy5hbW91bnRVc3R4KSxcbiAgICAgIHVpbnRDVihwYXJhbXMubnVtQ3ljbGVzKSxcbiAgICAgIHVpbnRDVihwYXJhbXMuc3RhcnRCdXJuSHQpLFxuICAgICAgb3B0aW9uYWxCdWZmZXIocGFyYW1zLnNpZ25lckNhbGxkYXRhKSxcbiAgICBdKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0YWtlVXBkYXRlKHBhcmFtczogUG94NVN0YWtlVXBkYXRlUGFyYW1zKTogdGhpcyB7XG4gICAgdGhpcy5mdW5jdGlvbk5hbWUoRlVOQ1RJT05fTkFNRV9TVEFLRV9VUERBVEUpO1xuICAgIHRoaXMuZnVuY3Rpb25BcmdzKFtcbiAgICAgIGNvbnRyYWN0UHJpbmNpcGFsQ1ZGcm9tU3RyaW5nKHBhcmFtcy5zaWduZXJNYW5hZ2VyKSxcbiAgICAgIGNvbnRyYWN0UHJpbmNpcGFsQ1ZGcm9tU3RyaW5nKHBhcmFtcy5vbGRTaWduZXJNYW5hZ2VyKSxcbiAgICAgIC8vIFRoZSBQb1gtNSBBQkkgdXNlcyB1aW50IHZhbHVlczsgb21pdHRlZCB2YWx1ZXMgaW50ZW50aW9uYWxseSBlbmNvZGUgemVyby5cbiAgICAgIHVpbnRDVihwYXJhbXMuY3ljbGVzVG9FeHRlbmQgPz8gMCksXG4gICAgICB1aW50Q1YocGFyYW1zLmFtb3VudEluY3JlYXNlID8/IDApLFxuICAgICAgb3B0aW9uYWxCdWZmZXIocGFyYW1zLnNpZ25lckNhbGxkYXRhKSxcbiAgICBdKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHVuc3Rha2Uob2xkU2lnbmVyTWFuYWdlcjogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5mdW5jdGlvbk5hbWUoRlVOQ1RJT05fTkFNRV9VTlNUQUtFKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyhbY29udHJhY3RQcmluY2lwYWxDVkZyb21TdHJpbmcob2xkU2lnbmVyTWFuYWdlcildKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNhbGN1bGF0ZVJld2FyZHMoYm9uZEluZGljZXM6IEludGVnZXJbXSk6IHRoaXMge1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKEZVTkNUSU9OX05BTUVfQ0FMQ1VMQVRFX1JFV0FSRFMpO1xuICAgIHRoaXMuZnVuY3Rpb25BcmdzKFtsaXN0Q1YoYm9uZEluZGljZXMubWFwKChib25kSW5kZXgpID0+IHVpbnRDVihib25kSW5kZXgpKSldKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNsYWltUmV3YXJkcyhwYXJhbXM6IFBveDVDbGFpbVJld2FyZHNQYXJhbXMpOiB0aGlzIHtcbiAgICB0aGlzLmZ1bmN0aW9uTmFtZShGVU5DVElPTl9OQU1FX0NMQUlNX1JFV0FSRFMpO1xuICAgIHRoaXMuZnVuY3Rpb25BcmdzKFtsaXN0Q1YocGFyYW1zLmJvbmRJbmRpY2VzLm1hcCgoYm9uZEluZGV4KSA9PiB1aW50Q1YoYm9uZEluZGV4KSkpLCB1aW50Q1YocGFyYW1zLnJld2FyZEN5Y2xlKV0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY2xhaW1TdGFrZXJSZXdhcmRzRm9yU2lnbmVyKHBhcmFtczogUG94NUNsYWltU3Rha2VyUmV3YXJkc1BhcmFtcyk6IHRoaXMge1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKEZVTkNUSU9OX05BTUVfQ0xBSU1fU1RBS0VSX1JFV0FSRFMpO1xuICAgIHRoaXMuZnVuY3Rpb25BcmdzKFtcbiAgICAgIHN0YW5kYXJkUHJpbmNpcGFsQ1ZGcm9tU3RyaW5nKHBhcmFtcy5zdGFrZXIpLFxuICAgICAgdWludENWKHBhcmFtcy5yZXdhcmRDeWNsZSksXG4gICAgICBwYXJhbXMuYm9uZEluZGV4ID09PSB1bmRlZmluZWQgPyBub25lQ1YoKSA6IHNvbWVDVih1aW50Q1YocGFyYW1zLmJvbmRJbmRleCkpLFxuICAgIF0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
|
|
@@ -7,6 +7,7 @@ import { ContractBuilder } from './contractBuilder';
|
|
|
7
7
|
import { SendmanyBuilder } from './sendmanyBuilder';
|
|
8
8
|
import { SbtcWithdrawBuilder } from './sbtcWithdrawBuilder';
|
|
9
9
|
import { FungibleTokenTransferBuilder } from './fungibleTokenTransferBuilder';
|
|
10
|
+
import { Pox5Builder } from './pox5Builder';
|
|
10
11
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
11
12
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
12
13
|
/** @inheritdoc */
|
|
@@ -20,6 +21,7 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
|
|
|
20
21
|
getSendmanyBuilder(tx?: Transaction): SendmanyBuilder;
|
|
21
22
|
getSbtcWithdrawBuilder(tx?: Transaction): SbtcWithdrawBuilder;
|
|
22
23
|
getFungibleTokenTransferBuilder(tx?: Transaction): FungibleTokenTransferBuilder;
|
|
24
|
+
getPox5Builder(tx?: Transaction): Pox5Builder;
|
|
23
25
|
/**
|
|
24
26
|
* Initialize the builder with the given transaction
|
|
25
27
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,6BAA6B,EAI9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,6BAA6B,EAI9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IA8BrC,OAAO,CAAC,gBAAgB;IASxB,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI;IAItD,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,sBAAsB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,mBAAmB;IAI7D,+BAA+B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,4BAA4B;IAI/E,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;IAI7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI;CAQtD"}
|
|
@@ -10,6 +10,7 @@ const _1 = require(".");
|
|
|
10
10
|
const sendmanyBuilder_1 = require("./sendmanyBuilder");
|
|
11
11
|
const sbtcWithdrawBuilder_1 = require("./sbtcWithdrawBuilder");
|
|
12
12
|
const fungibleTokenTransferBuilder_1 = require("./fungibleTokenTransferBuilder");
|
|
13
|
+
const pox5Builder_1 = require("./pox5Builder");
|
|
13
14
|
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
14
15
|
constructor(_coinConfig) {
|
|
15
16
|
super(_coinConfig);
|
|
@@ -32,6 +33,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
32
33
|
if (fungibleTokenTransferBuilder_1.FungibleTokenTransferBuilder.isFungibleTokenTransferContractCall(tx.stxTransaction.payload)) {
|
|
33
34
|
return this.getFungibleTokenTransferBuilder(tx);
|
|
34
35
|
}
|
|
36
|
+
if (pox5Builder_1.Pox5Builder.isValidContractCall(this._coinConfig, tx.stxTransaction.payload)) {
|
|
37
|
+
return this.getPox5Builder(tx);
|
|
38
|
+
}
|
|
35
39
|
return this.getContractBuilder(tx);
|
|
36
40
|
default:
|
|
37
41
|
throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
|
|
@@ -68,6 +72,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
68
72
|
getFungibleTokenTransferBuilder(tx) {
|
|
69
73
|
return TransactionBuilderFactory.initializeBuilder(new fungibleTokenTransferBuilder_1.FungibleTokenTransferBuilder(this._coinConfig), tx);
|
|
70
74
|
}
|
|
75
|
+
getPox5Builder(tx) {
|
|
76
|
+
return TransactionBuilderFactory.initializeBuilder(new pox5Builder_1.Pox5Builder(this._coinConfig), tx);
|
|
77
|
+
}
|
|
71
78
|
/**
|
|
72
79
|
* Initialize the builder with the given transaction
|
|
73
80
|
*
|
|
@@ -92,4 +99,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
92
99
|
}
|
|
93
100
|
}
|
|
94
101
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBeUY7QUFDekYsOENBS3lCO0FBQ3pCLHVEQUFvRDtBQUVwRCwrQ0FBNEM7QUFDNUMsdURBQW9EO0FBQ3BELHdCQUEwQjtBQUMxQix1REFBb0Q7QUFDcEQsK0RBQTREO0FBQzVELGlGQUE4RTtBQUU5RSxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM5QyxLQUFLLDBCQUFXLENBQUMsYUFBYTtvQkFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssMEJBQVcsQ0FBQyxZQUFZO29CQUMzQixJQUFJLGlDQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ3JGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyQyxDQUFDO29CQUNELElBQUkseUNBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9B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UUFBSyxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTNGRCw4REEyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVmZmVyUmVhZGVyLCBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uLCBQYXlsb2FkVHlwZSB9IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7XG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IENvbnRyYWN0QnVpbGRlciB9IGZyb20gJy4vY29udHJhY3RCdWlsZGVyJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBTZW5kbWFueUJ1aWxkZXIgfSBmcm9tICcuL3NlbmRtYW55QnVpbGRlcic7XG5pbXBvcnQgeyBTYnRjV2l0aGRyYXdCdWlsZGVyIH0gZnJvbSAnLi9zYnRjV2l0aGRyYXdCdWlsZGVyJztcbmltcG9ydCB7IEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2Z1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20ocmF3OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eCA9IHRoaXMucGFyc2VUcmFuc2FjdGlvbihyYXcpO1xuICAgICAgc3dpdGNoICh0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkLnBheWxvYWRUeXBlKSB7XG4gICAgICAgIGNhc2UgUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2ZlcjpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbDpcbiAgICAgICAgICBpZiAoU2VuZG1hbnlCdWlsZGVyLmlzVmFsaWRDb250cmFjdENhbGwodGhpcy5fY29pbkNvbmZpZywgdHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbmRtYW55QnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChTYnRjV2l0aGRyYXdCdWlsZGVyLmlzVmFsaWRDb250cmFjdENhbGwodGhpcy5fY29pbkNvbmZpZywgdHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNidGNXaXRoZHJhd0J1aWxkZXIodHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlci5pc0Z1bmdpYmxlVG9rZW5UcmFuc2ZlckNvbnRyYWN0Q2FsbCh0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbnRyYWN0QnVpbGRlcih0eCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ1RoZXJlIHdhcyBhbiBlcnJvciBwYXJzaW5nIHRoZSByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICBjb25zdCBzdGFja3N0cmFuc2FjdGlvbiA9IGRlc2VyaWFsaXplVHJhbnNhY3Rpb24oXG4gICAgICBCdWZmZXJSZWFkZXIuZnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShVdGlscy5yZW1vdmVIZXhQcmVmaXgocmF3VHJhbnNhY3Rpb24pLCAnaGV4JykpXG4gICAgKTtcbiAgICB0eC5zdHhUcmFuc2FjdGlvbiA9IHN0YWNrc3RyYW5zYWN0aW9uO1xuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdtZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldENvbnRyYWN0QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogQ29udHJhY3RCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcihuZXcgQ29udHJhY3RCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICBnZXRTZW5kbWFueUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFNlbmRtYW55QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IFNlbmRtYW55QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSwgdHgpO1xuICB9XG5cbiAgZ2V0U2J0Y1dpdGhkcmF3QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU2J0Y1dpdGhkcmF3QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IFNidGNXaXRoZHJhd0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcj4oYnVpbGRlcjogVCwgdHg6IFRyYW5zYWN0aW9uIHwgdW5kZWZpbmVkKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogdW5rbm93bik6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignUmF3IHRyYW5zYWN0aW9uIGlzIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghVXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBeUY7QUFDekYsOENBS3lCO0FBQ3pCLHVEQUFvRDtBQUVwRCwrQ0FBNEM7QUFDNUMsdURBQW9EO0FBQ3BELHdCQUEwQjtBQUMxQix1REFBb0Q7QUFDcEQsK0RBQTREO0FBQzVELGlGQUE4RTtBQUM5RSwrQ0FBNEM7QUFFNUMsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBVztRQUNkLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDOUMsS0FBSywwQkFBVyxDQUFDLGFBQWE7b0JBQzVCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQyxLQUFLLDBCQUFXLENBQUMsWUFBWTtvQkFDM0IsSUFBSSxpQ0FBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNyRixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDckMsQ0FBQztvQkFDRCxJQUFJLHlDQUFtQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFD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QUNLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBK0IsT0FBVSxFQUFFLEVBQTJCO1FBQ3BHLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLGNBQXVCO1FBQzVDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksa0NBQXVCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQUssQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFsR0QsOERBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJ1ZmZlclJlYWRlciwgZGVzZXJpYWxpemVUcmFuc2FjdGlvbiwgUGF5bG9hZFR5cGUgfSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQge1xuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIE5vdEltcGxlbWVudGVkRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBDb250cmFjdEJ1aWxkZXIgfSBmcm9tICcuL2NvbnRyYWN0QnVpbGRlcic7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgU2VuZG1hbnlCdWlsZGVyIH0gZnJvbSAnLi9zZW5kbWFueUJ1aWxkZXInO1xuaW1wb3J0IHsgU2J0Y1dpdGhkcmF3QnVpbGRlciB9IGZyb20gJy4vc2J0Y1dpdGhkcmF3QnVpbGRlcic7XG5pbXBvcnQgeyBGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9mdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFBveDVCdWlsZGVyIH0gZnJvbSAnLi9wb3g1QnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4ID0gdGhpcy5wYXJzZVRyYW5zYWN0aW9uKHJhdyk7XG4gICAgICBzd2l0Y2ggKHR4LnN0eFRyYW5zYWN0aW9uLnBheWxvYWQucGF5bG9hZFR5cGUpIHtcbiAgICAgICAgY2FzZSBQYXlsb2FkVHlwZS5Ub2tlblRyYW5zZmVyOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgUGF5bG9hZFR5cGUuQ29udHJhY3RDYWxsOlxuICAgICAgICAgIGlmIChTZW5kbWFueUJ1aWxkZXIuaXNWYWxpZENvbnRyYWN0Q2FsbCh0aGlzLl9jb2luQ29uZmlnLCB0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VuZG1hbnlCdWlsZGVyKHR4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFNidGNXaXRoZHJhd0J1aWxkZXIuaXNWYWxpZENvbnRyYWN0Q2FsbCh0aGlzLl9jb2luQ29uZmlnLCB0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2J0Y1dpdGhkcmF3QnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyLmlzRnVuZ2libGVUb2tlblRyYW5zZmVyQ29udHJhY3RDYWxsKHR4LnN0eFRyYW5zYWN0aW9uLnBheWxvYWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyKHR4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFBveDVCdWlsZGVyLmlzVmFsaWRDb250cmFjdENhbGwodGhpcy5fY29pbkNvbmZpZywgdHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFBveDVCdWlsZGVyKHR4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udHJhY3RCdWlsZGVyKHR4KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignVGhlcmUgd2FzIGFuIGVycm9yIHBhcnNpbmcgdGhlIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIGNvbnN0IHN0YWNrc3RyYW5zYWN0aW9uID0gZGVzZXJpYWxpemVUcmFuc2FjdGlvbihcbiAgICAgIEJ1ZmZlclJlYWRlci5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKFV0aWxzLnJlbW92ZUhleFByZWZpeChyYXdUcmFuc2FjdGlvbiksICdoZXgnKSlcbiAgICApO1xuICAgIHR4LnN0eFRyYW5zYWN0aW9uID0gc3RhY2tzdHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ21ldGhvZCBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSwgdHgpO1xuICB9XG5cbiAgZ2V0Q29udHJhY3RCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBDb250cmFjdEJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBDb250cmFjdEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldFNlbmRtYW55QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU2VuZG1hbnlCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcihuZXcgU2VuZG1hbnlCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICBnZXRTYnRjV2l0aGRyYXdCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBTYnRjV2l0aGRyYXdCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcihuZXcgU2J0Y1dpdGhkcmF3QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSwgdHgpO1xuICB9XG5cbiAgZ2V0RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldFBveDVCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBQb3g1QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IFBveDVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcj4oYnVpbGRlcjogVCwgdHg6IFRyYW5zYWN0aW9uIHwgdW5kZWZpbmVkKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogdW5rbm93bik6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignUmF3IHRyYW5zYWN0aW9uIGlzIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghVXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|