@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.
- package/LICENSE +21 -0
- package/README.md +103 -0
- package/dist/package.json +72 -0
- package/dist/src/bin/helpers.d.ts +91 -0
- package/dist/src/bin/helpers.d.ts.map +1 -0
- package/dist/src/bin/helpers.js +816 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +47 -0
- package/dist/src/lib/crypto/account.d.ts +32 -0
- package/dist/src/lib/crypto/account.d.ts.map +1 -0
- package/dist/src/lib/crypto/account.js +106 -0
- package/dist/src/lib/crypto/coinbase.d.ts +10 -0
- package/dist/src/lib/crypto/coinbase.d.ts.map +1 -0
- package/dist/src/lib/crypto/coinbase.js +28 -0
- package/dist/src/lib/crypto/index.d.ts +8 -0
- package/dist/src/lib/crypto/index.d.ts.map +1 -0
- package/dist/src/lib/crypto/index.js +30 -0
- package/dist/src/lib/crypto/interfaces.d.ts +85 -0
- package/dist/src/lib/crypto/interfaces.d.ts.map +1 -0
- package/dist/src/lib/crypto/interfaces.js +3 -0
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +55 -0
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -0
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +339 -0
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts +28 -0
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -0
- package/dist/src/lib/crypto/payloads/StakePayload.js +142 -0
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts +36 -0
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -0
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +154 -0
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts +25 -0
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -0
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +128 -0
- package/dist/src/lib/crypto/payloads.d.ts +57 -0
- package/dist/src/lib/crypto/payloads.d.ts.map +1 -0
- package/dist/src/lib/crypto/payloads.js +170 -0
- package/dist/src/lib/crypto/signer.d.ts +33 -0
- package/dist/src/lib/crypto/signer.d.ts.map +1 -0
- package/dist/src/lib/crypto/signer.js +194 -0
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts +15 -0
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -0
- package/dist/src/lib/crypto/transmitters/DataRequests.js +23 -0
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts +12 -0
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -0
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +17 -0
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts +18 -0
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -0
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +53 -0
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts +11 -0
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -0
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +16 -0
- package/dist/src/lib/crypto/transmitters.d.ts +47 -0
- package/dist/src/lib/crypto/transmitters.d.ts.map +1 -0
- package/dist/src/lib/crypto/transmitters.js +416 -0
- package/dist/src/lib/crypto/types.d.ts +161 -0
- package/dist/src/lib/crypto/types.d.ts.map +1 -0
- package/dist/src/lib/crypto/types.js +273 -0
- package/dist/src/lib/crypto/utils.d.ts +21 -0
- package/dist/src/lib/crypto/utils.d.ts.map +1 -0
- package/dist/src/lib/crypto/utils.js +156 -0
- package/dist/src/lib/crypto/wallet.d.ts +120 -0
- package/dist/src/lib/crypto/wallet.d.ts.map +1 -0
- package/dist/src/lib/crypto/wallet.js +258 -0
- package/dist/src/lib/index.d.ts +5 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +44 -0
- package/dist/src/lib/radon/ccdr/eth.d.ts +160 -0
- package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -0
- package/dist/src/lib/radon/ccdr/eth.js +272 -0
- package/dist/src/lib/radon/ccdr/index.d.ts +14 -0
- package/dist/src/lib/radon/ccdr/index.d.ts.map +1 -0
- package/dist/src/lib/radon/ccdr/index.js +39 -0
- package/dist/src/lib/radon/ccdr/wit.d.ts +23 -0
- package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -0
- package/dist/src/lib/radon/ccdr/wit.js +35 -0
- package/dist/src/lib/radon/filters.d.ts +14 -0
- package/dist/src/lib/radon/filters.d.ts.map +1 -0
- package/dist/src/lib/radon/filters.js +45 -0
- package/dist/src/lib/radon/index.d.ts +296 -0
- package/dist/src/lib/radon/index.d.ts.map +1 -0
- package/dist/src/lib/radon/index.js +707 -0
- package/dist/src/lib/radon/reducers.d.ts +29 -0
- package/dist/src/lib/radon/reducers.d.ts.map +1 -0
- package/dist/src/lib/radon/reducers.js +66 -0
- package/dist/src/lib/radon/types.d.ts +521 -0
- package/dist/src/lib/radon/types.d.ts.map +1 -0
- package/dist/src/lib/radon/types.js +936 -0
- package/dist/src/lib/radon/utils.d.ts +53 -0
- package/dist/src/lib/radon/utils.d.ts.map +1 -0
- package/dist/src/lib/radon/utils.js +153 -0
- package/dist/src/lib/rpc/index.d.ts +3 -0
- package/dist/src/lib/rpc/index.d.ts.map +1 -0
- package/dist/src/lib/rpc/index.js +19 -0
- package/dist/src/lib/rpc/nodes.d.ts +40 -0
- package/dist/src/lib/rpc/nodes.d.ts.map +1 -0
- package/dist/src/lib/rpc/nodes.js +293 -0
- package/dist/src/lib/rpc/provider.d.ts +88 -0
- package/dist/src/lib/rpc/provider.d.ts.map +1 -0
- package/dist/src/lib/rpc/provider.js +336 -0
- package/dist/src/lib/rpc/reporter.d.ts +18 -0
- package/dist/src/lib/rpc/reporter.d.ts.map +1 -0
- package/dist/src/lib/rpc/reporter.js +30 -0
- package/dist/src/lib/rpc/types.d.ts +409 -0
- package/dist/src/lib/rpc/types.d.ts.map +1 -0
- package/dist/src/lib/rpc/types.js +81 -0
- package/dist/src/lib/types.d.ts +18 -0
- package/dist/src/lib/types.d.ts.map +1 -0
- package/dist/src/lib/types.js +7 -0
- package/dist/src/lib/utils.d.ts +13 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +97 -0
- package/dist/witnet/assets/index.d.ts +30 -0
- package/dist/witnet/assets/index.d.ts.map +1 -0
- package/dist/witnet/assets/index.js +6 -0
- package/dist/witnet/assets/modals/index.d.ts +18 -0
- package/dist/witnet/assets/modals/index.d.ts.map +1 -0
- package/dist/witnet/assets/modals/index.js +21 -0
- package/dist/witnet/assets/modals/web3/eth.d.ts +5 -0
- package/dist/witnet/assets/modals/web3/eth.d.ts.map +1 -0
- package/dist/witnet/assets/modals/web3/eth.js +26 -0
- package/dist/witnet/assets/modals/web3/wit.d.ts +4 -0
- package/dist/witnet/assets/modals/web3/wit.d.ts.map +1 -0
- package/dist/witnet/assets/modals/web3/wit.js +20 -0
- package/dist/witnet/assets/requests.d.ts +11 -0
- package/dist/witnet/assets/requests.d.ts.map +1 -0
- package/dist/witnet/assets/requests.js +88 -0
- package/dist/witnet/witnet.proto.json +1325 -0
- package/package.json +72 -0
- package/src/bin/cli/history.js +31 -0
- package/src/bin/cli/inspect.js +359 -0
- package/src/bin/cli/network.js +592 -0
- package/src/bin/cli/nodes.js +364 -0
- package/src/bin/cli/radon.js +814 -0
- package/src/bin/cli/wallet.js +1000 -0
- package/src/bin/helpers.js +829 -0
- package/src/bin/postinstall.js +9 -0
- package/src/bin/toolkit.js +294 -0
- package/witnet/assets/_index.js +8 -0
- package/witnet/assets/_requests.js +25 -0
- package/witnet/assets/_sources.js +36 -0
- package/witnet/assets/_templates.js +36 -0
- package/witnet/assets/index.js +4 -0
- package/witnet/assets/modals/index.js +25 -0
- package/witnet/assets/modals/web3/btc.js +0 -0
- package/witnet/assets/modals/web3/eth.js +29 -0
- package/witnet/assets/modals/web3/sol.js +0 -0
- package/witnet/assets/modals/web3/wit.js +23 -0
- package/witnet/assets/requests.js +94 -0
- 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"}
|