@witnet/sdk 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/dist/package.json +72 -0
  4. package/dist/src/bin/helpers.d.ts +91 -0
  5. package/dist/src/bin/helpers.d.ts.map +1 -0
  6. package/dist/src/bin/helpers.js +816 -0
  7. package/dist/src/index.d.ts +5 -0
  8. package/dist/src/index.d.ts.map +1 -0
  9. package/dist/src/index.js +47 -0
  10. package/dist/src/lib/crypto/account.d.ts +32 -0
  11. package/dist/src/lib/crypto/account.d.ts.map +1 -0
  12. package/dist/src/lib/crypto/account.js +106 -0
  13. package/dist/src/lib/crypto/coinbase.d.ts +10 -0
  14. package/dist/src/lib/crypto/coinbase.d.ts.map +1 -0
  15. package/dist/src/lib/crypto/coinbase.js +28 -0
  16. package/dist/src/lib/crypto/index.d.ts +8 -0
  17. package/dist/src/lib/crypto/index.d.ts.map +1 -0
  18. package/dist/src/lib/crypto/index.js +30 -0
  19. package/dist/src/lib/crypto/interfaces.d.ts +85 -0
  20. package/dist/src/lib/crypto/interfaces.d.ts.map +1 -0
  21. package/dist/src/lib/crypto/interfaces.js +3 -0
  22. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +55 -0
  23. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -0
  24. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +339 -0
  25. package/dist/src/lib/crypto/payloads/StakePayload.d.ts +28 -0
  26. package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -0
  27. package/dist/src/lib/crypto/payloads/StakePayload.js +142 -0
  28. package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts +36 -0
  29. package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -0
  30. package/dist/src/lib/crypto/payloads/UnstakePayload.js +154 -0
  31. package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts +25 -0
  32. package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -0
  33. package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +128 -0
  34. package/dist/src/lib/crypto/payloads.d.ts +57 -0
  35. package/dist/src/lib/crypto/payloads.d.ts.map +1 -0
  36. package/dist/src/lib/crypto/payloads.js +170 -0
  37. package/dist/src/lib/crypto/signer.d.ts +33 -0
  38. package/dist/src/lib/crypto/signer.d.ts.map +1 -0
  39. package/dist/src/lib/crypto/signer.js +194 -0
  40. package/dist/src/lib/crypto/transmitters/DataRequests.d.ts +15 -0
  41. package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -0
  42. package/dist/src/lib/crypto/transmitters/DataRequests.js +23 -0
  43. package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts +12 -0
  44. package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -0
  45. package/dist/src/lib/crypto/transmitters/StakeDeposits.js +17 -0
  46. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts +18 -0
  47. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -0
  48. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +53 -0
  49. package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts +11 -0
  50. package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -0
  51. package/dist/src/lib/crypto/transmitters/ValueTransfers.js +16 -0
  52. package/dist/src/lib/crypto/transmitters.d.ts +47 -0
  53. package/dist/src/lib/crypto/transmitters.d.ts.map +1 -0
  54. package/dist/src/lib/crypto/transmitters.js +416 -0
  55. package/dist/src/lib/crypto/types.d.ts +161 -0
  56. package/dist/src/lib/crypto/types.d.ts.map +1 -0
  57. package/dist/src/lib/crypto/types.js +273 -0
  58. package/dist/src/lib/crypto/utils.d.ts +21 -0
  59. package/dist/src/lib/crypto/utils.d.ts.map +1 -0
  60. package/dist/src/lib/crypto/utils.js +156 -0
  61. package/dist/src/lib/crypto/wallet.d.ts +120 -0
  62. package/dist/src/lib/crypto/wallet.d.ts.map +1 -0
  63. package/dist/src/lib/crypto/wallet.js +258 -0
  64. package/dist/src/lib/index.d.ts +5 -0
  65. package/dist/src/lib/index.d.ts.map +1 -0
  66. package/dist/src/lib/index.js +44 -0
  67. package/dist/src/lib/radon/ccdr/eth.d.ts +160 -0
  68. package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -0
  69. package/dist/src/lib/radon/ccdr/eth.js +272 -0
  70. package/dist/src/lib/radon/ccdr/index.d.ts +14 -0
  71. package/dist/src/lib/radon/ccdr/index.d.ts.map +1 -0
  72. package/dist/src/lib/radon/ccdr/index.js +39 -0
  73. package/dist/src/lib/radon/ccdr/wit.d.ts +23 -0
  74. package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -0
  75. package/dist/src/lib/radon/ccdr/wit.js +35 -0
  76. package/dist/src/lib/radon/filters.d.ts +14 -0
  77. package/dist/src/lib/radon/filters.d.ts.map +1 -0
  78. package/dist/src/lib/radon/filters.js +45 -0
  79. package/dist/src/lib/radon/index.d.ts +296 -0
  80. package/dist/src/lib/radon/index.d.ts.map +1 -0
  81. package/dist/src/lib/radon/index.js +707 -0
  82. package/dist/src/lib/radon/reducers.d.ts +29 -0
  83. package/dist/src/lib/radon/reducers.d.ts.map +1 -0
  84. package/dist/src/lib/radon/reducers.js +66 -0
  85. package/dist/src/lib/radon/types.d.ts +521 -0
  86. package/dist/src/lib/radon/types.d.ts.map +1 -0
  87. package/dist/src/lib/radon/types.js +936 -0
  88. package/dist/src/lib/radon/utils.d.ts +53 -0
  89. package/dist/src/lib/radon/utils.d.ts.map +1 -0
  90. package/dist/src/lib/radon/utils.js +153 -0
  91. package/dist/src/lib/rpc/index.d.ts +3 -0
  92. package/dist/src/lib/rpc/index.d.ts.map +1 -0
  93. package/dist/src/lib/rpc/index.js +19 -0
  94. package/dist/src/lib/rpc/nodes.d.ts +40 -0
  95. package/dist/src/lib/rpc/nodes.d.ts.map +1 -0
  96. package/dist/src/lib/rpc/nodes.js +293 -0
  97. package/dist/src/lib/rpc/provider.d.ts +88 -0
  98. package/dist/src/lib/rpc/provider.d.ts.map +1 -0
  99. package/dist/src/lib/rpc/provider.js +336 -0
  100. package/dist/src/lib/rpc/reporter.d.ts +18 -0
  101. package/dist/src/lib/rpc/reporter.d.ts.map +1 -0
  102. package/dist/src/lib/rpc/reporter.js +30 -0
  103. package/dist/src/lib/rpc/types.d.ts +409 -0
  104. package/dist/src/lib/rpc/types.d.ts.map +1 -0
  105. package/dist/src/lib/rpc/types.js +81 -0
  106. package/dist/src/lib/types.d.ts +18 -0
  107. package/dist/src/lib/types.d.ts.map +1 -0
  108. package/dist/src/lib/types.js +7 -0
  109. package/dist/src/lib/utils.d.ts +13 -0
  110. package/dist/src/lib/utils.d.ts.map +1 -0
  111. package/dist/src/lib/utils.js +97 -0
  112. package/dist/witnet/assets/index.d.ts +30 -0
  113. package/dist/witnet/assets/index.d.ts.map +1 -0
  114. package/dist/witnet/assets/index.js +6 -0
  115. package/dist/witnet/assets/modals/index.d.ts +18 -0
  116. package/dist/witnet/assets/modals/index.d.ts.map +1 -0
  117. package/dist/witnet/assets/modals/index.js +21 -0
  118. package/dist/witnet/assets/modals/web3/eth.d.ts +5 -0
  119. package/dist/witnet/assets/modals/web3/eth.d.ts.map +1 -0
  120. package/dist/witnet/assets/modals/web3/eth.js +26 -0
  121. package/dist/witnet/assets/modals/web3/wit.d.ts +4 -0
  122. package/dist/witnet/assets/modals/web3/wit.d.ts.map +1 -0
  123. package/dist/witnet/assets/modals/web3/wit.js +20 -0
  124. package/dist/witnet/assets/requests.d.ts +11 -0
  125. package/dist/witnet/assets/requests.d.ts.map +1 -0
  126. package/dist/witnet/assets/requests.js +88 -0
  127. package/dist/witnet/witnet.proto.json +1325 -0
  128. package/package.json +72 -0
  129. package/src/bin/cli/history.js +31 -0
  130. package/src/bin/cli/inspect.js +359 -0
  131. package/src/bin/cli/network.js +592 -0
  132. package/src/bin/cli/nodes.js +364 -0
  133. package/src/bin/cli/radon.js +814 -0
  134. package/src/bin/cli/wallet.js +1000 -0
  135. package/src/bin/helpers.js +829 -0
  136. package/src/bin/postinstall.js +9 -0
  137. package/src/bin/toolkit.js +294 -0
  138. package/witnet/assets/_index.js +8 -0
  139. package/witnet/assets/_requests.js +25 -0
  140. package/witnet/assets/_sources.js +36 -0
  141. package/witnet/assets/_templates.js +36 -0
  142. package/witnet/assets/index.js +4 -0
  143. package/witnet/assets/modals/index.js +25 -0
  144. package/witnet/assets/modals/web3/btc.js +0 -0
  145. package/witnet/assets/modals/web3/eth.js +29 -0
  146. package/witnet/assets/modals/web3/sol.js +0 -0
  147. package/witnet/assets/modals/web3/wit.js +23 -0
  148. package/witnet/assets/requests.js +94 -0
  149. package/witnet/witnet.proto.json +1325 -0
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionPayloadMultiSig = exports.TransactionPayload = void 0;
4
+ const protobufjs_1 = require("protobufjs");
5
+ const protoRoot = protobufjs_1.Root.fromJSON(require("../../../witnet/witnet.proto.json"));
6
+ const utils_1 = require("../utils");
7
+ const utils_2 = require("./utils");
8
+ const types_1 = require("./types");
9
+ class TransactionPayload {
10
+ constructor(protoTypeName, initialTarget) {
11
+ this._protoType = protoRoot.lookupType(protoTypeName);
12
+ this._target = this.validateTarget(initialTarget);
13
+ this._change = 0n;
14
+ this._covered = 0n;
15
+ this._fees = 0n;
16
+ }
17
+ get bytecode() {
18
+ // make toProtobuf return Protobuf's deserialized message
19
+ const obj = this.toProtobuf();
20
+ // console.log("TransactionPayload<Specs>.bytecode() =>", obj)
21
+ if (!obj)
22
+ return undefined;
23
+ const err = this._protoType.verify(obj);
24
+ if (err) {
25
+ throw TypeError(err);
26
+ }
27
+ else {
28
+ // console.log("\nobj =>", JSON.stringify(obj))
29
+ const message = this._protoType.fromObject(obj);
30
+ // console.log("\nmessage =>", JSON.stringify(message))
31
+ const bytecode = this._protoType.encode(message).finish();
32
+ // console.log("\nbytecode =>", toHexString(bytecode))
33
+ return bytecode;
34
+ }
35
+ }
36
+ get change() {
37
+ return this._change > 0 ? types_1.Coins.fromPedros(this._change) : undefined;
38
+ }
39
+ get covered() {
40
+ return (!!this.fees
41
+ && this._covered >= this.value.pedros + this.fees.pedros);
42
+ }
43
+ get fees() {
44
+ return this._fees > 0 ? types_1.Coins.fromPedros(this._fees) : undefined;
45
+ }
46
+ get hash() {
47
+ const _bytecode = this.bytecode;
48
+ if (_bytecode instanceof Uint8Array) {
49
+ return (0, utils_1.toHexString)((0, utils_2.sha256)(_bytecode));
50
+ }
51
+ else {
52
+ return undefined;
53
+ }
54
+ }
55
+ intoReceipt(target) {
56
+ return {
57
+ ...target
58
+ };
59
+ }
60
+ }
61
+ exports.TransactionPayload = TransactionPayload;
62
+ class TransactionPayloadMultiSig extends TransactionPayload {
63
+ constructor(protoTypeName, initialTarget) {
64
+ super(protoTypeName, initialTarget);
65
+ this._inputs = [];
66
+ this._outputs = [];
67
+ }
68
+ get inputs() {
69
+ return this._inputs;
70
+ }
71
+ get outputs() {
72
+ return this._outputs;
73
+ }
74
+ get prepared() {
75
+ return (this._inputs.length > 0
76
+ && this._outputs.length > 0);
77
+ }
78
+ async consumeUtxos(ledger, reload) {
79
+ if (!this._target) {
80
+ throw new Error(`${this.constructor.name}: internal error: no in-flight params.`);
81
+ }
82
+ const prepared = this.prepared;
83
+ if (!this.covered) {
84
+ // console.log(ledger.constructor.name, "cacheInfo =>", ledger.pkh, ledger.cacheInfo)
85
+ // console.log(await ledger.getUtxos())
86
+ // consume utxos as to cover this.value, at least
87
+ const utxos = await ledger.selectUtxos({
88
+ value: types_1.Coins.fromPedros(this.value.pedros - this._covered),
89
+ reload,
90
+ });
91
+ this._covered += utxos.map(utxo => utxo.value).reduce((prev, curr) => prev + curr, 0n);
92
+ this._inputs.push(...utxos);
93
+ ledger.consumeUtxos(...utxos);
94
+ // try to cover fees only if this.value is covered first
95
+ if (this._covered >= this.value.pedros) {
96
+ // console.log(this._inputs)
97
+ // console.log("remaining utxos =>", await ledger.getUtxos())
98
+ if (this._target?.fees instanceof types_1.Coins) {
99
+ this._fees = this._target.fees.pedros;
100
+ // console.log(this._covered, this.value.pedros, this._fees, this._covered < this.value.pedros + this._fees)
101
+ if (this._covered < this.value.pedros + this._fees) {
102
+ // console.log("more utxos required...")
103
+ const extras = await ledger.selectUtxos({
104
+ value: types_1.Coins.fromPedros(this.value.pedros + this._fees - this._covered),
105
+ });
106
+ ledger.consumeUtxos(...extras);
107
+ this._covered += extras.map(utxo => utxo.value).reduce((prev, curr) => prev + curr);
108
+ this._inputs.push(...extras);
109
+ }
110
+ this._change = this._covered - (this.value.pedros + this._fees);
111
+ // console.log(this._change)
112
+ }
113
+ else {
114
+ const priority = this._target?.fees || types_1.TransactionPriority.Opulent;
115
+ let estimatedFees = await this._estimateNetworkFees(ledger.provider, priority);
116
+ while (this._fees < estimatedFees) {
117
+ this._fees = estimatedFees;
118
+ this._outputs = [];
119
+ // add more utxos only if the ones selected for covering the value and the estimate fees don't suffice:
120
+ if (this._covered < this.value.pedros + this._fees) {
121
+ const extras = await ledger.selectUtxos({
122
+ value: types_1.Coins.fromPedros(this.value.pedros + this._fees - this._covered)
123
+ });
124
+ ledger.consumeUtxos(...extras);
125
+ this._covered += extras.map(utxo => utxo.value).reduce((prev, curr) => prev + curr);
126
+ this._inputs.push(...extras);
127
+ }
128
+ this._change = this._covered - (this.value.pedros + this._fees);
129
+ if (this._change < 0) {
130
+ // insufficient funds ...
131
+ break;
132
+ }
133
+ else {
134
+ this.prepareOutputs({ value: this._change, pkh: ledger.changePkh });
135
+ // iterate until actual fees match estimated fees
136
+ estimatedFees = await this._estimateNetworkFees(ledger.provider, priority);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ // prepare outputs, only if value and fees got fully covered for the first time:
143
+ if (this._change >= 0 && !prepared) {
144
+ // console.log('-'.repeat(80))
145
+ // console.log(this._inputs)
146
+ this.prepareOutputs({ value: this._change, pkh: ledger.changePkh });
147
+ }
148
+ return this._change;
149
+ }
150
+ prepareOutputs(change) {
151
+ if (change?.value) {
152
+ this._outputs.push({
153
+ pkh: change.pkh,
154
+ value: change.value,
155
+ time_lock: 0,
156
+ });
157
+ }
158
+ }
159
+ resetTarget(target) {
160
+ this._change = 0n;
161
+ this._covered = 0n;
162
+ this._fees = 0n;
163
+ this._inputs = [];
164
+ this._outputs = [];
165
+ this._target = target;
166
+ delete this._priorities;
167
+ }
168
+ }
169
+ exports.TransactionPayloadMultiSig = TransactionPayloadMultiSig;
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9wYXlsb2Fkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBaUU7QUFDakUsTUFBTSxTQUFTLEdBQUcsaUJBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQTtBQUdsRixvQ0FBc0M7QUFHdEMsbUNBQWdDO0FBQ2hDLG1DQUFnRjtBQUVoRixNQUFzQixrQkFBa0I7SUFTcEMsWUFBWSxhQUFxQixFQUFFLGFBQXFCO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLHlEQUF5RDtRQUN6RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDN0IsOERBQThEO1FBQzlELElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxTQUFTLENBQUE7UUFFMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ0osK0NBQStDO1lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQy9D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QyxNQUFvRDtRQUN0RSxJQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDZixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7Z0JBQ2YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dCQUNuQixTQUFTLEVBQUUsQ0FBQzthQUNmLENBQUMsQ0FBQTtRQUNOLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQWE7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUE7SUFDM0IsQ0FBQztDQVdKO0FBbElELGdFQWtJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgYXMgUHJvdG9UeXBlLCBSb290IGFzIFByb3RvUm9vdCB9IGZyb20gXCJwcm90b2J1ZmpzXCJcclxuY29uc3QgcHJvdG9Sb290ID0gUHJvdG9Sb290LmZyb21KU09OKHJlcXVpcmUoXCIuLi8uLi8uLi93aXRuZXQvd2l0bmV0LnByb3RvLmpzb25cIikpXHJcblxyXG5pbXBvcnQgeyBIYXNoLCBOZXR3b3JrUHJpb3JpdGllcywgVmFsdWVUcmFuc2Zlck91dHB1dCB9IGZyb20gXCIuLi90eXBlc1wiXHJcbmltcG9ydCB7IHRvSGV4U3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzXCJcclxuXHJcbmltcG9ydCB7IElMZWRnZXIsIElKc29uUnBjUHJvdmlkZXIsIElUcmFuc2FjdGlvblBheWxvYWQsIElUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZyB9IGZyb20gXCIuL2ludGVyZmFjZXNcIlxyXG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi91dGlsc1wiXHJcbmltcG9ydCB7IENvaW5zLCBQdWJsaWNLZXlIYXNoU3RyaW5nLCBUcmFuc2FjdGlvblByaW9yaXR5LCBVdHhvIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+IGltcGxlbWVudHMgSVRyYW5zYWN0aW9uUGF5bG9hZDxTcGVjcz4ge1xyXG4gXHJcbiAgICBwcm90ZWN0ZWQgX2NoYW5nZTogYmlnaW50O1xyXG4gICAgcHJvdGVjdGVkIF9jb3ZlcmVkOiBiaWdpbnQ7XHJcbiAgICBwcm90ZWN0ZWQgX2ZlZXM6IGJpZ2ludDtcclxuICAgIHByb3RlY3RlZCBfcHJpb3JpdGllcz86IE5ldHdvcmtQcmlvcml0aWVzO1xyXG4gICAgcHJvdGVjdGVkIF9wcm90b1R5cGU6IFByb3RvVHlwZTtcclxuICAgIHByb3RlY3RlZCBfdGFyZ2V0PzogU3BlY3M7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yKHByb3RvVHlwZU5hbWU6IHN0cmluZywgaW5pdGlhbFRhcmdldD86IFNwZWNzKSB7XHJcbiAgICAgICAgdGhpcy5fcHJvdG9UeXBlID0gcHJvdG9Sb290Lmxvb2t1cFR5cGUocHJvdG9UeXBlTmFtZSlcclxuICAgICAgICB0aGlzLl90YXJnZXQgPSB0aGlzLnZhbGlkYXRlVGFyZ2V0KGluaXRpYWxUYXJnZXQpXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlID0gMG5cclxuICAgICAgICB0aGlzLl9jb3ZlcmVkID0gMG5cclxuICAgICAgICB0aGlzLl9mZWVzID0gMG5cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGJ5dGVjb2RlKCk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIC8vIG1ha2UgdG9Qcm90b2J1ZiByZXR1cm4gUHJvdG9idWYncyBkZXNlcmlhbGl6ZWQgbWVzc2FnZVxyXG4gICAgICAgIGNvbnN0IG9iaiA9IHRoaXMudG9Qcm90b2J1ZigpXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+LmJ5dGVjb2RlKCkgPT5cIiwgb2JqKVxyXG4gICAgICAgIGlmICghb2JqKSByZXR1cm4gdW5kZWZpbmVkXHJcblxyXG4gICAgICAgIGNvbnN0IGVyciA9IHRoaXMuX3Byb3RvVHlwZS52ZXJpZnkob2JqKVxyXG4gICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKGVycilcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlxcbm9iaiA9PlwiLCBKU09OLnN0cmluZ2lmeShvYmopKVxyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5fcHJvdG9UeXBlLmZyb21PYmplY3Qob2JqKVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlxcbm1lc3NhZ2UgPT5cIiwgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVjb2RlID0gdGhpcy5fcHJvdG9UeXBlLmVuY29kZShtZXNzYWdlKS5maW5pc2goKVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlxcbmJ5dGVjb2RlID0+XCIsIHRvSGV4U3RyaW5nKGJ5dGVjb2RlKSlcclxuICAgICAgICAgICAgcmV0dXJuIGJ5dGVjb2RlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgY2hhbmdlKCk6IENvaW5zIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2hhbmdlID4gMCA/IENvaW5zLmZyb21QZWRyb3ModGhpcy5fY2hhbmdlKSA6IHVuZGVmaW5lZFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgY292ZXJlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhIXRoaXMuZmVlc1xyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5fY292ZXJlZCA+PSB0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuZmVlcy5wZWRyb3NcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBmZWVzKCk6IENvaW5zIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmVlcyA+IDAgPyBDb2lucy5mcm9tUGVkcm9zKHRoaXMuX2ZlZXMpIDogdW5kZWZpbmVkXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBoYXNoKCk6IEhhc2ggfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IF9ieXRlY29kZSA9IHRoaXMuYnl0ZWNvZGVcclxuICAgICAgICBpZiAoX2J5dGVjb2RlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdG9IZXhTdHJpbmcoc2hhMjU2KF9ieXRlY29kZSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW50b1JlY2VpcHQodGFyZ2V0OiBTcGVjcyk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4udGFyZ2V0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFic3RyYWN0IGNvbnN1bWVVdHhvcyhsZWRnZXI6IElMZWRnZXIpOiBQcm9taXNlPGJpZ2ludD47XHJcbiAgICBhYnN0cmFjdCBwcmVwYXJlT3V0cHV0cyhjaGFuZ2U/OiB7IHZhbHVlOiBiaWdpbnQsIHBraDogUHVibGljS2V5SGFzaFN0cmluZyB9LCBwYXJhbXM/OiBhbnkpOiBhbnk7XHJcbiAgICBhYnN0cmFjdCByZXNldFRhcmdldCh0YXJnZXQ6IFNwZWNzKTogYW55O1xyXG4gICAgYWJzdHJhY3QgdG9KU09OKGh1bWFuaXplOiBib29sZWFuKTogYW55O1xyXG4gICAgYWJzdHJhY3QgdG9Qcm90b2J1ZigpOiBhbnk7XHJcbiAgICBhYnN0cmFjdCB2YWxpZGF0ZVRhcmdldCh0YXJnZXQ/OiBhbnkpOiBTcGVjcyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgb3V0cHV0cygpOiBBcnJheTxWYWx1ZVRyYW5zZmVyT3V0cHV0PjtcclxuICAgIGFic3RyYWN0IGdldCBtYXhXZWlnaHQoKTogbnVtYmVyO1xyXG4gICAgYWJzdHJhY3QgZ2V0IHByZXBhcmVkKCk6IGJvb2xlYW47XHJcbiAgICBhYnN0cmFjdCBnZXQgdmFsdWUoKTogQ29pbnM7XHJcbiAgICBhYnN0cmFjdCBnZXQgd2VpZ2h0KCk6IG51bWJlcjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2NsZWFuVGFyZ2V0RXh0cmFzKHBhcmFtcz86IGFueSk6IGFueTtcclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBfZXN0aW1hdGVOZXR3b3JrRmVlcyhwcm92aWRlcjogSUpzb25ScGNQcm92aWRlciwgcHJpb3JpdHk/OiBUcmFuc2FjdGlvblByaW9yaXR5KTogUHJvbWlzZTxiaWdpbnQ+O1xyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8U3BlY3M+IFxyXG4gICAgZXh0ZW5kcyBUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+XHJcbiAgICBpbXBsZW1lbnRzIElUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZzxTcGVjcz5cclxue1xyXG4gICAgcHJvdGVjdGVkIF9pbnB1dHM6IEFycmF5PFV0eG8+XHJcbiAgICBwcm90ZWN0ZWQgX291dHB1dHM6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yKHByb3RvVHlwZU5hbWU6IHN0cmluZywgaW5pdGlhbFRhcmdldD86IFNwZWNzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvdG9UeXBlTmFtZSwgaW5pdGlhbFRhcmdldClcclxuICAgICAgICB0aGlzLl9pbnB1dHMgPSBbXVxyXG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBbXVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaW5wdXRzKCk6IEFycmF5PFV0eG8+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRzXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBvdXRwdXRzKCk6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb3V0cHV0c1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcHJlcGFyZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5faW5wdXRzLmxlbmd0aCA+IDAgXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLl9vdXRwdXRzLmxlbmd0aCA+IDBcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGNvbnN1bWVVdHhvcyhsZWRnZXI6IElMZWRnZXIsIHJlbG9hZD86IGJvb2xlYW4pOiBQcm9taXNlPGJpZ2ludD4ge1xyXG4gICAgICAgIGlmICghdGhpcy5fdGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogbm8gaW4tZmxpZ2h0IHBhcmFtcy5gKVxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgY29uc3QgcHJlcGFyZWQgPSB0aGlzLnByZXBhcmVkXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvdmVyZWQpIHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2cobGVkZ2VyLmNvbnN0cnVjdG9yLm5hbWUsIFwiY2FjaGVJbmZvID0+XCIsIGxlZGdlci5wa2gsIGxlZGdlci5jYWNoZUluZm8pXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGF3YWl0IGxlZGdlci5nZXRVdHhvcygpKVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy8gY29uc3VtZSB1dHhvcyBhcyB0byBjb3ZlciB0aGlzLnZhbHVlLCBhdCBsZWFzdFxyXG4gICAgICAgICAgICBjb25zdCB1dHhvcyA9IGF3YWl0IGxlZGdlci5zZWxlY3RVdHhvcyh7IFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IENvaW5zLmZyb21QZWRyb3ModGhpcy52YWx1ZS5wZWRyb3MgLSB0aGlzLl9jb3ZlcmVkKSwgXHJcbiAgICAgICAgICAgICAgICByZWxvYWQsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMuX2NvdmVyZWQgKz0gdXR4b3MubWFwKHV0eG8gPT4gdXR4by52YWx1ZSkucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3VyciwgMG4pXHJcbiAgICAgICAgICAgIHRoaXMuX2lucHV0cy5wdXNoKC4uLnV0eG9zKVxyXG4gICAgICAgICAgICBsZWRnZXIuY29uc3VtZVV0eG9zKC4uLnV0eG9zKVxyXG5cclxuICAgICAgICAgICAgLy8gdHJ5IHRvIGNvdmVyIGZlZXMgb25seSBpZiB0aGlzLnZhbHVlIGlzIGNvdmVyZWQgZmlyc3RcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2NvdmVyZWQgPj0gdGhpcy52YWx1ZS5wZWRyb3MpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuX2lucHV0cylcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwicmVtYWluaW5nIHV0eG9zID0+XCIsIGF3YWl0IGxlZGdlci5nZXRVdHhvcygpKVxyXG4gICAgICAgICAgICAgICAgaWYgKCh0aGlzLl90YXJnZXQgYXMgYW55KT8uZmVlcyBpbnN0YW5jZW9mIENvaW5zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmVlcyA9ICh0aGlzLl90YXJnZXQgYXMgYW55KS5mZWVzLnBlZHJvcztcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLl9jb3ZlcmVkLCB0aGlzLnZhbHVlLnBlZHJvcywgdGhpcy5fZmVlcywgdGhpcy5fY292ZXJlZCA8IHRoaXMudmFsdWUucGVkcm9zICsgdGhpcy5fZmVlcylcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY292ZXJlZCA8IHRoaXMudmFsdWUucGVkcm9zICsgdGhpcy5fZmVlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIm1vcmUgdXR4b3MgcmVxdWlyZWQuLi5cIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXh0cmFzID0gYXdhaXQgbGVkZ2VyLnNlbGVjdFV0eG9zKHsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQ29pbnMuZnJvbVBlZHJvcyh0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMgIC0gdGhpcy5fY292ZXJlZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZGdlci5jb25zdW1lVXR4b3MoLi4uZXh0cmFzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb3ZlcmVkICs9IGV4dHJhcy5tYXAodXR4byA9PiB1dHhvLnZhbHVlKS5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHByZXYgKyBjdXJyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnB1dHMucHVzaCguLi5leHRyYXMpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZSA9IHRoaXMuX2NvdmVyZWQgLSAodGhpcy52YWx1ZS5wZWRyb3MgKyB0aGlzLl9mZWVzKVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuX2NoYW5nZSlcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpb3JpdHkgPSAodGhpcy5fdGFyZ2V0IGFzIGFueSk/LmZlZXMgYXMgVHJhbnNhY3Rpb25Qcmlvcml0eSB8fCBUcmFuc2FjdGlvblByaW9yaXR5Lk9wdWxlbnRcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZXN0aW1hdGVkRmVlcyA9IGF3YWl0IHRoaXMuX2VzdGltYXRlTmV0d29ya0ZlZXMobGVkZ2VyLnByb3ZpZGVyLCBwcmlvcml0eSk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuX2ZlZXMgPCBlc3RpbWF0ZWRGZWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZlZXMgPSBlc3RpbWF0ZWRGZWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX291dHB1dHMgPSBbXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbW9yZSB1dHhvcyBvbmx5IGlmIHRoZSBvbmVzIHNlbGVjdGVkIGZvciBjb3ZlcmluZyB0aGUgdmFsdWUgYW5kIHRoZSBlc3RpbWF0ZSBmZWVzIGRvbid0IHN1ZmZpY2U6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb3ZlcmVkIDwgdGhpcy52YWx1ZS5wZWRyb3MgKyB0aGlzLl9mZWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHRyYXMgPSBhd2FpdCBsZWRnZXIuc2VsZWN0VXR4b3MoeyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQ29pbnMuZnJvbVBlZHJvcyh0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMgLSB0aGlzLl9jb3ZlcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZGdlci5jb25zdW1lVXR4b3MoLi4uZXh0cmFzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY292ZXJlZCArPSBleHRyYXMubWFwKHV0eG8gPT4gdXR4by52YWx1ZSkucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3VycilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lucHV0cy5wdXNoKC4uLmV4dHJhcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2UgPSB0aGlzLl9jb3ZlcmVkIC0gKHRoaXMudmFsdWUucGVkcm9zICsgdGhpcy5fZmVlcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NoYW5nZSA8IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc3VmZmljaWVudCBmdW5kcyAuLi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVPdXRwdXRzKHsgdmFsdWU6IHRoaXMuX2NoYW5nZSwgcGtoOiBsZWRnZXIuY2hhbmdlUGtoIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdGVyYXRlIHVudGlsIGFjdHVhbCBmZWVzIG1hdGNoIGVzdGltYXRlZCBmZWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlc3RpbWF0ZWRGZWVzID0gYXdhaXQgdGhpcy5fZXN0aW1hdGVOZXR3b3JrRmVlcyhsZWRnZXIucHJvdmlkZXIsIHByaW9yaXR5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHByZXBhcmUgb3V0cHV0cywgb25seSBpZiB2YWx1ZSBhbmQgZmVlcyBnb3QgZnVsbHkgY292ZXJlZCBmb3IgdGhlIGZpcnN0IHRpbWU6XHJcbiAgICAgICAgaWYgKHRoaXMuX2NoYW5nZSA+PSAwICYmICFwcmVwYXJlZCkge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnLScucmVwZWF0KDgwKSlcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5faW5wdXRzKVxyXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVPdXRwdXRzKHsgdmFsdWU6IHRoaXMuX2NoYW5nZSwgcGtoOiBsZWRnZXIuY2hhbmdlUGtoIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcHJlcGFyZU91dHB1dHMoY2hhbmdlPzogeyB2YWx1ZTogYmlnaW50LCBwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcgfSk6IGFueSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZT8udmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHBraDogY2hhbmdlLnBraCxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBjaGFuZ2UudmFsdWUsXHJcbiAgICAgICAgICAgICAgICB0aW1lX2xvY2s6IDAsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXNldFRhcmdldCh0YXJnZXQ6IFNwZWNzKTogYW55IHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2UgPSAwblxyXG4gICAgICAgIHRoaXMuX2NvdmVyZWQgPSAwblxyXG4gICAgICAgIHRoaXMuX2ZlZXMgPSAwblxyXG4gICAgICAgIHRoaXMuX2lucHV0cyA9IFtdXHJcbiAgICAgICAgdGhpcy5fb3V0cHV0cyA9IFtdXHJcbiAgICAgICAgdGhpcy5fdGFyZ2V0ID0gdGFyZ2V0XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuX3ByaW9yaXRpZXNcclxuICAgIH1cclxuXHJcbiAgICBhYnN0cmFjdCB0b0pTT04oaHVtYW5pemU6IGJvb2xlYW4pOiBhbnk7XHJcbiAgICBhYnN0cmFjdCB0b1Byb3RvYnVmKCk6IGFueTtcclxuICAgIGFic3RyYWN0IHZhbGlkYXRlVGFyZ2V0KHRhcmdldD86IGFueSk6IFNwZWNzIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGFic3RyYWN0IGdldCBtYXhXZWlnaHQoKTogbnVtYmVyO1xyXG4gICAgYWJzdHJhY3QgZ2V0IHZhbHVlKCk6IENvaW5zO1xyXG4gICAgYWJzdHJhY3QgZ2V0IHdlaWdodCgpOiBudW1iZXI7XHJcbiAgICBcclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBfY2xlYW5UYXJnZXRFeHRyYXMocGFyYW1zPzogYW55KTogYW55O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Balance, Network, QueryStakesOrder, StakeEntry } from "../types";
2
+ import { IBIP32, IJsonRpcProvider, ISigner } from "./interfaces";
3
+ import { Coins, KeyedSignature, PublicKey, PublicKeyHashString, Utxo, UtxoCacheInfo, UtxoSelectionStrategy } from "./types";
4
+ export declare class Signer implements ISigner {
5
+ protected node: IBIP32;
6
+ protected utxos: Array<Utxo>;
7
+ private _initialized;
8
+ readonly provider: IJsonRpcProvider;
9
+ strategy: UtxoSelectionStrategy;
10
+ constructor(node: IBIP32, provider: IJsonRpcProvider, strategy?: UtxoSelectionStrategy);
11
+ get cacheInfo(): UtxoCacheInfo;
12
+ get changePkh(): PublicKeyHashString;
13
+ get network(): Network;
14
+ get pkh(): PublicKeyHashString;
15
+ get publicKey(): PublicKey;
16
+ addUtxos(...utxos: Array<Utxo>): {
17
+ excluded: Array<Utxo>;
18
+ included: Array<Utxo>;
19
+ };
20
+ consumeUtxos(...utxos: Array<Utxo>): Array<Utxo>;
21
+ getBalance(): Promise<Balance>;
22
+ getDelegatees(order?: QueryStakesOrder): Promise<Array<StakeEntry>>;
23
+ getSigner(pkh?: PublicKeyHashString): ISigner | undefined;
24
+ getUtxos(reload?: boolean): Promise<Array<Utxo>>;
25
+ selectUtxos(specs?: {
26
+ value?: Coins;
27
+ reload?: boolean;
28
+ strategy?: UtxoSelectionStrategy;
29
+ }): Promise<Array<Utxo>>;
30
+ getStakeEntryNonce(validator: PublicKeyHashString): Promise<number>;
31
+ signHash(hash: any): KeyedSignature;
32
+ }
33
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/signer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAG3H,qBAAa,MAAO,YAAW,OAAO;IAElC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAK;IACjC,OAAO,CAAC,YAAY,CAAU;IAE9B,SAAgB,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,EAAE,qBAAqB,CAAA;gBAGlC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,CAAC,EAAE,qBAAqB;IAcpC,IAAW,SAAS,IAAI,aAAa,CAepC;IAED,IAAW,SAAS,IAAI,mBAAmB,CAE1C;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,GAAG,IAAI,mBAAmB,CAEpC;IAED,IAAW,SAAS,IAAI,SAAS,CAEhC;IAEM,QAAQ,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;KAAE;IAqBjF,YAAY,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IAc1C,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,aAAa,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAOzE,SAAS,CAAC,GAAG,CAAC,EAAE,mBAAmB,GAAG,OAAO,GAAG,SAAS;IAInD,QAAQ,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAS9C,WAAW,CAAC,KAAK,CAAC,EAAE;QAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,qBAAqB,CAAA;KACnC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IASX,kBAAkB,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzE,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc;CAiC7C"}
@@ -0,0 +1,194 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Signer = void 0;
37
+ const secp256k1 = require('secp256k1');
38
+ const utils = __importStar(require("../utils"));
39
+ const types_1 = require("./types");
40
+ const utils_1 = require("./utils");
41
+ class Signer {
42
+ constructor(node, provider, strategy) {
43
+ this.utxos = [];
44
+ this.node = node;
45
+ this.provider = provider;
46
+ this.strategy = strategy || types_1.UtxoSelectionStrategy.SlimFit;
47
+ if (!provider.network) {
48
+ throw Error(`Signer: internal error: unintialized provider.`);
49
+ }
50
+ this._initialized = false;
51
+ }
52
+ // ================================================================================================================
53
+ // --- ILedger ----------------------------------------------------------------------------------------------------
54
+ get cacheInfo() {
55
+ const now = Math.floor(Date.now() / 1000);
56
+ let expendable = 0n;
57
+ let timelock = Number.MAX_SAFE_INTEGER;
58
+ this.utxos.map(utxo => {
59
+ if (utxo.timelock > now) {
60
+ if (utxo.timelock < timelock) {
61
+ timelock = utxo.timelock;
62
+ }
63
+ }
64
+ else {
65
+ expendable += utxo.value;
66
+ }
67
+ });
68
+ if (timelock === Number.MAX_SAFE_INTEGER)
69
+ timelock = 0;
70
+ return { expendable, timelock, size: this.utxos.length };
71
+ }
72
+ get changePkh() {
73
+ return this.pkh;
74
+ }
75
+ get network() {
76
+ return this.provider.network || "mainnet";
77
+ }
78
+ get pkh() {
79
+ return this.publicKey.hash().toBech32(this.network);
80
+ }
81
+ get publicKey() {
82
+ return types_1.PublicKey.fromUint8Array(this.node.publicKey);
83
+ }
84
+ addUtxos(...utxos) {
85
+ const excluded = [];
86
+ const existingPointers = new Set(this.utxos.map(cached => cached.output_pointer));
87
+ const included = utxos.filter(utxo => {
88
+ if (utxo.signer === this.pkh) {
89
+ // avoid adding duplicates
90
+ if (!existingPointers.has(utxo.output_pointer)) {
91
+ existingPointers.add(utxo.output_pointer);
92
+ return true;
93
+ }
94
+ else {
95
+ return false;
96
+ }
97
+ }
98
+ else {
99
+ excluded.push(utxo);
100
+ return false;
101
+ }
102
+ });
103
+ this.utxos.push(...included);
104
+ return { excluded, included };
105
+ }
106
+ consumeUtxos(...utxos) {
107
+ this.utxos = this.utxos.filter(cached => {
108
+ const incomingIndex = utxos.findIndex(incoming => cached.output_pointer === incoming.output_pointer);
109
+ if (incomingIndex >= 0) {
110
+ utxos.splice(incomingIndex, 1);
111
+ return false;
112
+ }
113
+ else {
114
+ return true;
115
+ }
116
+ });
117
+ // console.log("Signer.consumeUtxos: remaining:", utxos)
118
+ return utxos;
119
+ }
120
+ async getBalance() {
121
+ return this.provider.getBalance(this.pkh);
122
+ }
123
+ async getDelegatees(order) {
124
+ return this.provider.stakes({
125
+ filter: { withdrawer: this.pkh },
126
+ params: { order },
127
+ });
128
+ }
129
+ getSigner(pkh) {
130
+ return (!pkh || pkh === this.pkh) ? this : undefined;
131
+ }
132
+ async getUtxos(reload = false) {
133
+ if (reload || !this._initialized) {
134
+ this._initialized = true;
135
+ this.utxos = (await this.provider.getUtxos(this.pkh))
136
+ .map(utxo => ({ ...utxo, signer: this.pkh }));
137
+ }
138
+ return this.utxos;
139
+ }
140
+ async selectUtxos(specs) {
141
+ return this
142
+ .getUtxos(specs?.reload)
143
+ .then(utxos => (0, utils_1.selectUtxos)({ utxos, value: specs?.value, strategy: specs?.strategy || this.strategy }));
144
+ }
145
+ // ================================================================================================================
146
+ // --- ISigner ----------------------------------------------------------------------------------------------------
147
+ async getStakeEntryNonce(validator) {
148
+ return this.provider
149
+ .stakes({ filter: {
150
+ validator,
151
+ withdrawer: this.pkh
152
+ } }).then(([entry]) => entry.value.nonce);
153
+ }
154
+ signHash(hash) {
155
+ let buffer;
156
+ if (hash instanceof Uint8Array) {
157
+ buffer = Buffer.from(hash);
158
+ }
159
+ else if (hash instanceof Buffer) {
160
+ buffer = hash;
161
+ }
162
+ else if (typeof hash === 'string') {
163
+ buffer = Buffer.from(utils.fromHexString(hash));
164
+ }
165
+ else {
166
+ throw new Error(`${this.constructor.name}: unsupported hash value: ${hash}`);
167
+ }
168
+ if (!buffer || buffer.length !== 32) {
169
+ throw new Error(`${this.constructor.name}: invalid hash length: ${buffer.length} != 32`);
170
+ }
171
+ else if (this.node.privateKey) {
172
+ const msg = Uint8Array.from(buffer);
173
+ const privateKey = Uint8Array.from(Buffer.from(this.node.privateKey));
174
+ const signature = secp256k1.ecdsaSign(msg, privateKey).signature;
175
+ const der = secp256k1.signatureExport(signature);
176
+ return {
177
+ public_key: {
178
+ compressed: this.publicKey.compressed,
179
+ bytes: Array.from(this.publicKey.bytes),
180
+ },
181
+ signature: {
182
+ Secp256k1: {
183
+ der: Array.from(der),
184
+ }
185
+ }
186
+ };
187
+ }
188
+ else {
189
+ throw Error(`Signer: invalid BIP32 node: no private key`);
190
+ }
191
+ }
192
+ }
193
+ exports.Signer = Signer;
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUN0QyxnREFBaUM7QUFJakMsbUNBQTJIO0FBQzNILG1DQUFxQztBQUVyQyxNQUFhLE1BQU07SUFTZixZQUNJLElBQVksRUFDWixRQUEwQixFQUMxQixRQUFnQztRQVQxQixVQUFLLEdBQWdCLEVBQUUsQ0FBQTtRQVc3QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSw2QkFBcUIsQ0FBQyxPQUFPLENBQUE7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixNQUFNLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO1FBQ2pFLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtJQUM3QixDQUFDO0lBRUQsbUhBQW1IO0lBQ25ILG1IQUFtSDtJQUVuSCxJQUFXLFNBQVM7UUFDaEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDekMsSUFBSSxVQUFVLEdBQVcsRUFBRSxDQUFBO1FBQzNCLElBQUksUUFBUSxHQUFXLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtRQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxD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QU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLDBCQUEwQixNQUFNLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQTtRQUM1RixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDbkMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUNyRSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUE7WUFDaEUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUNoRCxPQUFPO2dCQUNILFVBQVUsRUFBRTtvQkFDUixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVO29CQUNyQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztpQkFDMUM7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLFNBQVMsRUFBRTt3QkFDUCxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQ3ZCO2lCQUNKO2FBQ0osQ0FBQTtRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQTtRQUM3RCxDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBNUtELHdCQTRLQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHNlY3AyNTZrMSA9IHJlcXVpcmUoJ3NlY3AyNTZrMScpXHJcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gXCIuLi91dGlsc1wiXHJcblxyXG5pbXBvcnQgeyBCYWxhbmNlLCBOZXR3b3JrLCBRdWVyeVN0YWtlc09yZGVyLCBTdGFrZUVudHJ5IH0gZnJvbSBcIi4uL3R5cGVzXCJcclxuaW1wb3J0IHsgSUJJUDMyLCBJSnNvblJwY1Byb3ZpZGVyLCBJU2lnbmVyIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiXHJcbmltcG9ydCB7IENvaW5zLCBLZXllZFNpZ25hdHVyZSwgUHVibGljS2V5LCBQdWJsaWNLZXlIYXNoU3RyaW5nLCBVdHhvLCBVdHhvQ2FjaGVJbmZvLCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiLi90eXBlc1wiXHJcbmltcG9ydCB7IHNlbGVjdFV0eG9zIH0gZnJvbSBcIi4vdXRpbHNcIlxyXG5cclxuZXhwb3J0IGNsYXNzIFNpZ25lciBpbXBsZW1lbnRzIElTaWduZXIge1xyXG4gICAgXHJcbiAgICBwcm90ZWN0ZWQgbm9kZTogSUJJUDMyO1xyXG4gICAgcHJvdGVjdGVkIHV0eG9zOiBBcnJheTxVdHhvPiA9IFtdXHJcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyXHJcbiAgICBwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIG5vZGU6IElCSVAzMiwgXHJcbiAgICAgICAgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsIFxyXG4gICAgICAgIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlID0gbm9kZVxyXG4gICAgICAgIHRoaXMucHJvdmlkZXIgPSBwcm92aWRlclxyXG4gICAgICAgIHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdFxyXG4gICAgICAgIGlmICghcHJvdmlkZXIubmV0d29yaykge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgU2lnbmVyOiBpbnRlcm5hbCBlcnJvcjogdW5pbnRpYWxpemVkIHByb3ZpZGVyLmApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvLyAtLS0gSUxlZGdlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgcHVibGljIGdldCBjYWNoZUluZm8oKTogVXR4b0NhY2hlSW5mbyB7XHJcbiAgICAgICAgY29uc3Qgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMClcclxuICAgICAgICBsZXQgZXhwZW5kYWJsZTogYmlnaW50ID0gMG5cclxuICAgICAgICBsZXQgdGltZWxvY2s6IG51bWJlciA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXHJcbiAgICAgICAgdGhpcy51dHhvcy5tYXAodXR4byA9PiB7XHJcbiAgICAgICAgICAgIGlmICh1dHhvLnRpbWVsb2NrID4gbm93KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodXR4by50aW1lbG9jayA8IHRpbWVsb2NrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGltZWxvY2sgPSB1dHhvLnRpbWVsb2NrXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBleHBlbmRhYmxlICs9IHV0eG8udmFsdWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKHRpbWVsb2NrID09PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikgdGltZWxvY2sgPSAwO1xyXG4gICAgICAgIHJldHVybiB7IGV4cGVuZGFibGUsIHRpbWVsb2NrLCBzaXplOiB0aGlzLnV0eG9zLmxlbmd0aCB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGtoXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmsgfHwgXCJtYWlubmV0XCJcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHBraCgpOiBQdWJsaWNLZXlIYXNoU3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wdWJsaWNLZXkuaGFzaCgpLnRvQmVjaDMyKHRoaXMubmV0d29yaylcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHB1YmxpY0tleSgpOiBQdWJsaWNLZXkge1xyXG4gICAgICAgIHJldHVybiBQdWJsaWNLZXkuZnJvbVVpbnQ4QXJyYXkodGhpcy5ub2RlLnB1YmxpY0tleSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogeyBleGNsdWRlZDogQXJyYXk8VXR4bz4sIGluY2x1ZGVkOiBBcnJheTxVdHhvPiB9IHtcclxuICAgICAgICBjb25zdCBleGNsdWRlZDogQXJyYXk8VXR4bz4gPSBbXVxyXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nUG9pbnRlcnMgPSBuZXcgU2V0KHRoaXMudXR4b3MubWFwKGNhY2hlZCA9PiBjYWNoZWQub3V0cHV0X3BvaW50ZXIpKTtcclxuICAgICAgICBjb25zdCBpbmNsdWRlZDogQXJyYXk8VXR4bz4gPSB1dHhvcy5maWx0ZXIodXR4byA9PiB7XHJcbiAgICAgICAgICAgIGlmICh1dHhvLnNpZ25lciA9PT0gdGhpcy5wa2gpIHtcclxuICAgICAgICAgICAgICAgIC8vIGF2b2lkIGFkZGluZyBkdXBsaWNhdGVzXHJcbiAgICAgICAgICAgICAgICBpZiAoIWV4aXN0aW5nUG9pbnRlcnMuaGFzKHV0eG8ub3V0cHV0X3BvaW50ZXIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdQb2ludGVycy5hZGQodXR4by5vdXRwdXRfcG9pbnRlcilcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkLnB1c2godXR4bylcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy51dHhvcy5wdXNoKC4uLmluY2x1ZGVkKVxyXG4gICAgICAgIHJldHVybiB7IGV4Y2x1ZGVkLCBpbmNsdWRlZCB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbnN1bWVVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiBBcnJheTxVdHhvPiB7XHJcbiAgICAgICAgdGhpcy51dHhvcyA9IHRoaXMudXR4b3MuZmlsdGVyKGNhY2hlZCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluY29taW5nSW5kZXggPSB1dHhvcy5maW5kSW5kZXgoaW5jb21pbmcgPT4gY2FjaGVkLm91dHB1dF9wb2ludGVyID09PSBpbmNvbWluZy5vdXRwdXRfcG9pbnRlcik7XHJcbiAgICAgICAgICAgIGlmIChpbmNvbWluZ0luZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICAgIHV0eG9zLnNwbGljZShpbmNvbWluZ0luZGV4LCAxKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlNpZ25lci5jb25zdW1lVXR4b3M6IHJlbWFpbmluZzpcIiwgdXR4b3MpXHJcbiAgICAgICAgcmV0dXJuIHV0eG9zXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEJhbGFuY2UoKTogUHJvbWlzZTxCYWxhbmNlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIuZ2V0QmFsYW5jZSh0aGlzLnBraClcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0RGVsZWdhdGVlcyhvcmRlcj86IFF1ZXJ5U3Rha2VzT3JkZXIpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIuc3Rha2VzKHtcclxuICAgICAgICAgICAgZmlsdGVyOiB7IHdpdGhkcmF3ZXI6IHRoaXMucGtoIH0sXHJcbiAgICAgICAgICAgIHBhcmFtczogeyBvcmRlciB9LFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNpZ25lcihwa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7IFxyXG4gICAgICAgIHJldHVybiAoIXBraCB8fCBwa2ggPT09IHRoaXMucGtoKSA/IHRoaXMgOiB1bmRlZmluZWRcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0VXR4b3MocmVsb2FkID0gZmFsc2UpOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XHJcbiAgICAgICAgaWYgKHJlbG9hZCB8fCAhdGhpcy5faW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMudXR4b3MgPSAoYXdhaXQgdGhpcy5wcm92aWRlci5nZXRVdHhvcyh0aGlzLnBraCkpXHJcbiAgICAgICAgICAgICAgICAubWFwKHV0eG8gPT4gKHsgLi4udXR4bywgc2lnbmVyOiB0aGlzLnBraCB9KSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXR4b3NcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc2VsZWN0VXR4b3Moc3BlY3M/OiB7XHJcbiAgICAgICAgdmFsdWU/OiBDb2lucyxcclxuICAgICAgICByZWxvYWQ/OiBib29sZWFuLFxyXG4gICAgICAgIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5XHJcbiAgICB9KTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzXHJcbiAgICAgICAgICAgIC5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKVxyXG4gICAgICAgICAgICAudGhlbih1dHhvcyA9PiBzZWxlY3RVdHhvcyh7IHV0eG9zLCB2YWx1ZTogc3BlY3M/LnZhbHVlLCBzdHJhdGVneTogc3BlY3M/LnN0cmF0ZWd5IHx8IHRoaXMuc3RyYXRlZ3kgfSkpXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8vIC0tLSBJU2lnbmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIFxyXG4gICAgcHVibGljIGFzeW5jIGdldFN0YWtlRW50cnlOb25jZSh2YWxpZGF0b3I6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyXHJcbiAgICAgICAgICAgIC5zdGFrZXMoeyBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcixcclxuICAgICAgICAgICAgICAgIHdpdGhkcmF3ZXI6IHRoaXMucGtoXHJcbiAgICAgICAgICAgIH19KS50aGVuKChbZW50cnldKSA9PiBlbnRyeS52YWx1ZS5ub25jZSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2lnbkhhc2goaGFzaDogYW55KTogS2V5ZWRTaWduYXR1cmUge1xyXG4gICAgICAgIGxldCBidWZmZXI6IEJ1ZmZlcjtcclxuICAgICAgICBpZiAoaGFzaCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcclxuICAgICAgICAgICAgYnVmZmVyID0gQnVmZmVyLmZyb20oaGFzaClcclxuICAgICAgICB9IGVsc2UgaWYgKGhhc2ggaW5zdGFuY2VvZiBCdWZmZXIpIHtcclxuICAgICAgICAgICAgYnVmZmVyID0gaGFzaFxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGhhc2ggPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHV0aWxzLmZyb21IZXhTdHJpbmcoaGFzaCkpICAgICAgICAgICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdW5zdXBwb3J0ZWQgaGFzaCB2YWx1ZTogJHtoYXNofWApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghYnVmZmVyIHx8IGJ1ZmZlci5sZW5ndGggIT09IDMyKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnZhbGlkIGhhc2ggbGVuZ3RoOiAke2J1ZmZlci5sZW5ndGh9ICE9IDMyYClcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubm9kZS5wcml2YXRlS2V5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IFVpbnQ4QXJyYXkuZnJvbShidWZmZXIpXHJcbiAgICAgICAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSBVaW50OEFycmF5LmZyb20oQnVmZmVyLmZyb20odGhpcy5ub2RlLnByaXZhdGVLZXkpKVxyXG4gICAgICAgICAgICBjb25zdCBzaWduYXR1cmUgPSBzZWNwMjU2azEuZWNkc2FTaWduKG1zZywgcHJpdmF0ZUtleSkuc2lnbmF0dXJlXHJcbiAgICAgICAgICAgIGNvbnN0IGRlciA9IHNlY3AyNTZrMS5zaWduYXR1cmVFeHBvcnQoc2lnbmF0dXJlKVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgcHVibGljX2tleToge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWQ6IHRoaXMucHVibGljS2V5LmNvbXByZXNzZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgYnl0ZXM6IEFycmF5LmZyb20odGhpcy5wdWJsaWNLZXkuYnl0ZXMpLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHNpZ25hdHVyZToge1xyXG4gICAgICAgICAgICAgICAgICAgIFNlY3AyNTZrMToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXI6IEFycmF5LmZyb20oZGVyKSxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgU2lnbmVyOiBpbnZhbGlkIEJJUDMyIG5vZGU6IG5vIHByaXZhdGUga2V5YClcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,15 @@
1
+ import { RadonRequest, RadonTemplate } from "../../radon";
2
+ import { DataRequestPayload, DataRequestParams } from "../payloads/DataRequestPayload";
3
+ import { ILedger } from "../interfaces";
4
+ import { TransmitterMultiSig } from "../transmitters";
5
+ import { PublicKeyHashString } from "../types";
6
+ export { DataRequestParams } from "../payloads/DataRequestPayload";
7
+ export declare class DataRequests extends TransmitterMultiSig<DataRequestParams, DataRequestPayload> {
8
+ static COLLATERAL_RATIO: number;
9
+ static MAX_WEIGHT: number;
10
+ static from(ledger: ILedger, artifact: RadonRequest | RadonTemplate): DataRequests;
11
+ constructor(artifact: RadonRequest | RadonTemplate, ledger: ILedger, changePkh?: PublicKeyHashString);
12
+ get request(): RadonRequest | undefined;
13
+ get template(): RadonTemplate | undefined;
14
+ }
15
+ //# sourceMappingURL=DataRequests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataRequests.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/DataRequests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEzD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAElE,qBAAa,YAAa,SAAQ,mBAAmB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAExF,OAAc,gBAAgB,SAAuC;IACrE,OAAc,UAAU,SAAiC;WAE3C,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAG,aAAa,GAAI,YAAY;gBAI7E,QAAQ,EAAE,YAAY,GAAG,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,mBAAmB;IAIrG,IAAW,OAAO,IAAI,YAAY,GAAG,SAAS,CAE7C;IAED,IAAW,QAAQ,IAAI,aAAa,GAAG,SAAS,CAE/C;CACJ"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataRequests = void 0;
4
+ const DataRequestPayload_1 = require("../payloads/DataRequestPayload");
5
+ const transmitters_1 = require("../transmitters");
6
+ class DataRequests extends transmitters_1.TransmitterMultiSig {
7
+ static from(ledger, artifact) {
8
+ return new DataRequests(artifact, ledger);
9
+ }
10
+ constructor(artifact, ledger, changePkh) {
11
+ super("DRTransaction", new DataRequestPayload_1.DataRequestPayload("DRTransactionBody", artifact), ledger, changePkh);
12
+ }
13
+ get request() {
14
+ return this._payload.request;
15
+ }
16
+ get template() {
17
+ return this._payload.template;
18
+ }
19
+ }
20
+ exports.DataRequests = DataRequests;
21
+ DataRequests.COLLATERAL_RATIO = DataRequestPayload_1.DataRequestPayload.COLLATERAL_RATIO;
22
+ DataRequests.MAX_WEIGHT = DataRequestPayload_1.DataRequestPayload.MAX_WEIGHT;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlcXVlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vdHJhbnNtaXR0ZXJzL0RhdGFSZXF1ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1RUFBc0Y7QUFFdEYsa0RBQXFEO0FBS3JELE1BQWEsWUFBYSxTQUFRLGtDQUEwRDtJQUtqRixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQWUsRUFBRSxRQUFzQztRQUN0RSxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsWUFBYSxRQUFzQyxFQUFFLE1BQWUsRUFBRSxTQUErQjtRQUNqRyxLQUFLLENBQUMsZUFBZSxFQUFFLElBQUksdUNBQWtCLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3BHLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFBO0lBQ2pDLENBQUM7O0FBbkJMLG9DQW9CQztBQWxCaUIsNkJBQWdCLEdBQUcsdUNBQWtCLENBQUMsZ0JBQWdCLENBQUM7QUFDdkQsdUJBQVUsR0FBRyx1Q0FBa0IsQ0FBQyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSYWRvblJlcXVlc3QsIFJhZG9uVGVtcGxhdGUgfSBmcm9tIFwiLi4vLi4vcmFkb25cIlxyXG5cclxuaW1wb3J0IHsgRGF0YVJlcXVlc3RQYXlsb2FkLCBEYXRhUmVxdWVzdFBhcmFtcyB9IGZyb20gXCIuLi9wYXlsb2Fkcy9EYXRhUmVxdWVzdFBheWxvYWRcIlxyXG5pbXBvcnQgeyBJTGVkZ2VyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIlxyXG5pbXBvcnQgeyBUcmFuc21pdHRlck11bHRpU2lnIH0gZnJvbSBcIi4uL3RyYW5zbWl0dGVyc1wiXHJcbmltcG9ydCB7IFB1YmxpY0tleUhhc2hTdHJpbmcgfSBmcm9tIFwiLi4vdHlwZXNcIlxyXG5cclxuZXhwb3J0IHsgRGF0YVJlcXVlc3RQYXJhbXMgfSBmcm9tIFwiLi4vcGF5bG9hZHMvRGF0YVJlcXVlc3RQYXlsb2FkXCJcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhUmVxdWVzdHMgZXh0ZW5kcyBUcmFuc21pdHRlck11bHRpU2lnPERhdGFSZXF1ZXN0UGFyYW1zLCBEYXRhUmVxdWVzdFBheWxvYWQ+IHtcclxuICAgIFxyXG4gICAgcHVibGljIHN0YXRpYyBDT0xMQVRFUkFMX1JBVElPID0gRGF0YVJlcXVlc3RQYXlsb2FkLkNPTExBVEVSQUxfUkFUSU87XHJcbiAgICBwdWJsaWMgc3RhdGljIE1BWF9XRUlHSFQgPSBEYXRhUmVxdWVzdFBheWxvYWQuTUFYX1dFSUdIVDtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGZyb20obGVkZ2VyOiBJTGVkZ2VyLCBhcnRpZmFjdDogUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSkgOiBEYXRhUmVxdWVzdHMge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0YVJlcXVlc3RzKGFydGlmYWN0LCBsZWRnZXIpXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IgKGFydGlmYWN0OiBSYWRvblJlcXVlc3QgfCBSYWRvblRlbXBsYXRlLCBsZWRnZXI6IElMZWRnZXIsIGNoYW5nZVBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpIHtcclxuICAgICAgICBzdXBlcihcIkRSVHJhbnNhY3Rpb25cIiwgbmV3IERhdGFSZXF1ZXN0UGF5bG9hZChcIkRSVHJhbnNhY3Rpb25Cb2R5XCIsIGFydGlmYWN0KSwgbGVkZ2VyLCBjaGFuZ2VQa2gpXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCByZXF1ZXN0KCk6IFJhZG9uUmVxdWVzdCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BheWxvYWQucmVxdWVzdFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogUmFkb25UZW1wbGF0ZSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BheWxvYWQudGVtcGxhdGVcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { StakePayload, StakeDepositParams } from "../payloads/StakePayload";
2
+ import { ILedger } from "../interfaces";
3
+ import { TransmitterMultiSig } from "../transmitters";
4
+ import { PublicKeyHashString } from "../types";
5
+ export { StakeDepositParams } from "../payloads/StakePayload";
6
+ export declare class StakeDeposits extends TransmitterMultiSig<StakeDepositParams, StakePayload> {
7
+ static MAX_WEIGHT: number;
8
+ static MIN_VALUE: number;
9
+ static from(ledger: ILedger): StakeDeposits;
10
+ constructor(ledger: ILedger, changePkh?: PublicKeyHashString);
11
+ }
12
+ //# sourceMappingURL=StakeDeposits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StakeDeposits.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/StakeDeposits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,kBAAkB,EAAE,YAAY,CAAC;IAEpF,OAAc,UAAU,SAA2B;IACnD,OAAc,SAAS,SAA0B;WAEnC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa;gBAIrC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,mBAAmB;CAGhE"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StakeDeposits = void 0;
4
+ const StakePayload_1 = require("../payloads/StakePayload");
5
+ const transmitters_1 = require("../transmitters");
6
+ class StakeDeposits extends transmitters_1.TransmitterMultiSig {
7
+ static from(ledger) {
8
+ return new StakeDeposits(ledger);
9
+ }
10
+ constructor(ledger, changePkh) {
11
+ super("StakeTransaction", new StakePayload_1.StakePayload("StakeTransactionBody"), ledger, changePkh);
12
+ }
13
+ }
14
+ exports.StakeDeposits = StakeDeposits;
15
+ StakeDeposits.MAX_WEIGHT = StakePayload_1.StakePayload.MAX_WEIGHT;
16
+ StakeDeposits.MIN_VALUE = StakePayload_1.StakePayload.MIN_VALUE;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Rha2VEZXBvc2l0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL3RyYW5zbWl0dGVycy9TdGFrZURlcG9zaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUEyRTtBQUczRSxrREFBcUQ7QUFLckQsTUFBYSxhQUFjLFNBQVEsa0NBQXFEO0lBSzdFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBZTtRQUM5QixPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxZQUFhLE1BQWUsRUFBRSxTQUErQjtRQUN6RCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsSUFBSSwyQkFBWSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzFGLENBQUM7O0FBWEwsc0NBWUM7QUFWaUIsd0JBQVUsR0FBRywyQkFBWSxDQUFDLFVBQVUsQ0FBQztBQUNyQyx1QkFBUyxHQUFHLDJCQUFZLENBQUMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Rha2VQYXlsb2FkLCBTdGFrZURlcG9zaXRQYXJhbXMgfSBmcm9tIFwiLi4vcGF5bG9hZHMvU3Rha2VQYXlsb2FkXCJcclxuXHJcbmltcG9ydCB7IElMZWRnZXIgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiXHJcbmltcG9ydCB7IFRyYW5zbWl0dGVyTXVsdGlTaWcgfSBmcm9tIFwiLi4vdHJhbnNtaXR0ZXJzXCJcclxuaW1wb3J0IHsgUHVibGljS2V5SGFzaFN0cmluZyB9IGZyb20gXCIuLi90eXBlc1wiXHJcblxyXG5leHBvcnQgeyBTdGFrZURlcG9zaXRQYXJhbXMgfSBmcm9tIFwiLi4vcGF5bG9hZHMvU3Rha2VQYXlsb2FkXCJcclxuXHJcbmV4cG9ydCBjbGFzcyBTdGFrZURlcG9zaXRzIGV4dGVuZHMgVHJhbnNtaXR0ZXJNdWx0aVNpZzxTdGFrZURlcG9zaXRQYXJhbXMsIFN0YWtlUGF5bG9hZD4ge1xyXG4gICAgXHJcbiAgICBwdWJsaWMgc3RhdGljIE1BWF9XRUlHSFQgPSBTdGFrZVBheWxvYWQuTUFYX1dFSUdIVDtcclxuICAgIHB1YmxpYyBzdGF0aWMgTUlOX1ZBTFVFID0gU3Rha2VQYXlsb2FkLk1JTl9WQUxVRTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGZyb20obGVkZ2VyOiBJTGVkZ2VyKTogU3Rha2VEZXBvc2l0cyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdGFrZURlcG9zaXRzKGxlZGdlcilcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvciAobGVkZ2VyOiBJTGVkZ2VyLCBjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKSB7XHJcbiAgICAgICAgc3VwZXIoXCJTdGFrZVRyYW5zYWN0aW9uXCIsIG5ldyBTdGFrZVBheWxvYWQoXCJTdGFrZVRyYW5zYWN0aW9uQm9keVwiKSwgbGVkZ2VyLCBjaGFuZ2VQa2gpXHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,18 @@
1
+ import { UnstakePayload, StakeWithdrawalParams } from "../payloads/UnstakePayload";
2
+ import { TransactionReceipt } from "../types";
3
+ import { ILedger } from "../interfaces";
4
+ import { Transmitter } from "../transmitters";
5
+ import { PublicKeyHashString } from "../types";
6
+ import { Hash } from "../../types";
7
+ export { StakeWithdrawalParams } from "../payloads/UnstakePayload";
8
+ export declare class StakeWithdrawals extends Transmitter<StakeWithdrawalParams, UnstakePayload> {
9
+ static MIN_TIMELOCK_SECS: number;
10
+ static WEIGHT: number;
11
+ static from(ledger: ILedger): StakeWithdrawals;
12
+ constructor(ledger: ILedger, changePkh?: PublicKeyHashString);
13
+ signTransaction(params?: StakeWithdrawalParams, reload?: boolean): Promise<TransactionReceipt>;
14
+ _signTransactionPayload(): Hash;
15
+ protected _toJSON(humanize: boolean): any;
16
+ protected _toProtobuf(): any;
17
+ }
18
+ //# sourceMappingURL=StakeWithdrawals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StakeWithdrawals.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/StakeWithdrawals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,qBAAqB,EAAE,cAAc,CAAC;IAEpF,OAAc,iBAAiB,SAAmC;IAClE,OAAc,MAAM,SAAwB;WAE9B,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB;gBAIxC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,mBAAmB;IAIhD,eAAe,CAAC,MAAM,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIpG,uBAAuB,IAAI,IAAI;IAoBtC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,GAAG;IASzC,SAAS,CAAC,WAAW,IAAI,GAAG;CAS/B"}