@bitgo-beta/utxo-staking 1.1.1-beta.456 → 1.1.1-beta.458
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/babylon/descriptor.d.ts +23 -5
- package/dist/src/babylon/descriptor.d.ts.map +1 -1
- package/dist/src/babylon/descriptor.js +30 -12
- package/dist/src/babylon/index.d.ts +1 -0
- package/dist/src/babylon/index.d.ts.map +1 -1
- package/dist/src/babylon/index.js +2 -1
- package/dist/src/babylon/parseDescriptor.d.ts +12 -0
- package/dist/src/babylon/parseDescriptor.d.ts.map +1 -0
- package/dist/src/babylon/parseDescriptor.js +70 -0
- package/dist/src/babylon/undelegation/UndelegationResponse.d.ts +24 -0
- package/dist/src/babylon/undelegation/UndelegationResponse.d.ts.map +1 -0
- package/dist/src/babylon/undelegation/UndelegationResponse.js +55 -0
- package/dist/src/babylon/undelegation/index.d.ts +3 -0
- package/dist/src/babylon/undelegation/index.d.ts.map +1 -0
- package/dist/src/babylon/undelegation/index.js +19 -0
- package/dist/src/babylon/undelegation/unbonding.d.ts +16 -0
- package/dist/src/babylon/undelegation/unbonding.d.ts.map +1 -0
- package/dist/src/babylon/undelegation/unbonding.js +111 -0
- package/package.json +6 -5
|
@@ -18,12 +18,30 @@ export declare class BabylonDescriptorBuilder {
|
|
|
18
18
|
stakerKey: Buffer;
|
|
19
19
|
finalityProviderKeys: Buffer[];
|
|
20
20
|
} & StakingParams): BabylonDescriptorBuilder;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
/** Spend path with the staker key and the staking timelock */
|
|
22
|
+
getStakingTimelockMiniscriptNode(): ast.MiniscriptNode;
|
|
23
|
+
/** Spend path with the staker key and the unbonding timelock */
|
|
24
|
+
getUnbondingTimelockMiniscriptNode(): ast.MiniscriptNode;
|
|
25
|
+
/** Spend path with the staker key and the covenant keys */
|
|
26
|
+
getUnbondingMiniscriptNode(): ast.MiniscriptNode;
|
|
27
|
+
/** Spend path with the finality provider keys and the covenant keys */
|
|
28
|
+
getSlashingMiniscriptNode(): ast.MiniscriptNode;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a descriptor for a staking output.
|
|
31
|
+
*
|
|
32
|
+
* Three spend paths:
|
|
33
|
+
* - the slashing script,
|
|
34
|
+
* - the unbonding script,
|
|
35
|
+
* - the timelocked unstaking script.
|
|
36
|
+
*/
|
|
25
37
|
getStakingDescriptor(): Descriptor;
|
|
26
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Creates a descriptor for the timelocked unbonding script.
|
|
40
|
+
*/
|
|
41
|
+
getUnbondingTimelockDescriptor(): Descriptor;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a descriptor with two script paths: the slashing script and the timelocked unbonding script.
|
|
44
|
+
*/
|
|
27
45
|
getUnbondingDescriptor(): Descriptor;
|
|
28
46
|
}
|
|
29
47
|
//# sourceMappingURL=descriptor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/babylon/descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAmBD,qBAAa,wBAAwB;IAE1B,SAAS,EAAE,MAAM;IACjB,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY,EAAE,MAAM,EAAE;IACtB,iBAAiB,EAAE,MAAM;IACzB,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,MAAM;gBALzB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAAE,EAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM;IAGlC,MAAM,CAAC,UAAU,CACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAChC,GAAG,aAAa,GAChB,wBAAwB;IAW3B,
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/babylon/descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAmBD,qBAAa,wBAAwB;IAE1B,SAAS,EAAE,MAAM;IACjB,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY,EAAE,MAAM,EAAE;IACtB,iBAAiB,EAAE,MAAM;IACzB,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,MAAM;gBALzB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAAE,EAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM;IAGlC,MAAM,CAAC,UAAU,CACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAChC,GAAG,aAAa,GAChB,wBAAwB;IAW3B,8DAA8D;IAC9D,gCAAgC,IAAI,GAAG,CAAC,cAAc;IAItD,gEAAgE;IAChE,kCAAkC,IAAI,GAAG,CAAC,cAAc;IAIxD,2DAA2D;IAC3D,0BAA0B,IAAI,GAAG,CAAC,cAAc;IAIhD,uEAAuE;IACvE,yBAAyB,IAAI,GAAG,CAAC,cAAc;IAgB/C;;;;;;;OAOG;IACH,oBAAoB,IAAI,UAAU;IAOlC;;OAEG;IACH,8BAA8B,IAAI,UAAU;IAI5C;;OAEG;IACH,sBAAsB,IAAI,UAAU;CAGrC"}
|
|
@@ -37,13 +37,20 @@ class BabylonDescriptorBuilder {
|
|
|
37
37
|
static fromParams(params) {
|
|
38
38
|
return new BabylonDescriptorBuilder(params.stakerKey, params.finalityProviderKeys, params.covenantNoCoordPks.map((k) => Buffer.from(k, 'hex')), params.covenantQuorum, params.minStakingTimeBlocks, params.unbondingTime);
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
/** Spend path with the staker key and the staking timelock */
|
|
41
|
+
getStakingTimelockMiniscriptNode() {
|
|
41
42
|
return { and_v: [pk(this.stakerKey), { older: this.stakingTimeLock }] };
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
/** Spend path with the staker key and the unbonding timelock */
|
|
45
|
+
getUnbondingTimelockMiniscriptNode() {
|
|
46
|
+
return { and_v: [pk(this.stakerKey), { older: this.unbondingTimeLock }] };
|
|
47
|
+
}
|
|
48
|
+
/** Spend path with the staker key and the covenant keys */
|
|
49
|
+
getUnbondingMiniscriptNode() {
|
|
44
50
|
return { and_v: [pk(this.stakerKey), { multi_a: multiArgs(this.covenantThreshold, this.covenantKeys) }] };
|
|
45
51
|
}
|
|
46
|
-
|
|
52
|
+
/** Spend path with the finality provider keys and the covenant keys */
|
|
53
|
+
getSlashingMiniscriptNode() {
|
|
47
54
|
return {
|
|
48
55
|
and_v: [
|
|
49
56
|
{
|
|
@@ -58,21 +65,32 @@ class BabylonDescriptorBuilder {
|
|
|
58
65
|
],
|
|
59
66
|
};
|
|
60
67
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Creates a descriptor for a staking output.
|
|
70
|
+
*
|
|
71
|
+
* Three spend paths:
|
|
72
|
+
* - the slashing script,
|
|
73
|
+
* - the unbonding script,
|
|
74
|
+
* - the timelocked unstaking script.
|
|
75
|
+
*/
|
|
64
76
|
getStakingDescriptor() {
|
|
65
77
|
return taprootScriptOnlyFromAst([
|
|
66
|
-
this.
|
|
67
|
-
[this.
|
|
78
|
+
this.getSlashingMiniscriptNode(),
|
|
79
|
+
[this.getUnbondingMiniscriptNode(), this.getStakingTimelockMiniscriptNode()],
|
|
68
80
|
]);
|
|
69
81
|
}
|
|
70
|
-
|
|
71
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Creates a descriptor for the timelocked unbonding script.
|
|
84
|
+
*/
|
|
85
|
+
getUnbondingTimelockDescriptor() {
|
|
86
|
+
return taprootScriptOnlyFromAst(this.getUnbondingTimelockMiniscriptNode());
|
|
72
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Creates a descriptor with two script paths: the slashing script and the timelocked unbonding script.
|
|
90
|
+
*/
|
|
73
91
|
getUnbondingDescriptor() {
|
|
74
|
-
return taprootScriptOnlyFromAst([this.
|
|
92
|
+
return taprootScriptOnlyFromAst([this.getSlashingMiniscriptNode(), this.getUnbondingTimelockMiniscriptNode()]);
|
|
75
93
|
}
|
|
76
94
|
}
|
|
77
95
|
exports.BabylonDescriptorBuilder = BabylonDescriptorBuilder;
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQUtILDhDQUdDO0FBTkQsNERBQXlEO0FBR3pELFNBQWdCLGlCQUFpQjtJQUMvQixvR0FBb0c7SUFDcEcsT0FBTyxrRUFBa0UsQ0FBQztBQUM1RSxDQUFDO0FBRUQsaURBQWlEO0FBQ2pELFNBQVMsRUFBRSxDQUFDLENBQVM7SUFDbkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQWM7SUFDaEMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxTQUFpQixFQUFFLElBQWM7SUFDbEQsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLENBQWtCO0lBQ2xELE9BQU8sNEJBQVUsQ0FBQyxVQUFVLENBQUMscUJBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBRUQsTUFBYSx3QkFBd0I7SUFDbkMsWUFDUyxTQUFpQixFQUNqQixvQkFBOEIs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LElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqSCxDQUFDO0NBQ0Y7QUF0RkQsNERBc0ZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYmFieWxvbi90cmVlL21haW4vZG9jc1xuICogaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2JhYnlsb24vYmxvYi9tYWluL2RvY3Mvc3Rha2luZy1zY3JpcHQubWRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9iYWJ5bG9uL2Jsb2IvdjEuOTkuMC1zbmFwc2hvdC4yNTAyMTEvYnRjc3Rha2luZy9zdGFraW5nLmdvXG4gKi9cblxuaW1wb3J0IHsgRGVzY3JpcHRvciwgYXN0IH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5pbXBvcnQgeyBTdGFraW5nUGFyYW1zIH0gZnJvbSAnQGJpdGdvLWJldGEvYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5zcGVuZGFibGVLZXkoKTogc3RyaW5nIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2J0Yy1zdGFraW5nLXRzL2Jsb2IvdjAuNC4wLXJjLjIvc3JjL2NvbnN0YW50cy9pbnRlcm5hbFB1YmtleS50c1xuICByZXR1cm4gJzUwOTI5Yjc0YzFhMDQ5NTRiNzhiNGI2MDM1ZTk3YTVlMDc4YTVhMGYyOGVjOTZkNTQ3YmZlZTlhY2U4MDNhYzAnO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBtaW5pc2NyaXB0IG5vZGVzXG5mdW5jdGlvbiBwayhiOiBCdWZmZXIpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICByZXR1cm4geyAndjpwayc6IGIudG9TdHJpbmcoJ2hleCcpIH07XG59XG5cbmZ1bmN0aW9uIHNvcnRlZEtleXMoa2V5czogQnVmZmVyW10pOiBCdWZmZXJbXSB7XG4gIHJldHVybiBbLi4ua2V5c10uc29ydCgoYSwgYikgPT4gYS5jb21wYXJlKGIpKTtcbn1cblxuZnVuY3Rpb24gbXVsdGlBcmdzKHRocmVzaG9sZDogbnVtYmVyLCBrZXlzOiBCdWZmZXJbXSk6IFtudW1iZXIsIC4uLnN0cmluZ1tdXSB7XG4gIHJldHVybiBbdGhyZXNob2xkLCAuLi5zb3J0ZWRLZXlzKGtleXMpLm1hcCgoaykgPT4gay50b1N0cmluZygnaGV4JykpXTtcbn1cblxuZnVuY3Rpb24gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KG46IGFzdC5UYXBUcmVlTm9kZSk6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgdHI6IFtnZXRVbnNwZW5kYWJsZUtleSgpLCBuXSB9KSwgJ2RlZmluaXRlJyk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3Rha2VyS2V5OiBCdWZmZXIsXG4gICAgcHVibGljIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRUaHJlc2hvbGQ6IG51bWJlcixcbiAgICBwdWJsaWMgc3Rha2luZ1RpbWVMb2NrOiBudW1iZXIsXG4gICAgcHVibGljIHVuYm9uZGluZ1RpbWVMb2NrOiBudW1iZXJcbiAgKSB7fVxuXG4gIHN0YXRpYyBmcm9tUGFyYW1zKFxuICAgIHBhcmFtczoge1xuICAgICAgc3Rha2VyS2V5OiBCdWZmZXI7XG4gICAgICBmaW5hbGl0eVByb3ZpZGVyS2V5czogQnVmZmVyW107XG4gICAgfSAmIFN0YWtpbmdQYXJhbXNcbiAgKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlcihcbiAgICAgIHBhcmFtcy5zdGFrZXJLZXksXG4gICAgICBwYXJhbXMuZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgICBwYXJhbXMuY292ZW5hbnROb0Nvb3JkUGtzLm1hcCgoaykgPT4gQnVmZmVyLmZyb20oaywgJ2hleCcpKSxcbiAgICAgIHBhcmFtcy5jb3ZlbmFudFF1b3J1bSxcbiAgICAgIHBhcmFtcy5taW5TdGFraW5nVGltZUJsb2NrcyxcbiAgICAgIHBhcmFtcy51bmJvbmRpbmdUaW1lXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBTcGVuZCBwYXRoIHdpdGggdGhlIHN0YWtlciBrZXkgYW5kIHRoZSBzdGFraW5nIHRpbWVsb2NrICovXG4gIGdldFN0YWtpbmdUaW1lbG9ja01pbmlzY3JpcHROb2RlKCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHsgYW5kX3Y6IFtwayh0aGlzLnN0YWtlcktleSksIHsgb2xkZXI6IHRoaXMuc3Rha2luZ1RpbWVMb2NrIH1dIH07XG4gIH1cblxuICAvKiogU3BlbmQgcGF0aCB3aXRoIHRoZSBzdGFrZXIga2V5IGFuZCB0aGUgdW5ib25kaW5nIHRpbWVsb2NrICovXG4gIGdldFVuYm9uZGluZ1RpbWVsb2NrTWluaXNjcmlwdE5vZGUoKTogYXN0Lk1pbmlzY3JpcHROb2RlIHtcbiAgICByZXR1cm4geyBhbmRfdjogW3BrKHRoaXMuc3Rha2VyS2V5KSwgeyBvbGRlcjogdGhpcy51bmJvbmRpbmdUaW1lTG9jayB9XSB9O1xuICB9XG5cbiAgLyoqIFNwZW5kIHBhdGggd2l0aCB0aGUgc3Rha2VyIGtleSBhbmQgdGhlIGNvdmVuYW50IGtleXMgKi9cbiAgZ2V0VW5ib25kaW5nTWluaXNjcmlwdE5vZGUoKTogYXN0Lk1pbmlzY3JpcHROb2RlIHtcbiAgICByZXR1cm4geyBhbmRfdjogW3BrKHRoaXMuc3Rha2VyS2V5KSwgeyBtdWx0aV9hOiBtdWx0aUFyZ3ModGhpcy5jb3ZlbmFudFRocmVzaG9sZCwgdGhpcy5jb3ZlbmFudEtleXMpIH1dIH07XG4gIH1cblxuICAvKiogU3BlbmQgcGF0aCB3aXRoIHRoZSBmaW5hbGl0eSBwcm92aWRlciBrZXlzIGFuZCB0aGUgY292ZW5hbnQga2V5cyAqL1xuICBnZXRTbGFzaGluZ01pbmlzY3JpcHROb2RlKCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFuZF92OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhbmRfdjogW1xuICAgICAgICAgICAgcGsodGhpcy5zdGFrZXJLZXkpLFxuICAgICAgICAgICAgdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5cy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgPyB7ICd2OnBrJzogdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5c1swXS50b1N0cmluZygnaGV4JykgfVxuICAgICAgICAgICAgICA6IHsgJ3Y6bXVsdGlfYSc6IG11bHRpQXJncygxLCB0aGlzLmZpbmFsaXR5UHJvdmlkZXJLZXlzKSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbXVsdGlfYTogbXVsdGlBcmdzKHRoaXMuY292ZW5hbnRUaHJlc2hvbGQsIHRoaXMuY292ZW5hbnRLZXlzKSB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkZXNjcmlwdG9yIGZvciBhIHN0YWtpbmcgb3V0cHV0LlxuICAgKlxuICAgKiBUaHJlZSBzcGVuZCBwYXRoczpcbiAgICogLSB0aGUgc2xhc2hpbmcgc2NyaXB0LFxuICAgKiAtIHRoZSB1bmJvbmRpbmcgc2NyaXB0LFxuICAgKiAtIHRoZSB0aW1lbG9ja2VkIHVuc3Rha2luZyBzY3JpcHQuXG4gICAqL1xuICBnZXRTdGFraW5nRGVzY3JpcHRvcigpOiBEZXNjcmlwdG9yIHtcbiAgICByZXR1cm4gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KFtcbiAgICAgIHRoaXMuZ2V0U2xhc2hpbmdNaW5pc2NyaXB0Tm9kZSgpLFxuICAgICAgW3RoaXMuZ2V0VW5ib25kaW5nTWluaXNjcmlwdE5vZGUoKSwgdGhpcy5nZXRTdGFraW5nVGltZWxvY2tNaW5pc2NyaXB0Tm9kZSgpXSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGVzY3JpcHRvciBmb3IgdGhlIHRpbWVsb2NrZWQgdW5ib25kaW5nIHNjcmlwdC5cbiAgICovXG4gIGdldFVuYm9uZGluZ1RpbWVsb2NrRGVzY3JpcHRvcigpOiBEZXNjcmlwdG9yIHtcbiAgICByZXR1cm4gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KHRoaXMuZ2V0VW5ib25kaW5nVGltZWxvY2tNaW5pc2NyaXB0Tm9kZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGVzY3JpcHRvciB3aXRoIHR3byBzY3JpcHQgcGF0aHM6IHRoZSBzbGFzaGluZyBzY3JpcHQgYW5kIHRoZSB0aW1lbG9ja2VkIHVuYm9uZGluZyBzY3JpcHQuXG4gICAqL1xuICBnZXRVbmJvbmRpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QoW3RoaXMuZ2V0U2xhc2hpbmdNaW5pc2NyaXB0Tm9kZSgpLCB0aGlzLmdldFVuYm9uZGluZ1RpbWVsb2NrTWluaXNjcmlwdE5vZGUoKV0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/babylon/index.ts"],"names":[],"mappings":"AAOA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/babylon/index.ts"],"names":[],"mappings":"AAOA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
|
@@ -45,4 +45,5 @@ __exportStar(require("./delegationMessage"), exports);
|
|
|
45
45
|
__exportStar(require("./descriptor"), exports);
|
|
46
46
|
__exportStar(require("./stakingParams"), exports);
|
|
47
47
|
__exportStar(require("./stakingManager"), exports);
|
|
48
|
-
|
|
48
|
+
__exportStar(require("./undelegation"), exports);
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZGQUF5RTtBQUN6RSw0REFBOEM7QUFDOUMsOERBQWdEO0FBRWhELElBQUEsNENBQVksR0FBRSxDQUFDO0FBQ2YsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFckMsc0RBQW9DO0FBQ3BDLCtDQUE2QjtBQUM3QixrREFBZ0M7QUFDaEMsbURBQWlDO0FBQ2pDLGlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluaXRCVENDdXJ2ZSB9IGZyb20gJ0BiaXRnby1iZXRhL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcbmltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbml0QlRDQ3VydmUoKTtcbmJpdGNvaW5qc2xpYi5pbml0RWNjTGliKHV0eG9saWIuZWNjKTtcblxuZXhwb3J0ICogZnJvbSAnLi9kZWxlZ2F0aW9uTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vc3Rha2luZ01hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi91bmRlbGVnYXRpb24nO1xuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Descriptor, ast } from '@bitgo/wasm-miniscript';
|
|
2
|
+
type ParsedStakingDescriptor = {
|
|
3
|
+
slashingMiniscriptNode: ast.MiniscriptNode;
|
|
4
|
+
unbondingMiniscriptNode: ast.MiniscriptNode;
|
|
5
|
+
timelockMiniscriptNode: ast.MiniscriptNode;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @return parsed staking descriptor components or null if the descriptor does not match the expected staking pattern.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseStakingDescriptor(descriptor: Descriptor | ast.DescriptorNode): ParsedStakingDescriptor | null;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=parseDescriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseDescriptor.d.ts","sourceRoot":"","sources":["../../../src/babylon/parseDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAKzD,KAAK,uBAAuB,GAAG;IAC7B,sBAAsB,EAAE,GAAG,CAAC,cAAc,CAAC;IAC3C,uBAAuB,EAAE,GAAG,CAAC,cAAc,CAAC;IAC5C,sBAAsB,EAAE,GAAG,CAAC,cAAc,CAAC;CAC5C,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,GAAG,CAAC,cAAc,GAAG,uBAAuB,GAAG,IAAI,CAyElH"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseStakingDescriptor = parseStakingDescriptor;
|
|
4
|
+
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
5
|
+
const descriptor_1 = require("@bitgo-beta/utxo-core/descriptor");
|
|
6
|
+
const descriptor_2 = require("./descriptor");
|
|
7
|
+
/**
|
|
8
|
+
* @return parsed staking descriptor components or null if the descriptor does not match the expected staking pattern.
|
|
9
|
+
*/
|
|
10
|
+
function parseStakingDescriptor(descriptor) {
|
|
11
|
+
const pattern = {
|
|
12
|
+
tr: [
|
|
13
|
+
(0, descriptor_2.getUnspendableKey)(),
|
|
14
|
+
[{ $var: 'slashingMiniscriptNode' }, [{ $var: 'unbondingMiniscriptNode' }, { $var: 'timelockMiniscriptNode' }]],
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
const matcher = new descriptor_1.PatternMatcher();
|
|
18
|
+
const descriptorNode = descriptor instanceof wasm_miniscript_1.Descriptor ? wasm_miniscript_1.ast.fromDescriptor(descriptor) : descriptor;
|
|
19
|
+
const result = matcher.match(descriptorNode, pattern);
|
|
20
|
+
if (!result) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const slashingNode = result.slashingMiniscriptNode;
|
|
24
|
+
const unbondingNode = result.unbondingMiniscriptNode;
|
|
25
|
+
const timelockNode = result.timelockMiniscriptNode;
|
|
26
|
+
// Verify slashing node shape: and_v([and_v([pk, pk/multi_a]), multi_a])
|
|
27
|
+
const slashingPattern = {
|
|
28
|
+
and_v: [
|
|
29
|
+
{
|
|
30
|
+
and_v: [{ 'v:pk': { $var: 'stakerKey1' } }, { $var: 'finalityProviderKeyOrMulti' }],
|
|
31
|
+
},
|
|
32
|
+
{ multi_a: { $var: 'covenantMulti' } },
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
const slashingMatch = matcher.match(slashingNode, slashingPattern);
|
|
36
|
+
if (!slashingMatch) {
|
|
37
|
+
throw new Error('Slashing node does not match expected pattern');
|
|
38
|
+
}
|
|
39
|
+
// Verify unbonding node shape: and_v([pk, multi_a])
|
|
40
|
+
const unbondingPattern = {
|
|
41
|
+
and_v: [{ 'v:pk': { $var: 'stakerKey2' } }, { multi_a: { $var: 'covenantMulti2' } }],
|
|
42
|
+
};
|
|
43
|
+
const unbondingMatch = matcher.match(unbondingNode, unbondingPattern);
|
|
44
|
+
if (!unbondingMatch) {
|
|
45
|
+
throw new Error('Unbonding node does not match expected pattern');
|
|
46
|
+
}
|
|
47
|
+
// Verify unbonding timelock node shape: and_v([pk, older])
|
|
48
|
+
const timelockPattern = {
|
|
49
|
+
and_v: [{ 'v:pk': { $var: 'stakerKey3' } }, { older: { $var: 'unbondingTimeLockValue' } }],
|
|
50
|
+
};
|
|
51
|
+
const timelockMatch = matcher.match(timelockNode, timelockPattern);
|
|
52
|
+
if (!timelockMatch) {
|
|
53
|
+
throw new Error('Unbonding timelock node does not match expected pattern');
|
|
54
|
+
}
|
|
55
|
+
// Verify all staker keys are the same
|
|
56
|
+
if (slashingMatch.stakerKey1 !== unbondingMatch.stakerKey2 ||
|
|
57
|
+
unbondingMatch.stakerKey2 !== timelockMatch.stakerKey3) {
|
|
58
|
+
throw new Error('Staker keys must be identical across all nodes');
|
|
59
|
+
}
|
|
60
|
+
// Verify timelock value is a number
|
|
61
|
+
if (typeof timelockMatch.unbondingTimeLockValue !== 'number') {
|
|
62
|
+
throw new Error('Unbonding timelock value must be a number');
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
slashingMiniscriptNode: slashingNode,
|
|
66
|
+
unbondingMiniscriptNode: unbondingNode,
|
|
67
|
+
timelockMiniscriptNode: timelockNode,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VEZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhYnlsb24vcGFyc2VEZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esd0RBeUVDO0FBdkZELDREQUF5RDtBQUN6RCxpRUFBMkU7QUFFM0UsNkNBQWlEO0FBUWpEOztHQUVHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsVUFBMkM7SUFDaEYsTUFBTSxPQUFPLEdBQVk7UUFDdkIsRUFBRSxFQUFFO1lBQ0YsSUFBQSw4QkFBaUIsR0FBRTtZQUNuQixDQUFDLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztTQUNoSDtLQUNGLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxJQUFJLDJCQUFjLEVBQUUsQ0FBQztJQUNyQyxNQUFNLGNBQWMsR0FBRyxVQUFVLFlBQVksNEJBQVUsQ0FBQyxDQUFDLENBQUMscUJBQUcsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUN0RyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV0RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsc0JBQTRDLENBQUM7SUFDekUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLHVCQUE2QyxDQUFDO0lBQzNFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxzQkFBNEMsQ0FBQztJQUV6RSx3RUFBd0U7SUFDeEUsTUFBTSxlQUFlLEdBQVk7UUFDL0IsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBRSxDQUFDO2FBQ3BGO1lBQ0QsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUU7U0FDdkM7S0FDRixDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELE1BQU0sZ0JBQWdCLEdBQVk7UUFDaEMsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7S0FDckYsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDdEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsMkRBQTJEO0lBQzNELE1BQU0sZUFBZSxHQUFZO1FBQy9CLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO0tBQzNGLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsSUFDRSxhQUFhLENBQUMsVUFBVSxLQUFLLGNBQWMsQ0FBQyxVQUFVO1FBQ3RELGNBQWMsQ0FBQyxVQUFVLEtBQUssYUFBYSxDQUFDLFVBQVUsRUFDdEQsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLElBQUksT0FBTyxhQUFhLENBQUMsc0JBQXNCLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxPQUFPO1FBQ0wsc0JBQXNCLEVBQUUsWUFBWTtRQUNwQyx1QkFBdUIsRUFBRSxhQUFhO1FBQ3RDLHNCQUFzQixFQUFFLFlBQVk7S0FDckMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmlwdG9yLCBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IFBhdHRlcm5NYXRjaGVyLCBQYXR0ZXJuIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyBnZXRVbnNwZW5kYWJsZUtleSB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5cbnR5cGUgUGFyc2VkU3Rha2luZ0Rlc2NyaXB0b3IgPSB7XG4gIHNsYXNoaW5nTWluaXNjcmlwdE5vZGU6IGFzdC5NaW5pc2NyaXB0Tm9kZTtcbiAgdW5ib25kaW5nTWluaXNjcmlwdE5vZGU6IGFzdC5NaW5pc2NyaXB0Tm9kZTtcbiAgdGltZWxvY2tNaW5pc2NyaXB0Tm9kZTogYXN0Lk1pbmlzY3JpcHROb2RlO1xufTtcblxuLyoqXG4gKiBAcmV0dXJuIHBhcnNlZCBzdGFraW5nIGRlc2NyaXB0b3IgY29tcG9uZW50cyBvciBudWxsIGlmIHRoZSBkZXNjcmlwdG9yIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBzdGFraW5nIHBhdHRlcm4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0YWtpbmdEZXNjcmlwdG9yKGRlc2NyaXB0b3I6IERlc2NyaXB0b3IgfCBhc3QuRGVzY3JpcHRvck5vZGUpOiBQYXJzZWRTdGFraW5nRGVzY3JpcHRvciB8IG51bGwge1xuICBjb25zdCBwYXR0ZXJuOiBQYXR0ZXJuID0ge1xuICAgIHRyOiBbXG4gICAgICBnZXRVbnNwZW5kYWJsZUtleSgpLFxuICAgICAgW3sgJHZhcjogJ3NsYXNoaW5nTWluaXNjcmlwdE5vZGUnIH0sIFt7ICR2YXI6ICd1bmJvbmRpbmdNaW5pc2NyaXB0Tm9kZScgfSwgeyAkdmFyOiAndGltZWxvY2tNaW5pc2NyaXB0Tm9kZScgfV1dLFxuICAgIF0sXG4gIH07XG5cbiAgY29uc3QgbWF0Y2hlciA9IG5ldyBQYXR0ZXJuTWF0Y2hlcigpO1xuICBjb25zdCBkZXNjcmlwdG9yTm9kZSA9IGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBEZXNjcmlwdG9yID8gYXN0LmZyb21EZXNjcmlwdG9yKGRlc2NyaXB0b3IpIDogZGVzY3JpcHRvcjtcbiAgY29uc3QgcmVzdWx0ID0gbWF0Y2hlci5tYXRjaChkZXNjcmlwdG9yTm9kZSwgcGF0dGVybik7XG5cbiAgaWYgKCFyZXN1bHQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHNsYXNoaW5nTm9kZSA9IHJlc3VsdC5zbGFzaGluZ01pbmlzY3JpcHROb2RlIGFzIGFzdC5NaW5pc2NyaXB0Tm9kZTtcbiAgY29uc3QgdW5ib25kaW5nTm9kZSA9IHJlc3VsdC51bmJvbmRpbmdNaW5pc2NyaXB0Tm9kZSBhcyBhc3QuTWluaXNjcmlwdE5vZGU7XG4gIGNvbnN0IHRpbWVsb2NrTm9kZSA9IHJlc3VsdC50aW1lbG9ja01pbmlzY3JpcHROb2RlIGFzIGFzdC5NaW5pc2NyaXB0Tm9kZTtcblxuICAvLyBWZXJpZnkgc2xhc2hpbmcgbm9kZSBzaGFwZTogYW5kX3YoW2FuZF92KFtwaywgcGsvbXVsdGlfYV0pLCBtdWx0aV9hXSlcbiAgY29uc3Qgc2xhc2hpbmdQYXR0ZXJuOiBQYXR0ZXJuID0ge1xuICAgIGFuZF92OiBbXG4gICAgICB7XG4gICAgICAgIGFuZF92OiBbeyAndjpwayc6IHsgJHZhcjogJ3N0YWtlcktleTEnIH0gfSwgeyAkdmFyOiAnZmluYWxpdHlQcm92aWRlcktleU9yTXVsdGknIH1dLFxuICAgICAgfSxcbiAgICAgIHsgbXVsdGlfYTogeyAkdmFyOiAnY292ZW5hbnRNdWx0aScgfSB9LFxuICAgIF0sXG4gIH07XG5cbiAgY29uc3Qgc2xhc2hpbmdNYXRjaCA9IG1hdGNoZXIubWF0Y2goc2xhc2hpbmdOb2RlLCBzbGFzaGluZ1BhdHRlcm4pO1xuICBpZiAoIXNsYXNoaW5nTWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NsYXNoaW5nIG5vZGUgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgcGF0dGVybicpO1xuICB9XG5cbiAgLy8gVmVyaWZ5IHVuYm9uZGluZyBub2RlIHNoYXBlOiBhbmRfdihbcGssIG11bHRpX2FdKVxuICBjb25zdCB1bmJvbmRpbmdQYXR0ZXJuOiBQYXR0ZXJuID0ge1xuICAgIGFuZF92OiBbeyAndjpwayc6IHsgJHZhcjogJ3N0YWtlcktleTInIH0gfSwgeyBtdWx0aV9hOiB7ICR2YXI6ICdjb3ZlbmFudE11bHRpMicgfSB9XSxcbiAgfTtcblxuICBjb25zdCB1bmJvbmRpbmdNYXRjaCA9IG1hdGNoZXIubWF0Y2godW5ib25kaW5nTm9kZSwgdW5ib25kaW5nUGF0dGVybik7XG4gIGlmICghdW5ib25kaW5nTWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYm9uZGluZyBub2RlIGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkIHBhdHRlcm4nKTtcbiAgfVxuXG4gIC8vIFZlcmlmeSB1bmJvbmRpbmcgdGltZWxvY2sgbm9kZSBzaGFwZTogYW5kX3YoW3BrLCBvbGRlcl0pXG4gIGNvbnN0IHRpbWVsb2NrUGF0dGVybjogUGF0dGVybiA9IHtcbiAgICBhbmRfdjogW3sgJ3Y6cGsnOiB7ICR2YXI6ICdzdGFrZXJLZXkzJyB9IH0sIHsgb2xkZXI6IHsgJHZhcjogJ3VuYm9uZGluZ1RpbWVMb2NrVmFsdWUnIH0gfV0sXG4gIH07XG5cbiAgY29uc3QgdGltZWxvY2tNYXRjaCA9IG1hdGNoZXIubWF0Y2godGltZWxvY2tOb2RlLCB0aW1lbG9ja1BhdHRlcm4pO1xuICBpZiAoIXRpbWVsb2NrTWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYm9uZGluZyB0aW1lbG9jayBub2RlIGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkIHBhdHRlcm4nKTtcbiAgfVxuXG4gIC8vIFZlcmlmeSBhbGwgc3Rha2VyIGtleXMgYXJlIHRoZSBzYW1lXG4gIGlmIChcbiAgICBzbGFzaGluZ01hdGNoLnN0YWtlcktleTEgIT09IHVuYm9uZGluZ01hdGNoLnN0YWtlcktleTIgfHxcbiAgICB1bmJvbmRpbmdNYXRjaC5zdGFrZXJLZXkyICE9PSB0aW1lbG9ja01hdGNoLnN0YWtlcktleTNcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTdGFrZXIga2V5cyBtdXN0IGJlIGlkZW50aWNhbCBhY3Jvc3MgYWxsIG5vZGVzJyk7XG4gIH1cblxuICAvLyBWZXJpZnkgdGltZWxvY2sgdmFsdWUgaXMgYSBudW1iZXJcbiAgaWYgKHR5cGVvZiB0aW1lbG9ja01hdGNoLnVuYm9uZGluZ1RpbWVMb2NrVmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmJvbmRpbmcgdGltZWxvY2sgdmFsdWUgbXVzdCBiZSBhIG51bWJlcicpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzbGFzaGluZ01pbmlzY3JpcHROb2RlOiBzbGFzaGluZ05vZGUsXG4gICAgdW5ib25kaW5nTWluaXNjcmlwdE5vZGU6IHVuYm9uZGluZ05vZGUsXG4gICAgdGltZWxvY2tNaW5pc2NyaXB0Tm9kZTogdGltZWxvY2tOb2RlLFxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as t from 'io-ts';
|
|
2
|
+
import { PartialSig } from 'bip174/src/lib/interfaces';
|
|
3
|
+
/** As returned by https://babylon.nodes.guru/api#/Query/BTCDelegation */
|
|
4
|
+
export declare const Signature: t.TypeC<{
|
|
5
|
+
pk: t.StringC;
|
|
6
|
+
sig: t.StringC;
|
|
7
|
+
}>;
|
|
8
|
+
/** As returned by https://babylon.nodes.guru/api#/Query/BTCDelegation */
|
|
9
|
+
export declare const UndelegationResponse: t.TypeC<{
|
|
10
|
+
/** Network-formatted transaction hex */
|
|
11
|
+
unbonding_tx_hex: t.StringC;
|
|
12
|
+
/** List of signatures for the unbonding covenant */
|
|
13
|
+
covenant_unbonding_sig_list: t.ArrayC<t.TypeC<{
|
|
14
|
+
pk: t.StringC;
|
|
15
|
+
sig: t.StringC;
|
|
16
|
+
}>>;
|
|
17
|
+
}>;
|
|
18
|
+
export type UndelegationResponse = t.TypeOf<typeof UndelegationResponse>;
|
|
19
|
+
/** Converts a gRPC signature to a PartialSig as used by bitcoinjs-lib and utxo-lib */
|
|
20
|
+
export declare function toPartialSig(grpcSig: {
|
|
21
|
+
pk: string;
|
|
22
|
+
sig: string;
|
|
23
|
+
}): PartialSig;
|
|
24
|
+
//# sourceMappingURL=UndelegationResponse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UndelegationResponse.d.ts","sourceRoot":"","sources":["../../../../src/babylon/undelegation/UndelegationResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;EAAuD,CAAC;AAE9E,yEAAyE;AACzE,eAAO,MAAM,oBAAoB;IAE7B,wCAAwC;;IAExC,oDAAoD;;;;;EAIvD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAK7E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
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.UndelegationResponse = exports.Signature = void 0;
|
|
37
|
+
exports.toPartialSig = toPartialSig;
|
|
38
|
+
const t = __importStar(require("io-ts"));
|
|
39
|
+
/** As returned by https://babylon.nodes.guru/api#/Query/BTCDelegation */
|
|
40
|
+
exports.Signature = t.type({ pk: t.string, sig: t.string }, 'Signature');
|
|
41
|
+
/** As returned by https://babylon.nodes.guru/api#/Query/BTCDelegation */
|
|
42
|
+
exports.UndelegationResponse = t.type({
|
|
43
|
+
/** Network-formatted transaction hex */
|
|
44
|
+
unbonding_tx_hex: t.string,
|
|
45
|
+
/** List of signatures for the unbonding covenant */
|
|
46
|
+
covenant_unbonding_sig_list: t.array(exports.Signature),
|
|
47
|
+
}, 'UndelegationResponse');
|
|
48
|
+
/** Converts a gRPC signature to a PartialSig as used by bitcoinjs-lib and utxo-lib */
|
|
49
|
+
function toPartialSig(grpcSig) {
|
|
50
|
+
return {
|
|
51
|
+
pubkey: Buffer.from(grpcSig.pk, 'hex'),
|
|
52
|
+
signature: Buffer.from(grpcSig.sig, 'base64'),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5kZWxlZ2F0aW9uUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFieWxvbi91bmRlbGVnYXRpb24vVW5kZWxlZ2F0aW9uUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLG9DQUtDO0FBekJELHlDQUEyQjtBQUczQix5RUFBeUU7QUFDNUQsUUFBQSxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFOUUseUVBQXlFO0FBQzVELFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDeEM7SUFDRSx3Q0FBd0M7SUFDeEMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDMUIsb0RBQW9EO0lBQ3BELDJCQUEyQixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQVMsQ0FBQztDQUNoRCxFQUNELHNCQUFzQixDQUN2QixDQUFDO0FBSUYsc0ZBQXNGO0FBQ3RGLFNBQWdCLFlBQVksQ0FBQyxPQUFvQztJQUMvRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7S0FDOUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IFBhcnRpYWxTaWcgfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9pbnRlcmZhY2VzJztcblxuLyoqIEFzIHJldHVybmVkIGJ5IGh0dHBzOi8vYmFieWxvbi5ub2Rlcy5ndXJ1L2FwaSMvUXVlcnkvQlRDRGVsZWdhdGlvbiAqL1xuZXhwb3J0IGNvbnN0IFNpZ25hdHVyZSA9IHQudHlwZSh7IHBrOiB0LnN0cmluZywgc2lnOiB0LnN0cmluZyB9LCAnU2lnbmF0dXJlJyk7XG5cbi8qKiBBcyByZXR1cm5lZCBieSBodHRwczovL2JhYnlsb24ubm9kZXMuZ3VydS9hcGkjL1F1ZXJ5L0JUQ0RlbGVnYXRpb24gKi9cbmV4cG9ydCBjb25zdCBVbmRlbGVnYXRpb25SZXNwb25zZSA9IHQudHlwZShcbiAge1xuICAgIC8qKiBOZXR3b3JrLWZvcm1hdHRlZCB0cmFuc2FjdGlvbiBoZXggKi9cbiAgICB1bmJvbmRpbmdfdHhfaGV4OiB0LnN0cmluZyxcbiAgICAvKiogTGlzdCBvZiBzaWduYXR1cmVzIGZvciB0aGUgdW5ib25kaW5nIGNvdmVuYW50ICovXG4gICAgY292ZW5hbnRfdW5ib25kaW5nX3NpZ19saXN0OiB0LmFycmF5KFNpZ25hdHVyZSksXG4gIH0sXG4gICdVbmRlbGVnYXRpb25SZXNwb25zZSdcbik7XG5cbmV4cG9ydCB0eXBlIFVuZGVsZWdhdGlvblJlc3BvbnNlID0gdC5UeXBlT2Y8dHlwZW9mIFVuZGVsZWdhdGlvblJlc3BvbnNlPjtcblxuLyoqIENvbnZlcnRzIGEgZ1JQQyBzaWduYXR1cmUgdG8gYSBQYXJ0aWFsU2lnIGFzIHVzZWQgYnkgYml0Y29pbmpzLWxpYiBhbmQgdXR4by1saWIgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcnRpYWxTaWcoZ3JwY1NpZzogeyBwazogc3RyaW5nOyBzaWc6IHN0cmluZyB9KTogUGFydGlhbFNpZyB7XG4gIHJldHVybiB7XG4gICAgcHVia2V5OiBCdWZmZXIuZnJvbShncnBjU2lnLnBrLCAnaGV4JyksXG4gICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbShncnBjU2lnLnNpZywgJ2Jhc2U2NCcpLFxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/babylon/undelegation/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./unbonding"), exports);
|
|
18
|
+
__exportStar(require("./UndelegationResponse"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFieWxvbi91bmRlbGVnYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1Qix5REFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VuYm9uZGluZyc7XG5leHBvcnQgKiBmcm9tICcuL1VuZGVsZWdhdGlvblJlc3BvbnNlJztcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { PartialSig, WitnessUtxo } from 'bip174/src/lib/interfaces';
|
|
3
|
+
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
4
|
+
/**
|
|
5
|
+
* Asserts that the provided signatures are valid for the given PSBT input.
|
|
6
|
+
*/
|
|
7
|
+
export declare function assertValidSignatures(psbt: utxolib.bitgo.UtxoPsbt, inputIndex: number, signatures: PartialSig[]): void;
|
|
8
|
+
/**
|
|
9
|
+
* @return unsigned PSBT for an unbonding transaction
|
|
10
|
+
*/
|
|
11
|
+
export declare function toUnbondingPsbt(tx: utxolib.bitgo.UtxoTransaction<bigint>, witnessUtxo: WitnessUtxo, stakingDescriptor: Descriptor, network: utxolib.Network): utxolib.bitgo.UtxoPsbt;
|
|
12
|
+
/**
|
|
13
|
+
* @return PSBT for an unbonding transaction with signatures
|
|
14
|
+
*/
|
|
15
|
+
export declare function toUnbondingPsbtWithSignatures(tx: utxolib.bitgo.UtxoTransaction<bigint>, witnessUtxo: WitnessUtxo, stakingDescriptor: Descriptor, signatures: PartialSig[], network: utxolib.Network): utxolib.bitgo.UtxoPsbt;
|
|
16
|
+
//# sourceMappingURL=unbonding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unbonding.d.ts","sourceRoot":"","sources":["../../../../src/babylon/undelegation/unbonding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAmB,MAAM,wBAAwB,CAAC;AAiBrE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI,CAON;AAQD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,UAAU,EAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,KAAK,CAAC,QAAQ,CA4BxB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,UAAU,EAC7B,UAAU,EAAE,UAAU,EAAE,EACxB,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAMxB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.assertValidSignatures = assertValidSignatures;
|
|
40
|
+
exports.toUnbondingPsbt = toUnbondingPsbt;
|
|
41
|
+
exports.toUnbondingPsbtWithSignatures = toUnbondingPsbtWithSignatures;
|
|
42
|
+
const assert_1 = __importDefault(require("assert"));
|
|
43
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
44
|
+
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
45
|
+
const descriptor_1 = require("@bitgo-beta/utxo-core/descriptor");
|
|
46
|
+
const parseDescriptor_1 = require("../parseDescriptor");
|
|
47
|
+
/**
|
|
48
|
+
* Adds covenant signatures to a PSBT input.
|
|
49
|
+
*/
|
|
50
|
+
function addCovenantSignatures(psbt, inputIndex, signatures) {
|
|
51
|
+
const input = psbt.data.inputs[inputIndex];
|
|
52
|
+
(0, assert_1.default)(input.tapLeafScript, 'Input must have tapLeafScript');
|
|
53
|
+
(0, assert_1.default)(input.tapLeafScript.length === 1, 'Input must have exactly one tapLeafScript');
|
|
54
|
+
const [{ controlBlock, script }] = input.tapLeafScript;
|
|
55
|
+
const leafHash = utxolib.taproot.getTapleafHash(utxolib.ecc, controlBlock, script);
|
|
56
|
+
psbt.updateInput(inputIndex, { tapScriptSig: signatures.map((s) => ({ ...s, leafHash })) });
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Asserts that the provided signatures are valid for the given PSBT input.
|
|
60
|
+
*/
|
|
61
|
+
function assertValidSignatures(psbt, inputIndex, signatures) {
|
|
62
|
+
signatures.forEach((s) => {
|
|
63
|
+
(0, assert_1.default)(psbt.validateTaprootSignaturesOfInput(inputIndex, s.pubkey), `Signature validation failed for ${s.pubkey.toString('hex')}`);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function getUnbondingScript(stakingDescriptor) {
|
|
67
|
+
const parsedDescriptor = (0, parseDescriptor_1.parseStakingDescriptor)(stakingDescriptor);
|
|
68
|
+
(0, assert_1.default)(parsedDescriptor, 'Invalid staking descriptor');
|
|
69
|
+
return wasm_miniscript_1.Miniscript.fromString(wasm_miniscript_1.ast.formatNode(parsedDescriptor.unbondingMiniscriptNode), 'tap');
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @return unsigned PSBT for an unbonding transaction
|
|
73
|
+
*/
|
|
74
|
+
function toUnbondingPsbt(tx, witnessUtxo, stakingDescriptor, network) {
|
|
75
|
+
const unbondingScript = getUnbondingScript(stakingDescriptor);
|
|
76
|
+
const psbt = new utxolib.Psbt({ network });
|
|
77
|
+
psbt.setVersion(tx.version);
|
|
78
|
+
psbt.setLocktime(tx.locktime);
|
|
79
|
+
psbt.addOutputs(tx.outs.map((output) => ({
|
|
80
|
+
script: output.script,
|
|
81
|
+
value: BigInt(output.value),
|
|
82
|
+
})));
|
|
83
|
+
(0, assert_1.default)(tx.ins.length === 1);
|
|
84
|
+
const input = tx.ins[0];
|
|
85
|
+
psbt.addInput({
|
|
86
|
+
hash: input.hash,
|
|
87
|
+
index: input.index,
|
|
88
|
+
sequence: input.sequence,
|
|
89
|
+
witnessUtxo,
|
|
90
|
+
});
|
|
91
|
+
const wrappedPsbt = (0, descriptor_1.toWrappedPsbt)(psbt);
|
|
92
|
+
wrappedPsbt.updateInputWithDescriptor(0, stakingDescriptor);
|
|
93
|
+
const unwrapped = (0, descriptor_1.toUtxoPsbt)(wrappedPsbt, network);
|
|
94
|
+
(0, assert_1.default)(unwrapped.data.inputs.length === 1, 'Unbonding transaction must have exactly one input');
|
|
95
|
+
const unwrappedInputData = unwrapped.data.inputs[0];
|
|
96
|
+
(0, assert_1.default)(unwrappedInputData.tapLeafScript);
|
|
97
|
+
const unwrappedUnbond = (0, descriptor_1.findTapLeafScript)(unwrappedInputData.tapLeafScript, unbondingScript);
|
|
98
|
+
unwrappedInputData.tapLeafScript = [unwrappedUnbond];
|
|
99
|
+
return unwrapped;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @return PSBT for an unbonding transaction with signatures
|
|
103
|
+
*/
|
|
104
|
+
function toUnbondingPsbtWithSignatures(tx, witnessUtxo, stakingDescriptor, signatures, network) {
|
|
105
|
+
const psbt = toUnbondingPsbt(tx, witnessUtxo, stakingDescriptor, network);
|
|
106
|
+
(0, assert_1.default)(psbt.data.inputs.length === 1, 'Unbonding transaction must have exactly one input');
|
|
107
|
+
addCovenantSignatures(psbt, 0, signatures);
|
|
108
|
+
assertValidSignatures(psbt, 0, signatures);
|
|
109
|
+
return psbt;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5ib25kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhYnlsb24vdW5kZWxlZ2F0aW9uL3VuYm9uZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSxzREFXQztBQVdELDBDQWlDQztBQUtELHNFQVlDO0FBaEdELG9EQUE0QjtBQUU1Qiw4REFBZ0Q7QUFFaEQsNERBQXFFO0FBQ3JFLGlFQUFnRztBQUVoRyx3REFBNEQ7QUFFNUQ7O0dBRUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLElBQTRCLEVBQUUsVUFBa0IsRUFBRSxVQUF3QjtJQUN2RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzdELElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztJQUN0RixNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzlGLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFC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QUNILFNBQWdCLDZCQUE2QixDQUMzQyxFQUF5QyxFQUN6QyxXQUF3QixFQUN4QixpQkFBNkIsRUFDN0IsVUFBd0IsRUFDeEIsT0FBd0I7SUFFeEIsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUUsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsbURBQW1ELENBQUMsQ0FBQztJQUMzRixxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0MsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IFBhcnRpYWxTaWcsIFdpdG5lc3NVdHhvIH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEZXNjcmlwdG9yLCBNaW5pc2NyaXB0LCBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IGZpbmRUYXBMZWFmU2NyaXB0LCB0b1V0eG9Qc2J0LCB0b1dyYXBwZWRQc2J0IH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyBwYXJzZVN0YWtpbmdEZXNjcmlwdG9yIH0gZnJvbSAnLi4vcGFyc2VEZXNjcmlwdG9yJztcblxuLyoqXG4gKiBBZGRzIGNvdmVuYW50IHNpZ25hdHVyZXMgdG8gYSBQU0JUIGlucHV0LlxuICovXG5mdW5jdGlvbiBhZGRDb3ZlbmFudFNpZ25hdHVyZXMocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCwgaW5wdXRJbmRleDogbnVtYmVyLCBzaWduYXR1cmVzOiBQYXJ0aWFsU2lnW10pOiB2b2lkIHtcbiAgY29uc3QgaW5wdXQgPSBwc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdO1xuICBhc3NlcnQoaW5wdXQudGFwTGVhZlNjcmlwdCwgJ0lucHV0IG11c3QgaGF2ZSB0YXBMZWFmU2NyaXB0Jyk7XG4gIGFzc2VydChpbnB1dC50YXBMZWFmU2NyaXB0Lmxlbmd0aCA9PT0gMSwgJ0lucHV0IG11c3QgaGF2ZSBleGFjdGx5IG9uZSB0YXBMZWFmU2NyaXB0Jyk7XG4gIGNvbnN0IFt7IGNvbnRyb2xCbG9jaywgc2NyaXB0IH1dID0gaW5wdXQudGFwTGVhZlNjcmlwdDtcbiAgY29uc3QgbGVhZkhhc2ggPSB1dHhvbGliLnRhcHJvb3QuZ2V0VGFwbGVhZkhhc2godXR4b2xpYi5lY2MsIGNvbnRyb2xCbG9jaywgc2NyaXB0KTtcbiAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHRhcFNjcmlwdFNpZzogc2lnbmF0dXJlcy5tYXAoKHMpID0+ICh7IC4uLnMsIGxlYWZIYXNoIH0pKSB9KTtcbn1cblxuLyoqXG4gKiBBc3NlcnRzIHRoYXQgdGhlIHByb3ZpZGVkIHNpZ25hdHVyZXMgYXJlIHZhbGlkIGZvciB0aGUgZ2l2ZW4gUFNCVCBpbnB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFZhbGlkU2lnbmF0dXJlcyhcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBzaWduYXR1cmVzOiBQYXJ0aWFsU2lnW11cbik6IHZvaWQge1xuICBzaWduYXR1cmVzLmZvckVhY2goKHMpID0+IHtcbiAgICBhc3NlcnQoXG4gICAgICBwc2J0LnZhbGlkYXRlVGFwcm9vdFNpZ25hdHVyZXNPZklucHV0KGlucHV0SW5kZXgsIHMucHVia2V5KSxcbiAgICAgIGBTaWduYXR1cmUgdmFsaWRhdGlvbiBmYWlsZWQgZm9yICR7cy5wdWJrZXkudG9TdHJpbmcoJ2hleCcpfWBcbiAgICApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0VW5ib25kaW5nU2NyaXB0KHN0YWtpbmdEZXNjcmlwdG9yOiBEZXNjcmlwdG9yKTogTWluaXNjcmlwdCB7XG4gIGNvbnN0IHBhcnNlZERlc2NyaXB0b3IgPSBwYXJzZVN0YWtpbmdEZXNjcmlwdG9yKHN0YWtpbmdEZXNjcmlwdG9yKTtcbiAgYXNzZXJ0KHBhcnNlZERlc2NyaXB0b3IsICdJbnZhbGlkIHN0YWtpbmcgZGVzY3JpcHRvcicpO1xuICByZXR1cm4gTWluaXNjcmlwdC5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHBhcnNlZERlc2NyaXB0b3IudW5ib25kaW5nTWluaXNjcmlwdE5vZGUpLCAndGFwJyk7XG59XG5cbi8qKlxuICogQHJldHVybiB1bnNpZ25lZCBQU0JUIGZvciBhbiB1bmJvbmRpbmcgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5ib25kaW5nUHNidChcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHdpdG5lc3NVdHhvOiBXaXRuZXNzVXR4byxcbiAgc3Rha2luZ0Rlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29ya1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHVuYm9uZGluZ1NjcmlwdCA9IGdldFVuYm9uZGluZ1NjcmlwdChzdGFraW5nRGVzY3JpcHRvcik7XG4gIGNvbnN0IHBzYnQgPSBuZXcgdXR4b2xpYi5Qc2J0KHsgbmV0d29yayB9KTtcbiAgcHNidC5zZXRWZXJzaW9uKHR4LnZlcnNpb24pO1xuICBwc2J0LnNldExvY2t0aW1lKHR4LmxvY2t0aW1lKTtcbiAgcHNidC5hZGRPdXRwdXRzKFxuICAgIHR4Lm91dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICBzY3JpcHQ6IG91dHB1dC5zY3JpcHQsXG4gICAgICB2YWx1ZTogQmlnSW50KG91dHB1dC52YWx1ZSksXG4gICAgfSkpXG4gICk7XG4gIGFzc2VydCh0eC5pbnMubGVuZ3RoID09PSAxKTtcbiAgY29uc3QgaW5wdXQgPSB0eC5pbnNbMF07XG4gIHBzYnQuYWRkSW5wdXQoe1xuICAgIGhhc2g6IGlucHV0Lmhhc2gsXG4gICAgaW5kZXg6IGlucHV0LmluZGV4LFxuICAgIHNlcXVlbmNlOiBpbnB1dC5zZXF1ZW5jZSxcbiAgICB3aXRuZXNzVXR4byxcbiAgfSk7XG4gIGNvbnN0IHdyYXBwZWRQc2J0ID0gdG9XcmFwcGVkUHNidChwc2J0KTtcbiAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcigwLCBzdGFraW5nRGVzY3JpcHRvcik7XG4gIGNvbnN0IHVud3JhcHBlZCA9IHRvVXR4b1BzYnQod3JhcHBlZFBzYnQsIG5ldHdvcmspO1xuICBhc3NlcnQodW53cmFwcGVkLmRhdGEuaW5wdXRzLmxlbmd0aCA9PT0gMSwgJ1VuYm9uZGluZyB0cmFuc2FjdGlvbiBtdXN0IGhhdmUgZXhhY3RseSBvbmUgaW5wdXQnKTtcbiAgY29uc3QgdW53cmFwcGVkSW5wdXREYXRhID0gdW53cmFwcGVkLmRhdGEuaW5wdXRzWzBdO1xuICBhc3NlcnQodW53cmFwcGVkSW5wdXREYXRhLnRhcExlYWZTY3JpcHQpO1xuICBjb25zdCB1bndyYXBwZWRVbmJvbmQgPSBmaW5kVGFwTGVhZlNjcmlwdCh1bndyYXBwZWRJbnB1dERhdGEudGFwTGVhZlNjcmlwdCwgdW5ib25kaW5nU2NyaXB0KTtcbiAgdW53cmFwcGVkSW5wdXREYXRhLnRhcExlYWZTY3JpcHQgPSBbdW53cmFwcGVkVW5ib25kXTtcbiAgcmV0dXJuIHVud3JhcHBlZDtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIFBTQlQgZm9yIGFuIHVuYm9uZGluZyB0cmFuc2FjdGlvbiB3aXRoIHNpZ25hdHVyZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5ib25kaW5nUHNidFdpdGhTaWduYXR1cmVzKFxuICB0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PixcbiAgd2l0bmVzc1V0eG86IFdpdG5lc3NVdHhvLFxuICBzdGFraW5nRGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgc2lnbmF0dXJlczogUGFydGlhbFNpZ1tdLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICBjb25zdCBwc2J0ID0gdG9VbmJvbmRpbmdQc2J0KHR4LCB3aXRuZXNzVXR4bywgc3Rha2luZ0Rlc2NyaXB0b3IsIG5ldHdvcmspO1xuICBhc3NlcnQocHNidC5kYXRhLmlucHV0cy5sZW5ndGggPT09IDEsICdVbmJvbmRpbmcgdHJhbnNhY3Rpb24gbXVzdCBoYXZlIGV4YWN0bHkgb25lIGlucHV0Jyk7XG4gIGFkZENvdmVuYW50U2lnbmF0dXJlcyhwc2J0LCAwLCBzaWduYXR1cmVzKTtcbiAgYXNzZXJ0VmFsaWRTaWduYXR1cmVzKHBzYnQsIDAsIHNpZ25hdHVyZXMpO1xuICByZXR1cm4gcHNidDtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/utxo-staking",
|
|
3
|
-
"version": "1.1.1-beta.
|
|
3
|
+
"version": "1.1.1-beta.458",
|
|
4
4
|
"description": "BitGo SDK for build UTXO staking transactions",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -43,10 +43,11 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@babylonlabs-io/babylon-proto-ts": "1.0.0",
|
|
46
|
-
"@bitgo-beta/babylonlabs-io-btc-staking-ts": "0.4.0-beta.
|
|
47
|
-
"@bitgo-beta/utxo-core": "1.8.1-beta.
|
|
48
|
-
"@bitgo-beta/utxo-lib": "8.0.3-beta.
|
|
46
|
+
"@bitgo-beta/babylonlabs-io-btc-staking-ts": "0.4.0-beta.263",
|
|
47
|
+
"@bitgo-beta/utxo-core": "1.8.1-beta.134",
|
|
48
|
+
"@bitgo-beta/utxo-lib": "8.0.3-beta.1018",
|
|
49
49
|
"@bitgo/wasm-miniscript": "2.0.0-beta.7",
|
|
50
|
+
"bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
|
|
50
51
|
"bip322-js": "^2.0.0",
|
|
51
52
|
"bitcoinjs-lib": "^6.1.7",
|
|
52
53
|
"fp-ts": "^2.16.2",
|
|
@@ -56,5 +57,5 @@
|
|
|
56
57
|
"devDependencies": {
|
|
57
58
|
"yargs": "^17.7.2"
|
|
58
59
|
},
|
|
59
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "ee4a8c9f9238f2b2cc533a4adf06aa59b3b2aae0"
|
|
60
61
|
}
|