@bitgo/sdk-coin-stx 3.12.7 → 3.13.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/dist/src/lib/btcAddressUtils.d.ts +30 -0
- package/dist/src/lib/btcAddressUtils.d.ts.map +1 -0
- package/dist/src/lib/btcAddressUtils.js +134 -0
- package/dist/src/lib/constants.d.ts +2 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +5 -2
- package/dist/src/lib/iface.d.ts +5 -0
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +1 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +2 -1
- package/dist/src/lib/sbtcWithdrawBuilder.d.ts +27 -0
- package/dist/src/lib/sbtcWithdrawBuilder.d.ts.map +1 -0
- package/dist/src/lib/sbtcWithdrawBuilder.js +132 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +2 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +8 -1
- package/dist/src/lib/utils.d.ts +15 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +31 -2
- package/dist/test/unit/btcAddressUtils.d.ts +2 -0
- package/dist/test/unit/btcAddressUtils.d.ts.map +1 -0
- package/dist/test/unit/btcAddressUtils.js +82 -0
- package/dist/test/unit/transactionBuilder/sbtcWithdrawBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/sbtcWithdrawBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/sbtcWithdrawBuilder.js +259 -0
- package/dist/test/unit/util.js +15 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -6
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sBTC address version bytes as defined by the sBTC withdrawal contract.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum SbtcAddressVersion {
|
|
5
|
+
P2PKH = 0,
|
|
6
|
+
P2SH = 1,
|
|
7
|
+
P2WPKH = 4,
|
|
8
|
+
P2WSH = 5,
|
|
9
|
+
P2TR = 6
|
|
10
|
+
}
|
|
11
|
+
interface DecodedBtcAddress {
|
|
12
|
+
version: SbtcAddressVersion;
|
|
13
|
+
hashBytes: Buffer;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Decode a Bitcoin address into an sBTC version byte and hash bytes.
|
|
17
|
+
*
|
|
18
|
+
* @param {string} address - A Bitcoin address (P2PKH, P2SH, P2WPKH, P2WSH, or P2TR)
|
|
19
|
+
* @returns {DecodedBtcAddress} The sBTC version and raw hash bytes
|
|
20
|
+
*/
|
|
21
|
+
export declare function decodeBtcAddress(address: string): DecodedBtcAddress;
|
|
22
|
+
/**
|
|
23
|
+
* Check whether a string is a valid Bitcoin address decodable for sBTC withdrawals.
|
|
24
|
+
*
|
|
25
|
+
* @param {string} address - The address to validate
|
|
26
|
+
* @returns {boolean} true if the address can be decoded
|
|
27
|
+
*/
|
|
28
|
+
export declare function isValidBtcAddress(address: string): boolean;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=btcAddressUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btcAddressUtils.d.ts","sourceRoot":"","sources":["../../../src/lib/btcAddressUtils.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,KAAK,IAAO;IACZ,IAAI,IAAO;IACX,MAAM,IAAO;IACb,KAAK,IAAO;IACZ,IAAI,IAAO;CACZ;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CA4DnE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO1D"}
|
|
@@ -0,0 +1,134 @@
|
|
|
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.SbtcAddressVersion = void 0;
|
|
37
|
+
exports.decodeBtcAddress = decodeBtcAddress;
|
|
38
|
+
exports.isValidBtcAddress = isValidBtcAddress;
|
|
39
|
+
const bs58check = __importStar(require("bs58check"));
|
|
40
|
+
const bech32_1 = require("bech32");
|
|
41
|
+
/**
|
|
42
|
+
* sBTC address version bytes as defined by the sBTC withdrawal contract.
|
|
43
|
+
*/
|
|
44
|
+
var SbtcAddressVersion;
|
|
45
|
+
(function (SbtcAddressVersion) {
|
|
46
|
+
SbtcAddressVersion[SbtcAddressVersion["P2PKH"] = 0] = "P2PKH";
|
|
47
|
+
SbtcAddressVersion[SbtcAddressVersion["P2SH"] = 1] = "P2SH";
|
|
48
|
+
SbtcAddressVersion[SbtcAddressVersion["P2WPKH"] = 4] = "P2WPKH";
|
|
49
|
+
SbtcAddressVersion[SbtcAddressVersion["P2WSH"] = 5] = "P2WSH";
|
|
50
|
+
SbtcAddressVersion[SbtcAddressVersion["P2TR"] = 6] = "P2TR";
|
|
51
|
+
})(SbtcAddressVersion || (exports.SbtcAddressVersion = SbtcAddressVersion = {}));
|
|
52
|
+
const BASE58_MAINNET_P2PKH = 0x00;
|
|
53
|
+
const BASE58_MAINNET_P2SH = 0x05;
|
|
54
|
+
const BASE58_TESTNET_P2PKH = 0x6f;
|
|
55
|
+
const BASE58_TESTNET_P2SH = 0xc4;
|
|
56
|
+
/**
|
|
57
|
+
* Decode a Bitcoin address into an sBTC version byte and hash bytes.
|
|
58
|
+
*
|
|
59
|
+
* @param {string} address - A Bitcoin address (P2PKH, P2SH, P2WPKH, P2WSH, or P2TR)
|
|
60
|
+
* @returns {DecodedBtcAddress} The sBTC version and raw hash bytes
|
|
61
|
+
*/
|
|
62
|
+
function decodeBtcAddress(address) {
|
|
63
|
+
// Try base58check first (P2PKH / P2SH)
|
|
64
|
+
try {
|
|
65
|
+
const decoded = bs58check.decode(address);
|
|
66
|
+
const versionByte = decoded[0];
|
|
67
|
+
const hash = decoded.slice(1);
|
|
68
|
+
if (hash.length !== 20) {
|
|
69
|
+
throw new Error(`Invalid base58check hash length: ${hash.length}`);
|
|
70
|
+
}
|
|
71
|
+
switch (versionByte) {
|
|
72
|
+
case BASE58_MAINNET_P2PKH:
|
|
73
|
+
case BASE58_TESTNET_P2PKH:
|
|
74
|
+
return { version: SbtcAddressVersion.P2PKH, hashBytes: Buffer.from(hash) };
|
|
75
|
+
case BASE58_MAINNET_P2SH:
|
|
76
|
+
case BASE58_TESTNET_P2SH:
|
|
77
|
+
return { version: SbtcAddressVersion.P2SH, hashBytes: Buffer.from(hash) };
|
|
78
|
+
default:
|
|
79
|
+
throw new Error(`Unknown base58check version byte: 0x${versionByte.toString(16)}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
// Not base58check, try bech32/bech32m below
|
|
84
|
+
}
|
|
85
|
+
// Try bech32 (P2WPKH / P2WSH) and bech32m (P2TR)
|
|
86
|
+
let decoded;
|
|
87
|
+
let isBech32m = false;
|
|
88
|
+
try {
|
|
89
|
+
decoded = bech32_1.bech32.decode(address);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
try {
|
|
93
|
+
decoded = bech32_1.bech32m.decode(address);
|
|
94
|
+
isBech32m = true;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
throw new Error(`Unable to decode Bitcoin address: ${address}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const witnessVersion = decoded.words[0];
|
|
101
|
+
const data = Buffer.from(bech32_1.bech32.fromWords(decoded.words.slice(1)));
|
|
102
|
+
if (witnessVersion === 0 && !isBech32m) {
|
|
103
|
+
if (data.length === 20) {
|
|
104
|
+
return { version: SbtcAddressVersion.P2WPKH, hashBytes: data };
|
|
105
|
+
}
|
|
106
|
+
else if (data.length === 32) {
|
|
107
|
+
return { version: SbtcAddressVersion.P2WSH, hashBytes: data };
|
|
108
|
+
}
|
|
109
|
+
throw new Error(`Invalid witness v0 program length: ${data.length}`);
|
|
110
|
+
}
|
|
111
|
+
if (witnessVersion === 1 && isBech32m) {
|
|
112
|
+
if (data.length === 32) {
|
|
113
|
+
return { version: SbtcAddressVersion.P2TR, hashBytes: data };
|
|
114
|
+
}
|
|
115
|
+
throw new Error(`Invalid witness v1 program length: ${data.length}`);
|
|
116
|
+
}
|
|
117
|
+
throw new Error(`Unsupported witness version ${witnessVersion} for address: ${address}`);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Check whether a string is a valid Bitcoin address decodable for sBTC withdrawals.
|
|
121
|
+
*
|
|
122
|
+
* @param {string} address - The address to validate
|
|
123
|
+
* @returns {boolean} true if the address can be decoded
|
|
124
|
+
*/
|
|
125
|
+
function isValidBtcAddress(address) {
|
|
126
|
+
try {
|
|
127
|
+
decodeBtcAddress(address);
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRjQWRkcmVzc1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9idGNBZGRyZXNzVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOEJBLDRDQTREQztBQVFELDhDQU9DO0FBekdELHFEQUF1QztBQUN2QyxtQ0FBeUM7QUFFekM7O0dBRUc7QUFDSCxJQUFZLGtCQU1YO0FBTkQsV0FBWSxrQkFBa0I7SUFDNUIsNkRBQVksQ0FBQTtJQUNaLDJEQUFXLENBQUE7SUFDWCwrREFBYSxDQUFBO0lBQ2IsNkRBQVksQ0FBQTtJQUNaLDJEQUFXLENBQUE7QUFDYixDQUFDLEVBTlcsa0JBQWtCLGtDQUFsQixrQkFBa0IsUUFNN0I7QUFPRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUNsQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUNqQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUNsQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUVqQzs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLE9BQWU7SUFDOUMsdUNBQXVDO0lBQ3ZDLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxRQUFRLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLEtBQUss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QUM7SUFDZixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJzNThjaGVjayBmcm9tICdiczU4Y2hlY2snO1xuaW1wb3J0IHsgYmVjaDMyLCBiZWNoMzJtIH0gZnJvbSAnYmVjaDMyJztcblxuLyoqXG4gKiBzQlRDIGFkZHJlc3MgdmVyc2lvbiBieXRlcyBhcyBkZWZpbmVkIGJ5IHRoZSBzQlRDIHdpdGhkcmF3YWwgY29udHJhY3QuXG4gKi9cbmV4cG9ydCBlbnVtIFNidGNBZGRyZXNzVmVyc2lvbiB7XG4gIFAyUEtIID0gMHgwMCxcbiAgUDJTSCA9IDB4MDEsXG4gIFAyV1BLSCA9IDB4MDQsXG4gIFAyV1NIID0gMHgwNSxcbiAgUDJUUiA9IDB4MDYsXG59XG5cbmludGVyZmFjZSBEZWNvZGVkQnRjQWRkcmVzcyB7XG4gIHZlcnNpb246IFNidGNBZGRyZXNzVmVyc2lvbjtcbiAgaGFzaEJ5dGVzOiBCdWZmZXI7XG59XG5cbmNvbnN0IEJBU0U1OF9NQUlOTkVUX1AyUEtIID0gMHgwMDtcbmNvbnN0IEJBU0U1OF9NQUlOTkVUX1AyU0ggPSAweDA1O1xuY29uc3QgQkFTRTU4X1RFU1RORVRfUDJQS0ggPSAweDZmO1xuY29uc3QgQkFTRTU4X1RFU1RORVRfUDJTSCA9IDB4YzQ7XG5cbi8qKlxuICogRGVjb2RlIGEgQml0Y29pbiBhZGRyZXNzIGludG8gYW4gc0JUQyB2ZXJzaW9uIGJ5dGUgYW5kIGhhc2ggYnl0ZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBBIEJpdGNvaW4gYWRkcmVzcyAoUDJQS0gsIFAyU0gsIFAyV1BLSCwgUDJXU0gsIG9yIFAyVFIpXG4gKiBAcmV0dXJucyB7RGVjb2RlZEJ0Y0FkZHJlc3N9IFRoZSBzQlRDIHZlcnNpb24gYW5kIHJhdyBoYXNoIGJ5dGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCdGNBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IERlY29kZWRCdGNBZGRyZXNzIHtcbiAgLy8gVHJ5IGJhc2U1OGNoZWNrIGZpcnN0IChQMlBLSCAvIFAyU0gpXG4gIHRyeSB7XG4gICAgY29uc3QgZGVjb2RlZCA9IGJzNThjaGVjay5kZWNvZGUoYWRkcmVzcyk7XG4gICAgY29uc3QgdmVyc2lvbkJ5dGUgPSBkZWNvZGVkWzBdO1xuICAgIGNvbnN0IGhhc2ggPSBkZWNvZGVkLnNsaWNlKDEpO1xuXG4gICAgaWYgKGhhc2gubGVuZ3RoICE9PSAyMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGJhc2U1OGNoZWNrIGhhc2ggbGVuZ3RoOiAke2hhc2gubGVuZ3RofWApO1xuICAgIH1cblxuICAgIHN3aXRjaCAodmVyc2lvbkJ5dGUpIHtcbiAgICAgIGNhc2UgQkFTRTU4X01BSU5ORVRfUDJQS0g6XG4gICAgICBjYXNlIEJBU0U1OF9URVNUTkVUX1AyUEtIOlxuICAgICAgICByZXR1cm4geyB2ZXJzaW9uOiBTYnRjQWRkcmVzc1ZlcnNpb24uUDJQS0gsIGhhc2hCeXRlczogQnVmZmVyLmZyb20oaGFzaCkgfTtcbiAgICAgIGNhc2UgQkFTRTU4X01BSU5ORVRfUDJTSDpcbiAgICAgIGNhc2UgQkFTRTU4X1RFU1RORVRfUDJTSDpcbiAgICAgICAgcmV0dXJuIHsgdmVyc2lvbjogU2J0Y0FkZHJlc3NWZXJzaW9uLlAyU0gsIGhhc2hCeXRlczogQnVmZmVyLmZyb20oaGFzaCkgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBiYXNlNThjaGVjayB2ZXJzaW9uIGJ5dGU6IDB4JHt2ZXJzaW9uQnl0ZS50b1N0cmluZygxNil9YCk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gTm90IGJhc2U1OGNoZWNrLCB0cnkgYmVjaDMyL2JlY2gzMm0gYmVsb3dcbiAgfVxuXG4gIC8vIFRyeSBiZWNoMzIgKFAyV1BLSCAvIFAyV1NIKSBhbmQgYmVjaDMybSAoUDJUUilcbiAgbGV0IGRlY29kZWQ6IHsgcHJlZml4OiBzdHJpbmc7IHdvcmRzOiBudW1iZXJbXSB9O1xuICBsZXQgaXNCZWNoMzJtID0gZmFsc2U7XG5cbiAgdHJ5IHtcbiAgICBkZWNvZGVkID0gYmVjaDMyLmRlY29kZShhZGRyZXNzKTtcbiAgfSBjYXRjaCB7XG4gICAgdHJ5IHtcbiAgICAgIGRlY29kZWQgPSBiZWNoMzJtLmRlY29kZShhZGRyZXNzKTtcbiAgICAgIGlzQmVjaDMybSA9IHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBkZWNvZGUgQml0Y29pbiBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgd2l0bmVzc1ZlcnNpb24gPSBkZWNvZGVkLndvcmRzWzBdO1xuICBjb25zdCBkYXRhID0gQnVmZmVyLmZyb20oYmVjaDMyLmZyb21Xb3JkcyhkZWNvZGVkLndvcmRzLnNsaWNlKDEpKSk7XG5cbiAgaWYgKHdpdG5lc3NWZXJzaW9uID09PSAwICYmICFpc0JlY2gzMm0pIHtcbiAgICBpZiAoZGF0YS5sZW5ndGggPT09IDIwKSB7XG4gICAgICByZXR1cm4geyB2ZXJzaW9uOiBTYnRjQWRkcmVzc1ZlcnNpb24uUDJXUEtILCBoYXNoQnl0ZXM6IGRhdGEgfTtcbiAgICB9IGVsc2UgaWYgKGRhdGEubGVuZ3RoID09PSAzMikge1xuICAgICAgcmV0dXJuIHsgdmVyc2lvbjogU2J0Y0FkZHJlc3NWZXJzaW9uLlAyV1NILCBoYXNoQnl0ZXM6IGRhdGEgfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHdpdG5lc3MgdjAgcHJvZ3JhbSBsZW5ndGg6ICR7ZGF0YS5sZW5ndGh9YCk7XG4gIH1cblxuICBpZiAod2l0bmVzc1ZlcnNpb24gPT09IDEgJiYgaXNCZWNoMzJtKSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoID09PSAzMikge1xuICAgICAgcmV0dXJuIHsgdmVyc2lvbjogU2J0Y0FkZHJlc3NWZXJzaW9uLlAyVFIsIGhhc2hCeXRlczogZGF0YSB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgd2l0bmVzcyB2MSBwcm9ncmFtIGxlbmd0aDogJHtkYXRhLmxlbmd0aH1gKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgd2l0bmVzcyB2ZXJzaW9uICR7d2l0bmVzc1ZlcnNpb259IGZvciBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEJpdGNvaW4gYWRkcmVzcyBkZWNvZGFibGUgZm9yIHNCVEMgd2l0aGRyYXdhbHMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGFkZHJlc3MgY2FuIGJlIGRlY29kZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRCdGNBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGRlY29kZUJ0Y0FkZHJlc3MoYWRkcmVzcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -2,6 +2,8 @@ export declare const FUNCTION_NAME_SENDMANY = "send-many";
|
|
|
2
2
|
export declare const CONTRACT_NAME_SENDMANY = "send-many-memo";
|
|
3
3
|
export declare const CONTRACT_NAME_STAKING = "pox-4";
|
|
4
4
|
export declare const FUNCTION_NAME_TRANSFER = "transfer";
|
|
5
|
+
export declare const CONTRACT_NAME_SBTC_WITHDRAWAL = "sbtc-withdrawal";
|
|
6
|
+
export declare const FUNCTION_NAME_INITIATE_WITHDRAWAL = "initiate-withdrawal-request";
|
|
5
7
|
export declare const VALID_CONTRACT_FUNCTION_NAMES: string[];
|
|
6
8
|
export declare const DEFAULT_SEED_SIZE_BYTES = 64;
|
|
7
9
|
export declare const ANCHOR_MODE = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,sBAAsB,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAC/D,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,eAAO,MAAM,6BAA6B,UASzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,2BAA2B,IAAI,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_MULTISIG_SIG_NUMBER = exports.ANCHOR_MODE = exports.DEFAULT_SEED_SIZE_BYTES = exports.VALID_CONTRACT_FUNCTION_NAMES = exports.FUNCTION_NAME_TRANSFER = exports.CONTRACT_NAME_STAKING = exports.CONTRACT_NAME_SENDMANY = exports.FUNCTION_NAME_SENDMANY = void 0;
|
|
3
|
+
exports.DEFAULT_MULTISIG_SIG_NUMBER = exports.ANCHOR_MODE = exports.DEFAULT_SEED_SIZE_BYTES = exports.VALID_CONTRACT_FUNCTION_NAMES = exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = exports.CONTRACT_NAME_SBTC_WITHDRAWAL = exports.FUNCTION_NAME_TRANSFER = exports.CONTRACT_NAME_STAKING = exports.CONTRACT_NAME_SENDMANY = exports.FUNCTION_NAME_SENDMANY = void 0;
|
|
4
4
|
exports.FUNCTION_NAME_SENDMANY = 'send-many';
|
|
5
5
|
exports.CONTRACT_NAME_SENDMANY = 'send-many-memo';
|
|
6
6
|
exports.CONTRACT_NAME_STAKING = 'pox-4';
|
|
7
7
|
exports.FUNCTION_NAME_TRANSFER = 'transfer';
|
|
8
|
+
exports.CONTRACT_NAME_SBTC_WITHDRAWAL = 'sbtc-withdrawal';
|
|
9
|
+
exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = 'initiate-withdrawal-request';
|
|
8
10
|
exports.VALID_CONTRACT_FUNCTION_NAMES = [
|
|
9
11
|
'stack-stx',
|
|
10
12
|
'delegate-stx',
|
|
@@ -13,9 +15,10 @@ exports.VALID_CONTRACT_FUNCTION_NAMES = [
|
|
|
13
15
|
'revoke-delegate-stx',
|
|
14
16
|
'send-many',
|
|
15
17
|
'transfer',
|
|
18
|
+
'initiate-withdrawal-request',
|
|
16
19
|
];
|
|
17
20
|
exports.DEFAULT_SEED_SIZE_BYTES = 64;
|
|
18
21
|
// https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-encoding
|
|
19
22
|
exports.ANCHOR_MODE = 3;
|
|
20
23
|
exports.DEFAULT_MULTISIG_SIG_NUMBER = 2;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxzQkFBc0IsR0FBRyxXQUFXLENBQUM7QUFDckMsUUFBQSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUMxQyxRQUFBLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUNoQyxRQUFBLHNCQUFzQixHQUFHLFVBQVUsQ0FBQztBQUNwQyxRQUFBLDZCQUE2QixHQUFHLGlCQUFpQixDQUFDO0FBQ2xELFFBQUEsaUNBQWlDLEdBQUcsNkJBQTZCLENBQUM7QUFFbEUsUUFBQSw2QkFBNkIsR0FBRztJQUMzQyxXQUFXO0lBQ1gsY0FBYztJQUNkLG9CQUFvQjtJQUNwQiwwQkFBMEI7SUFDMUIscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsNkJBQTZCO0NBQzlCLENBQUM7QUFFVyxRQUFBLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUUxQyxtSEFBbUg7QUFDdEcsUUFBQSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLFFBQUEsMkJBQTJCLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfU0VORE1BTlkgPSAnc2VuZC1tYW55JztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZID0gJ3NlbmQtbWFueS1tZW1vJztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FX1NUQUtJTkcgPSAncG94LTQnO1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfVFJBTlNGRVIgPSAndHJhbnNmZXInO1xuZXhwb3J0IGNvbnN0IENPTlRSQUNUX05BTUVfU0JUQ19XSVRIRFJBV0FMID0gJ3NidGMtd2l0aGRyYXdhbCc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9JTklUSUFURV9XSVRIRFJBV0FMID0gJ2luaXRpYXRlLXdpdGhkcmF3YWwtcmVxdWVzdCc7XG5cbmV4cG9ydCBjb25zdCBWQUxJRF9DT05UUkFDVF9GVU5DVElPTl9OQU1FUyA9IFtcbiAgJ3N0YWNrLXN0eCcsXG4gICdkZWxlZ2F0ZS1zdHgnLFxuICAnZGVsZWdhdGUtc3RhY2stc3R4JyxcbiAgJ3N0YWNrLWFnZ3JlZ2F0aW9uLWNvbW1pdCcsXG4gICdyZXZva2UtZGVsZWdhdGUtc3R4JyxcbiAgJ3NlbmQtbWFueScsXG4gICd0cmFuc2ZlcicsXG4gICdpbml0aWF0ZS13aXRoZHJhd2FsLXJlcXVlc3QnLFxuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gNjQ7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3Nnb3Yvc2lwcy9ibG9iL21haW4vc2lwcy9zaXAtMDA1L3NpcC0wMDUtYmxvY2tzLWFuZC10cmFuc2FjdGlvbnMubWQjdHJhbnNhY3Rpb24tZW5jb2RpbmdcbmV4cG9ydCBjb25zdCBBTkNIT1JfTU9ERSA9IDM7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NVUxUSVNJR19TSUdfTlVNQkVSID0gMjtcbiJdfQ==
|
package/dist/src/lib/iface.d.ts
CHANGED
|
@@ -101,4 +101,9 @@ export interface RecoveryInfo extends BaseTransactionExplanation {
|
|
|
101
101
|
export interface RecoveryTransaction {
|
|
102
102
|
txHex: string;
|
|
103
103
|
}
|
|
104
|
+
export interface SbtcWithdrawParams {
|
|
105
|
+
amount: string;
|
|
106
|
+
btcAddress: string;
|
|
107
|
+
maxFee: string;
|
|
108
|
+
}
|
|
104
109
|
//# sourceMappingURL=iface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/iface.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBDbGFyaXR5VmFsdWUsIFBheWxvYWRUeXBlIH0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHhEYXRhIHtcbiAgaWQ6IHN0cmluZztcbiAgZnJvbTogc3RyaW5nO1xuICBmZWU6IHN0cmluZztcbiAgbm9uY2U6IG51bWJlcjtcbiAgcGF5bG9hZDogU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkIHwgU3RhY2tzQ29udHJhY3RQYXlsb2FkO1xufVxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVEYXRhIHtcbiAgdHlwZTogbnVtYmVyO1xuICBkYXRhOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHNpZ0hhc2g6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja3NUcmFuc2FjdGlvblBheWxvYWQge1xuICByZWFkb25seSBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2ZlcjtcbiAgbWVtbz86IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tzQ29udHJhY3RQYXlsb2FkIHtcbiAgcmVhZG9ubHkgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbDtcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nO1xuICBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgZnVuY3Rpb25BcmdzOiBDbGFyaXR5VmFsdWVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFyaXR5VmFsdWVKc29uIHtcbiAgdHlwZTogc3RyaW5nO1xuICB2YWw/OiBhbnkgfCBUdXBsZURhdGFbXSB8IENsYXJpdHlWYWx1ZUpzb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVwbGVEYXRhIGV4dGVuZHMgQ2xhcml0eVZhbHVlSnNvbiB7XG4gIGtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25SZXNwb25zZSB7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICByZWNpZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NEZXRhaWxzIHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBtZW1vSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZFBhcmFtcyB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG4gIG1lbW8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5UcmFuc2ZlclBhcmFtcyB7XG4gIHNlbmRlcjogc3RyaW5nO1xuICByZWNpcGllbnQ6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG4gIG1lbW8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5CYWxhbmNlRGF0YSB7XG4gIGJhbGFuY2U6IHN0cmluZztcbiAgdG90YWxfc2VudDogc3RyaW5nO1xuICB0b3RhbF9yZWNlaXZlZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hdGl2ZVN0eEJhbGFuY2Uge1xuICBiYWxhbmNlOiBzdHJpbmc7XG4gIHRvdGFsX21pbmVyX3Jld2FyZHNfcmVjZWl2ZWQ6IHN0cmluZztcbiAgbG9ja190eF9pZDogc3RyaW5nO1xuICBsb2NrZWQ6IHN0cmluZztcbiAgbG9ja19oZWlnaHQ6IG51bWJlcjtcbiAgYnVybmNoYWluX2xvY2tfaGVpZ2h0OiBudW1iZXI7XG4gIGJ1cm5jaGFpbl91bmxvY2tfaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlRnVuZ2libGVUb2tlbkJhbGFuY2Uge1xuICBiYWxhbmNlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3R4Tm9uY2VSZXNwb25zZSB7XG4gIGxhc3RfbWVtcG9vbF90eF9ub25jZT86IG51bWJlcjtcbiAgbGFzdF9leGVjdXRlZF90eF9ub25jZT86IG51bWJlcjtcbiAgcG9zc2libGVfbmV4dF9ub25jZTogbnVtYmVyO1xuICBkZXRlY3RlZF9taXNzaW5nX25vbmNlcz86IG51bWJlcltdO1xuICBkZXRlY3RlZF9tZW1wb29sX25vbmNlcz86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0eFR4bkZlZUVzdGltYXRpb25SZXNwb25zZSB7XG4gIGVzdGltYXRpb25zOiB7XG4gICAgZmVlUmF0ZTogbnVtYmVyO1xuICAgIGZlZTogbnVtYmVyO1xuICB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlPcHRpb25zIHtcbiAgYmFja3VwS2V5OiBzdHJpbmc7XG4gIHVzZXJLZXk6IHN0cmluZztcbiAgcm9vdEFkZHJlc3M6IHN0cmluZztcbiAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBiaXRnb0tleT86IHN0cmluZztcbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbiAgY29udHJhY3RJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyeUluZm8gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIGZlZUluZm8/OiB7XG4gICAgZmVlOiBzdHJpbmc7XG4gIH07XG4gIGNvaW4/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBDbGFyaXR5VmFsdWUsIFBheWxvYWRUeXBlIH0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHhEYXRhIHtcbiAgaWQ6IHN0cmluZztcbiAgZnJvbTogc3RyaW5nO1xuICBmZWU6IHN0cmluZztcbiAgbm9uY2U6IG51bWJlcjtcbiAgcGF5bG9hZDogU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkIHwgU3RhY2tzQ29udHJhY3RQYXlsb2FkO1xufVxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVEYXRhIHtcbiAgdHlwZTogbnVtYmVyO1xuICBkYXRhOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHNpZ0hhc2g6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja3NUcmFuc2FjdGlvblBheWxvYWQge1xuICByZWFkb25seSBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2ZlcjtcbiAgbWVtbz86IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tzQ29udHJhY3RQYXlsb2FkIHtcbiAgcmVhZG9ubHkgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbDtcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nO1xuICBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgZnVuY3Rpb25BcmdzOiBDbGFyaXR5VmFsdWVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFyaXR5VmFsdWVKc29uIHtcbiAgdHlwZTogc3RyaW5nO1xuICB2YWw/OiBhbnkgfCBUdXBsZURhdGFbXSB8IENsYXJpdHlWYWx1ZUpzb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVwbGVEYXRhIGV4dGVuZHMgQ2xhcml0eVZhbHVlSnNvbiB7XG4gIGtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25SZXNwb25zZSB7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICByZWNpZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NEZXRhaWxzIHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBtZW1vSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZFBhcmFtcyB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG4gIG1lbW8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5UcmFuc2ZlclBhcmFtcyB7XG4gIHNlbmRlcjogc3RyaW5nO1xuICByZWNpcGllbnQ6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG4gIG1lbW8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5CYWxhbmNlRGF0YSB7XG4gIGJhbGFuY2U6IHN0cmluZztcbiAgdG90YWxfc2VudDogc3RyaW5nO1xuICB0b3RhbF9yZWNlaXZlZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hdGl2ZVN0eEJhbGFuY2Uge1xuICBiYWxhbmNlOiBzdHJpbmc7XG4gIHRvdGFsX21pbmVyX3Jld2FyZHNfcmVjZWl2ZWQ6IHN0cmluZztcbiAgbG9ja190eF9pZDogc3RyaW5nO1xuICBsb2NrZWQ6IHN0cmluZztcbiAgbG9ja19oZWlnaHQ6IG51bWJlcjtcbiAgYnVybmNoYWluX2xvY2tfaGVpZ2h0OiBudW1iZXI7XG4gIGJ1cm5jaGFpbl91bmxvY2tfaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlRnVuZ2libGVUb2tlbkJhbGFuY2Uge1xuICBiYWxhbmNlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3R4Tm9uY2VSZXNwb25zZSB7XG4gIGxhc3RfbWVtcG9vbF90eF9ub25jZT86IG51bWJlcjtcbiAgbGFzdF9leGVjdXRlZF90eF9ub25jZT86IG51bWJlcjtcbiAgcG9zc2libGVfbmV4dF9ub25jZTogbnVtYmVyO1xuICBkZXRlY3RlZF9taXNzaW5nX25vbmNlcz86IG51bWJlcltdO1xuICBkZXRlY3RlZF9tZW1wb29sX25vbmNlcz86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0eFR4bkZlZUVzdGltYXRpb25SZXNwb25zZSB7XG4gIGVzdGltYXRpb25zOiB7XG4gICAgZmVlUmF0ZTogbnVtYmVyO1xuICAgIGZlZTogbnVtYmVyO1xuICB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlPcHRpb25zIHtcbiAgYmFja3VwS2V5OiBzdHJpbmc7XG4gIHVzZXJLZXk6IHN0cmluZztcbiAgcm9vdEFkZHJlc3M6IHN0cmluZztcbiAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBiaXRnb0tleT86IHN0cmluZztcbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbiAgY29udHJhY3RJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyeUluZm8gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIGZlZUluZm8/OiB7XG4gICAgZmVlOiBzdHJpbmc7XG4gIH07XG4gIGNvaW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlUcmFuc2FjdGlvbiB7XG4gIHR4SGV4OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2J0Y1dpdGhkcmF3UGFyYW1zIHtcbiAgYW1vdW50OiBzdHJpbmc7XG4gIGJ0Y0FkZHJlc3M6IHN0cmluZztcbiAgbWF4RmVlOiBzdHJpbmc7XG59XG4iXX0=
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export { AddressVersion, AddressHashMode } from '@stacks/transactions';
|
|
|
2
2
|
export * from './keyPair';
|
|
3
3
|
export * from './transaction';
|
|
4
4
|
export * from './transactionBuilderFactory';
|
|
5
|
+
export * from './sbtcWithdrawBuilder';
|
|
5
6
|
export * as Utils from './utils';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
|
package/dist/src/lib/index.js
CHANGED
|
@@ -43,5 +43,6 @@ Object.defineProperty(exports, "AddressHashMode", { enumerable: true, get: funct
|
|
|
43
43
|
__exportStar(require("./keyPair"), exports);
|
|
44
44
|
__exportStar(require("./transaction"), exports);
|
|
45
45
|
__exportStar(require("./transactionBuilderFactory"), exports);
|
|
46
|
+
__exportStar(require("./sbtcWithdrawBuilder"), exports);
|
|
46
47
|
exports.Utils = __importStar(require("./utils"));
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1RTtBQUE5RCw4R0FBQSxjQUFjLE9BQUE7QUFBRSwrR0FBQSxlQUFlLE9BQUE7QUFDeEMsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5Qiw4REFBNEM7QUFDNUMsd0RBQXNDO0FBQ3RDLGlEQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFkZHJlc3NWZXJzaW9uLCBBZGRyZXNzSGFzaE1vZGUgfSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9zYnRjV2l0aGRyYXdCdWlsZGVyJztcbmV4cG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
+
import { Transaction } from './transaction';
|
|
3
|
+
import { SbtcWithdrawParams } from './iface';
|
|
4
|
+
import { ContractCallPayload } from '@stacks/transactions/dist/payload';
|
|
5
|
+
import { AbstractContractBuilder } from './abstractContractBuilder';
|
|
6
|
+
export declare class SbtcWithdrawBuilder extends AbstractContractBuilder {
|
|
7
|
+
private _withdrawParams;
|
|
8
|
+
private _isDeserialized;
|
|
9
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
10
|
+
/**
|
|
11
|
+
* Check whether a deserialized contract-call payload matches the sBTC withdrawal contract.
|
|
12
|
+
*/
|
|
13
|
+
static isValidContractCall(coinConfig: Readonly<CoinConfig>, payload: ContractCallPayload): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Set withdrawal parameters.
|
|
16
|
+
*
|
|
17
|
+
* @param {SbtcWithdrawParams} params - amount (satoshis), btcAddress, maxFee
|
|
18
|
+
* @returns {this}
|
|
19
|
+
*/
|
|
20
|
+
withdraw(params: SbtcWithdrawParams): this;
|
|
21
|
+
initBuilder(tx: Transaction): void;
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
24
|
+
private withdrawParamsToFunctionArgs;
|
|
25
|
+
private withdrawParamsToPostCondition;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sbtcWithdrawBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sbtcWithdrawBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/sbtcWithdrawBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAoD,MAAM,gBAAgB,CAAC;AAiB1G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAOpE,qBAAa,mBAAoB,SAAQ,uBAAuB;IAC9D,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,eAAe,CAAS;gBAEpB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;OAEG;WACW,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAS1G;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAc1C,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAuClC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAqB3D,OAAO,CAAC,4BAA4B;IAqBpC,OAAO,CAAC,6BAA6B;CAqBtC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SbtcWithdrawBuilder = void 0;
|
|
7
|
+
const statics_1 = require("@bitgo/statics");
|
|
8
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
9
|
+
const transactions_1 = require("@stacks/transactions");
|
|
10
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
const constants_1 = require("./constants");
|
|
13
|
+
const abstractContractBuilder_1 = require("./abstractContractBuilder");
|
|
14
|
+
const btcAddressUtils_1 = require("./btcAddressUtils");
|
|
15
|
+
const SBTC_TOKEN_CONTRACT_NAME = 'sbtc-token';
|
|
16
|
+
const SBTC_TOKEN_ASSET_NAME = 'sbtc-token';
|
|
17
|
+
const HASHBYTES_BUFFER_LENGTH = 32;
|
|
18
|
+
class SbtcWithdrawBuilder extends abstractContractBuilder_1.AbstractContractBuilder {
|
|
19
|
+
constructor(_coinConfig) {
|
|
20
|
+
super(_coinConfig);
|
|
21
|
+
this._isDeserialized = false;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check whether a deserialized contract-call payload matches the sBTC withdrawal contract.
|
|
25
|
+
*/
|
|
26
|
+
static isValidContractCall(coinConfig, payload) {
|
|
27
|
+
return (coinConfig.network.sbtcWithdrawalContractAddress ===
|
|
28
|
+
(0, transactions_1.addressToString)(payload.contractAddress) &&
|
|
29
|
+
constants_1.CONTRACT_NAME_SBTC_WITHDRAWAL === payload.contractName.content &&
|
|
30
|
+
constants_1.FUNCTION_NAME_INITIATE_WITHDRAWAL === payload.functionName.content);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Set withdrawal parameters.
|
|
34
|
+
*
|
|
35
|
+
* @param {SbtcWithdrawParams} params - amount (satoshis), btcAddress, maxFee
|
|
36
|
+
* @returns {this}
|
|
37
|
+
*/
|
|
38
|
+
withdraw(params) {
|
|
39
|
+
if (!params.amount || !(0, utils_1.isValidAmount)(params.amount) || params.amount === '0') {
|
|
40
|
+
throw new sdk_core_1.BuildTransactionError('Invalid or missing amount, got: ' + params.amount);
|
|
41
|
+
}
|
|
42
|
+
if (!params.btcAddress || !(0, btcAddressUtils_1.isValidBtcAddress)(params.btcAddress)) {
|
|
43
|
+
throw new sdk_core_1.BuildTransactionError('Invalid or missing btcAddress, got: ' + params.btcAddress);
|
|
44
|
+
}
|
|
45
|
+
if (!params.maxFee || !(0, utils_1.isValidAmount)(params.maxFee) || params.maxFee === '0') {
|
|
46
|
+
throw new sdk_core_1.BuildTransactionError('Invalid or missing maxFee, got: ' + params.maxFee);
|
|
47
|
+
}
|
|
48
|
+
this._withdrawParams = params;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
initBuilder(tx) {
|
|
52
|
+
super.initBuilder(tx);
|
|
53
|
+
const payload = tx.stxTransaction.payload;
|
|
54
|
+
const args = payload.functionArgs;
|
|
55
|
+
if (args.length !== 3) {
|
|
56
|
+
throw new sdk_core_1.BuildTransactionError('Invalid number of function args for sBTC withdrawal');
|
|
57
|
+
}
|
|
58
|
+
// args[0] = uint (amount)
|
|
59
|
+
if (args[0].type !== transactions_1.ClarityType.UInt) {
|
|
60
|
+
throw new sdk_core_1.BuildTransactionError('Expected uint for amount argument');
|
|
61
|
+
}
|
|
62
|
+
const amount = args[0].value.toString();
|
|
63
|
+
// args[1] = tuple { version: (buff 1), hashbytes: (buff 32) }
|
|
64
|
+
if (args[1].type !== transactions_1.ClarityType.Tuple) {
|
|
65
|
+
throw new sdk_core_1.BuildTransactionError('Expected tuple for recipient argument');
|
|
66
|
+
}
|
|
67
|
+
const versionBuf = args[1].data['version'];
|
|
68
|
+
const hashbytesBuf = args[1].data['hashbytes'];
|
|
69
|
+
if (versionBuf?.type !== transactions_1.ClarityType.Buffer || hashbytesBuf?.type !== transactions_1.ClarityType.Buffer) {
|
|
70
|
+
throw new sdk_core_1.BuildTransactionError('Expected buffer fields in recipient tuple');
|
|
71
|
+
}
|
|
72
|
+
// args[2] = uint (max-fee)
|
|
73
|
+
if (args[2].type !== transactions_1.ClarityType.UInt) {
|
|
74
|
+
throw new sdk_core_1.BuildTransactionError('Expected uint for max-fee argument');
|
|
75
|
+
}
|
|
76
|
+
const maxFee = args[2].value.toString();
|
|
77
|
+
this._withdrawParams = {
|
|
78
|
+
amount,
|
|
79
|
+
btcAddress: '', // not needed for rebuild; function args are preserved from the original tx
|
|
80
|
+
maxFee,
|
|
81
|
+
};
|
|
82
|
+
this._isDeserialized = true;
|
|
83
|
+
}
|
|
84
|
+
/** @inheritdoc */
|
|
85
|
+
async buildImplementation() {
|
|
86
|
+
if (!this._withdrawParams) {
|
|
87
|
+
throw new sdk_core_1.BuildTransactionError('Withdrawal params are not set. Use withdraw() to set them.');
|
|
88
|
+
}
|
|
89
|
+
const network = this._coinConfig.network;
|
|
90
|
+
this._contractAddress = network.sbtcWithdrawalContractAddress;
|
|
91
|
+
this._contractName = constants_1.CONTRACT_NAME_SBTC_WITHDRAWAL;
|
|
92
|
+
this._functionName = constants_1.FUNCTION_NAME_INITIATE_WITHDRAWAL;
|
|
93
|
+
// For deserialized transactions, function args are already preserved from the original tx.
|
|
94
|
+
// For fresh builds, construct them from the withdraw params.
|
|
95
|
+
if (!this._isDeserialized) {
|
|
96
|
+
this._functionArgs = this.withdrawParamsToFunctionArgs(this._withdrawParams);
|
|
97
|
+
}
|
|
98
|
+
this._postConditionMode = transactions_1.PostConditionMode.Deny;
|
|
99
|
+
this._postConditions = this.withdrawParamsToPostCondition(this._withdrawParams);
|
|
100
|
+
return await super.buildImplementation();
|
|
101
|
+
}
|
|
102
|
+
withdrawParamsToFunctionArgs(params) {
|
|
103
|
+
const decoded = (0, btcAddressUtils_1.decodeBtcAddress)(params.btcAddress);
|
|
104
|
+
// Pad 20-byte hashes to 32 bytes with trailing zeros per sBTC contract spec (buff 32)
|
|
105
|
+
let hashBytes = decoded.hashBytes;
|
|
106
|
+
if (hashBytes.length < HASHBYTES_BUFFER_LENGTH) {
|
|
107
|
+
const padded = Buffer.alloc(HASHBYTES_BUFFER_LENGTH, 0);
|
|
108
|
+
hashBytes.copy(padded);
|
|
109
|
+
hashBytes = padded;
|
|
110
|
+
}
|
|
111
|
+
return [
|
|
112
|
+
(0, transactions_1.uintCV)(params.amount),
|
|
113
|
+
(0, transactions_1.tupleCV)({
|
|
114
|
+
version: (0, transactions_1.bufferCV)(Buffer.from([decoded.version])),
|
|
115
|
+
hashbytes: (0, transactions_1.bufferCV)(hashBytes),
|
|
116
|
+
}),
|
|
117
|
+
(0, transactions_1.uintCV)(params.maxFee),
|
|
118
|
+
];
|
|
119
|
+
}
|
|
120
|
+
withdrawParamsToPostCondition(params) {
|
|
121
|
+
const amount = new bn_js_1.default(params.amount).add(new bn_js_1.default(params.maxFee));
|
|
122
|
+
const network = this._coinConfig.network;
|
|
123
|
+
const sbtcContractAddress = network.sbtcWithdrawalContractAddress;
|
|
124
|
+
return [
|
|
125
|
+
(0, transactions_1.makeStandardFungiblePostCondition)((0, utils_1.getSTXAddressFromPubKeys)(this._fromPubKeys, this._coinConfig.network.type === statics_1.NetworkType.MAINNET
|
|
126
|
+
? transactions_1.AddressVersion.MainnetMultiSig
|
|
127
|
+
: transactions_1.AddressVersion.TestnetMultiSig, this._fromPubKeys.length > 1 ? transactions_1.AddressHashMode.SerializeP2SH : transactions_1.AddressHashMode.SerializeP2PKH, this._numberSignatures).address, transactions_1.FungibleConditionCode.Equal, amount, (0, transactions_1.createAssetInfo)(sbtcContractAddress, SBTC_TOKEN_CONTRACT_NAME, SBTC_TOKEN_ASSET_NAME)),
|
|
128
|
+
];
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.SbtcWithdrawBuilder = SbtcWithdrawBuilder;
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2J0Y1dpdGhkcmF3QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2J0Y1dpdGhkcmF3QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBMEc7QUFDMUcsa0RBQTJCO0FBQzNCLHVEQWE4QjtBQUM5Qiw4Q0FBd0Q7QUFFeEQsbUNBQWtFO0FBRWxFLDJDQUErRjtBQUUvRix1RUFBb0U7QUFDcEUsdURBQXdFO0FBRXhFLE1BQU0sd0JBQXdCLEdBQUcsWUFBWSxDQUFDO0FBQzlDLE1BQU0scUJBQXFCLEdBQUcsWUFBWSxDQUFDO0FBQzNDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBRW5DLE1BQWEsbUJBQW9CLFNBQVEsaURBQXVCO0lBSTlELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSGIsb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFJaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQWdDLEVBQUUsT0FBNEI7UUFDOUYsT0FBTyxDQUNKLFVBQVUsQ0FBQyxPQUE4QixDQUFDLDZCQUE2QjtZQUN0RSxJQUFBLDhCQUFlLEVBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUMxQyx5Q0FBNkIsS0FBSyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU87WUFDOUQsNkNBQWlDLEtBQUssT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsTUFBMEI7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFBLHFCQUFhLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDN0UsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGtDQUFrQyxHQUFH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RSxxQkFBcUIsQ0FBQyxDQUN0RjtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUEvSUQsa0RBK0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgTmV0d29ya1R5cGUsIFN0YWNrc05ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IEJpZ051bSBmcm9tICdibi5qcyc7XG5pbXBvcnQge1xuICBBZGRyZXNzSGFzaE1vZGUsXG4gIGFkZHJlc3NUb1N0cmluZyxcbiAgQWRkcmVzc1ZlcnNpb24sXG4gIGJ1ZmZlckNWLFxuICBDbGFyaXR5VHlwZSxcbiAgY3JlYXRlQXNzZXRJbmZvLFxuICBGdW5naWJsZUNvbmRpdGlvbkNvZGUsXG4gIG1ha2VTdGFuZGFyZEZ1bmdpYmxlUG9zdENvbmRpdGlvbixcbiAgUG9zdENvbmRpdGlvbixcbiAgUG9zdENvbmRpdGlvbk1vZGUsXG4gIHR1cGxlQ1YsXG4gIHVpbnRDVixcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBnZXRTVFhBZGRyZXNzRnJvbVB1YktleXMsIGlzVmFsaWRBbW91bnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFNidGNXaXRoZHJhd1BhcmFtcyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQ09OVFJBQ1RfTkFNRV9TQlRDX1dJVEhEUkFXQUwsIEZVTkNUSU9OX05BTUVfSU5JVElBVEVfV0lUSERSQVdBTCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IENvbnRyYWN0Q2FsbFBheWxvYWQgfSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucy9kaXN0L3BheWxvYWQnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIgfSBmcm9tICcuL2Fic3RyYWN0Q29udHJhY3RCdWlsZGVyJztcbmltcG9ydCB7IGRlY29kZUJ0Y0FkZHJlc3MsIGlzVmFsaWRCdGNBZGRyZXNzIH0gZnJvbSAnLi9idGNBZGRyZXNzVXRpbHMnO1xuXG5jb25zdCBTQlRDX1RPS0VOX0NPTlRSQUNUX05BTUUgPSAnc2J0Yy10b2tlbic7XG5jb25zdCBTQlRDX1RPS0VOX0FTU0VUX05BTUUgPSAnc2J0Yy10b2tlbic7XG5jb25zdCBIQVNIQllURVNfQlVGRkVSX0xFTkdUSCA9IDMyO1xuXG5leHBvcnQgY2xhc3MgU2J0Y1dpdGhkcmF3QnVpbGRlciBleHRlbmRzIEFic3RyYWN0Q29udHJhY3RCdWlsZGVyIHtcbiAgcHJpdmF0ZSBfd2l0aGRyYXdQYXJhbXM6IFNidGNXaXRoZHJhd1BhcmFtcyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfaXNEZXNlcmlhbGl6ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciBhIGRlc2VyaWFsaXplZCBjb250cmFjdC1jYWxsIHBheWxvYWQgbWF0Y2hlcyB0aGUgc0JUQyB3aXRoZHJhd2FsIGNvbnRyYWN0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkQ29udHJhY3RDYWxsKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+LCBwYXlsb2FkOiBDb250cmFjdENhbGxQYXlsb2FkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChjb2luQ29uZmlnLm5ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrKS5zYnRjV2l0aGRyYXdhbENvbnRyYWN0QWRkcmVzcyA9PT1cbiAgICAgICAgYWRkcmVzc1RvU3RyaW5nKHBheWxvYWQuY29udHJhY3RBZGRyZXNzKSAmJlxuICAgICAgQ09OVFJBQ1RfTkFNRV9TQlRDX1dJVEhEUkFXQUwgPT09IHBheWxvYWQuY29udHJhY3ROYW1lLmNvbnRlbnQgJiZcbiAgICAgIEZVTkNUSU9OX05BTUVfSU5JVElBVEVfV0lUSERSQVdBTCA9PT0gcGF5bG9hZC5mdW5jdGlvbk5hbWUuY29udGVudFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHdpdGhkcmF3YWwgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtTYnRjV2l0aGRyYXdQYXJhbXN9IHBhcmFtcyAtIGFtb3VudCAoc2F0b3NoaXMpLCBidGNBZGRyZXNzLCBtYXhGZWVcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICB3aXRoZHJhdyhwYXJhbXM6IFNidGNXaXRoZHJhd1BhcmFtcyk6IHRoaXMge1xuICAgIGlmICghcGFyYW1zLmFtb3VudCB8fCAhaXNWYWxpZEFtb3VudChwYXJhbXMuYW1vdW50KSB8fCBwYXJhbXMuYW1vdW50ID09PSAnMCcpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBhbW91bnQsIGdvdDogJyArIHBhcmFtcy5hbW91bnQpO1xuICAgIH1cbiAgICBpZiAoIXBhcmFtcy5idGNBZGRyZXNzIHx8ICFpc1ZhbGlkQnRjQWRkcmVzcyhwYXJhbXMuYnRjQWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBidGNBZGRyZXNzLCBnb3Q6ICcgKyBwYXJhbXMuYnRjQWRkcmVzcyk7XG4gICAgfVxuICAgIGlmICghcGFyYW1zLm1heEZlZSB8fCAhaXNWYWxpZEFtb3VudChwYXJhbXMubWF4RmVlKSB8fCBwYXJhbXMubWF4RmVlID09PSAnMCcpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBtYXhGZWUsIGdvdDogJyArIHBhcmFtcy5tYXhGZWUpO1xuICAgIH1cbiAgICB0aGlzLl93aXRoZHJhd1BhcmFtcyA9IHBhcmFtcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBwYXlsb2FkID0gdHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCBhcyBDb250cmFjdENhbGxQYXlsb2FkO1xuICAgIGNvbnN0IGFyZ3MgPSBwYXlsb2FkLmZ1bmN0aW9uQXJncztcblxuICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBudW1iZXIgb2YgZnVuY3Rpb24gYXJncyBmb3Igc0JUQyB3aXRoZHJhd2FsJyk7XG4gICAgfVxuXG4gICAgLy8gYXJnc1swXSA9IHVpbnQgKGFtb3VudClcbiAgICBpZiAoYXJnc1swXS50eXBlICE9PSBDbGFyaXR5VHlwZS5VSW50KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdFeHBlY3RlZCB1aW50IGZvciBhbW91bnQgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgY29uc3QgYW1vdW50ID0gYXJnc1swXS52YWx1ZS50b1N0cmluZygpO1xuXG4gICAgLy8gYXJnc1sxXSA9IHR1cGxlIHsgdmVyc2lvbjogKGJ1ZmYgMSksIGhhc2hieXRlczogKGJ1ZmYgMzIpIH1cbiAgICBpZiAoYXJnc1sxXS50eXBlICE9PSBDbGFyaXR5VHlwZS5UdXBsZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignRXhwZWN0ZWQgdHVwbGUgZm9yIHJlY2lwaWVudCBhcmd1bWVudCcpO1xuICAgIH1cbiAgICBjb25zdCB2ZXJzaW9uQnVmID0gYXJnc1sxXS5kYXRhWyd2ZXJzaW9uJ107XG4gICAgY29uc3QgaGFzaGJ5dGVzQnVmID0gYXJnc1sxXS5kYXRhWydoYXNoYnl0ZXMnXTtcbiAgICBpZiAodmVyc2lvbkJ1Zj8udHlwZSAhPT0gQ2xhcml0eVR5cGUuQnVmZmVyIHx8IGhhc2hieXRlc0J1Zj8udHlwZSAhPT0gQ2xhcml0eVR5cGUuQnVmZmVyKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdFeHBlY3RlZCBidWZmZXIgZmllbGRzIGluIHJlY2lwaWVudCB0dXBsZScpO1xuICAgIH1cblxuICAgIC8vIGFyZ3NbMl0gPSB1aW50IChtYXgtZmVlKVxuICAgIGlmIChhcmdzWzJdLnR5cGUgIT09IENsYXJpdHlUeXBlLlVJbnQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0V4cGVjdGVkIHVpbnQgZm9yIG1heC1mZWUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgY29uc3QgbWF4RmVlID0gYXJnc1syXS52YWx1ZS50b1N0cmluZygpO1xuXG4gICAgdGhpcy5fd2l0aGRyYXdQYXJhbXMgPSB7XG4gICAgICBhbW91bnQsXG4gICAgICBidGNBZGRyZXNzOiAnJywgLy8gbm90IG5lZWRlZCBmb3IgcmVidWlsZDsgZnVuY3Rpb24gYXJncyBhcmUgcHJlc2VydmVkIGZyb20gdGhlIG9yaWdpbmFsIHR4XG4gICAgICBtYXhGZWUsXG4gICAgfTtcbiAgICB0aGlzLl9pc0Rlc2VyaWFsaXplZCA9IHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGlmICghdGhpcy5fd2l0aGRyYXdQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1dpdGhkcmF3YWwgcGFyYW1zIGFyZSBub3Qgc2V0LiBVc2Ugd2l0aGRyYXcoKSB0byBzZXQgdGhlbS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXR3b3JrID0gdGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yaztcbiAgICB0aGlzLl9jb250cmFjdEFkZHJlc3MgPSBuZXR3b3JrLnNidGNXaXRoZHJhd2FsQ29udHJhY3RBZGRyZXNzO1xuICAgIHRoaXMuX2NvbnRyYWN0TmFtZSA9IENPTlRSQUNUX05BTUVfU0JUQ19XSVRIRFJBV0FMO1xuICAgIHRoaXMuX2Z1bmN0aW9uTmFtZSA9IEZVTkNUSU9OX05BTUVfSU5JVElBVEVfV0lUSERSQVdBTDtcblxuICAgIC8vIEZvciBkZXNlcmlhbGl6ZWQgdHJhbnNhY3Rpb25zLCBmdW5jdGlvbiBhcmdzIGFyZSBhbHJlYWR5IHByZXNlcnZlZCBmcm9tIHRoZSBvcmlnaW5hbCB0eC5cbiAgICAvLyBGb3IgZnJlc2ggYnVpbGRzLCBjb25zdHJ1Y3QgdGhlbSBmcm9tIHRoZSB3aXRoZHJhdyBwYXJhbXMuXG4gICAgaWYgKCF0aGlzLl9pc0Rlc2VyaWFsaXplZCkge1xuICAgICAgdGhpcy5fZnVuY3Rpb25BcmdzID0gdGhpcy53aXRoZHJhd1BhcmFtc1RvRnVuY3Rpb25BcmdzKHRoaXMuX3dpdGhkcmF3UGFyYW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLl9wb3N0Q29uZGl0aW9uTW9kZSA9IFBvc3RDb25kaXRpb25Nb2RlLkRlbnk7XG4gICAgdGhpcy5fcG9zdENvbmRpdGlvbnMgPSB0aGlzLndpdGhkcmF3UGFyYW1zVG9Qb3N0Q29uZGl0aW9uKHRoaXMuX3dpdGhkcmF3UGFyYW1zKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSB3aXRoZHJhd1BhcmFtc1RvRnVuY3Rpb25BcmdzKHBhcmFtczogU2J0Y1dpdGhkcmF3UGFyYW1zKSB7XG4gICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZUJ0Y0FkZHJlc3MocGFyYW1zLmJ0Y0FkZHJlc3MpO1xuXG4gICAgLy8gUGFkIDIwLWJ5dGUgaGFzaGVzIHRvIDMyIGJ5dGVzIHdpdGggdHJhaWxpbmcgemVyb3MgcGVyIHNCVEMgY29udHJhY3Qgc3BlYyAoYnVmZiAzMilcbiAgICBsZXQgaGFzaEJ5dGVzID0gZGVjb2RlZC5oYXNoQnl0ZXM7XG4gICAgaWYgKGhhc2hCeXRlcy5sZW5ndGggPCBIQVNIQllURVNfQlVGRkVSX0xFTkdUSCkge1xuICAgICAgY29uc3QgcGFkZGVkID0gQnVmZmVyLmFsbG9jKEhBU0hCWVRFU19CVUZGRVJfTEVOR1RILCAwKTtcbiAgICAgIGhhc2hCeXRlcy5jb3B5KHBhZGRlZCk7XG4gICAgICBoYXNoQnl0ZXMgPSBwYWRkZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIHVpbnRDVihwYXJhbXMuYW1vdW50KSxcbiAgICAgIHR1cGxlQ1Yoe1xuICAgICAgICB2ZXJzaW9uOiBidWZmZXJDVihCdWZmZXIuZnJvbShbZGVjb2RlZC52ZXJzaW9uXSkpLFxuICAgICAgICBoYXNoYnl0ZXM6IGJ1ZmZlckNWKGhhc2hCeXRlcyksXG4gICAgICB9KSxcbiAgICAgIHVpbnRDVihwYXJhbXMubWF4RmVlKSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSB3aXRoZHJhd1BhcmFtc1RvUG9zdENvbmRpdGlvbihwYXJhbXM6IFNidGNXaXRoZHJhd1BhcmFtcyk6IFBvc3RDb25kaXRpb25bXSB7XG4gICAgY29uc3QgYW1vdW50ID0gbmV3IEJpZ051bShwYXJhbXMuYW1vdW50KS5hZGQobmV3IEJpZ051bShwYXJhbXMubWF4RmVlKSk7XG4gICAgY29uc3QgbmV0d29yayA9IHRoaXMuX2NvaW5Db25maWcubmV0d29yayBhcyBCaXRnb1N0YWNrc05ldHdvcms7XG4gICAgY29uc3Qgc2J0Y0NvbnRyYWN0QWRkcmVzcyA9IG5ldHdvcmsuc2J0Y1dpdGhkcmF3YWxDb250cmFjdEFkZHJlc3M7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbWFrZVN0YW5kYXJkRnVuZ2libGVQb3N0Q29uZGl0aW9uKFxuICAgICAgICBnZXRTVFhBZGRyZXNzRnJvbVB1YktleXMoXG4gICAgICAgICAgdGhpcy5fZnJvbVB1YktleXMsXG4gICAgICAgICAgdGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVRcbiAgICAgICAgICAgID8gQWRkcmVzc1ZlcnNpb24uTWFpbm5ldE11bHRpU2lnXG4gICAgICAgICAgICA6IEFkZHJlc3NWZXJzaW9uLlRlc3RuZXRNdWx0aVNpZyxcbiAgICAgICAgICB0aGlzLl9mcm9tUHViS2V5cy5sZW5ndGggPiAxID8gQWRkcmVzc0hhc2hNb2RlLlNlcmlhbGl6ZVAyU0ggOiBBZGRyZXNzSGFzaE1vZGUuU2VyaWFsaXplUDJQS0gsXG4gICAgICAgICAgdGhpcy5fbnVtYmVyU2lnbmF0dXJlc1xuICAgICAgICApLmFkZHJlc3MsXG4gICAgICAgIEZ1bmdpYmxlQ29uZGl0aW9uQ29kZS5FcXVhbCxcbiAgICAgICAgYW1vdW50LFxuICAgICAgICBjcmVhdGVBc3NldEluZm8oc2J0Y0NvbnRyYWN0QWRkcmVzcywgU0JUQ19UT0tFTl9DT05UUkFDVF9OQU1FLCBTQlRDX1RPS0VOX0FTU0VUX05BTUUpXG4gICAgICApLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,6 +5,7 @@ import { TransactionBuilder } from './transactionBuilder';
|
|
|
5
5
|
import { Transaction } from './transaction';
|
|
6
6
|
import { ContractBuilder } from './contractBuilder';
|
|
7
7
|
import { SendmanyBuilder } from './sendmanyBuilder';
|
|
8
|
+
import { SbtcWithdrawBuilder } from './sbtcWithdrawBuilder';
|
|
8
9
|
import { FungibleTokenTransferBuilder } from './fungibleTokenTransferBuilder';
|
|
9
10
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
10
11
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
@@ -17,6 +18,7 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
|
|
|
17
18
|
getTransferBuilder(tx?: Transaction): TransferBuilder;
|
|
18
19
|
getContractBuilder(tx?: Transaction): ContractBuilder;
|
|
19
20
|
getSendmanyBuilder(tx?: Transaction): SendmanyBuilder;
|
|
21
|
+
getSbtcWithdrawBuilder(tx?: Transaction): SbtcWithdrawBuilder;
|
|
20
22
|
getFungibleTokenTransferBuilder(tx?: Transaction): FungibleTokenTransferBuilder;
|
|
21
23
|
/**
|
|
22
24
|
* Initialize the builder with the given transaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,6BAA6B,EAI9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,6BAA6B,EAI9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IA2BrC,OAAO,CAAC,gBAAgB;IASxB,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI;IAItD,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,sBAAsB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,mBAAmB;IAI7D,+BAA+B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,4BAA4B;IAI/E;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI;CAQtD"}
|
|
@@ -8,6 +8,7 @@ const transaction_1 = require("./transaction");
|
|
|
8
8
|
const contractBuilder_1 = require("./contractBuilder");
|
|
9
9
|
const _1 = require(".");
|
|
10
10
|
const sendmanyBuilder_1 = require("./sendmanyBuilder");
|
|
11
|
+
const sbtcWithdrawBuilder_1 = require("./sbtcWithdrawBuilder");
|
|
11
12
|
const fungibleTokenTransferBuilder_1 = require("./fungibleTokenTransferBuilder");
|
|
12
13
|
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
13
14
|
constructor(_coinConfig) {
|
|
@@ -25,6 +26,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
25
26
|
if (sendmanyBuilder_1.SendmanyBuilder.isValidContractCall(this._coinConfig, tx.stxTransaction.payload)) {
|
|
26
27
|
return this.getSendmanyBuilder(tx);
|
|
27
28
|
}
|
|
29
|
+
if (sbtcWithdrawBuilder_1.SbtcWithdrawBuilder.isValidContractCall(this._coinConfig, tx.stxTransaction.payload)) {
|
|
30
|
+
return this.getSbtcWithdrawBuilder(tx);
|
|
31
|
+
}
|
|
28
32
|
if (fungibleTokenTransferBuilder_1.FungibleTokenTransferBuilder.isFungibleTokenTransferContractCall(tx.stxTransaction.payload)) {
|
|
29
33
|
return this.getFungibleTokenTransferBuilder(tx);
|
|
30
34
|
}
|
|
@@ -58,6 +62,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
58
62
|
getSendmanyBuilder(tx) {
|
|
59
63
|
return TransactionBuilderFactory.initializeBuilder(new sendmanyBuilder_1.SendmanyBuilder(this._coinConfig), tx);
|
|
60
64
|
}
|
|
65
|
+
getSbtcWithdrawBuilder(tx) {
|
|
66
|
+
return TransactionBuilderFactory.initializeBuilder(new sbtcWithdrawBuilder_1.SbtcWithdrawBuilder(this._coinConfig), tx);
|
|
67
|
+
}
|
|
61
68
|
getFungibleTokenTransferBuilder(tx) {
|
|
62
69
|
return TransactionBuilderFactory.initializeBuilder(new fungibleTokenTransferBuilder_1.FungibleTokenTransferBuilder(this._coinConfig), tx);
|
|
63
70
|
}
|
|
@@ -85,4 +92,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
85
92
|
}
|
|
86
93
|
}
|
|
87
94
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBeUY7QUFDekYsOENBS3lCO0FBQ3pCLHVEQUFvRDtBQUVwRCwrQ0FBNEM7QUFDNUMsdURBQW9EO0FBQ3BELHdCQUEwQjtBQUMxQix1REFBb0Q7QUFDcEQsK0RBQTREO0FBQzVELGlGQUE4RTtBQUU5RSxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM5QyxLQUFLLDBCQUFXLENBQUMsYUFBYTtvQkFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssMEJBQVcsQ0FBQyxZQUFZO29CQUMzQixJQUFJLGlDQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ3JGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyQyxDQUFDO29CQUNELElBQUkseUNBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9B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UUFBSyxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTNGRCw4REEyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVmZmVyUmVhZGVyLCBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uLCBQYXlsb2FkVHlwZSB9IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7XG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IENvbnRyYWN0QnVpbGRlciB9IGZyb20gJy4vY29udHJhY3RCdWlsZGVyJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBTZW5kbWFueUJ1aWxkZXIgfSBmcm9tICcuL3NlbmRtYW55QnVpbGRlcic7XG5pbXBvcnQgeyBTYnRjV2l0aGRyYXdCdWlsZGVyIH0gZnJvbSAnLi9zYnRjV2l0aGRyYXdCdWlsZGVyJztcbmltcG9ydCB7IEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2Z1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20ocmF3OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eCA9IHRoaXMucGFyc2VUcmFuc2FjdGlvbihyYXcpO1xuICAgICAgc3dpdGNoICh0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkLnBheWxvYWRUeXBlKSB7XG4gICAgICAgIGNhc2UgUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2ZlcjpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbDpcbiAgICAgICAgICBpZiAoU2VuZG1hbnlCdWlsZGVyLmlzVmFsaWRDb250cmFjdENhbGwodGhpcy5fY29pbkNvbmZpZywgdHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbmRtYW55QnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChTYnRjV2l0aGRyYXdCdWlsZGVyLmlzVmFsaWRDb250cmFjdENhbGwodGhpcy5fY29pbkNvbmZpZywgdHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNidGNXaXRoZHJhd0J1aWxkZXIodHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlci5pc0Z1bmdpYmxlVG9rZW5UcmFuc2ZlckNvbnRyYWN0Q2FsbCh0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbnRyYWN0QnVpbGRlcih0eCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ1RoZXJlIHdhcyBhbiBlcnJvciBwYXJzaW5nIHRoZSByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICBjb25zdCBzdGFja3N0cmFuc2FjdGlvbiA9IGRlc2VyaWFsaXplVHJhbnNhY3Rpb24oXG4gICAgICBCdWZmZXJSZWFkZXIuZnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShVdGlscy5yZW1vdmVIZXhQcmVmaXgocmF3VHJhbnNhY3Rpb24pLCAnaGV4JykpXG4gICAgKTtcbiAgICB0eC5zdHhUcmFuc2FjdGlvbiA9IHN0YWNrc3RyYW5zYWN0aW9uO1xuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdtZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldENvbnRyYWN0QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogQ29udHJhY3RCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcihuZXcgQ29udHJhY3RCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICBnZXRTZW5kbWFueUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFNlbmRtYW55QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IFNlbmRtYW55QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSwgdHgpO1xuICB9XG5cbiAgZ2V0U2J0Y1dpdGhkcmF3QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU2J0Y1dpdGhkcmF3QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IFNidGNXaXRoZHJhd0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcj4oYnVpbGRlcjogVCwgdHg6IFRyYW5zYWN0aW9uIHwgdW5kZWZpbmVkKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogdW5rbm93bik6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignUmF3IHRyYW5zYWN0aW9uIGlzIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghVXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -182,6 +182,21 @@ export declare function functionArgsToTokenTransferParams(args: ClarityValue[]):
|
|
|
182
182
|
* @returns {AddressVersion} A number that represent the Address Version
|
|
183
183
|
*/
|
|
184
184
|
export declare function getAddressVersion(address: string): AddressVersion;
|
|
185
|
+
/**
|
|
186
|
+
* Encode a Stacks *standard* principal as the Clarity SIP-005 hex wire format
|
|
187
|
+
* — a 22-byte blob:
|
|
188
|
+
*
|
|
189
|
+
* `0x05` || version (1 byte) || hash160 (20 bytes)
|
|
190
|
+
*
|
|
191
|
+
* Contract principals (`<address>.<contract-name>`) and addresses with a
|
|
192
|
+
* `?memoId=…` suffix are rejected. The Clarity type byte (`0x05`) is set
|
|
193
|
+
* by `serializeCV` from `@stacks/transactions`, so this helper does not
|
|
194
|
+
* hand-roll any byte concatenation.
|
|
195
|
+
*
|
|
196
|
+
* @param {string} principal a Stacks standard principal (e.g. `SP…` / `ST…`)
|
|
197
|
+
* @returns {string} hex-encoded 22-byte Clarity standard principal
|
|
198
|
+
*/
|
|
199
|
+
export declare function getEncodedPrincipal(principal: string): string;
|
|
185
200
|
/**
|
|
186
201
|
* Returns a STX pub key from an xpub
|
|
187
202
|
*
|