@bitgo-beta/sdk-coin-ada 2.3.14-beta.202 → 2.3.14-beta.2021

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.
Files changed (116) hide show
  1. package/dist/src/ada.d.ts +22 -14
  2. package/dist/src/ada.d.ts.map +1 -1
  3. package/dist/src/ada.js +168 -76
  4. package/dist/src/adaToken.d.ts +16 -11
  5. package/dist/src/adaToken.d.ts.map +1 -1
  6. package/dist/src/adaToken.js +109 -3
  7. package/dist/src/index.js +6 -2
  8. package/dist/src/lib/index.d.ts +3 -1
  9. package/dist/src/lib/index.d.ts.map +1 -1
  10. package/dist/src/lib/index.js +29 -9
  11. package/dist/src/lib/keyPair.js +29 -16
  12. package/dist/src/lib/messages/cip8/cip8Message.d.ts +25 -0
  13. package/dist/src/lib/messages/cip8/cip8Message.d.ts.map +1 -0
  14. package/dist/src/lib/messages/cip8/cip8Message.js +140 -0
  15. package/dist/src/lib/messages/cip8/cip8MessageBuilder.d.ts +19 -0
  16. package/dist/src/lib/messages/cip8/cip8MessageBuilder.d.ts.map +1 -0
  17. package/dist/src/lib/messages/cip8/cip8MessageBuilder.js +27 -0
  18. package/dist/src/lib/messages/cip8/index.d.ts +4 -0
  19. package/dist/src/lib/messages/cip8/index.d.ts.map +1 -0
  20. package/dist/src/lib/messages/cip8/index.js +20 -0
  21. package/dist/src/lib/messages/cip8/utils.d.ts +24 -0
  22. package/dist/src/lib/messages/cip8/utils.d.ts.map +1 -0
  23. package/dist/src/lib/messages/cip8/utils.js +73 -0
  24. package/dist/src/lib/messages/index.d.ts +3 -0
  25. package/dist/src/lib/messages/index.d.ts.map +1 -0
  26. package/dist/src/lib/messages/index.js +19 -0
  27. package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
  28. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  29. package/dist/src/lib/messages/messageBuilderFactory.js +20 -0
  30. package/dist/src/lib/stakingActivateBuilder.d.ts +1 -1
  31. package/dist/src/lib/stakingActivateBuilder.d.ts.map +1 -1
  32. package/dist/src/lib/stakingActivateBuilder.js +30 -10
  33. package/dist/src/lib/stakingDeactivateBuilder.js +24 -10
  34. package/dist/src/lib/transaction.d.ts +31 -7
  35. package/dist/src/lib/transaction.d.ts.map +1 -1
  36. package/dist/src/lib/transaction.js +112 -17
  37. package/dist/src/lib/transactionBuilder.d.ts +122 -3
  38. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  39. package/dist/src/lib/transactionBuilder.js +517 -20
  40. package/dist/src/lib/transactionBuilderFactory.d.ts +2 -0
  41. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  42. package/dist/src/lib/transactionBuilderFactory.js +7 -1
  43. package/dist/src/lib/utils.d.ts +22 -0
  44. package/dist/src/lib/utils.d.ts.map +1 -1
  45. package/dist/src/lib/utils.js +152 -17
  46. package/dist/src/lib/voteDelegationBuilder.d.ts +24 -0
  47. package/dist/src/lib/voteDelegationBuilder.d.ts.map +1 -0
  48. package/dist/src/lib/voteDelegationBuilder.js +84 -0
  49. package/dist/test/resources/cip8Resources.d.ts +25 -0
  50. package/dist/test/resources/cip8Resources.d.ts.map +1 -0
  51. package/dist/test/resources/cip8Resources.js +76 -0
  52. package/dist/test/resources/index.d.ts +458 -0
  53. package/dist/test/resources/index.d.ts.map +1 -0
  54. package/dist/test/resources/index.js +659 -0
  55. package/dist/test/unit/StakingActivateBuilder.d.ts +2 -0
  56. package/dist/test/unit/StakingActivateBuilder.d.ts.map +1 -0
  57. package/dist/test/unit/StakingActivateBuilder.js +213 -0
  58. package/dist/test/unit/StakingDeactivateBuilder.d.ts +2 -0
  59. package/dist/test/unit/StakingDeactivateBuilder.d.ts.map +1 -0
  60. package/dist/test/unit/StakingDeactivateBuilder.js +158 -0
  61. package/dist/test/unit/ada.d.ts +5 -0
  62. package/dist/test/unit/ada.d.ts.map +1 -0
  63. package/dist/test/unit/ada.js +1704 -0
  64. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  65. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  66. package/dist/test/unit/getBuilderFactory.js +10 -0
  67. package/dist/test/unit/index.d.ts +2 -0
  68. package/dist/test/unit/index.d.ts.map +1 -0
  69. package/dist/test/unit/index.js +32 -0
  70. package/dist/test/unit/keyPair.d.ts +2 -0
  71. package/dist/test/unit/keyPair.d.ts.map +1 -0
  72. package/dist/test/unit/keyPair.js +88 -0
  73. package/dist/test/unit/messages/cip8/cip8Message.d.ts +2 -0
  74. package/dist/test/unit/messages/cip8/cip8Message.d.ts.map +1 -0
  75. package/dist/test/unit/messages/cip8/cip8Message.js +131 -0
  76. package/dist/test/unit/messages/cip8/cip8MessageBuilder.d.ts +2 -0
  77. package/dist/test/unit/messages/cip8/cip8MessageBuilder.d.ts.map +1 -0
  78. package/dist/test/unit/messages/cip8/cip8MessageBuilder.js +132 -0
  79. package/dist/test/unit/messages/cip8/utils.d.ts +2 -0
  80. package/dist/test/unit/messages/cip8/utils.d.ts.map +1 -0
  81. package/dist/test/unit/messages/cip8/utils.js +127 -0
  82. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  83. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  84. package/dist/test/unit/messages/messageBuilderFactory.js +35 -0
  85. package/dist/test/unit/plutusPledgeBuilder.d.ts +2 -0
  86. package/dist/test/unit/plutusPledgeBuilder.d.ts.map +1 -0
  87. package/dist/test/unit/plutusPledgeBuilder.js +162 -0
  88. package/dist/test/unit/stakingClaimRewardsBuilder.d.ts +2 -0
  89. package/dist/test/unit/stakingClaimRewardsBuilder.d.ts.map +1 -0
  90. package/dist/test/unit/stakingClaimRewardsBuilder.js +70 -0
  91. package/dist/test/unit/stakingPledgeBuilder.d.ts +2 -0
  92. package/dist/test/unit/stakingPledgeBuilder.d.ts.map +1 -0
  93. package/dist/test/unit/stakingPledgeBuilder.js +141 -0
  94. package/dist/test/unit/stakingWithdrawBuilder.d.ts +2 -0
  95. package/dist/test/unit/stakingWithdrawBuilder.d.ts.map +1 -0
  96. package/dist/test/unit/stakingWithdrawBuilder.js +167 -0
  97. package/dist/test/unit/tokenWithdrawal.d.ts +2 -0
  98. package/dist/test/unit/tokenWithdrawal.d.ts.map +1 -0
  99. package/dist/test/unit/tokenWithdrawal.js +959 -0
  100. package/dist/test/unit/transaction.d.ts +2 -0
  101. package/dist/test/unit/transaction.d.ts.map +1 -0
  102. package/dist/test/unit/transaction.js +100 -0
  103. package/dist/test/unit/transactionBuilder.d.ts +2 -0
  104. package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
  105. package/dist/test/unit/transactionBuilder.js +545 -0
  106. package/dist/test/unit/utils.d.ts +2 -0
  107. package/dist/test/unit/utils.d.ts.map +1 -0
  108. package/dist/test/unit/utils.js +138 -0
  109. package/dist/test/unit/voteDelegationBuilder.d.ts +2 -0
  110. package/dist/test/unit/voteDelegationBuilder.d.ts.map +1 -0
  111. package/dist/test/unit/voteDelegationBuilder.js +96 -0
  112. package/dist/tsconfig.tsbuildinfo +1 -0
  113. package/package.json +18 -13
  114. package/.eslintignore +0 -5
  115. package/.mocharc.yml +0 -8
  116. package/CHANGELOG.md +0 -510
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const buffer_1 = require("buffer");
40
+ const should_1 = __importDefault(require("should"));
41
+ const CardanoSL = __importStar(require("@emurgo/cardano-serialization-lib-nodejs"));
42
+ const cbor_1 = require("cbor");
43
+ const cip8Resources_1 = require("../../../resources/cip8Resources");
44
+ const utils_1 = require("../../../../src/lib/messages/cip8/utils");
45
+ describe('CIP8 Utils', function () {
46
+ let addressCborBytes;
47
+ before(function () {
48
+ const address = CardanoSL.Address.from_bech32(cip8Resources_1.cip8TestResources.address.bech32);
49
+ addressCborBytes = address.to_bytes();
50
+ });
51
+ describe('bytesToHex', function () {
52
+ it('should convert Uint8Array to hex string', function () {
53
+ const bytes = new Uint8Array([0, 1, 10, 15, 255]);
54
+ const hex = (0, utils_1.bytesToHex)(bytes);
55
+ should_1.default.equal(hex, '00010a0fff');
56
+ });
57
+ it('should convert Buffer to hex string', function () {
58
+ const buffer = buffer_1.Buffer.from([0, 1, 10, 15, 255]);
59
+ const hex = (0, utils_1.bytesToHex)(buffer);
60
+ should_1.default.equal(hex, '00010a0fff');
61
+ });
62
+ it('should return empty string for empty input', function () {
63
+ const bytes = new Uint8Array([]);
64
+ const hex = (0, utils_1.bytesToHex)(bytes);
65
+ should_1.default.equal(hex, '');
66
+ });
67
+ });
68
+ describe('createCSLSigStructure', function () {
69
+ it('should create valid signature structure', async function () {
70
+ const message = 'Hello, Cardano!';
71
+ const result = (0, utils_1.createCSLSigStructure)(addressCborBytes, message);
72
+ should_1.default.exist(result.sigStructureCborBytes);
73
+ should_1.default.exist(result.protectedHeaderCborBytes);
74
+ should_1.default.exist(result.payloadBytes);
75
+ // Verify payload bytes match original message
76
+ should_1.default.equal(result.payloadBytes.toString('utf-8'), message);
77
+ // Verify structure of protected header
78
+ const decodedHeader = await cbor_1.Decoder.decodeFirst(result.protectedHeaderCborBytes);
79
+ should_1.default.exist(decodedHeader);
80
+ should_1.default.equal(decodedHeader.get(1), -8); // Algorithm ID: EdDSA
81
+ should_1.default.exist(decodedHeader.get('address')); // Address should be present
82
+ // Verify structure of sig_structure
83
+ const decodedSigStructure = await cbor_1.Decoder.decodeFirst(result.sigStructureCborBytes);
84
+ should_1.default.exist(decodedSigStructure);
85
+ should_1.default.equal(decodedSigStructure[0], 'Signature1');
86
+ should_1.default.deepEqual(decodedSigStructure[1], buffer_1.Buffer.from(result.protectedHeaderCborBytes));
87
+ should_1.default.deepEqual(decodedSigStructure[2], buffer_1.Buffer.from([]));
88
+ should_1.default.deepEqual(decodedSigStructure[3], buffer_1.Buffer.from(message, 'utf-8'));
89
+ });
90
+ it('should handle empty message', function () {
91
+ const message = '';
92
+ const result = (0, utils_1.createCSLSigStructure)(addressCborBytes, message);
93
+ should_1.default.exist(result);
94
+ should_1.default.equal(result.payloadBytes.toString('utf-8'), '');
95
+ should_1.default.equal(result.payloadBytes.length, 0);
96
+ });
97
+ });
98
+ describe('constructCSLCoseObjects', function () {
99
+ it('should construct valid COSE objects', function () {
100
+ const message = 'Hello, Cardano!';
101
+ const { protectedHeaderCborBytes, payloadBytes } = (0, utils_1.createCSLSigStructure)(addressCborBytes, message);
102
+ const signatureBytes = cip8Resources_1.cip8TestResources.createTestSignature(message);
103
+ const pubKey = cip8Resources_1.cip8TestResources.createTestPublicKey();
104
+ const result = (0, utils_1.constructCSLCoseObjects)(protectedHeaderCborBytes, payloadBytes, signatureBytes, pubKey);
105
+ should_1.default.exist(result.manualCoseSign1Hex);
106
+ should_1.default.exist(result.manualCoseKeyHex);
107
+ should_1.default.ok(result.manualCoseSign1Hex.length > 0);
108
+ should_1.default.ok(result.manualCoseKeyHex.length > 0);
109
+ });
110
+ });
111
+ describe('coseObjectsOutputToBuffer and bufferToCoseObjectsOutput', function () {
112
+ it('should convert CSLCoseObjectsOutput to buffer and back', async function () {
113
+ const message = 'Hello, Cardano!';
114
+ const { protectedHeaderCborBytes, payloadBytes } = (0, utils_1.createCSLSigStructure)(addressCborBytes, message);
115
+ const signatureBytes = cip8Resources_1.cip8TestResources.createTestSignature(message);
116
+ const pubKey = cip8Resources_1.cip8TestResources.createTestPublicKey();
117
+ const originalObjects = (0, utils_1.constructCSLCoseObjects)(protectedHeaderCborBytes, payloadBytes, signatureBytes, pubKey);
118
+ const buffer = (0, utils_1.coseObjectsOutputToBuffer)(originalObjects);
119
+ should_1.default.ok(buffer.length > 0);
120
+ const reconstructedObjects = await (0, utils_1.bufferToCoseObjectsOutput)(buffer);
121
+ should_1.default.exist(reconstructedObjects);
122
+ should_1.default.equal(reconstructedObjects.manualCoseSign1Hex, originalObjects.manualCoseSign1Hex);
123
+ should_1.default.equal(reconstructedObjects.manualCoseKeyHex, originalObjects.manualCoseKeyHex);
124
+ });
125
+ });
126
+ });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvY2lwOC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnQztBQUNoQyxvREFBNEI7QUFDNUIsb0ZBQXNFO0FBQ3RFLCtCQUErQjtBQUUvQixvRUFBcUU7QUFDckUsbUVBTWlEO0FBRWpELFFBQVEsQ0FBQyxZQUFZLEVBQUU7SUFDckIsSUFBSSxnQkFBNEIsQ0FBQztJQUVqQyxNQUFNLENBQUM7UUFDTCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEYsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFlBQVksRUFBRTtRQUNyQixFQUFFLENBQUMseUNBQXlDLEVBQUU7WUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsRCxNQUFNLEdBQUcsR0FBRyxJQUFBLGtCQUFVLEVBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHFDQUFxQyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLGVBQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFB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QUFNLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBQSw2QkFBcUIsRUFBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUVwRyxNQUFNLGNBQWMsR0FBRyxpQ0FBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RSxNQUFNLE1BQU0sR0FBRyxpQ0FBaUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBRXZELE1BQU0sZUFBZSxHQUFHLElBQUEsK0JBQXVCLEVBQUMsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVoSCxNQUFNLE1BQU0sR0FBRyxJQUFBLGlDQUF5QixFQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzFELGdCQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFN0IsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLElBQUEsaUNBQXlCLEVBQUMsTUFBTSxDQUFDLENBQUM7WUFDckUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNuQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMxRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0ICogYXMgQ2FyZGFub1NMIGZyb20gJ0BlbXVyZ28vY2FyZGFuby1zZXJpYWxpemF0aW9uLWxpYi1ub2RlanMnO1xuaW1wb3J0IHsgRGVjb2RlciB9IGZyb20gJ2Nib3InO1xuXG5pbXBvcnQgeyBjaXA4VGVzdFJlc291cmNlcyB9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9jaXA4UmVzb3VyY2VzJztcbmltcG9ydCB7XG4gIGJ5dGVzVG9IZXgsXG4gIGNyZWF0ZUNTTFNpZ1N0cnVjdHVyZSxcbiAgY29uc3RydWN0Q1NMQ29zZU9iamVjdHMsXG4gIGNvc2VPYmplY3RzT3V0cHV0VG9CdWZmZXIsXG4gIGJ1ZmZlclRvQ29zZU9iamVjdHNPdXRwdXQsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9saWIvbWVzc2FnZXMvY2lwOC91dGlscyc7XG5cbmRlc2NyaWJlKCdDSVA4IFV0aWxzJywgZnVuY3Rpb24gKCkge1xuICBsZXQgYWRkcmVzc0Nib3JCeXRlczogVWludDhBcnJheTtcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSBDYXJkYW5vU0wuQWRkcmVzcy5mcm9tX2JlY2gzMihjaXA4VGVzdFJlc291cmNlcy5hZGRyZXNzLmJlY2gzMik7XG4gICAgYWRkcmVzc0Nib3JCeXRlcyA9IGFkZHJlc3MudG9fYnl0ZXMoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J5dGVzVG9IZXgnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBjb252ZXJ0IFVpbnQ4QXJyYXkgdG8gaGV4IHN0cmluZycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDEwLCAxNSwgMjU1XSk7XG4gICAgICBjb25zdCBoZXggPSBieXRlc1RvSGV4KGJ5dGVzKTtcbiAgICAgIHNob3VsZC5lcXVhbChoZXgsICcwMDAxMGEwZmZmJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvbnZlcnQgQnVmZmVyIHRvIGhleCBzdHJpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShbMCwgMSwgMTAsIDE1LCAyNTVdKTtcbiAgICAgIGNvbnN0IGhleCA9IGJ5dGVzVG9IZXgoYnVmZmVyKTtcbiAgICAgIHNob3VsZC5lcXVhbChoZXgsICcwMDAxMGEwZmZmJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBlbXB0eSBzdHJpbmcgZm9yIGVtcHR5IGlucHV0JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShbXSk7XG4gICAgICBjb25zdCBoZXggPSBieXRlc1RvSGV4KGJ5dGVzKTtcbiAgICAgIHNob3VsZC5lcXVhbChoZXgsICcnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NyZWF0ZUNTTFNpZ1N0cnVjdHVyZScsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSB2YWxpZCBzaWduYXR1cmUgc3RydWN0dXJlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9ICdIZWxsbywgQ2FyZGFubyEnO1xuICAgICAgY29uc3QgcmVzdWx0ID0gY3JlYXRlQ1NMU2lnU3RydWN0dXJlKGFkZHJlc3NDYm9yQnl0ZXMsIG1lc3NhZ2UpO1xuXG4gICAgICBzaG91bGQuZXhpc3QocmVzdWx0LnNpZ1N0cnVjdHVyZUNib3JCeXRlcyk7XG4gICAgICBzaG91bGQuZXhpc3QocmVzdWx0LnByb3RlY3RlZEhlYWRlckNib3JCeXRlcyk7XG4gICAgICBzaG91bGQuZXhpc3QocmVzdWx0LnBheWxvYWRCeXRlcyk7XG5cbiAgICAgIC8vIFZlcmlmeSBwYXlsb2FkIGJ5dGVzIG1hdGNoIG9yaWdpbmFsIG1lc3NhZ2VcbiAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQucGF5bG9hZEJ5dGVzLnRvU3RyaW5nKCd1dGYtOCcpLCBtZXNzYWdlKTtcblxuICAgICAgLy8gVmVyaWZ5IHN0cnVjdHVyZSBvZiBwcm90ZWN0ZWQgaGVhZGVyXG4gICAgICBjb25zdCBkZWNvZGVkSGVhZGVyID0gYXdhaXQgRGVjb2Rlci5kZWNvZGVGaXJzdChyZXN1bHQucHJvdGVjdGVkSGVhZGVyQ2JvckJ5dGVzKTtcbiAgICAgIHNob3VsZC5leGlzdChkZWNvZGVkSGVhZGVyKTtcbiAgICAgIHNob3VsZC5lcXVhbChkZWNvZGVkSGVhZGVyLmdldCgxKSwgLTgpOyAvLyBBbGdvcml0aG0gSUQ6IEVkRFNBXG4gICAgICBzaG91bGQuZXhpc3QoZGVjb2RlZEhlYWRlci5nZXQoJ2FkZHJlc3MnKSk7IC8vIEFkZHJlc3Mgc2hvdWxkIGJlIHByZXNlbnRcblxuICAgICAgLy8gVmVyaWZ5IHN0cnVjdHVyZSBvZiBzaWdfc3RydWN0dXJlXG4gICAgICBjb25zdCBkZWNvZGVkU2lnU3RydWN0dXJlID0gYXdhaXQgRGVjb2Rlci5kZWNvZGVGaXJzdChyZXN1bHQuc2lnU3RydWN0dXJlQ2JvckJ5dGVzKTtcbiAgICAgIHNob3VsZC5leGlzdChkZWNvZGVkU2lnU3RydWN0dXJlKTtcbiAgICAgIHNob3VsZC5lcXVhbChkZWNvZGVkU2lnU3RydWN0dXJlWzBdLCAnU2lnbmF0dXJlMScpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChkZWNvZGVkU2lnU3RydWN0dXJlWzFdLCBCdWZmZXIuZnJvbShyZXN1bHQucHJvdGVjdGVkSGVhZGVyQ2JvckJ5dGVzKSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKGRlY29kZWRTaWdTdHJ1Y3R1cmVbMl0sIEJ1ZmZlci5mcm9tKFtdKSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKGRlY29kZWRTaWdTdHJ1Y3R1cmVbM10sIEJ1ZmZlci5mcm9tKG1lc3NhZ2UsICd1dGYtOCcpKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IG1lc3NhZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gJyc7XG4gICAgICBjb25zdCByZXN1bHQgPSBjcmVhdGVDU0xTaWdTdHJ1Y3R1cmUoYWRkcmVzc0Nib3JCeXRlcywgbWVzc2FnZSk7XG5cbiAgICAgIHNob3VsZC5leGlzdChyZXN1bHQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdC5wYXlsb2FkQnl0ZXMudG9TdHJpbmcoJ3V0Zi04JyksICcnKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQucGF5bG9hZEJ5dGVzLmxlbmd0aCwgMCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb25zdHJ1Y3RDU0xDb3NlT2JqZWN0cycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGNvbnN0cnVjdCB2YWxpZCBDT1NFIG9iamVjdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gJ0hlbGxvLCBDYXJkYW5vISc7XG4gICAgICBjb25zdCB7IHByb3RlY3RlZEhlYWRlckNib3JCeXRlcywgcGF5bG9hZEJ5dGVzIH0gPSBjcmVhdGVDU0xTaWdTdHJ1Y3R1cmUoYWRkcmVzc0Nib3JCeXRlcywgbWVzc2FnZSk7XG5cbiAgICAgIGNvbnN0IHNpZ25hdHVyZUJ5dGVzID0gY2lwOFRlc3RSZXNvdXJjZXMuY3JlYXRlVGVzdFNpZ25hdHVyZShtZXNzYWdlKTtcbiAgICAgIGNvbnN0IHB1YktleSA9IGNpcDhUZXN0UmVzb3VyY2VzLmNyZWF0ZVRlc3RQdWJsaWNLZXkoKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gY29uc3RydWN0Q1NMQ29zZU9iamVjdHMocHJvdGVjdGVkSGVhZGVyQ2JvckJ5dGVzLCBwYXlsb2FkQnl0ZXMsIHNpZ25hdHVyZUJ5dGVzLCBwdWJLZXkpO1xuXG4gICAgICBzaG91bGQuZXhpc3QocmVzdWx0Lm1hbnVhbENvc2VTaWduMUhleCk7XG4gICAgICBzaG91bGQuZXhpc3QocmVzdWx0Lm1hbnVhbENvc2VLZXlIZXgpO1xuXG4gICAgICBzaG91bGQub2socmVzdWx0Lm1hbnVhbENvc2VTaWduMUhleC5sZW5ndGggPiAwKTtcbiAgICAgIHNob3VsZC5vayhyZXN1bHQubWFudWFsQ29zZUtleUhleC5sZW5ndGggPiAwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Nvc2VPYmplY3RzT3V0cHV0VG9CdWZmZXIgYW5kIGJ1ZmZlclRvQ29zZU9iamVjdHNPdXRwdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBjb252ZXJ0IENTTENvc2VPYmplY3RzT3V0cHV0IHRvIGJ1ZmZlciBhbmQgYmFjaycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnSGVsbG8sIENhcmRhbm8hJztcbiAgICAgIGNvbnN0IHsgcHJvdGVjdGVkSGVhZGVyQ2JvckJ5dGVzLCBwYXlsb2FkQnl0ZXMgfSA9IGNyZWF0ZUNTTFNpZ1N0cnVjdHVyZShhZGRyZXNzQ2JvckJ5dGVzLCBtZXNzYWdlKTtcblxuICAgICAgY29uc3Qgc2lnbmF0dXJlQnl0ZXMgPSBjaXA4VGVzdFJlc291cmNlcy5jcmVhdGVUZXN0U2lnbmF0dXJlKG1lc3NhZ2UpO1xuICAgICAgY29uc3QgcHViS2V5ID0gY2lwOFRlc3RSZXNvdXJjZXMuY3JlYXRlVGVzdFB1YmxpY0tleSgpO1xuXG4gICAgICBjb25zdCBvcmlnaW5hbE9iamVjdHMgPSBjb25zdHJ1Y3RDU0xDb3NlT2JqZWN0cyhwcm90ZWN0ZWRIZWFkZXJDYm9yQnl0ZXMsIHBheWxvYWRCeXRlcywgc2lnbmF0dXJlQnl0ZXMsIHB1YktleSk7XG5cbiAgICAgIGNvbnN0IGJ1ZmZlciA9IGNvc2VPYmplY3RzT3V0cHV0VG9CdWZmZXIob3JpZ2luYWxPYmplY3RzKTtcbiAgICAgIHNob3VsZC5vayhidWZmZXIubGVuZ3RoID4gMCk7XG5cbiAgICAgIGNvbnN0IHJlY29uc3RydWN0ZWRPYmplY3RzID0gYXdhaXQgYnVmZmVyVG9Db3NlT2JqZWN0c091dHB1dChidWZmZXIpO1xuICAgICAgc2hvdWxkLmV4aXN0KHJlY29uc3RydWN0ZWRPYmplY3RzKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZWNvbnN0cnVjdGVkT2JqZWN0cy5tYW51YWxDb3NlU2lnbjFIZXgsIG9yaWdpbmFsT2JqZWN0cy5tYW51YWxDb3NlU2lnbjFIZXgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlY29uc3RydWN0ZWRPYmplY3RzLm1hbnVhbENvc2VLZXlIZXgsIG9yaWdpbmFsT2JqZWN0cy5tYW51YWxDb3NlS2V5SGV4KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messageBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/messageBuilderFactory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
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 should_1 = __importDefault(require("should"));
7
+ const sinon_1 = __importDefault(require("sinon"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const src_1 = require("../../../src");
10
+ describe('MessageBuilderFactory', function () {
11
+ let sandbox;
12
+ let factory;
13
+ const coinConfig = { name: 'tada' };
14
+ beforeEach(function () {
15
+ sandbox = sinon_1.default.createSandbox();
16
+ factory = new src_1.MessageBuilderFactory(coinConfig);
17
+ });
18
+ afterEach(function () {
19
+ sandbox.restore();
20
+ });
21
+ describe('getMessageBuilder', function () {
22
+ it('should return CIP8 message builder for CIP8 type', function () {
23
+ const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.CIP8);
24
+ should_1.default.exist(builder);
25
+ builder.should.be.instanceof(src_1.Cip8MessageBuilder);
26
+ });
27
+ it('should throw error for unsupported message type', function () {
28
+ const unsupportedTypes = ['UNSUPPORTED'];
29
+ unsupportedTypes.forEach((type) => {
30
+ should_1.default.throws(() => factory.getMessageBuilder(type), /Invalid message standard UNSUPPORTED/);
31
+ });
32
+ });
33
+ });
34
+ });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUJ1aWxkZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL21lc3NhZ2VCdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixrREFBMEI7QUFFMUIsbURBQTJEO0FBQzNELHNDQUF5RTtBQUV6RSxRQUFRLENBQUMsdUJBQXVCLEVBQUU7SUFDaEMsSUFBSSxPQUEyQixDQUFDO0lBQ2hDLElBQUksT0FBOEIsQ0FBQztJQUNuQyxNQUFNLFVBQVUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQWMsQ0FBQztJQUVoRCxVQUFVLENBQUM7UUFDVCxPQUFPLEdBQUcsZUFBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxJQUFJLDJCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDO1FBQ1IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG1CQUFtQixFQUFFO1FBQzVCLEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtZQUNyRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsOEJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLHdCQUFrQixDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaURBQWlELEVBQUU7WUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGFBQW9DLENBQUMsQ0FBQztZQUVoRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLHNDQUFzQyxDQUFDLENBQUM7WUFDL0YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBDaXA4TWVzc2FnZUJ1aWxkZXIsIE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5cbmRlc2NyaWJlKCdNZXNzYWdlQnVpbGRlckZhY3RvcnknLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBzYW5kYm94OiBzaW5vbi5TaW5vblNhbmRib3g7XG4gIGxldCBmYWN0b3J5OiBNZXNzYWdlQnVpbGRlckZhY3Rvcnk7XG4gIGNvbnN0IGNvaW5Db25maWcgPSB7IG5hbWU6ICd0YWRhJyB9IGFzIEJhc2VDb2luO1xuXG4gIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3ggPSBzaW5vbi5jcmVhdGVTYW5kYm94KCk7XG4gICAgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2FuZGJveC5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRNZXNzYWdlQnVpbGRlcicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBDSVA4IG1lc3NhZ2UgYnVpbGRlciBmb3IgQ0lQOCB0eXBlJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5DSVA4KTtcbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIGJ1aWxkZXIuc2hvdWxkLmJlLmluc3RhbmNlb2YoQ2lwOE1lc3NhZ2VCdWlsZGVyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHVuc3VwcG9ydGVkIG1lc3NhZ2UgdHlwZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkVHlwZXMgPSBbJ1VOU1VQUE9SVEVEJyBhcyBNZXNzYWdlU3RhbmRhcmRUeXBlXTtcblxuICAgICAgdW5zdXBwb3J0ZWRUeXBlcy5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcih0eXBlKSwgL0ludmFsaWQgbWVzc2FnZSBzdGFuZGFyZCBVTlNVUFBPUlRFRC8pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plutusPledgeBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plutusPledgeBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/plutusPledgeBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const CardanoWasm = __importStar(require("@emurgo/cardano-serialization-lib-nodejs"));
40
+ const should_1 = __importDefault(require("should"));
41
+ const statics_1 = require("@bitgo-beta/statics");
42
+ const src_1 = require("../../src");
43
+ const resources_1 = require("../resources");
44
+ const TEST_ADDRESS = 'addr_test1vr8rakm66rcfv4fcxqykg5lf0yv7lsyk9mvapx369jpvtcgfcuk7f';
45
+ /**
46
+ * Builds a synthetic Plutus transaction analogous to CBOR WP would hand BitGoJS
47
+ * for RealFi pledge (parse -> sign -> re-serialize) flows.
48
+ */
49
+ function buildPlutusFixtureHex(includeAuxiliaryData = false) {
50
+ const addr = CardanoWasm.Address.from_bech32(TEST_ADDRESS);
51
+ const inputs = CardanoWasm.TransactionInputs.new();
52
+ inputs.add(CardanoWasm.TransactionInput.new(CardanoWasm.TransactionHash.from_bytes(Buffer.alloc(32, 1)), 0));
53
+ const datum = CardanoWasm.PlutusData.new_bytes(Buffer.from('deadbeef', 'hex'));
54
+ const outputs = CardanoWasm.TransactionOutputs.new();
55
+ const outputBuilder = CardanoWasm.TransactionOutputBuilder.new().with_address(addr).with_plutus_data(datum);
56
+ const mainOutput = outputBuilder.next().with_coin(CardanoWasm.BigNum.from_str('2000000')).build();
57
+ outputs.add(mainOutput);
58
+ const body = CardanoWasm.TransactionBody.new_tx_body(inputs, outputs, CardanoWasm.BigNum.from_str('200000'));
59
+ const collateral = CardanoWasm.TransactionInputs.new();
60
+ collateral.add(CardanoWasm.TransactionInput.new(CardanoWasm.TransactionHash.from_bytes(Buffer.alloc(32, 2)), 0));
61
+ body.set_collateral(collateral);
62
+ const collateralReturn = CardanoWasm.TransactionOutput.new(addr, CardanoWasm.Value.new(CardanoWasm.BigNum.from_str('1000000')));
63
+ body.set_collateral_return(collateralReturn);
64
+ body.set_total_collateral(CardanoWasm.BigNum.from_str('1000000'));
65
+ const referenceInputs = CardanoWasm.TransactionInputs.new();
66
+ referenceInputs.add(CardanoWasm.TransactionInput.new(CardanoWasm.TransactionHash.from_bytes(Buffer.alloc(32, 3)), 0));
67
+ body.set_reference_inputs(referenceInputs);
68
+ body.set_script_data_hash(CardanoWasm.ScriptDataHash.from_bytes(Buffer.alloc(32, 4)));
69
+ const witnessSet = CardanoWasm.TransactionWitnessSet.new();
70
+ const plutusScripts = CardanoWasm.PlutusScripts.new();
71
+ plutusScripts.add(CardanoWasm.PlutusScript.new(Buffer.from('510100003222253330033371e00c', 'hex')));
72
+ witnessSet.set_plutus_scripts(plutusScripts);
73
+ const plutusDataList = CardanoWasm.PlutusList.new();
74
+ plutusDataList.add(datum);
75
+ witnessSet.set_plutus_data(plutusDataList);
76
+ const redeemers = CardanoWasm.Redeemers.new();
77
+ redeemers.add(CardanoWasm.Redeemer.new(CardanoWasm.RedeemerTag.new_spend(), CardanoWasm.BigNum.from_str('0'), datum, CardanoWasm.ExUnits.new(CardanoWasm.BigNum.from_str('1000000'), CardanoWasm.BigNum.from_str('500000'))));
78
+ witnessSet.set_redeemers(redeemers);
79
+ let auxiliaryData;
80
+ if (includeAuxiliaryData) {
81
+ const metadata = CardanoWasm.GeneralTransactionMetadata.new();
82
+ metadata.insert(CardanoWasm.BigNum.from_str('674'), CardanoWasm.TransactionMetadatum.new_text('realfi-test'));
83
+ auxiliaryData = CardanoWasm.AuxiliaryData.new();
84
+ auxiliaryData.set_metadata(metadata);
85
+ body.set_auxiliary_data_hash(CardanoWasm.hash_auxiliary_data(auxiliaryData));
86
+ }
87
+ const tx = auxiliaryData !== undefined
88
+ ? CardanoWasm.Transaction.new(body, witnessSet, auxiliaryData)
89
+ : CardanoWasm.Transaction.new(body, witnessSet);
90
+ return Buffer.from(tx.to_bytes()).toString('hex');
91
+ }
92
+ describe('ADA Plutus Passthrough Builder', () => {
93
+ const plutusFixtureHex = buildPlutusFixtureHex();
94
+ it('should detect plutus data on the parsed transaction', () => {
95
+ const tx = new src_1.Transaction(statics_1.coins.get('tada'));
96
+ tx.fromRawTransaction(plutusFixtureHex);
97
+ tx.hasPlutusData().should.be.true();
98
+ const plainTx = new src_1.Transaction(statics_1.coins.get('tada'));
99
+ plainTx.fromRawTransaction(resources_1.rawTx.unsignedNewPledgeTx);
100
+ plainTx.hasPlutusData().should.be.false();
101
+ });
102
+ it('should round-trip a plutus transaction byte-for-byte with no new signature', async () => {
103
+ const factory = new src_1.TransactionBuilderFactory(statics_1.coins.get('tada'));
104
+ const txBuilder = factory.from(plutusFixtureHex);
105
+ const tx = (await txBuilder.build());
106
+ tx.toBroadcastFormat().should.equal(plutusFixtureHex);
107
+ });
108
+ it('should preserve plutus fields and produce a valid vkey for the body hash', async () => {
109
+ const factory = new src_1.TransactionBuilderFactory(statics_1.coins.get('tada'));
110
+ const txBuilder = factory.from(plutusFixtureHex);
111
+ txBuilder.sign({ key: resources_1.privateKeys.prvKey4 });
112
+ const tx = (await txBuilder.build());
113
+ const broadcastHex = tx.toBroadcastFormat();
114
+ broadcastHex.should.not.equal(plutusFixtureHex);
115
+ const reparsed = CardanoWasm.Transaction.from_bytes(Buffer.from(broadcastHex, 'hex'));
116
+ const body = reparsed.body();
117
+ const witnessSet = reparsed.witness_set();
118
+ should_1.default.exist(body.collateral());
119
+ should_1.default.exist(body.collateral_return());
120
+ should_1.default.exist(body.total_collateral());
121
+ should_1.default.exist(body.reference_inputs());
122
+ should_1.default.exist(body.script_data_hash());
123
+ body.outputs().get(0).has_plutus_data().should.be.true();
124
+ should_1.default.exist(witnessSet.plutus_scripts());
125
+ should_1.default.exist(witnessSet.plutus_data());
126
+ should_1.default.exist(witnessSet.redeemers());
127
+ const originalTx = CardanoWasm.Transaction.from_bytes(Buffer.from(plutusFixtureHex, 'hex'));
128
+ body.collateral().to_bytes().should.deepEqual(originalTx.body().collateral().to_bytes());
129
+ body.collateral_return().to_bytes().should.deepEqual(originalTx.body().collateral_return().to_bytes());
130
+ body.total_collateral().to_bytes().should.deepEqual(originalTx.body().total_collateral().to_bytes());
131
+ body.reference_inputs().to_bytes().should.deepEqual(originalTx.body().reference_inputs().to_bytes());
132
+ body.script_data_hash().to_bytes().should.deepEqual(originalTx.body().script_data_hash().to_bytes());
133
+ witnessSet.plutus_scripts().to_bytes().should.deepEqual(originalTx.witness_set().plutus_scripts().to_bytes());
134
+ witnessSet.plutus_data().to_bytes().should.deepEqual(originalTx.witness_set().plutus_data().to_bytes());
135
+ witnessSet.redeemers().to_bytes().should.deepEqual(originalTx.witness_set().redeemers().to_bytes());
136
+ const keyPair = new src_1.KeyPair({ prv: resources_1.privateKeys.prvKey4 });
137
+ const expected = CardanoWasm.make_vkey_witness(CardanoWasm.hash_transaction(body), CardanoWasm.PrivateKey.from_normal_bytes(Buffer.from(keyPair.getKeys().prv, 'hex')));
138
+ const vkeys = witnessSet.vkeys();
139
+ should_1.default.exist(vkeys);
140
+ vkeys.len().should.equal(1);
141
+ vkeys.get(0).vkey().public_key().to_hex().should.equal(keyPair.getKeys().pub);
142
+ vkeys.get(0).signature().to_hex().should.equal(expected.signature().to_hex());
143
+ });
144
+ it('should preserve auxiliary data through the passthrough path', async () => {
145
+ const fixtureWithAux = buildPlutusFixtureHex(true);
146
+ const factory = new src_1.TransactionBuilderFactory(statics_1.coins.get('tada'));
147
+ const txBuilder = factory.from(fixtureWithAux);
148
+ txBuilder.sign({ key: resources_1.privateKeys.prvKey4 });
149
+ const tx = (await txBuilder.build());
150
+ const reparsed = CardanoWasm.Transaction.from_bytes(Buffer.from(tx.toBroadcastFormat(), 'hex'));
151
+ const original = CardanoWasm.Transaction.from_bytes(Buffer.from(fixtureWithAux, 'hex'));
152
+ should_1.default.exist(reparsed.auxiliary_data());
153
+ reparsed.auxiliary_data().to_bytes().should.deepEqual(original.auxiliary_data().to_bytes());
154
+ should_1.default.exist(reparsed.body().auxiliary_data_hash());
155
+ reparsed
156
+ .body()
157
+ .auxiliary_data_hash()
158
+ .to_bytes()
159
+ .should.deepEqual(original.body().auxiliary_data_hash().to_bytes());
160
+ });
161
+ });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1dHVzUGxlZGdlQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9wbHV0dXNQbGVkZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0ZBQXdFO0FBQ3hFLG9EQUE0QjtBQUM1QixpREFBNEM7QUFDNUMsbUNBQTRFO0FBQzVFLDRDQUFrRDtBQUVsRCxNQUFNLFlBQVksR0FBRyxpRUFBaUUsQ0FBQztBQUV2Rjs7O0dBR0c7QUFDSCxTQUFTLHFCQUFxQixDQUFDLG9CQUFvQixHQUFHLEtBQUs7SUFDekQsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFM0QsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFN0csTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUUvRSxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckQsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RyxNQUFNLFVBQVUsR0FBRyxh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LFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDOUYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUNwRCxRQUFRO2FBQ0wsSUFBSSxFQUFFO2FBQ04sbUJBQW1CLEVBQUc7YUFDdEIsUUFBUSxFQUFFO2FBQ1YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBDYXJkYW5vV2FzbSBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBLZXlQYWlyLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBwcml2YXRlS2V5cywgcmF3VHggfSBmcm9tICcuLi9yZXNvdXJjZXMnO1xuXG5jb25zdCBURVNUX0FERFJFU1MgPSAnYWRkcl90ZXN0MXZyOHJha202NnJjZnY0ZmN4cXlrZzVsZjB5djdsc3lrOW12YXB4MzY5anB2dGNnZmN1azdmJztcblxuLyoqXG4gKiBCdWlsZHMgYSBzeW50aGV0aWMgUGx1dHVzIHRyYW5zYWN0aW9uIGFuYWxvZ291cyB0byBDQk9SIFdQIHdvdWxkIGhhbmQgQml0R29KU1xuICogZm9yIFJlYWxGaSBwbGVkZ2UgKHBhcnNlIC0+IHNpZ24gLT4gcmUtc2VyaWFsaXplKSBmbG93cy5cbiAqL1xuZnVuY3Rpb24gYnVpbGRQbHV0dXNGaXh0dXJlSGV4KGluY2x1ZGVBdXhpbGlhcnlEYXRhID0gZmFsc2UpOiBzdHJpbmcge1xuICBjb25zdCBhZGRyID0gQ2FyZGFub1dhc20uQWRkcmVzcy5mcm9tX2JlY2gzMihURVNUX0FERFJFU1MpO1xuXG4gIGNvbnN0IGlucHV0cyA9IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uSW5wdXRzLm5ldygpO1xuICBpbnB1dHMuYWRkKENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uSW5wdXQubmV3KENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uSGFzaC5mcm9tX2J5dGVzKEJ1ZmZlci5hbGxvYygzMiwgMSkpLCAwKSk7XG5cbiAgY29uc3QgZGF0dW0gPSBDYXJkYW5vV2FzbS5QbHV0dXNEYXRhLm5ld19ieXRlcyhCdWZmZXIuZnJvbSgnZGVhZGJlZWYnLCAnaGV4JykpO1xuXG4gIGNvbnN0IG91dHB1dHMgPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbk91dHB1dHMubmV3KCk7XG4gIGNvbnN0IG91dHB1dEJ1aWxkZXIgPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbk91dHB1dEJ1aWxkZXIubmV3KCkud2l0aF9hZGRyZXNzKGFkZHIpLndpdGhfcGx1dHVzX2RhdGEoZGF0dW0pO1xuICBjb25zdCBtYWluT3V0cHV0ID0gb3V0cHV0QnVpbGRlci5uZXh0KCkud2l0aF9jb2luKENhcmRhbm9XYXNtLkJpZ051bS5mcm9tX3N0cignMjAwMDAwMCcpKS5idWlsZCgpO1xuICBvdXRwdXRzLmFkZChtYWluT3V0cHV0KTtcblxuICBjb25zdCBib2R5ID0gQ2FyZGFub1dhc20uVHJhbnNhY3Rpb25Cb2R5Lm5ld190eF9ib2R5KGlucHV0cywgb3V0cHV0cywgQ2FyZGFub1dhc20uQmlnTnVtLmZyb21fc3RyKCcyMDAwMDAnKSk7XG5cbiAgY29uc3QgY29sbGF0ZXJhbCA9IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uSW5wdXRzLm5ldygpO1xuICBjb2xsYXRlcmFsLmFkZChDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbklucHV0Lm5ldyhDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbkhhc2guZnJvbV9ieXRlcyhCdWZmZXIuYWxsb2MoMzIsIDIpKSwgMCkpO1xuICBib2R5LnNldF9jb2xsYXRlcmFsKGNvbGxhdGVyYWwpO1xuXG4gIGNvbnN0IGNvbGxhdGVyYWxSZXR1cm4gPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbk91dHB1dC5uZXcoXG4gICAgYWRkcixcbiAgICBDYXJkYW5vV2FzbS5WYWx1ZS5uZXcoQ2FyZGFub1dhc20uQmlnTnVtLmZyb21fc3RyKCcxMDAwMDAwJykpXG4gICk7XG4gIGJvZHkuc2V0X2NvbGxhdGVyYWxfcmV0dXJuKGNvbGxhdGVyYWxSZXR1cm4pO1xuICBib2R5LnNldF90b3RhbF9jb2xsYXRlcmFsKENhcmRhbm9XYXNtLkJpZ051bS5mcm9tX3N0cignMTAwMDAwMCcpKTtcblxuICBjb25zdCByZWZlcmVuY2VJbnB1dHMgPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbklucHV0cy5uZXcoKTtcbiAgcmVmZXJlbmNlSW5wdXRzLmFkZChDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbklucHV0Lm5ldyhDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbkhhc2guZnJvbV9ieXRlcyhCdWZmZXIuYWxsb2MoMzIsIDMpKSwgMCkpO1xuICBib2R5LnNldF9yZWZlcmVuY2VfaW5wdXRzKHJlZmVyZW5jZUlucHV0cyk7XG4gIGJvZHkuc2V0X3NjcmlwdF9kYXRhX2hhc2goQ2FyZGFub1dhc20uU2NyaXB0RGF0YUhhc2guZnJvbV9ieXRlcyhCdWZmZXIuYWxsb2MoMzIsIDQpKSk7XG5cbiAgY29uc3Qgd2l0bmVzc1NldCA9IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uV2l0bmVzc1NldC5uZXcoKTtcblxuICBjb25zdCBwbHV0dXNTY3JpcHRzID0gQ2FyZGFub1dhc20uUGx1dHVzU2NyaXB0cy5uZXcoKTtcbiAgcGx1dHVzU2NyaXB0cy5hZGQoQ2FyZGFub1dhc20uUGx1dHVzU2NyaXB0Lm5ldyhCdWZmZXIuZnJvbSgnNTEwMTAwMDAzMjIyMjUzMzMwMDMzMzcxZTAwYycsICdoZXgnKSkpO1xuICB3aXRuZXNzU2V0LnNldF9wbHV0dXNfc2NyaXB0cyhwbHV0dXNTY3JpcHRzKTtcblxuICBjb25zdCBwbHV0dXNEYXRhTGlzdCA9IENhcmRhbm9XYXNtLlBsdXR1c0xpc3QubmV3KCk7XG4gIHBsdXR1c0RhdGFMaXN0LmFkZChkYXR1bSk7XG4gIHdpdG5lc3NTZXQuc2V0X3BsdXR1c19kYXRhKHBsdXR1c0RhdGFMaXN0KTtcblxuICBjb25zdCByZWRlZW1lcnMgPSBDYXJkYW5vV2FzbS5SZWRlZW1lcnMubmV3KCk7XG4gIHJlZGVlbWVycy5hZGQoXG4gICAgQ2FyZGFub1dhc20uUmVkZWVtZXIubmV3KFxuICAgICAgQ2FyZGFub1dhc20uUmVkZWVtZXJUYWcubmV3X3NwZW5kKCksXG4gICAgICBDYXJkYW5vV2FzbS5CaWdOdW0uZnJvbV9zdHIoJzAnKSxcbiAgICAgIGRhdHVtLFxuICAgICAgQ2FyZGFub1dhc20uRXhVbml0cy5uZXcoQ2FyZGFub1dhc20uQmlnTnVtLmZyb21fc3RyKCcxMDAwMDAwJyksIENhcmRhbm9XYXNtLkJpZ051bS5mcm9tX3N0cignNTAwMDAwJykpXG4gICAgKVxuICApO1xuICB3aXRuZXNzU2V0LnNldF9yZWRlZW1lcnMocmVkZWVtZXJzKTtcblxuICBsZXQgYXV4aWxpYXJ5RGF0YTogQ2FyZGFub1dhc20uQXV4aWxpYXJ5RGF0YSB8IHVuZGVmaW5lZDtcbiAgaWYgKGluY2x1ZGVBdXhpbGlhcnlEYXRhKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBDYXJkYW5vV2FzbS5HZW5lcmFsVHJhbnNhY3Rpb25NZXRhZGF0YS5uZXcoKTtcbiAgICBtZXRhZGF0YS5pbnNlcnQoQ2FyZGFub1dhc20uQmlnTnVtLmZyb21fc3RyKCc2NzQnKSwgQ2FyZGFub1dhc20uVHJhbnNhY3Rpb25NZXRhZGF0dW0ubmV3X3RleHQoJ3JlYWxmaS10ZXN0JykpO1xuICAgIGF1eGlsaWFyeURhdGEgPSBDYXJkYW5vV2FzbS5BdXhpbGlhcnlEYXRhLm5ldygpO1xuICAgIGF1eGlsaWFyeURhdGEuc2V0X21ldGFkYXRhKG1ldGFkYXRhKTtcbiAgICBib2R5LnNldF9hdXhpbGlhcnlfZGF0YV9oYXNoKENhcmRhbm9XYXNtLmhhc2hfYXV4aWxpYXJ5X2RhdGEoYXV4aWxpYXJ5RGF0YSkpO1xuICB9XG5cbiAgY29uc3QgdHggPVxuICAgIGF1eGlsaWFyeURhdGEgIT09IHVuZGVmaW5lZFxuICAgICAgPyBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbi5uZXcoYm9keSwgd2l0bmVzc1NldCwgYXV4aWxpYXJ5RGF0YSlcbiAgICAgIDogQ2FyZGFub1dhc20uVHJhbnNhY3Rpb24ubmV3KGJvZHksIHdpdG5lc3NTZXQpO1xuICByZXR1cm4gQnVmZmVyLmZyb20odHgudG9fYnl0ZXMoKSkudG9TdHJpbmcoJ2hleCcpO1xufVxuXG5kZXNjcmliZSgnQURBIFBsdXR1cyBQYXNzdGhyb3VnaCBCdWlsZGVyJywgKCkgPT4ge1xuICBjb25zdCBwbHV0dXNGaXh0dXJlSGV4ID0gYnVpbGRQbHV0dXNGaXh0dXJlSGV4KCk7XG5cbiAgaXQoJ3Nob3VsZCBkZXRlY3QgcGx1dHVzIGRhdGEgb24gdGhlIHBhcnNlZCB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RhZGEnKSk7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHBsdXR1c0ZpeHR1cmVIZXgpO1xuICAgIHR4Lmhhc1BsdXR1c0RhdGEoKS5zaG91bGQuYmUudHJ1ZSgpO1xuXG4gICAgY29uc3QgcGxhaW5UeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RhZGEnKSk7XG4gICAgcGxhaW5UeC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHgudW5zaWduZWROZXdQbGVkZ2VUeCk7XG4gICAgcGxhaW5UeC5oYXNQbHV0dXNEYXRhKCkuc2hvdWxkLmJlLmZhbHNlKCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcm91bmQtdHJpcCBhIHBsdXR1cyB0cmFuc2FjdGlvbiBieXRlLWZvci1ieXRlIHdpdGggbm8gbmV3IHNpZ25hdHVyZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0YWRhJykpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZnJvbShwbHV0dXNGaXh0dXJlSGV4KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgdHgudG9Ccm9hZGNhc3RGb3JtYXQoKS5zaG91bGQuZXF1YWwocGx1dHVzRml4dHVyZUhleCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcHJlc2VydmUgcGx1dHVzIGZpZWxkcyBhbmQgcHJvZHVjZSBhIHZhbGlkIHZrZXkgZm9yIHRoZSBib2R5IGhhc2gnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGFkYScpKTtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmZyb20ocGx1dHVzRml4dHVyZUhleCk7XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHByaXZhdGVLZXlzLnBydktleTQgfSk7XG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IGJyb2FkY2FzdEhleCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgYnJvYWRjYXN0SGV4LnNob3VsZC5ub3QuZXF1YWwocGx1dHVzRml4dHVyZUhleCk7XG5cbiAgICBjb25zdCByZXBhcnNlZCA9IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uLmZyb21fYnl0ZXMoQnVmZmVyLmZyb20oYnJvYWRjYXN0SGV4LCAnaGV4JykpO1xuICAgIGNvbnN0IGJvZHkgPSByZXBhcnNlZC5ib2R5KCk7XG4gICAgY29uc3Qgd2l0bmVzc1NldCA9IHJlcGFyc2VkLndpdG5lc3Nfc2V0KCk7XG5cbiAgICBzaG91bGQuZXhpc3QoYm9keS5jb2xsYXRlcmFsKCkpO1xuICAgIHNob3VsZC5leGlzdChib2R5LmNvbGxhdGVyYWxfcmV0dXJuKCkpO1xuICAgIHNob3VsZC5leGlzdChib2R5LnRvdGFsX2NvbGxhdGVyYWwoKSk7XG4gICAgc2hvdWxkLmV4aXN0KGJvZHkucmVmZXJlbmNlX2lucHV0cygpKTtcbiAgICBzaG91bGQuZXhpc3QoYm9keS5zY3JpcHRfZGF0YV9oYXNoKCkpO1xuICAgIGJvZHkub3V0cHV0cygpLmdldCgwKS5oYXNfcGx1dHVzX2RhdGEoKS5zaG91bGQuYmUudHJ1ZSgpO1xuXG4gICAgc2hvdWxkLmV4aXN0KHdpdG5lc3NTZXQucGx1dHVzX3NjcmlwdHMoKSk7XG4gICAgc2hvdWxkLmV4aXN0KHdpdG5lc3NTZXQucGx1dHVzX2RhdGEoKSk7XG4gICAgc2hvdWxkLmV4aXN0KHdpdG5lc3NTZXQucmVkZWVtZXJzKCkpO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxUeCA9IENhcmRhbm9XYXNtLlRyYW5zYWN0aW9uLmZyb21fYnl0ZXMoQnVmZmVyLmZyb20ocGx1dHVzRml4dHVyZUhleCwgJ2hleCcpKTtcbiAgICBib2R5LmNvbGxhdGVyYWwoKSEudG9fYnl0ZXMoKS5zaG91bGQuZGVlcEVxdWFsKG9yaWdpbmFsVHguYm9keSgpLmNvbGxhdGVyYWwoKSEudG9fYnl0ZXMoKSk7XG4gICAgYm9keS5jb2xsYXRlcmFsX3JldHVybigpIS50b19ieXRlcygpLnNob3VsZC5kZWVwRXF1YWwob3JpZ2luYWxUeC5ib2R5KCkuY29sbGF0ZXJhbF9yZXR1cm4oKSEudG9fYnl0ZXMoKSk7XG4gICAgYm9keS50b3RhbF9jb2xsYXRlcmFsKCkhLnRvX2J5dGVzKCkuc2hvdWxkLmRlZXBFcXVhbChvcmlnaW5hbFR4LmJvZHkoKS50b3RhbF9jb2xsYXRlcmFsKCkhLnRvX2J5dGVzKCkpO1xuICAgIGJvZHkucmVmZXJlbmNlX2lucHV0cygpIS50b19ieXRlcygpLnNob3VsZC5kZWVwRXF1YWwob3JpZ2luYWxUeC5ib2R5KCkucmVmZXJlbmNlX2lucHV0cygpIS50b19ieXRlcygpKTtcbiAgICBib2R5LnNjcmlwdF9kYXRhX2hhc2goKSEudG9fYnl0ZXMoKS5zaG91bGQuZGVlcEVxdWFsKG9yaWdpbmFsVHguYm9keSgpLnNjcmlwdF9kYXRhX2hhc2goKSEudG9fYnl0ZXMoKSk7XG4gICAgd2l0bmVzc1NldC5wbHV0dXNfc2NyaXB0cygpIS50b19ieXRlcygpLnNob3VsZC5kZWVwRXF1YWwob3JpZ2luYWxUeC53aXRuZXNzX3NldCgpLnBsdXR1c19zY3JpcHRzKCkhLnRvX2J5dGVzKCkpO1xuICAgIHdpdG5lc3NTZXQucGx1dHVzX2RhdGEoKSEudG9fYnl0ZXMoKS5zaG91bGQuZGVlcEVxdWFsKG9yaWdpbmFsVHgud2l0bmVzc19zZXQoKS5wbHV0dXNfZGF0YSgpIS50b19ieXRlcygpKTtcbiAgICB3aXRuZXNzU2V0LnJlZGVlbWVycygpIS50b19ieXRlcygpLnNob3VsZC5kZWVwRXF1YWwob3JpZ2luYWxUeC53aXRuZXNzX3NldCgpLnJlZGVlbWVycygpIS50b19ieXRlcygpKTtcblxuICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogcHJpdmF0ZUtleXMucHJ2S2V5NCB9KTtcbiAgICBjb25zdCBleHBlY3RlZCA9IENhcmRhbm9XYXNtLm1ha2VfdmtleV93aXRuZXNzKFxuICAgICAgQ2FyZGFub1dhc20uaGFzaF90cmFuc2FjdGlvbihib2R5KSxcbiAgICAgIENhcmRhbm9XYXNtLlByaXZhdGVLZXkuZnJvbV9ub3JtYWxfYnl0ZXMoQnVmZmVyLmZyb20oa2V5UGFpci5nZXRLZXlzKCkucHJ2ISwgJ2hleCcpKVxuICAgICk7XG4gICAgY29uc3QgdmtleXMgPSB3aXRuZXNzU2V0LnZrZXlzKCk7XG4gICAgc2hvdWxkLmV4aXN0KHZrZXlzKTtcbiAgICB2a2V5cyEubGVuKCkuc2hvdWxkLmVxdWFsKDEpO1xuICAgIHZrZXlzIS5nZXQoMCkudmtleSgpLnB1YmxpY19rZXkoKS50b19oZXgoKS5zaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICB2a2V5cyEuZ2V0KDApLnNpZ25hdHVyZSgpLnRvX2hleCgpLnNob3VsZC5lcXVhbChleHBlY3RlZC5zaWduYXR1cmUoKS50b19oZXgoKSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcHJlc2VydmUgYXV4aWxpYXJ5IGRhdGEgdGhyb3VnaCB0aGUgcGFzc3Rocm91Z2ggcGF0aCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmaXh0dXJlV2l0aEF1eCA9IGJ1aWxkUGx1dHVzRml4dHVyZUhleCh0cnVlKTtcbiAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0YWRhJykpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZnJvbShmaXh0dXJlV2l0aEF1eCk7XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHByaXZhdGVLZXlzLnBydktleTQgfSk7XG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuXG4gICAgY29uc3QgcmVwYXJzZWQgPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbi5mcm9tX2J5dGVzKEJ1ZmZlci5mcm9tKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksICdoZXgnKSk7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBDYXJkYW5vV2FzbS5UcmFuc2FjdGlvbi5mcm9tX2J5dGVzKEJ1ZmZlci5mcm9tKGZpeHR1cmVXaXRoQXV4LCAnaGV4JykpO1xuICAgIHNob3VsZC5leGlzdChyZXBhcnNlZC5hdXhpbGlhcnlfZGF0YSgpKTtcbiAgICByZXBhcnNlZC5hdXhpbGlhcnlfZGF0YSgpIS50b19ieXRlcygpLnNob3VsZC5kZWVwRXF1YWwob3JpZ2luYWwuYXV4aWxpYXJ5X2RhdGEoKSEudG9fYnl0ZXMoKSk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcGFyc2VkLmJvZHkoKS5hdXhpbGlhcnlfZGF0YV9oYXNoKCkpO1xuICAgIHJlcGFyc2VkXG4gICAgICAuYm9keSgpXG4gICAgICAuYXV4aWxpYXJ5X2RhdGFfaGFzaCgpIVxuICAgICAgLnRvX2J5dGVzKClcbiAgICAgIC5zaG91bGQuZGVlcEVxdWFsKG9yaWdpbmFsLmJvZHkoKS5hdXhpbGlhcnlfZGF0YV9oYXNoKCkhLnRvX2J5dGVzKCkpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stakingClaimRewardsBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingClaimRewardsBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/stakingClaimRewardsBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const should_1 = __importDefault(require("should"));
40
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
41
+ const testData = __importStar(require("../resources"));
42
+ const src_1 = require("../../src");
43
+ const statics_1 = require("@bitgo-beta/statics");
44
+ describe('ADA Staking Withdraw Transaction Builder', async () => {
45
+ const factory = new src_1.TransactionBuilderFactory(statics_1.coins.get('tada'));
46
+ it('should build an unsigned claim rewards tx', async () => {
47
+ const keyPairStake = new src_1.KeyPair({ prv: testData.privateKeys.prvKey2 });
48
+ const txBuilder = factory.getStakingClaimRewardsBuilder();
49
+ txBuilder.input({
50
+ transaction_id: '3677e75c7ba699bfdc6cd57d42f246f86f63aefd76025006ac78313fad2bba21',
51
+ transaction_index: 1,
52
+ });
53
+ const totalInput = '4000000';
54
+ txBuilder.changeAddress('addr1q8rm9z7w4yx5gz652kn2q238efvms6t0qelur9nlglun8eu4tr5knj4fu4adelzqhxg8adu5xca4jra0gtllfrpcawyq9psz23', totalInput);
55
+ const reward = 1239239;
56
+ txBuilder.addWithdrawal(keyPairStake.getKeys().pub, reward.toString());
57
+ txBuilder.ttl(800000000);
58
+ const tx = (await txBuilder.build());
59
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.StakingClaim);
60
+ const txData = tx.toJson();
61
+ const fee = tx.getFee;
62
+ txData.certs.length.should.equal(0);
63
+ txData.withdrawals.length.should.equal(1);
64
+ txData.withdrawals[0].value.should.equal(reward.toString());
65
+ txData.outputs.length.should.equal(1);
66
+ txData.outputs[0].amount.should.equal((Number(totalInput) + reward - Number(fee)).toString());
67
+ fee.should.equal('167217');
68
+ });
69
+ });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0NsYWltUmV3YXJkc0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvc3Rha2luZ0NsYWltUmV3YXJkc0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbURBQXVEO0FBQ3ZELHVEQUF5QztBQUN6QyxtQ0FBK0Q7QUFDL0QsaURBQTRDO0FBRzVDLFFBQVEsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUksRUFBRTtJQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxFQUFFLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxhQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQzFELFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDZCxjQUFjLEVBQUUsa0VBQWtFO1lBQ2xGLGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxhQUFhLENBQ3JCLHlHQUF5RyxFQUN6RyxVQUFVLENBQ1gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUN2QixTQUFTLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFnQixDQUFDO1FBQ3BELGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsMEJBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDOUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBLZXlQYWlyLCBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24nO1xuXG5kZXNjcmliZSgnQURBIFN0YWtpbmcgV2l0aGRyYXcgVHJhbnNhY3Rpb24gQnVpbGRlcicsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGFkYScpKTtcbiAgaXQoJ3Nob3VsZCBidWlsZCBhbiB1bnNpZ25lZCBjbGFpbSByZXdhcmRzIHR4JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGtleVBhaXJTdGFrZSA9IG5ldyBLZXlQYWlyKHsgcHJ2OiB0ZXN0RGF0YS5wcml2YXRlS2V5cy5wcnZLZXkyIH0pO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0U3Rha2luZ0NsYWltUmV3YXJkc0J1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuaW5wdXQoe1xuICAgICAgdHJhbnNhY3Rpb25faWQ6ICczNjc3ZTc1YzdiYTY5OWJmZGM2Y2Q1N2Q0MmYyNDZmODZmNjNhZWZkNzYwMjUwMDZhYzc4MzEzZmFkMmJiYTIxJyxcbiAgICAgIHRyYW5zYWN0aW9uX2luZGV4OiAxLFxuICAgIH0pO1xuICAgIGNvbnN0IHRvdGFsSW5wdXQgPSAnNDAwMDAwMCc7XG4gICAgdHhCdWlsZGVyLmNoYW5nZUFkZHJlc3MoXG4gICAgICAnYWRkcjFxOHJtOXo3dzR5eDVnejY1MmtuMnEyMzhlZnZtczZ0MHFlbHVyOW5sZ2x1bjhldTR0cjVrbmo0ZnU0YWRlbHpxaHhnOGFkdTV4Y2E0anJhMGd0bGxmcnBjYXd5cTlwc3oyMycsXG4gICAgICB0b3RhbElucHV0XG4gICAgKTtcbiAgICBjb25zdCByZXdhcmQgPSAxMjM5MjM5O1xuICAgIHR4QnVpbGRlci5hZGRXaXRoZHJhd2FsKGtleVBhaXJTdGFrZS5nZXRLZXlzKCkucHViLCByZXdhcmQudG9TdHJpbmcoKSk7XG4gICAgdHhCdWlsZGVyLnR0bCg4MDAwMDAwMDApO1xuICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICBzaG91bGQuZXF1YWwodHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbSk7XG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgY29uc3QgZmVlID0gdHguZ2V0RmVlO1xuICAgIHR4RGF0YS5jZXJ0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIHR4RGF0YS53aXRoZHJhd2Fscy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgIHR4RGF0YS53aXRoZHJhd2Fsc1swXS52YWx1ZS5zaG91bGQuZXF1YWwocmV3YXJkLnRvU3RyaW5nKCkpO1xuICAgIHR4RGF0YS5vdXRwdXRzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgdHhEYXRhLm91dHB1dHNbMF0uYW1vdW50LnNob3VsZC5lcXVhbCgoTnVtYmVyKHRvdGFsSW5wdXQpICsgcmV3YXJkIC0gTnVtYmVyKGZlZSkpLnRvU3RyaW5nKCkpO1xuICAgIGZlZS5zaG91bGQuZXF1YWwoJzE2NzIxNycpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stakingPledgeBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingPledgeBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/stakingPledgeBuilder.ts"],"names":[],"mappings":""}