@bitgo-beta/sdk-coin-canton 1.0.1-beta.52 → 1.0.1-beta.521
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/canton.d.ts +15 -1
- package/dist/src/canton.d.ts.map +1 -1
- package/dist/src/canton.js +124 -8
- package/dist/src/cantonToken.d.ts +19 -0
- package/dist/src/cantonToken.d.ts.map +1 -0
- package/dist/src/cantonToken.js +52 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/lib/constant.d.ts +2 -0
- package/dist/src/lib/constant.d.ts.map +1 -1
- package/dist/src/lib/constant.js +4 -2
- package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts +56 -0
- package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts.map +1 -0
- package/dist/src/lib/cosignDelegationAcceptBuilder.js +112 -0
- package/dist/src/lib/cosignDelegationProposalBuilder.d.ts +60 -0
- package/dist/src/lib/cosignDelegationProposalBuilder.d.ts.map +1 -0
- package/dist/src/lib/cosignDelegationProposalBuilder.js +111 -0
- package/dist/src/lib/iface.d.ts +78 -3
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +8 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +18 -2
- package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +15 -5
- package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -1
- package/dist/src/lib/oneStepPreApprovalBuilder.js +31 -3
- package/dist/src/lib/transaction/transaction.d.ts +15 -2
- package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction/transaction.js +231 -9
- package/dist/src/lib/transactionBuilder.d.ts +3 -3
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +1 -5
- package/dist/src/lib/transactionBuilderFactory.d.ts +14 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +57 -4
- package/dist/src/lib/transferAcceptanceBuilder.d.ts +59 -0
- package/dist/src/lib/transferAcceptanceBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferAcceptanceBuilder.js +116 -0
- package/dist/src/lib/transferAcknowledgeBuilder.d.ts +72 -0
- package/dist/src/lib/transferAcknowledgeBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferAcknowledgeBuilder.js +133 -0
- package/dist/src/lib/transferBuilder.d.ts +87 -3
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +169 -1
- package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts +67 -0
- package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferOfferWithdrawnBuilder.js +130 -0
- package/dist/src/lib/transferRejectionBuilder.d.ts +59 -0
- package/dist/src/lib/transferRejectionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferRejectionBuilder.js +116 -0
- package/dist/src/lib/utils.d.ts +22 -2
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +373 -44
- package/dist/src/lib/walletInitBuilder.d.ts +2 -1
- package/dist/src/lib/walletInitBuilder.d.ts.map +1 -1
- package/dist/src/lib/walletInitBuilder.js +4 -1
- package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +2 -1
- package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -1
- package/dist/src/lib/walletInitialization/walletInitTransaction.js +14 -1
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/test/helper.d.ts +3 -0
- package/dist/test/helper.d.ts.map +1 -0
- package/dist/test/helper.js +9 -0
- package/dist/test/integration/canton.integration.d.ts +2 -0
- package/dist/test/integration/canton.integration.d.ts.map +1 -0
- package/dist/test/integration/canton.integration.js +157 -0
- package/dist/test/integration/canton.token.integration.d.ts +2 -0
- package/dist/test/integration/canton.token.integration.d.ts.map +1 -0
- package/dist/test/integration/canton.token.integration.js +51 -0
- package/dist/test/resources.d.ts +186 -2
- package/dist/test/resources.d.ts.map +1 -1
- package/dist/test/resources.js +191 -7
- package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts +2 -0
- package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.js +75 -0
- package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts +2 -0
- package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.js +74 -0
- package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +26 -8
- package/dist/test/unit/builder/transfer/transferBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transfer/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transfer/transferBuilder.js +84 -0
- package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.js +120 -0
- package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.js +32 -0
- package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.js +64 -0
- package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts +2 -0
- package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts.map +1 -0
- package/dist/test/unit/builder/transferReject/transferRejectBuilder.js +96 -0
- package/dist/test/unit/canton.d.ts +2 -0
- package/dist/test/unit/canton.d.ts.map +1 -0
- package/dist/test/unit/canton.js +201 -0
- package/dist/test/unit/index.d.ts +1 -0
- package/dist/test/unit/index.d.ts.map +1 -1
- package/dist/test/unit/index.js +2 -1
- package/dist/test/unit/utils.js +76 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -8
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const should_1 = __importDefault(require("should"));
|
|
8
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
9
|
+
const src_1 = require("../../../../src");
|
|
10
|
+
const resources_1 = require("../../../resources");
|
|
11
|
+
describe('Transfer Acknowledge Builder', () => {
|
|
12
|
+
it('should get the transfer acknowledge request object', function () {
|
|
13
|
+
const txBuilder = new src_1.TransferAcknowledgeBuilder(statics_1.coins.get('tcanton'));
|
|
14
|
+
const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
15
|
+
txBuilder.initBuilder(tx);
|
|
16
|
+
const { contractId, updateId, senderPartyId, amount, expiryEpoch } = resources_1.TransferAcknowledgeRequest;
|
|
17
|
+
txBuilder
|
|
18
|
+
.contractId(contractId)
|
|
19
|
+
.senderPartyId(senderPartyId)
|
|
20
|
+
.updateId(updateId)
|
|
21
|
+
.amount(amount)
|
|
22
|
+
.expiryEpoch(expiryEpoch);
|
|
23
|
+
const requestObj = txBuilder.toRequestObject();
|
|
24
|
+
should_1.default.exist(requestObj);
|
|
25
|
+
assert_1.default.equal(requestObj.contractId, contractId);
|
|
26
|
+
assert_1.default.equal(requestObj.senderPartyId, senderPartyId);
|
|
27
|
+
assert_1.default.equal(requestObj.updateId, updateId);
|
|
28
|
+
assert_1.default.equal(requestObj.amount, amount);
|
|
29
|
+
assert_1.default.equal(requestObj.expiryEpoch, expiryEpoch);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJBY2tub3dsZWRnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYnVpbGRlci90cmFuc2ZlckFja25vd2xlZGdlL3RyYW5zZmVyQWNrbm93bGVkZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixpREFBNEM7QUFFNUMseUNBQTBFO0FBRzFFLGtEQUFnRTtBQUVoRSxRQUFRLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQzVDLEVBQUUsQ0FBQyxvREFBb0QsRUFBRTtRQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLGdDQUEwQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RSxNQUFNLEVBQUUsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxzQ0FBMEIsQ0FBQztRQUNoRyxTQUFTO2FBQ04sVUFBVSxDQUFDLFVBQVUsQ0FBQzthQUN0QixhQUFhLENBQUMsYUFBYSxDQUFDO2FBQzVCLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNkLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QixNQUFNLFVBQVUsR0FBd0IsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BFLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN0RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBUcmFuc2ZlckFja25vd2xlZGdlQnVpbGRlciwgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgVHJhbnNmZXJBY2tub3dsZWRnZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9saWIvaWZhY2UnO1xuXG5pbXBvcnQgeyBUcmFuc2ZlckFja25vd2xlZGdlUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdUcmFuc2ZlciBBY2tub3dsZWRnZSBCdWlsZGVyJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIGdldCB0aGUgdHJhbnNmZXIgYWNrbm93bGVkZ2UgcmVxdWVzdCBvYmplY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyQWNrbm93bGVkZ2VCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCB7IGNvbnRyYWN0SWQsIHVwZGF0ZUlkLCBzZW5kZXJQYXJ0eUlkLCBhbW91bnQsIGV4cGlyeUVwb2NoIH0gPSBUcmFuc2ZlckFja25vd2xlZGdlUmVxdWVzdDtcbiAgICB0eEJ1aWxkZXJcbiAgICAgIC5jb250cmFjdElkKGNvbnRyYWN0SWQpXG4gICAgICAuc2VuZGVyUGFydHlJZChzZW5kZXJQYXJ0eUlkKVxuICAgICAgLnVwZGF0ZUlkKHVwZGF0ZUlkKVxuICAgICAgLmFtb3VudChhbW91bnQpXG4gICAgICAuZXhwaXJ5RXBvY2goZXhwaXJ5RXBvY2gpO1xuICAgIGNvbnN0IHJlcXVlc3RPYmo6IFRyYW5zZmVyQWNrbm93bGVkZ2UgPSB0eEJ1aWxkZXIudG9SZXF1ZXN0T2JqZWN0KCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmopO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbnRyYWN0SWQsIGNvbnRyYWN0SWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLnNlbmRlclBhcnR5SWQsIHNlbmRlclBhcnR5SWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLnVwZGF0ZUlkLCB1cGRhdGVJZCk7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouYW1vdW50LCBhbW91bnQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmV4cGlyeUVwb2NoLCBleHBpcnlFcG9jaCk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferOfferWithdrawnBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const should_1 = __importDefault(require("should"));
|
|
8
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
9
|
+
const src_1 = require("../../../../src");
|
|
10
|
+
const resources_1 = require("../../../resources");
|
|
11
|
+
describe('Transfer Offer Withdrawn Builder', () => {
|
|
12
|
+
it('should get the transfer offer withdrawn request object', function () {
|
|
13
|
+
const txBuilder = new src_1.TransferOfferWithdrawnBuilder(statics_1.coins.get('tcanton'));
|
|
14
|
+
const transferOfferWithdrawnTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
15
|
+
txBuilder.initBuilder(transferOfferWithdrawnTx);
|
|
16
|
+
txBuilder.setTransaction(resources_1.CantonTokenTransferOfferWithdrawnPrepareResponse);
|
|
17
|
+
const { commandId, contractId, partyId } = resources_1.TransferAcceptance;
|
|
18
|
+
txBuilder.commandId(commandId).contractId(contractId).actAs(partyId);
|
|
19
|
+
const requestObj = txBuilder.toRequestObject();
|
|
20
|
+
should_1.default.exist(requestObj);
|
|
21
|
+
assert_1.default.equal(requestObj.commandId, commandId);
|
|
22
|
+
assert_1.default.equal(requestObj.contractId, contractId);
|
|
23
|
+
assert_1.default.equal(requestObj.actAs.length, 1);
|
|
24
|
+
const actAs = requestObj.actAs[0];
|
|
25
|
+
assert_1.default.equal(actAs, partyId);
|
|
26
|
+
});
|
|
27
|
+
it('should validate raw canton transfer offer withdrawn transaction', function () {
|
|
28
|
+
const txBuilder = new src_1.TransferOfferWithdrawnBuilder(statics_1.coins.get('tcanton'));
|
|
29
|
+
const transferOfferWithdrawnTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
30
|
+
txBuilder.initBuilder(transferOfferWithdrawnTx);
|
|
31
|
+
txBuilder.setTransaction(resources_1.CantonTransferOfferWithdrawnPrepareResponse);
|
|
32
|
+
txBuilder.validateRawTransaction(resources_1.CantonTransferOfferWithdrawnPrepareResponse.preparedTransaction);
|
|
33
|
+
});
|
|
34
|
+
it('should validate raw canton token transfer offer withdrawn transaction', function () {
|
|
35
|
+
const txBuilder = new src_1.TransferOfferWithdrawnBuilder(statics_1.coins.get('tcanton'));
|
|
36
|
+
const transferOfferWithdrawnTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
37
|
+
txBuilder.initBuilder(transferOfferWithdrawnTx);
|
|
38
|
+
txBuilder.setTransaction(resources_1.CantonTokenTransferOfferWithdrawnPrepareResponse);
|
|
39
|
+
txBuilder.validateRawTransaction(resources_1.CantonTokenTransferOfferWithdrawnPrepareResponse.preparedTransaction);
|
|
40
|
+
});
|
|
41
|
+
it('should validate the transaction', function () {
|
|
42
|
+
const txBuilder = new src_1.TransferOfferWithdrawnBuilder(statics_1.coins.get('tcanton'));
|
|
43
|
+
const transferOfferWithdrawnTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
44
|
+
transferOfferWithdrawnTx.prepareCommand = resources_1.CantonTransferOfferWithdrawnPrepareResponse;
|
|
45
|
+
txBuilder.initBuilder(transferOfferWithdrawnTx);
|
|
46
|
+
txBuilder.setTransaction(resources_1.CantonTransferOfferWithdrawnPrepareResponse);
|
|
47
|
+
txBuilder.validateTransaction(transferOfferWithdrawnTx);
|
|
48
|
+
});
|
|
49
|
+
it('should throw error in validating raw transaction', function () {
|
|
50
|
+
const txBuilder = new src_1.TransferOfferWithdrawnBuilder(statics_1.coins.get('tcanton'));
|
|
51
|
+
const transferOfferWithdrawnTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
52
|
+
txBuilder.initBuilder(transferOfferWithdrawnTx);
|
|
53
|
+
const invalidPrepareResponse = resources_1.CantonTransferOfferWithdrawnPrepareResponse;
|
|
54
|
+
invalidPrepareResponse.preparedTransactionHash = '+vlIXv6Vgd2ypPXD0mrdn7RlcSH4c2hCRj2/tXqqUVs=';
|
|
55
|
+
txBuilder.setTransaction(invalidPrepareResponse);
|
|
56
|
+
try {
|
|
57
|
+
txBuilder.validateRawTransaction(invalidPrepareResponse.preparedTransaction);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
assert_1.default.equal(e.message, 'invalid raw transaction, hash not matching');
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJPZmZlcldpdGhkcmF3bkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYnVpbGRlci90cmFuc2Zlck9mZmVyV2l0aGRyYXduL3RyYW5zZmVyT2ZmZXJXaXRoZHJhd25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixpREFBNEM7QUFFNUMseUNBQTZFO0FBRzdFLGtEQUk0QjtBQUU1QixRQUFRLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELEVBQUUsQ0FBQyx3REFBd0QsRUFBRTtRQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLG1DQUE2QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMxRSxNQUFNLHdCQUF3QixHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsU0FBUyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxjQUFjLENBQUMsNERBQWdELENBQUMsQ0FBQztRQUMzRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyw4QkFBa0IsQ0FBQztRQUM5RCxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQXNDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNsRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLGdCQUFNLENBQUMsS0FB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LENBQUMsT0FBTyxFQUFFLDRDQUE0QyxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5cbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBUcmFuc2Zlck9mZmVyV2l0aGRyYXduQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBDYW50b25UcmFuc2ZlckFjY2VwdFJlamVjdFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbGliL2lmYWNlJztcblxuaW1wb3J0IHtcbiAgQ2FudG9uVG9rZW5UcmFuc2Zlck9mZmVyV2l0aGRyYXduUHJlcGFyZVJlc3BvbnNlLFxuICBDYW50b25UcmFuc2Zlck9mZmVyV2l0aGRyYXduUHJlcGFyZVJlc3BvbnNlLFxuICBUcmFuc2ZlckFjY2VwdGFuY2UsXG59IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdUcmFuc2ZlciBPZmZlciBXaXRoZHJhd24gQnVpbGRlcicsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCBnZXQgdGhlIHRyYW5zZmVyIG9mZmVyIHdpdGhkcmF3biByZXF1ZXN0IG9iamVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJPZmZlcldpdGhkcmF3bkJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IHRyYW5zZmVyT2ZmZXJXaXRoZHJhd25UeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyT2ZmZXJXaXRoZHJhd25UeCk7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKENhbnRvblRva2VuVHJhbnNmZXJPZmZlcldpdGhkcmF3blByZXBhcmVSZXNwb25zZSk7XG4gICAgY29uc3QgeyBjb21tYW5kSWQsIGNvbnRyYWN0SWQsIHBhcnR5SWQgfSA9IFRyYW5zZmVyQWNjZXB0YW5jZTtcbiAgICB0eEJ1aWxkZXIuY29tbWFuZElkKGNvbW1hbmRJZCkuY29udHJhY3RJZChjb250cmFjdElkKS5hY3RBcyhwYXJ0eUlkKTtcbiAgICBjb25zdCByZXF1ZXN0T2JqOiBDYW50b25UcmFuc2ZlckFjY2VwdFJlamVjdFJlcXVlc3QgPSB0eEJ1aWxkZXIudG9SZXF1ZXN0T2JqZWN0KCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmopO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbW1hbmRJZCwgY29tbWFuZElkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5jb250cmFjdElkLCBjb250cmFjdElkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5hY3RBcy5sZW5ndGgsIDEpO1xuICAgIGNvbnN0IGFjdEFzID0gcmVxdWVzdE9iai5hY3RBc1swXTtcbiAgICBhc3NlcnQuZXF1YWwoYWN0QXMsIHBhcnR5SWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHJhdyBjYW50b24gdHJhbnNmZXIgb2ZmZXIgd2l0aGRyYXduIHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2Zlck9mZmVyV2l0aGRyYXduQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3QgdHJhbnNmZXJPZmZlcldpdGhkcmF3blR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIodHJhbnNmZXJPZmZlcldpdGhkcmF3blR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oQ2FudG9uVHJhbnNmZXJPZmZlcldpdGhkcmF3blByZXBhcmVSZXNwb25zZSk7XG4gICAgdHhCdWlsZGVyLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24oQ2FudG9uVHJhbnNmZXJPZmZlcldpdGhkcmF3blByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSByYXcgY2FudG9uIHRva2VuIHRyYW5zZmVyIG9mZmVyIHdpdGhkcmF3biB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJPZmZlcldpdGhkcmF3bkJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IHRyYW5zZmVyT2ZmZXJXaXRoZHJhd25UeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyT2ZmZXJXaXRoZHJhd25UeCk7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKENhbnRvblRva2VuVHJhbnNmZXJPZmZlcldpdGhkcmF3blByZXBhcmVSZXNwb25zZSk7XG4gICAgdHhCdWlsZGVyLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24oQ2FudG9uVG9rZW5UcmFuc2Zlck9mZmVyV2l0aGRyYXduUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHRoZSB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJPZmZlcldpdGhkcmF3bkJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IHRyYW5zZmVyT2ZmZXJXaXRoZHJhd25UeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHJhbnNmZXJPZmZlcldpdGhkcmF3blR4LnByZXBhcmVDb21tYW5kID0gQ2FudG9uVHJhbnNmZXJPZmZlcldpdGhkcmF3blByZXBhcmVSZXNwb25zZTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIodHJhbnNmZXJPZmZlcldpdGhkcmF3blR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oQ2FudG9uVHJhbnNmZXJPZmZlcldpdGhkcmF3blByZXBhcmVSZXNwb25zZSk7XG4gICAgdHhCdWlsZGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNmZXJPZmZlcldpdGhkcmF3blR4KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBpbiB2YWxpZGF0aW5nIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJPZmZlcldpdGhkcmF3bkJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IHRyYW5zZmVyT2ZmZXJXaXRoZHJhd25UeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyT2ZmZXJXaXRoZHJhd25UeCk7XG4gICAgY29uc3QgaW52YWxpZFByZXBhcmVSZXNwb25zZSA9IENhbnRvblRyYW5zZmVyT2ZmZXJXaXRoZHJhd25QcmVwYXJlUmVzcG9uc2U7XG4gICAgaW52YWxpZFByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCA9ICcrdmxJWHY2VmdkMnlwUFhEMG1yZG43UmxjU0g0YzJoQ1JqMi90WHFxVVZzPSc7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKGludmFsaWRQcmVwYXJlUmVzcG9uc2UpO1xuICAgIHRyeSB7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihpbnZhbGlkUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydC5lcXVhbChlLm1lc3NhZ2UsICdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbiwgaGFzaCBub3QgbWF0Y2hpbmcnKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferRejectBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/builder/transferReject/transferRejectBuilder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const should_1 = __importDefault(require("should"));
|
|
8
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
9
|
+
const src_1 = require("../../../../src");
|
|
10
|
+
const resources_1 = require("../../../resources");
|
|
11
|
+
describe('Transfer Rejection Builder', () => {
|
|
12
|
+
it('should get the transfer rejection request object', function () {
|
|
13
|
+
const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
|
|
14
|
+
const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
15
|
+
txBuilder.initBuilder(tx);
|
|
16
|
+
txBuilder.setTransaction(resources_1.TransferRejectionPrepareResponse);
|
|
17
|
+
const { commandId, contractId, partyId } = resources_1.TransferRejection;
|
|
18
|
+
txBuilder.commandId(commandId).contractId(contractId).actAs(partyId);
|
|
19
|
+
const requestObj = txBuilder.toRequestObject();
|
|
20
|
+
should_1.default.exist(requestObj);
|
|
21
|
+
assert_1.default.equal(requestObj.commandId, commandId);
|
|
22
|
+
assert_1.default.equal(requestObj.contractId, contractId);
|
|
23
|
+
assert_1.default.equal(requestObj.actAs.length, 1);
|
|
24
|
+
const actAs = requestObj.actAs[0];
|
|
25
|
+
assert_1.default.equal(actAs, partyId);
|
|
26
|
+
});
|
|
27
|
+
it('should get the token transfer rejection request object', function () {
|
|
28
|
+
const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
|
|
29
|
+
const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
30
|
+
txBuilder.initBuilder(tx);
|
|
31
|
+
txBuilder.setTransaction(resources_1.CantonTokenRejectPrepareResponse);
|
|
32
|
+
const { commandId, contractId, partyId } = resources_1.TransferRejection;
|
|
33
|
+
txBuilder.commandId(commandId).contractId(contractId).actAs(partyId);
|
|
34
|
+
const requestObj = txBuilder.toRequestObject();
|
|
35
|
+
txBuilder.transaction.toJson();
|
|
36
|
+
should_1.default.exist(requestObj);
|
|
37
|
+
assert_1.default.equal(requestObj.commandId, commandId);
|
|
38
|
+
assert_1.default.equal(requestObj.contractId, contractId);
|
|
39
|
+
assert_1.default.equal(requestObj.actAs.length, 1);
|
|
40
|
+
const actAs = requestObj.actAs[0];
|
|
41
|
+
assert_1.default.equal(actAs, partyId);
|
|
42
|
+
});
|
|
43
|
+
it('should get the transfer acceptance request object for cbtc token', function () {
|
|
44
|
+
const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
|
|
45
|
+
const transferAcceptanceTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
46
|
+
txBuilder.initBuilder(transferAcceptanceTx);
|
|
47
|
+
txBuilder.setTransaction(resources_1.CBTCTokenRejectionPrepareResponse);
|
|
48
|
+
const commandId = '3935a06d-3b03-41be-99a5-95b2ecaabf7d';
|
|
49
|
+
const partyId = '12201::1220175583b704cbb493393c1dbe17b9909ee4cf55ef345e8147cd6900c5768f861d';
|
|
50
|
+
const { contractId } = resources_1.TransferAcceptance;
|
|
51
|
+
txBuilder.commandId(commandId).contractId(contractId).actAs(partyId);
|
|
52
|
+
const requestObj = txBuilder.toRequestObject();
|
|
53
|
+
const txData = txBuilder.transaction.toJson();
|
|
54
|
+
should_1.default.exist(requestObj);
|
|
55
|
+
assert_1.default.equal(requestObj.commandId, commandId);
|
|
56
|
+
assert_1.default.equal(requestObj.contractId, contractId);
|
|
57
|
+
assert_1.default.equal(requestObj.actAs.length, 1);
|
|
58
|
+
const actAs = requestObj.actAs[0];
|
|
59
|
+
assert_1.default.equal(actAs, partyId);
|
|
60
|
+
should_1.default.exist(txData);
|
|
61
|
+
assert_1.default.equal(txData.sender, '12203::1220307926a923431f0aed10609fff4519826a7032d26cb9360d4f67b3082d332f93');
|
|
62
|
+
assert_1.default.equal(txData.receiver, partyId);
|
|
63
|
+
assert_1.default.equal(txData.amount, '1000000');
|
|
64
|
+
assert_1.default.equal(txData.token, 'canton:cbtc');
|
|
65
|
+
});
|
|
66
|
+
it('should validate raw transaction', function () {
|
|
67
|
+
const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
|
|
68
|
+
const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
69
|
+
txBuilder.initBuilder(tx);
|
|
70
|
+
txBuilder.setTransaction(resources_1.TransferRejectionPrepareResponse);
|
|
71
|
+
txBuilder.validateRawTransaction(resources_1.TransferRejectionPrepareResponse.preparedTransaction);
|
|
72
|
+
});
|
|
73
|
+
it('should validate the transaction', function () {
|
|
74
|
+
const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
|
|
75
|
+
const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
76
|
+
tx.prepareCommand = resources_1.TransferRejectionPrepareResponse;
|
|
77
|
+
txBuilder.initBuilder(tx);
|
|
78
|
+
txBuilder.setTransaction(resources_1.TransferRejectionPrepareResponse);
|
|
79
|
+
txBuilder.validateTransaction(tx);
|
|
80
|
+
});
|
|
81
|
+
it('should throw error in validating raw transaction', function () {
|
|
82
|
+
const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
|
|
83
|
+
const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
|
|
84
|
+
txBuilder.initBuilder(tx);
|
|
85
|
+
const invalidPrepareResponse = resources_1.TransferRejectionPrepareResponse;
|
|
86
|
+
invalidPrepareResponse.preparedTransactionHash = 'QFxX1WBdq7lZbSc45iKA3J/oOF9mrVLc3DeKphAjb15=';
|
|
87
|
+
txBuilder.setTransaction(invalidPrepareResponse);
|
|
88
|
+
try {
|
|
89
|
+
txBuilder.validateRawTransaction(invalidPrepareResponse.preparedTransaction);
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
assert_1.default.equal(e.message, 'invalid raw transaction, hash not matching');
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJSZWplY3RCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2J1aWxkZXIvdHJhbnNmZXJSZWplY3QvdHJhbnNmZXJSZWplY3RCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixpREFBNEM7QUFFNUMseUNBQXdFO0FBR3hFLGtEQU00QjtBQUU1QixRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO0lBQzFDLEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLDhCQUF3QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLEVBQUUsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLGNBQWMsQ0FBQyw0Q0FBZ0MsQ0FBQyxDQUFDO1FBQzNELE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLDZCQUFpQixDQUFDO1FBQzdELFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxNQUFNLFVBQVUsR0FBc0MsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2xGLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxV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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcblxuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zZmVyUmVqZWN0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBDYW50b25UcmFuc2ZlckFjY2VwdFJlamVjdFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbGliL2lmYWNlJztcblxuaW1wb3J0IHtcbiAgQ2FudG9uVG9rZW5SZWplY3RQcmVwYXJlUmVzcG9uc2UsXG4gIENCVENUb2tlblJlamVjdGlvblByZXBhcmVSZXNwb25zZSxcbiAgVHJhbnNmZXJBY2NlcHRhbmNlLFxuICBUcmFuc2ZlclJlamVjdGlvbixcbiAgVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdUcmFuc2ZlciBSZWplY3Rpb24gQnVpbGRlcicsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCBnZXQgdGhlIHRyYW5zZmVyIHJlamVjdGlvbiByZXF1ZXN0IG9iamVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJSZWplY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2UpO1xuICAgIGNvbnN0IHsgY29tbWFuZElkLCBjb250cmFjdElkLCBwYXJ0eUlkIH0gPSBUcmFuc2ZlclJlamVjdGlvbjtcbiAgICB0eEJ1aWxkZXIuY29tbWFuZElkKGNvbW1hbmRJZCkuY29udHJhY3RJZChjb250cmFjdElkKS5hY3RBcyhwYXJ0eUlkKTtcbiAgICBjb25zdCByZXF1ZXN0T2JqOiBDYW50b25UcmFuc2ZlckFjY2VwdFJlamVjdFJlcXVlc3QgPSB0eEJ1aWxkZXIudG9SZXF1ZXN0T2JqZWN0KCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmopO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbW1hbmRJZCwgY29tbWFuZElkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5jb250cmFjdElkLCBjb250cmFjdElkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5hY3RBcy5sZW5ndGgsIDEpO1xuICAgIGNvbnN0IGFjdEFzID0gcmVxdWVzdE9iai5hY3RBc1swXTtcbiAgICBhc3NlcnQuZXF1YWwoYWN0QXMsIHBhcnR5SWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdldCB0aGUgdG9rZW4gdHJhbnNmZXIgcmVqZWN0aW9uIHJlcXVlc3Qgb2JqZWN0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2ZlclJlamVjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHR4QnVpbGRlci5zZXRUcmFuc2FjdGlvbihDYW50b25Ub2tlblJlamVjdFByZXBhcmVSZXNwb25zZSk7XG4gICAgY29uc3QgeyBjb21tYW5kSWQsIGNvbnRyYWN0SWQsIHBhcnR5SWQgfSA9IFRyYW5zZmVyUmVqZWN0aW9uO1xuICAgIHR4QnVpbGRlci5jb21tYW5kSWQoY29tbWFuZElkKS5jb250cmFjdElkKGNvbnRyYWN0SWQpLmFjdEFzKHBhcnR5SWQpO1xuICAgIGNvbnN0IHJlcXVlc3RPYmo6IENhbnRvblRyYW5zZmVyQWNjZXB0UmVqZWN0UmVxdWVzdCA9IHR4QnVpbGRlci50b1JlcXVlc3RPYmplY3QoKTtcbiAgICB0eEJ1aWxkZXIudHJhbnNhY3Rpb24udG9Kc29uKCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmopO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbW1hbmRJZCwgY29tbWFuZElkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5jb250cmFjdElkLCBjb250cmFjdElkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5hY3RBcy5sZW5ndGgsIDEpO1xuICAgIGNvbnN0IGFjdEFzID0gcmVxdWVzdE9iai5hY3RBc1swXTtcbiAgICBhc3NlcnQuZXF1YWwoYWN0QXMsIHBhcnR5SWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdldCB0aGUgdHJhbnNmZXIgYWNjZXB0YW5jZSByZXF1ZXN0IG9iamVjdCBmb3IgY2J0YyB0b2tlbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJSZWplY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0cmFuc2ZlckFjY2VwdGFuY2VUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyQWNjZXB0YW5jZVR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oQ0JUQ1Rva2VuUmVqZWN0aW9uUHJlcGFyZVJlc3BvbnNlKTtcbiAgICBjb25zdCBjb21tYW5kSWQgPSAnMzkzNWEwNmQtM2IwMy00MWJlLTk5YTUtOTViMmVjYWFiZjdkJztcbiAgICBjb25zdCBwYXJ0eUlkID0gJzEyMjAxOjoxMjIwMTc1NTgzYjcwNGNiYjQ5MzM5M2MxZGJlMTdiOTkwOWVlNGNmNTVlZjM0NWU4MTQ3Y2Q2OTAwYzU3NjhmODYxZCc7XG4gICAgY29uc3QgeyBjb250cmFjdElkIH0gPSBUcmFuc2ZlckFjY2VwdGFuY2U7XG4gICAgdHhCdWlsZGVyLmNvbW1hbmRJZChjb21tYW5kSWQpLmNvbnRyYWN0SWQoY29udHJhY3RJZCkuYWN0QXMocGFydHlJZCk7XG4gICAgY29uc3QgcmVxdWVzdE9iajogQ2FudG9uVHJhbnNmZXJBY2NlcHRSZWplY3RSZXF1ZXN0ID0gdHhCdWlsZGVyLnRvUmVxdWVzdE9iamVjdCgpO1xuICAgIGNvbnN0IHR4RGF0YSA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi50b0pzb24oKTtcbiAgICBzaG91bGQuZXhpc3QocmVxdWVzdE9iaik7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouY29tbWFuZElkLCBjb21tYW5kSWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbnRyYWN0SWQsIGNvbnRyYWN0SWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmFjdEFzLmxlbmd0aCwgMSk7XG4gICAgY29uc3QgYWN0QXMgPSByZXF1ZXN0T2JqLmFjdEFzWzBdO1xuICAgIGFzc2VydC5lcXVhbChhY3RBcywgcGFydHlJZCk7XG4gICAgc2hvdWxkLmV4aXN0KHR4RGF0YSk7XG4gICAgYXNzZXJ0LmVxdWFsKHR4RGF0YS5zZW5kZXIsICcxMjIwMzo6MTIyMDMwNzkyNmE5MjM0MzFmMGFlZDEwNjA5ZmZmNDUxOTgyNmE3MDMyZDI2Y2I5MzYwZDRmNjdiMzA4MmQzMzJmOTMnKTtcbiAgICBhc3NlcnQuZXF1YWwodHhEYXRhLnJlY2VpdmVyLCBwYXJ0eUlkKTtcbiAgICBhc3NlcnQuZXF1YWwodHhEYXRhLmFtb3VudCwgJzEwMDAwMDAnKTtcbiAgICBhc3NlcnQuZXF1YWwodHhEYXRhLnRva2VuLCAnY2FudG9uOmNidGMnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSByYXcgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyUmVqZWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKFRyYW5zZmVyUmVqZWN0aW9uUHJlcGFyZVJlc3BvbnNlKTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihUcmFuc2ZlclJlamVjdGlvblByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyUmVqZWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4LnByZXBhcmVDb21tYW5kID0gVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2U7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2UpO1xuICAgIHR4QnVpbGRlci52YWxpZGF0ZVRyYW5zYWN0aW9uKHR4KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBpbiB2YWxpZGF0aW5nIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJSZWplY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBpbnZhbGlkUHJlcGFyZVJlc3BvbnNlID0gVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2U7XG4gICAgaW52YWxpZFByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCA9ICdRRnhYMVdCZHE3bFpiU2M0NWlLQTNKL29PRjltclZMYzNEZUtwaEFqYjE1PSc7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKGludmFsaWRQcmVwYXJlUmVzcG9uc2UpO1xuICAgIHRyeSB7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihpbnZhbGlkUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydC5lcXVhbChlLm1lc3NhZ2UsICdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbiwgaGFzaCBub3QgbWF0Y2hpbmcnKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canton.d.ts","sourceRoot":"","sources":["../../../test/unit/canton.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("should");
|
|
4
|
+
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
5
|
+
const sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
6
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
7
|
+
const src_1 = require("../../src");
|
|
8
|
+
const resources_1 = require("../resources");
|
|
9
|
+
/**
|
|
10
|
+
* Builds a base64-encoded raw transaction for a OneStepPreApproval (enable token flow).
|
|
11
|
+
* For TSS wallets (which Canton always is), verifyTransaction receives txParams.enableTokens,
|
|
12
|
+
* not txParams.recipients. The wallet SDK's buildTokenEnablements passes enableTokens through
|
|
13
|
+
* unchanged for TSS wallets rather than converting them to recipients.
|
|
14
|
+
*/
|
|
15
|
+
function buildOneStepPreApprovalRawTx(prepareResponse, commandId) {
|
|
16
|
+
const data = {
|
|
17
|
+
prepareCommandResponse: prepareResponse,
|
|
18
|
+
txType: 'OneStepPreApproval',
|
|
19
|
+
preparedTransaction: '',
|
|
20
|
+
partySignatures: { signatures: [] },
|
|
21
|
+
deduplicationPeriod: { Empty: {} },
|
|
22
|
+
submissionId: commandId,
|
|
23
|
+
hashingSchemeVersion: 'HASHING_SCHEME_VERSION_V2',
|
|
24
|
+
minLedgerTime: { time: { Empty: {} } },
|
|
25
|
+
};
|
|
26
|
+
return Buffer.from(JSON.stringify(data)).toString('base64');
|
|
27
|
+
}
|
|
28
|
+
/** Returns a mock wallet whose coinSpecific().rootAddress matches the given party ID. */
|
|
29
|
+
function walletWithRootAddress(rootAddress) {
|
|
30
|
+
return { coinSpecific: () => ({ rootAddress }) };
|
|
31
|
+
}
|
|
32
|
+
describe('Canton verifyTransaction:', function () {
|
|
33
|
+
let bitgo;
|
|
34
|
+
let basecoin;
|
|
35
|
+
before(function () {
|
|
36
|
+
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
|
|
37
|
+
bitgo.safeRegister('canton', src_1.Canton.createInstance);
|
|
38
|
+
bitgo.safeRegister('tcanton', src_1.Tcanton.createInstance);
|
|
39
|
+
bitgo.initializeTestVars();
|
|
40
|
+
basecoin = bitgo.coin('tcanton');
|
|
41
|
+
});
|
|
42
|
+
describe('OneStepPreApproval (enable token flow):', function () {
|
|
43
|
+
it('should return true when txParams has no type (non-enabletoken flow)', async function () {
|
|
44
|
+
const txHex = buildOneStepPreApprovalRawTx(resources_1.OneStepPreApprovalPrepareResponse, resources_1.OneStepEnablement.commandId);
|
|
45
|
+
const result = await basecoin.verifyTransaction({
|
|
46
|
+
txPrebuild: { txHex },
|
|
47
|
+
txParams: {},
|
|
48
|
+
wallet: {},
|
|
49
|
+
});
|
|
50
|
+
result.should.equal(true);
|
|
51
|
+
});
|
|
52
|
+
it('should return true when enableTokens is absent', async function () {
|
|
53
|
+
const txHex = buildOneStepPreApprovalRawTx(resources_1.OneStepPreApprovalPrepareResponse, resources_1.OneStepEnablement.commandId);
|
|
54
|
+
const result = await basecoin.verifyTransaction({
|
|
55
|
+
txPrebuild: { txHex },
|
|
56
|
+
txParams: { type: 'enabletoken' },
|
|
57
|
+
wallet: {},
|
|
58
|
+
});
|
|
59
|
+
result.should.equal(true);
|
|
60
|
+
});
|
|
61
|
+
it('should return true when enableTokens is empty', async function () {
|
|
62
|
+
const txHex = buildOneStepPreApprovalRawTx(resources_1.OneStepPreApprovalPrepareResponse, resources_1.OneStepEnablement.commandId);
|
|
63
|
+
const result = await basecoin.verifyTransaction({
|
|
64
|
+
txPrebuild: { txHex },
|
|
65
|
+
txParams: { type: 'enabletoken', enableTokens: [] },
|
|
66
|
+
wallet: {},
|
|
67
|
+
});
|
|
68
|
+
result.should.equal(true);
|
|
69
|
+
});
|
|
70
|
+
describe('coin pre-approval (TransferPreapprovalProposal):', function () {
|
|
71
|
+
let txHex;
|
|
72
|
+
let receiver;
|
|
73
|
+
before(function () {
|
|
74
|
+
txHex = buildOneStepPreApprovalRawTx(resources_1.OneStepPreApprovalPrepareResponse, resources_1.OneStepEnablement.commandId);
|
|
75
|
+
// Dynamically derive receiver from parsed transaction to avoid hardcoding protobuf-decoded addresses
|
|
76
|
+
const txBuilder = new src_1.TransactionBuilderFactory(statics_1.coins.get('tcanton')).from(txHex);
|
|
77
|
+
receiver = txBuilder.transaction.toJson().receiver;
|
|
78
|
+
});
|
|
79
|
+
it('should return true when wallet has no coinSpecific (receiver check skipped)', async function () {
|
|
80
|
+
// Typical case: wallet mock has no coinSpecific() method, and no address in enableTokens
|
|
81
|
+
const result = await basecoin.verifyTransaction({
|
|
82
|
+
txPrebuild: { txHex },
|
|
83
|
+
txParams: {
|
|
84
|
+
type: 'enabletoken',
|
|
85
|
+
enableTokens: [{ name: 'canton' }],
|
|
86
|
+
},
|
|
87
|
+
wallet: {},
|
|
88
|
+
});
|
|
89
|
+
result.should.equal(true);
|
|
90
|
+
});
|
|
91
|
+
it('should return true when wallet rootAddress matches receiver', async function () {
|
|
92
|
+
// Typical UI flow: enableTokens has no address, receiver validated from wallet.coinSpecific().rootAddress
|
|
93
|
+
const result = await basecoin.verifyTransaction({
|
|
94
|
+
txPrebuild: { txHex },
|
|
95
|
+
txParams: {
|
|
96
|
+
type: 'enabletoken',
|
|
97
|
+
enableTokens: [{ name: 'canton' }],
|
|
98
|
+
},
|
|
99
|
+
wallet: walletWithRootAddress(receiver),
|
|
100
|
+
});
|
|
101
|
+
result.should.equal(true);
|
|
102
|
+
});
|
|
103
|
+
it('should return true when enableToken.address matches receiver (explicit address)', async function () {
|
|
104
|
+
const result = await basecoin.verifyTransaction({
|
|
105
|
+
txPrebuild: { txHex },
|
|
106
|
+
txParams: {
|
|
107
|
+
type: 'enabletoken',
|
|
108
|
+
enableTokens: [{ name: 'canton', address: receiver }],
|
|
109
|
+
},
|
|
110
|
+
wallet: {},
|
|
111
|
+
});
|
|
112
|
+
result.should.equal(true);
|
|
113
|
+
});
|
|
114
|
+
it('should throw when wallet rootAddress does not match receiver', async function () {
|
|
115
|
+
const wrongAddress = 'wrong-party::1220aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
|
|
116
|
+
await basecoin
|
|
117
|
+
.verifyTransaction({
|
|
118
|
+
txPrebuild: { txHex },
|
|
119
|
+
txParams: {
|
|
120
|
+
type: 'enabletoken',
|
|
121
|
+
enableTokens: [{ name: 'canton' }],
|
|
122
|
+
},
|
|
123
|
+
wallet: walletWithRootAddress(wrongAddress),
|
|
124
|
+
})
|
|
125
|
+
.should.be.rejectedWith(/OneStepPreApproval receiver mismatch/);
|
|
126
|
+
});
|
|
127
|
+
it('should throw when explicit enableToken.address does not match receiver', async function () {
|
|
128
|
+
const wrongAddress = 'wrong-party::1220aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
|
|
129
|
+
await basecoin
|
|
130
|
+
.verifyTransaction({
|
|
131
|
+
txPrebuild: { txHex },
|
|
132
|
+
txParams: {
|
|
133
|
+
type: 'enabletoken',
|
|
134
|
+
enableTokens: [{ name: 'canton', address: wrongAddress }],
|
|
135
|
+
},
|
|
136
|
+
wallet: {},
|
|
137
|
+
})
|
|
138
|
+
.should.be.rejectedWith(/OneStepPreApproval receiver mismatch/);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
describe('token pre-approval (TransferPreapproval):', function () {
|
|
142
|
+
let txHex;
|
|
143
|
+
let receiver;
|
|
144
|
+
before(function () {
|
|
145
|
+
const commandId = '7d99789d-2f22-49e1-85cb-79d2ce5a69c1';
|
|
146
|
+
txHex = buildOneStepPreApprovalRawTx(resources_1.CantonTokenPreApprovalPrepareResponse, commandId);
|
|
147
|
+
const txBuilder = new src_1.TransactionBuilderFactory(statics_1.coins.get('tcanton')).from(txHex);
|
|
148
|
+
receiver = txBuilder.transaction.toJson().receiver;
|
|
149
|
+
});
|
|
150
|
+
it('should return true when wallet rootAddress matches receiver', async function () {
|
|
151
|
+
const result = await basecoin.verifyTransaction({
|
|
152
|
+
txPrebuild: { txHex },
|
|
153
|
+
txParams: {
|
|
154
|
+
type: 'enabletoken',
|
|
155
|
+
enableTokens: [{ name: 'tcanton:testcoin1' }],
|
|
156
|
+
},
|
|
157
|
+
wallet: walletWithRootAddress(receiver),
|
|
158
|
+
});
|
|
159
|
+
result.should.equal(true);
|
|
160
|
+
});
|
|
161
|
+
it('should return true when enableToken.address matches receiver (explicit address)', async function () {
|
|
162
|
+
const result = await basecoin.verifyTransaction({
|
|
163
|
+
txPrebuild: { txHex },
|
|
164
|
+
txParams: {
|
|
165
|
+
type: 'enabletoken',
|
|
166
|
+
enableTokens: [{ name: 'tcanton:testcoin1', address: receiver }],
|
|
167
|
+
},
|
|
168
|
+
wallet: {},
|
|
169
|
+
});
|
|
170
|
+
result.should.equal(true);
|
|
171
|
+
});
|
|
172
|
+
it('should throw when wallet rootAddress does not match receiver', async function () {
|
|
173
|
+
const wrongAddress = 'wrong-party::1220bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
|
|
174
|
+
await basecoin
|
|
175
|
+
.verifyTransaction({
|
|
176
|
+
txPrebuild: { txHex },
|
|
177
|
+
txParams: {
|
|
178
|
+
type: 'enabletoken',
|
|
179
|
+
enableTokens: [{ name: 'tcanton:testcoin1' }],
|
|
180
|
+
},
|
|
181
|
+
wallet: walletWithRootAddress(wrongAddress),
|
|
182
|
+
})
|
|
183
|
+
.should.be.rejectedWith(/OneStepPreApproval receiver mismatch/);
|
|
184
|
+
});
|
|
185
|
+
it('should throw when explicit enableToken.address does not match receiver', async function () {
|
|
186
|
+
const wrongAddress = 'wrong-party::1220bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
|
|
187
|
+
await basecoin
|
|
188
|
+
.verifyTransaction({
|
|
189
|
+
txPrebuild: { txHex },
|
|
190
|
+
txParams: {
|
|
191
|
+
type: 'enabletoken',
|
|
192
|
+
enableTokens: [{ name: 'tcanton:testcoin1', address: wrongAddress }],
|
|
193
|
+
},
|
|
194
|
+
wallet: {},
|
|
195
|
+
})
|
|
196
|
+
.should.be.rejectedWith(/OneStepPreApproval receiver mismatch/);
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2NhbnRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUNoQixpREFBK0M7QUFDL0MsbURBQStEO0FBQy9ELGlEQUE0QztBQUU1QyxtQ0FBdUU7QUFDdkUsNENBSXNCO0FBRXRCOzs7OztHQUtHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsZUFBeUQsRUFDekQsU0FBaUI7SUFFakIsTUFBTSxJQUFJLEdBQUc7UUFDWCxzQkFBc0IsRUFBRSxlQUFlO1FBQ3ZDLE1BQU0sRUFBRSxvQkFBb0I7UUFDNUIsbUJBQW1CLEVBQUUsRUFBRTtRQUN2QixlQUFlLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1FBQ25DLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNsQyxZQUFZLEVBQUUsU0FBUztRQUN2QixvQkFBb0IsRUFBRSwyQkFBMkI7UUFDakQsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO0tBQ3ZDLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQseUZBQXlGO0FBQ3pGLFNBQVMscUJBQXFCLENBQUMsV0FBbUI7SUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ25ELENBQUM7QUFFRCxRQUFRLENBQUMsMkJBQTJCLEVBQUU7SUFDcEMsSUFBSSxLQUFtQixDQUFDO0lBQ3hCLElBQUksUUFBZ0IsQ0FBQztJQUVyQixNQUFNLENBQUM7UUFDTCxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxhQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFXLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMseUNBQXlDLEVBQUU7UUFDbEQsRUFBRSxDQUFDLHFFQUFxRSxFQUFFLEtBQUs7WUFDN0UsTUFBTSxLQUFLLEdBQUcsNEJBQTRCLENBQUMsNkNBQWlDLEVBQUUsNkJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0csTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsaUJBQWlCLENBQUM7Z0JBQzlDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRTtnQkFDckIsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osTUFBTSxFQUFFLEVBQVM7YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsZ0RBQWdELEVBQUUsS0FBSztZQUN4RCxNQUFNLEtBQUssR0FBRyw0QkFBNEIsQ0FBQyw2Q0FBaUMsRUFBRSw2QkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzRyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDOUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFO2dCQUNyQixRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO2dCQUNqQyxNQUFNLEVBQUUsRUFBUzthQUNsQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxLQUFLO1lBQ3ZELE1BQU0sS0FBSyxHQUFHLDRCQUE0QixDQUFDLDZDQUFpQyxFQUFFLDZCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNHLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGlCQUFpQixDQUFDO2dCQUM5QyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUU7Z0JBQ3JCLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxFQUFFLEVBQVM7YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsa0RBQWtELEVBQUU7WUFDM0QsSUFBSSxLQUFhLENBQUM7WUFDbEIsSUFBSSxRQUFnQixDQUFDO1lBRXJCLE1BQU0sQ0FBQztnQkFDTCxLQUFLLEdBQUcsNEJBQTRCLENBQUMsNkNBQWlDLEVBQUUsNkJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JHLHFHQUFxRztnQkFDckcsTUFBTSxTQUFTLEdBQUcsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsRixRQUFRLEdBQUksU0FBUyxDQUFDLFdBQW1CLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBa0IsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyw2RUFBNkUsRUFBRSxLQUFLO2dCQUNyRix5RkFBeUY7Z0JBQ3pGLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGlCQUFpQixDQUFDO29CQUM5QyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUU7b0JBQ3JCLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsWUFBWSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7cUJBQ25DO29CQUNELE1BQU0sRUFBRSxFQUFTO2lCQUNsQixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsNkRBQTZELEVBQUUsS0FBSztnQkFDckUsMEdBQTBHO2dCQUMxRyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDOUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFO29CQUNyQixRQUFRLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLGFBQWE7d0JBQ25CLFlBQVksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3FCQUNuQztvQkFDRCxNQUFNLEVBQUUscUJBQXFCLENBQUMsUUFBUSxDQUFDO2lCQUN4QyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsaUZBQWlGLEVBQUUsS0FBSztnQkFDekYsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsaUJBQWlCLENBQUM7b0JBQzlDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRTtvQkFDckIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxhQUFhO3dCQUNuQixZQUFZLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO3FCQUN0RDtvQkFDRCxNQUFNLEVBQUUsRUFBUztpQkFDbEIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLDhEQUE4RCxFQUFFLEtBQUs7Z0JBQ3RFLE1BQU0sWUFBWSxHQUFHLHlGQUF5RixDQUFDO2dCQUMvRyxNQUFNLFFBQVE7cUJBQ1gsaUJBQWlCLENBQUM7b0JBQ2pCLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRTtvQkFDckIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxhQUFhO3dCQUNuQixZQUFZLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztxQkFDbkM7b0JBQ0QsTUFBTSxFQUFFLHFCQUFxQixDQUFDLFlBQVksQ0FBQztpQkFDNUMsQ0FBQztxQkFDRCxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLHdFQUF3RSxFQUFFLEtBQUs7Z0JBQ2hGLE1BQU0sWUFBWSxHQUFHLHlGQUF5RixDQUFDO2dCQUMvRyxNQUFNLFFBQVE7cUJBQ1gsaUJBQWlCLENBQUM7b0JBQ2pCLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRTtvQkFDckIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxhQUFhO3dCQUNuQixZQUFZLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO3FCQUMxRDtvQkFDRCxNQUFNLEVBQUUsRUFBUztpQkFDbEIsQ0FBQztxQkFDRCxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsMkNBQTJDLEVBQUU7WUFDcEQsSUFBSSxLQUFhLENBQUM7WUFDbEIsSUFBSSxRQUFnQixDQUFDO1lBRXJCLE1BQU0sQ0FBQztnQkFDTCxNQUFNLFNBQVMsR0FBRyxzQ0FBc0MsQ0FBQztnQkFDekQsS0FBSyxHQUFHLDRCQUE0QixDQUFDLGlEQUFxQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUN2RixNQUFNLFNBQVMsR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xGLFFBQVEsR0FBSSxTQUFTLENBQUMsV0FBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFrQixDQUFDO1lBQ3hFLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLDZEQUE2RCxFQUFFLEtBQUs7Z0JBQ3JFLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGlCQUFpQixDQUFDO29CQUM5QyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUU7b0JBQ3JCLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsWUFBWSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztxQkFDOUM7b0JBQ0QsTUFBTSxFQUFFLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztpQkFDeEMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLGlGQUFpRixFQUFFLEtBQUs7Z0JBQ3pGLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGlCQUFpQixDQUFDO29CQUM5QyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUU7b0JBQ3JCLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsWUFBWSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO3FCQUNqRTtvQkFDRCxNQUFNLEVBQUUsRUFBUztpQkFDbEIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLDhEQUE4RCxFQUFFLEtBQUs7Z0JBQ3RFLE1BQU0sWUFBWSxHQUFHLHVGQUF1RixDQUFDO2dCQUM3RyxNQUFNLFFBQVE7cUJBQ1gsaUJBQWlCLENBQUM7b0JBQ2pCLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRTtvQkFDckIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxhQUFhO3dCQUNuQixZQUFZLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDO3FCQUM5QztvQkFDRCxNQUFNLEVBQUUscUJBQXFCLENBQUMsWUFBWSxDQUFDO2lCQUM1QyxDQUFDO3FCQUNELE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDcEUsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsd0VBQXdFLEVBQUUsS0FBSztnQkFDaEYsTUFBTSxZQUFZLEdBQUcsdUZBQXVGLENBQUM7Z0JBQzdHLE1BQU0sUUFBUTtxQkFDWCxpQkFBaUIsQ0FBQztvQkFDakIsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFO29CQUNyQixRQUFRLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLGFBQWE7d0JBQ25CLFlBQVksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztxQkFDckU7b0JBQ0QsTUFBTSxFQUFFLEVBQVM7aUJBQ2xCLENBQUM7cUJBQ0QsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmltcG9ydCB7IENhbnRvbiwgVGNhbnRvbiwgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQge1xuICBDYW50b25Ub2tlblByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLFxuICBPbmVTdGVwRW5hYmxlbWVudCxcbiAgT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLFxufSBmcm9tICcuLi9yZXNvdXJjZXMnO1xuXG4vKipcbiAqIEJ1aWxkcyBhIGJhc2U2NC1lbmNvZGVkIHJhdyB0cmFuc2FjdGlvbiBmb3IgYSBPbmVTdGVwUHJlQXBwcm92YWwgKGVuYWJsZSB0b2tlbiBmbG93KS5cbiAqIEZvciBUU1Mgd2FsbGV0cyAod2hpY2ggQ2FudG9uIGFsd2F5cyBpcyksIHZlcmlmeVRyYW5zYWN0aW9uIHJlY2VpdmVzIHR4UGFyYW1zLmVuYWJsZVRva2VucyxcbiAqIG5vdCB0eFBhcmFtcy5yZWNpcGllbnRzLiBUaGUgd2FsbGV0IFNESydzIGJ1aWxkVG9rZW5FbmFibGVtZW50cyBwYXNzZXMgZW5hYmxlVG9rZW5zIHRocm91Z2hcbiAqIHVuY2hhbmdlZCBmb3IgVFNTIHdhbGxldHMgcmF0aGVyIHRoYW4gY29udmVydGluZyB0aGVtIHRvIHJlY2lwaWVudHMuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkT25lU3RlcFByZUFwcHJvdmFsUmF3VHgoXG4gIHByZXBhcmVSZXNwb25zZTogdHlwZW9mIE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZSxcbiAgY29tbWFuZElkOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGEgPSB7XG4gICAgcHJlcGFyZUNvbW1hbmRSZXNwb25zZTogcHJlcGFyZVJlc3BvbnNlLFxuICAgIHR4VHlwZTogJ09uZVN0ZXBQcmVBcHByb3ZhbCcsXG4gICAgcHJlcGFyZWRUcmFuc2FjdGlvbjogJycsXG4gICAgcGFydHlTaWduYXR1cmVzOiB7IHNpZ25hdHVyZXM6IFtdIH0sXG4gICAgZGVkdXBsaWNhdGlvblBlcmlvZDogeyBFbXB0eToge30gfSxcbiAgICBzdWJtaXNzaW9uSWQ6IGNvbW1hbmRJZCxcbiAgICBoYXNoaW5nU2NoZW1lVmVyc2lvbjogJ0hBU0hJTkdfU0NIRU1FX1ZFUlNJT05fVjInLFxuICAgIG1pbkxlZGdlclRpbWU6IHsgdGltZTogeyBFbXB0eToge30gfSB9LFxuICB9O1xuICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoZGF0YSkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbn1cblxuLyoqIFJldHVybnMgYSBtb2NrIHdhbGxldCB3aG9zZSBjb2luU3BlY2lmaWMoKS5yb290QWRkcmVzcyBtYXRjaGVzIHRoZSBnaXZlbiBwYXJ0eSBJRC4gKi9cbmZ1bmN0aW9uIHdhbGxldFdpdGhSb290QWRkcmVzcyhyb290QWRkcmVzczogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHsgY29pblNwZWNpZmljOiAoKSA9PiAoeyByb290QWRkcmVzcyB9KSB9O1xufVxuXG5kZXNjcmliZSgnQ2FudG9uIHZlcmlmeVRyYW5zYWN0aW9uOicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjogQ2FudG9uO1xuXG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAnbW9jaycgfSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdjYW50b24nLCBDYW50b24uY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndGNhbnRvbicsIFRjYW50b24uY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLmluaXRpYWxpemVUZXN0VmFycygpO1xuICAgIGJhc2Vjb2luID0gYml0Z28uY29pbigndGNhbnRvbicpIGFzIENhbnRvbjtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ09uZVN0ZXBQcmVBcHByb3ZhbCAoZW5hYmxlIHRva2VuIGZsb3cpOicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gdHhQYXJhbXMgaGFzIG5vIHR5cGUgKG5vbi1lbmFibGV0b2tlbiBmbG93KScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4SGV4ID0gYnVpbGRPbmVTdGVwUHJlQXBwcm92YWxSYXdUeChPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UsIE9uZVN0ZXBFbmFibGVtZW50LmNvbW1hbmRJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXggfSxcbiAgICAgICAgdHhQYXJhbXM6IHt9LFxuICAgICAgICB3YWxsZXQ6IHt9IGFzIGFueSxcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgd2hlbiBlbmFibGVUb2tlbnMgaXMgYWJzZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhIZXggPSBidWlsZE9uZVN0ZXBQcmVBcHByb3ZhbFJhd1R4KE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZSwgT25lU3RlcEVuYWJsZW1lbnQuY29tbWFuZElkKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJhc2Vjb2luLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleCB9LFxuICAgICAgICB0eFBhcmFtczogeyB0eXBlOiAnZW5hYmxldG9rZW4nIH0sXG4gICAgICAgIHdhbGxldDoge30gYXMgYW55LFxuICAgICAgfSk7XG4gICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSB3aGVuIGVuYWJsZVRva2VucyBpcyBlbXB0eScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4SGV4ID0gYnVpbGRPbmVTdGVwUHJlQXBwcm92YWxSYXdUeChPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UsIE9uZVN0ZXBFbmFibGVtZW50LmNvbW1hbmRJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXggfSxcbiAgICAgICAgdHhQYXJhbXM6IHsgdHlwZTogJ2VuYWJsZXRva2VuJywgZW5hYmxlVG9rZW5zOiBbXSB9LFxuICAgICAgICB3YWxsZXQ6IHt9IGFzIGFueSxcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjb2luIHByZS1hcHByb3ZhbCAoVHJhbnNmZXJQcmVhcHByb3ZhbFByb3Bvc2FsKTonLCBmdW5jdGlvbiAoKSB7XG4gICAgICBsZXQgdHhIZXg6IHN0cmluZztcbiAgICAgIGxldCByZWNlaXZlcjogc3RyaW5nO1xuXG4gICAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgICB0eEhleCA9IGJ1aWxkT25lU3RlcFByZUFwcHJvdmFsUmF3VHgoT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLCBPbmVTdGVwRW5hYmxlbWVudC5jb21tYW5kSWQpO1xuICAgICAgICAvLyBEeW5hbWljYWxseSBkZXJpdmUgcmVjZWl2ZXIgZnJvbSBwYXJzZWQgdHJhbnNhY3Rpb24gdG8gYXZvaWQgaGFyZGNvZGluZyBwcm90b2J1Zi1kZWNvZGVkIGFkZHJlc3Nlc1xuICAgICAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RjYW50b24nKSkuZnJvbSh0eEhleCk7XG4gICAgICAgIHJlY2VpdmVyID0gKHR4QnVpbGRlci50cmFuc2FjdGlvbiBhcyBhbnkpLnRvSnNvbigpLnJlY2VpdmVyIGFzIHN0cmluZztcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gd2FsbGV0IGhhcyBubyBjb2luU3BlY2lmaWMgKHJlY2VpdmVyIGNoZWNrIHNraXBwZWQpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBUeXBpY2FsIGNhc2U6IHdhbGxldCBtb2NrIGhhcyBubyBjb2luU3BlY2lmaWMoKSBtZXRob2QsIGFuZCBubyBhZGRyZXNzIGluIGVuYWJsZVRva2Vuc1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleCB9LFxuICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnZW5hYmxldG9rZW4nLFxuICAgICAgICAgICAgZW5hYmxlVG9rZW5zOiBbeyBuYW1lOiAnY2FudG9uJyB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdhbGxldDoge30gYXMgYW55LFxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gd2FsbGV0IHJvb3RBZGRyZXNzIG1hdGNoZXMgcmVjZWl2ZXInLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIFR5cGljYWwgVUkgZmxvdzogZW5hYmxlVG9rZW5zIGhhcyBubyBhZGRyZXNzLCByZWNlaXZlciB2YWxpZGF0ZWQgZnJvbSB3YWxsZXQuY29pblNwZWNpZmljKCkucm9vdEFkZHJlc3NcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYmFzZWNvaW4udmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXggfSxcbiAgICAgICAgICB0eFBhcmFtczoge1xuICAgICAgICAgICAgdHlwZTogJ2VuYWJsZXRva2VuJyxcbiAgICAgICAgICAgIGVuYWJsZVRva2VuczogW3sgbmFtZTogJ2NhbnRvbicgfV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB3YWxsZXQ6IHdhbGxldFdpdGhSb290QWRkcmVzcyhyZWNlaXZlciksXG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgd2hlbiBlbmFibGVUb2tlbi5hZGRyZXNzIG1hdGNoZXMgcmVjZWl2ZXIgKGV4cGxpY2l0IGFkZHJlc3MpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleCB9LFxuICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnZW5hYmxldG9rZW4nLFxuICAgICAgICAgICAgZW5hYmxlVG9rZW5zOiBbeyBuYW1lOiAnY2FudG9uJywgYWRkcmVzczogcmVjZWl2ZXIgfV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB3YWxsZXQ6IHt9IGFzIGFueSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3VsdC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIHdhbGxldCByb290QWRkcmVzcyBkb2VzIG5vdCBtYXRjaCByZWNlaXZlcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgd3JvbmdBZGRyZXNzID0gJ3dyb25nLXBhcnR5OjoxMjIwYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSc7XG4gICAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXggfSxcbiAgICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdlbmFibGV0b2tlbicsXG4gICAgICAgICAgICAgIGVuYWJsZVRva2VuczogW3sgbmFtZTogJ2NhbnRvbicgfV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd2FsbGV0OiB3YWxsZXRXaXRoUm9vdEFkZHJlc3Mod3JvbmdBZGRyZXNzKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKC9PbmVTdGVwUHJlQXBwcm92YWwgcmVjZWl2ZXIgbWlzbWF0Y2gvKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gZXhwbGljaXQgZW5hYmxlVG9rZW4uYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCByZWNlaXZlcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgd3JvbmdBZGRyZXNzID0gJ3dyb25nLXBhcnR5OjoxMjIwYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSc7XG4gICAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXggfSxcbiAgICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdlbmFibGV0b2tlbicsXG4gICAgICAgICAgICAgIGVuYWJsZVRva2VuczogW3sgbmFtZTogJ2NhbnRvbicsIGFkZHJlc3M6IHdyb25nQWRkcmVzcyB9XSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3YWxsZXQ6IHt9IGFzIGFueSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKC9PbmVTdGVwUHJlQXBwcm92YWwgcmVjZWl2ZXIgbWlzbWF0Y2gvKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3Rva2VuIHByZS1hcHByb3ZhbCAoVHJhbnNmZXJQcmVhcHByb3ZhbCk6JywgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IHR4SGV4OiBzdHJpbmc7XG4gICAgICBsZXQgcmVjZWl2ZXI6IHN0cmluZztcblxuICAgICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY29tbWFuZElkID0gJzdkOTk3ODlkLTJmMjItNDllMS04NWNiLTc5ZDJjZTVhNjljMSc7XG4gICAgICAgIHR4SGV4ID0gYnVpbGRPbmVTdGVwUHJlQXBwcm92YWxSYXdUeChDYW50b25Ub2tlblByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLCBjb21tYW5kSWQpO1xuICAgICAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RjYW50b24nKSkuZnJvbSh0eEhleCk7XG4gICAgICAgIHJlY2VpdmVyID0gKHR4QnVpbGRlci50cmFuc2FjdGlvbiBhcyBhbnkpLnRvSnNvbigpLnJlY2VpdmVyIGFzIHN0cmluZztcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gd2FsbGV0IHJvb3RBZGRyZXNzIG1hdGNoZXMgcmVjZWl2ZXInLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJhc2Vjb2luLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICB0eFByZWJ1aWxkOiB7IHR4SGV4IH0sXG4gICAgICAgICAgdHhQYXJhbXM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdlbmFibGV0b2tlbicsXG4gICAgICAgICAgICBlbmFibGVUb2tlbnM6IFt7IG5hbWU6ICd0Y2FudG9uOnRlc3Rjb2luMScgfV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB3YWxsZXQ6IHdhbGxldFdpdGhSb290QWRkcmVzcyhyZWNlaXZlciksXG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgd2hlbiBlbmFibGVUb2tlbi5hZGRyZXNzIG1hdGNoZXMgcmVjZWl2ZXIgKGV4cGxpY2l0IGFkZHJlc3MpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleCB9LFxuICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnZW5hYmxldG9rZW4nLFxuICAgICAgICAgICAgZW5hYmxlVG9rZW5zOiBbeyBuYW1lOiAndGNhbnRvbjp0ZXN0Y29pbjEnLCBhZGRyZXNzOiByZWNlaXZlciB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdhbGxldDoge30gYXMgYW55LFxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gd2FsbGV0IHJvb3RBZGRyZXNzIGRvZXMgbm90IG1hdGNoIHJlY2VpdmVyJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCB3cm9uZ0FkZHJlc3MgPSAnd3JvbmctcGFydHk6OjEyMjBiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYic7XG4gICAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXggfSxcbiAgICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdlbmFibGV0b2tlbicsXG4gICAgICAgICAgICAgIGVuYWJsZVRva2VuczogW3sgbmFtZTogJ3RjYW50b246dGVzdGNvaW4xJyB9XSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3YWxsZXQ6IHdhbGxldFdpdGhSb290QWRkcmVzcyh3cm9uZ0FkZHJlc3MpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL09uZVN0ZXBQcmVBcHByb3ZhbCByZWNlaXZlciBtaXNtYXRjaC8pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBleHBsaWNpdCBlbmFibGVUb2tlbi5hZGRyZXNzIGRvZXMgbm90IG1hdGNoIHJlY2VpdmVyJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCB3cm9uZ0FkZHJlc3MgPSAnd3JvbmctcGFydHk6OjEyMjBiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYic7XG4gICAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXggfSxcbiAgICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdlbmFibGV0b2tlbicsXG4gICAgICAgICAgICAgIGVuYWJsZVRva2VuczogW3sgbmFtZTogJ3RjYW50b246dGVzdGNvaW4xJywgYWRkcmVzczogd3JvbmdBZGRyZXNzIH1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdhbGxldDoge30gYXMgYW55LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL09uZVN0ZXBQcmVBcHByb3ZhbCByZWNlaXZlciBtaXNtYXRjaC8pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAKhB,OAAO,UAAU,CAAC"}
|
package/dist/test/unit/index.js
CHANGED
|
@@ -4,6 +4,7 @@ require("should");
|
|
|
4
4
|
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
5
5
|
const sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
6
6
|
const src_1 = require("../../src");
|
|
7
|
+
require("./canton");
|
|
7
8
|
describe('Canton:', function () {
|
|
8
9
|
let bitgo;
|
|
9
10
|
before(function () {
|
|
@@ -13,4 +14,4 @@ describe('Canton:', function () {
|
|
|
13
14
|
bitgo.initializeTestVars();
|
|
14
15
|
});
|
|
15
16
|
});
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFDaEIsaURBQStDO0FBQy9DLG1EQUErRDtBQUMvRCxtQ0FBNEM7QUFFNUMsb0JBQWtCO0FBRWxCLFFBQVEsQ0FBQyxTQUFTLEVBQUU7SUFDbEIsSUFBSSxLQUFtQixDQUFDO0lBRXhCLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLGFBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstYXBpJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuaW1wb3J0IHsgQ2FudG9uLCBUY2FudG9uIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuaW1wb3J0ICcuL2NhbnRvbic7XG5cbmRlc2NyaWJlKCdDYW50b246JywgZnVuY3Rpb24gKCkge1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7IGVudjogJ21vY2snIH0pO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcignY2FudG9uJywgQ2FudG9uLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3RjYW50b24nLCBUY2FudG9uLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgfSk7XG59KTtcbiJdfQ==
|