@bitgo-beta/sdk-coin-stx 1.1.1-beta.233 → 1.1.1-beta.2330
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/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +25 -9
- package/dist/src/lib/abstractContractBuilder.d.ts +16 -0
- package/dist/src/lib/abstractContractBuilder.d.ts.map +1 -1
- package/dist/src/lib/abstractContractBuilder.js +33 -4
- 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 +16 -1
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +30 -3
- package/dist/src/lib/contractBuilder.d.ts.map +1 -1
- package/dist/src/lib/contractBuilder.js +44 -12
- package/dist/src/lib/fungibleTokenTransferBuilder.d.ts +62 -0
- package/dist/src/lib/fungibleTokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/fungibleTokenTransferBuilder.js +131 -0
- package/dist/src/lib/iface.d.ts +61 -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 +5 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +28 -9
- package/dist/src/lib/keyPair.js +18 -19
- package/dist/src/lib/network.d.ts +16 -0
- package/dist/src/lib/network.d.ts.map +1 -0
- package/dist/src/lib/network.js +29 -0
- package/dist/src/lib/pox5Builder.d.ts +78 -0
- package/dist/src/lib/pox5Builder.d.ts.map +1 -0
- package/dist/src/lib/pox5Builder.js +148 -0
- package/dist/src/lib/sbtcWithdrawBuilder.d.ts +38 -0
- package/dist/src/lib/sbtcWithdrawBuilder.d.ts.map +1 -0
- package/dist/src/lib/sbtcWithdrawBuilder.js +150 -0
- package/dist/src/lib/sendmanyBuilder.js +12 -12
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +31 -15
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +16 -17
- package/dist/src/lib/transactionBuilderFactory.d.ts +6 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +23 -2
- package/dist/src/lib/transferBuilder.js +7 -7
- package/dist/src/lib/utils.d.ts +45 -3
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +205 -64
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +7 -1
- package/dist/src/sip10Token.d.ts +22 -0
- package/dist/src/sip10Token.d.ts.map +1 -0
- package/dist/src/sip10Token.js +130 -0
- package/dist/src/stx.d.ts +154 -2
- package/dist/src/stx.d.ts.map +1 -1
- package/dist/src/stx.js +489 -11
- package/dist/src/tstx.js +1 -1
- package/dist/src/tstxsignet.d.ts +20 -0
- package/dist/src/tstxsignet.d.ts.map +1 -0
- package/dist/src/tstxsignet.js +36 -0
- package/dist/test/fixtures.d.ts +119 -0
- package/dist/test/fixtures.d.ts.map +1 -0
- package/dist/test/fixtures.js +147 -0
- 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/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +144 -0
- package/dist/test/unit/network.d.ts +2 -0
- package/dist/test/unit/network.d.ts.map +1 -0
- package/dist/test/unit/network.js +50 -0
- package/dist/test/unit/registerForBondRealArgs.d.ts +2 -0
- package/dist/test/unit/registerForBondRealArgs.d.ts.map +1 -0
- package/dist/test/unit/registerForBondRealArgs.js +22 -0
- package/dist/test/unit/resources.d.ts +97 -0
- package/dist/test/unit/resources.d.ts.map +1 -0
- package/dist/test/unit/resources.js +144 -0
- package/dist/test/unit/sip10Token.d.ts +2 -0
- package/dist/test/unit/sip10Token.d.ts.map +1 -0
- package/dist/test/unit/sip10Token.js +374 -0
- package/dist/test/unit/stx.d.ts +2 -0
- package/dist/test/unit/stx.d.ts.map +1 -0
- package/dist/test/unit/stx.js +662 -0
- package/dist/test/unit/transaction.d.ts +2 -0
- package/dist/test/unit/transaction.d.ts.map +1 -0
- package/dist/test/unit/transaction.js +83 -0
- package/dist/test/unit/transactionBuilder/contractBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/contractBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/contractBuilder.js +463 -0
- package/dist/test/unit/transactionBuilder/fungibleTokenTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/fungibleTokenTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/fungibleTokenTransferBuilder.js +191 -0
- package/dist/test/unit/transactionBuilder/pox5Builder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/pox5Builder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/pox5Builder.js +464 -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 +306 -0
- package/dist/test/unit/transactionBuilder/sendmanyBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/sendmanyBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/sendmanyBuilder.js +140 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.js +347 -0
- package/dist/test/unit/tstxsignet.d.ts +2 -0
- package/dist/test/unit/tstxsignet.d.ts.map +1 -0
- package/dist/test/unit/tstxsignet.js +60 -0
- package/dist/test/unit/util.d.ts +2 -0
- package/dist/test/unit/util.d.ts.map +1 -0
- package/dist/test/unit/util.js +354 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +16 -12
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -127
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,OAAO,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,OAAO,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
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
|
+
})();
|
|
21
35
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
36
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
37
|
};
|
|
@@ -26,6 +40,8 @@ exports.StxLib = void 0;
|
|
|
26
40
|
exports.StxLib = __importStar(require("./lib"));
|
|
27
41
|
__exportStar(require("./stx"), exports);
|
|
28
42
|
__exportStar(require("./tstx"), exports);
|
|
43
|
+
__exportStar(require("./tstxsignet"), exports);
|
|
29
44
|
__exportStar(require("./types"), exports);
|
|
30
45
|
__exportStar(require("./register"), exports);
|
|
31
|
-
|
|
46
|
+
__exportStar(require("./sip10Token"), exports);
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWdDO0FBQ2hDLHdDQUFzQjtBQUN0Qix5Q0FBdUI7QUFDdkIsK0NBQTZCO0FBQzdCLDBDQUF3QjtBQUN4Qiw2Q0FBMkI7QUFDM0IsK0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgU3R4TGliIGZyb20gJy4vbGliJztcbmV4cG9ydCAqIGZyb20gJy4vc3R4JztcbmV4cG9ydCAqIGZyb20gJy4vdHN0eCc7XG5leHBvcnQgKiBmcm9tICcuL3RzdHhzaWduZXQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2lwMTBUb2tlbic7XG4iXX0=
|
|
@@ -12,6 +12,22 @@ export declare abstract class AbstractContractBuilder extends TransactionBuilder
|
|
|
12
12
|
protected _functionArgs: ClarityValue[];
|
|
13
13
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
14
14
|
initBuilder(tx: Transaction): void;
|
|
15
|
+
/**
|
|
16
|
+
* Set the post-condition mode (`Allow` / `Deny`) for this contract call.
|
|
17
|
+
*
|
|
18
|
+
* @obligation callers building a contract call that moves assets MUST set a mode AND matching
|
|
19
|
+
* post-conditions, or leave this unset and let the caller attach explicit post-conditions —
|
|
20
|
+
* consequence: an unset mode defaults to `Deny` in `@stacks/transactions`, so any asset movement
|
|
21
|
+
* not covered by a post-condition aborts the tx on-chain
|
|
22
|
+
* @returns {AbstractContractBuilder} this builder
|
|
23
|
+
*/
|
|
24
|
+
postConditionMode(mode: PostConditionMode): this;
|
|
25
|
+
/**
|
|
26
|
+
* Set the post-conditions for this contract call.
|
|
27
|
+
*
|
|
28
|
+
* @returns {AbstractContractBuilder} this builder
|
|
29
|
+
*/
|
|
30
|
+
postConditions(postConditions: PostCondition[]): this;
|
|
15
31
|
/** @inheritdoc */
|
|
16
32
|
protected buildImplementation(): Promise<Transaction>;
|
|
17
33
|
private buildContractCallOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractContractBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/abstractContractBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,YAAY,EAIZ,aAAa,EACb,iBAAiB,EAGlB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,8BAAsB,uBAAwB,SAAQ,kBAAkB;IACtE,OAAO,CAAC,QAAQ,CAAoE;IACpF,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACjD,SAAS,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5C,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;gBAE5B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"abstractContractBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/abstractContractBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,YAAY,EAIZ,aAAa,EACb,iBAAiB,EAGlB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,8BAAsB,uBAAwB,SAAQ,kBAAkB;IACtE,OAAO,CAAC,QAAQ,CAAoE;IACpF,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACjD,SAAS,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5C,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;gBAE5B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAuBlC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAKhD;;;;OAIG;IACH,cAAc,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI;IAKrD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAO3D,OAAO,CAAC,wBAAwB;CA4BjC"}
|
|
@@ -22,17 +22,46 @@ class AbstractContractBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
|
22
22
|
this._contractName = txData.payload.contractName;
|
|
23
23
|
this._functionName = txData.payload.functionName;
|
|
24
24
|
this._functionArgs = txData.payload.functionArgs;
|
|
25
|
+
// Restore post-conditions from the deserialized tx — `toJson()` does not carry them, so
|
|
26
|
+
// without this a re-build (e.g. the fee re-build via `factory.from(hex)`) would drop them and
|
|
27
|
+
// a `Deny`-mode contract call would abort on-chain (SIP-005 post-condition check).
|
|
28
|
+
if (tx.stxTransaction) {
|
|
29
|
+
this._postConditionMode = tx.stxTransaction.postConditionMode;
|
|
30
|
+
this._postConditions = tx.stxTransaction.postConditions.values;
|
|
31
|
+
}
|
|
25
32
|
super.initBuilder(tx);
|
|
26
33
|
}
|
|
27
34
|
else {
|
|
28
35
|
throw new sdk_core_1.BuildTransactionError('Transaction should be contract call');
|
|
29
36
|
}
|
|
30
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Set the post-condition mode (`Allow` / `Deny`) for this contract call.
|
|
40
|
+
*
|
|
41
|
+
* @obligation callers building a contract call that moves assets MUST set a mode AND matching
|
|
42
|
+
* post-conditions, or leave this unset and let the caller attach explicit post-conditions —
|
|
43
|
+
* consequence: an unset mode defaults to `Deny` in `@stacks/transactions`, so any asset movement
|
|
44
|
+
* not covered by a post-condition aborts the tx on-chain
|
|
45
|
+
* @returns {AbstractContractBuilder} this builder
|
|
46
|
+
*/
|
|
47
|
+
postConditionMode(mode) {
|
|
48
|
+
this._postConditionMode = mode;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Set the post-conditions for this contract call.
|
|
53
|
+
*
|
|
54
|
+
* @returns {AbstractContractBuilder} this builder
|
|
55
|
+
*/
|
|
56
|
+
postConditions(postConditions) {
|
|
57
|
+
this._postConditions = postConditions;
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
31
60
|
/** @inheritdoc */
|
|
32
61
|
async buildImplementation() {
|
|
33
62
|
this._options = this.buildContractCallOptions();
|
|
34
63
|
this.transaction.setTransactionType(sdk_core_1.TransactionType.ContractCall);
|
|
35
|
-
this.transaction.stxTransaction = await transactions_1.makeUnsignedContractCall(this._options);
|
|
64
|
+
this.transaction.stxTransaction = await (0, transactions_1.makeUnsignedContractCall)(this._options);
|
|
36
65
|
return await super.buildImplementation();
|
|
37
66
|
}
|
|
38
67
|
buildContractCallOptions() {
|
|
@@ -45,8 +74,8 @@ class AbstractContractBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
|
45
74
|
postConditions: this._postConditions,
|
|
46
75
|
anchorMode: this._anchorMode,
|
|
47
76
|
network: this._network,
|
|
48
|
-
fee: new bn_js_1.default(this._fee.fee),
|
|
49
|
-
nonce: new bn_js_1.default(this._nonce),
|
|
77
|
+
fee: new bn_js_1.default(this._fee.fee).toString(),
|
|
78
|
+
nonce: new bn_js_1.default(this._nonce).toString(),
|
|
50
79
|
};
|
|
51
80
|
if (this._fromPubKeys.length === 1) {
|
|
52
81
|
return {
|
|
@@ -67,4 +96,4 @@ class AbstractContractBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
|
67
96
|
}
|
|
68
97
|
}
|
|
69
98
|
exports.AbstractContractBuilder = AbstractContractBuilder;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RDb250cmFjdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2Fic3RyYWN0Q29udHJhY3RCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGtEQUEyQjtBQUMzQix1REFTOEI7QUFDOUIsbURBSzhCO0FBRTlCLDZEQUEwRDtBQUUxRCxNQUFzQix1QkFBd0IsU0FBUSx1Q0FBa0I7SUFTdEUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLGtDQUF1QixDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEtBQUssMEJBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDakQsd0ZBQXdGO1lBQ3hGLDhGQUE4RjtZQUM5RixtRkFBbUY7WUFDbkYsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO2dCQUM5RCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQXlCLENBQUM7WUFDcEYsQ0FBQztZQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksZ0NBQXFCLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsaUJBQWlCLENBQUMsSUFBdUI7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLGNBQStCO1FBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLDBCQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsTUFBTSxJQUFBLHVDQUF3QixFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRixPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixNQUFNLFdBQVcsR0FBd0I7WUFDdkMsZUFBZSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdEMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2hDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNoQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDaEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMxQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDcEMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN0QixHQUFHLEVBQUUsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDekMsS0FBSyxFQUFFLElBQUksZUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUU7U0FDMUMsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTztnQkFDTCxHQUFHLFdBQVc7Z0JBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2FBQ2hDLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxPQUFPO2dCQUNMLEdBQUcsV0FBVztnQkFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzdCLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2FBQ3RDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFoR0QsMERBZ0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IEJpZ051bSBmcm9tICdibi5qcyc7XG5pbXBvcnQge1xuICBDbGFyaXR5VmFsdWUsXG4gIENvbnRyYWN0Q2FsbE9wdGlvbnMsXG4gIG1ha2VVbnNpZ25lZENvbnRyYWN0Q2FsbCxcbiAgUGF5bG9hZFR5cGUsXG4gIFBvc3RDb25kaXRpb24sXG4gIFBvc3RDb25kaXRpb25Nb2RlLFxuICBVbnNpZ25lZENvbnRyYWN0Q2FsbE9wdGlvbnMsXG4gIFVuc2lnbmVkTXVsdGlTaWdDb250cmFjdENhbGxPcHRpb25zLFxufSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQge1xuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9vcHRpb25zOiBVbnNpZ25lZENvbnRyYWN0Q2FsbE9wdGlvbnMgfCBVbnNpZ25lZE11bHRpU2lnQ29udHJhY3RDYWxsT3B0aW9ucztcbiAgcHJvdGVjdGVkIF9jb250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9jb250cmFjdE5hbWU6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9mdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9wb3N0Q29uZGl0aW9uTW9kZT86IFBvc3RDb25kaXRpb25Nb2RlO1xuICBwcm90ZWN0ZWQgX3Bvc3RDb25kaXRpb25zPzogUG9zdENvbmRpdGlvbltdO1xuICBwcm90ZWN0ZWQgX2Z1bmN0aW9uQXJnczogQ2xhcml0eVZhbHVlW107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgaWYgKHR4RGF0YS5wYXlsb2FkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigncGF5bG9hZCBtdXN0IG5vdCBiZSB1bmRlZmluZWQnKTtcbiAgICB9XG4gICAgaWYgKHR4RGF0YS5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIHRoaXMuX2NvbnRyYWN0QWRkcmVzcyA9IHR4RGF0YS5wYXlsb2FkLmNvbnRyYWN0QWRkcmVzcztcbiAgICAgIHRoaXMuX2NvbnRyYWN0TmFtZSA9IHR4RGF0YS5wYXlsb2FkLmNvbnRyYWN0TmFtZTtcbiAgICAgIHRoaXMuX2Z1bmN0aW9uTmFtZSA9IHR4RGF0YS5wYXlsb2FkLmZ1bmN0aW9uTmFtZTtcbiAgICAgIHRoaXMuX2Z1bmN0aW9uQXJncyA9IHR4RGF0YS5wYXlsb2FkLmZ1bmN0aW9uQXJncztcbiAgICAgIC8vIFJlc3RvcmUgcG9zdC1jb25kaXRpb25zIGZyb20gdGhlIGRlc2VyaWFsaXplZCB0eCDigJQgYHRvSnNvbigpYCBkb2VzIG5vdCBjYXJyeSB0aGVtLCBzb1xuICAgICAgLy8gd2l0aG91dCB0aGlzIGEgcmUtYnVpbGQgKGUuZy4gdGhlIGZlZSByZS1idWlsZCB2aWEgYGZhY3RvcnkuZnJvbShoZXgpYCkgd291bGQgZHJvcCB0aGVtIGFuZFxuICAgICAgLy8gYSBgRGVueWAtbW9kZSBjb250cmFjdCBjYWxsIHdvdWxkIGFib3J0IG9uLWNoYWluIChTSVAtMDA1IHBvc3QtY29uZGl0aW9uIGNoZWNrKS5cbiAgICAgIGlmICh0eC5zdHhUcmFuc2FjdGlvbikge1xuICAgICAgICB0aGlzLl9wb3N0Q29uZGl0aW9uTW9kZSA9IHR4LnN0eFRyYW5zYWN0aW9uLnBvc3RDb25kaXRpb25Nb2RlO1xuICAgICAgICB0aGlzLl9wb3N0Q29uZGl0aW9ucyA9IHR4LnN0eFRyYW5zYWN0aW9uLnBvc3RDb25kaXRpb25zLnZhbHVlcyBhcyBQb3N0Q29uZGl0aW9uW107XG4gICAgICB9XG4gICAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIHNob3VsZCBiZSBjb250cmFjdCBjYWxsJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcG9zdC1jb25kaXRpb24gbW9kZSAoYEFsbG93YCAvIGBEZW55YCkgZm9yIHRoaXMgY29udHJhY3QgY2FsbC5cbiAgICpcbiAgICogQG9ibGlnYXRpb24gY2FsbGVycyBidWlsZGluZyBhIGNvbnRyYWN0IGNhbGwgdGhhdCBtb3ZlcyBhc3NldHMgTVVTVCBzZXQgYSBtb2RlIEFORCBtYXRjaGluZ1xuICAgKiAgIHBvc3QtY29uZGl0aW9ucywgb3IgbGVhdmUgdGhpcyB1bnNldCBhbmQgbGV0IHRoZSBjYWxsZXIgYXR0YWNoIGV4cGxpY2l0IHBvc3QtY29uZGl0aW9ucyDigJRcbiAgICogICBjb25zZXF1ZW5jZTogYW4gdW5zZXQgbW9kZSBkZWZhdWx0cyB0byBgRGVueWAgaW4gYEBzdGFja3MvdHJhbnNhY3Rpb25zYCwgc28gYW55IGFzc2V0IG1vdmVtZW50XG4gICAqICAgbm90IGNvdmVyZWQgYnkgYSBwb3N0LWNvbmRpdGlvbiBhYm9ydHMgdGhlIHR4IG9uLWNoYWluXG4gICAqIEByZXR1cm5zIHtBYnN0cmFjdENvbnRyYWN0QnVpbGRlcn0gdGhpcyBidWlsZGVyXG4gICAqL1xuICBwb3N0Q29uZGl0aW9uTW9kZShtb2RlOiBQb3N0Q29uZGl0aW9uTW9kZSk6IHRoaXMge1xuICAgIHRoaXMuX3Bvc3RDb25kaXRpb25Nb2RlID0gbW9kZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHBvc3QtY29uZGl0aW9ucyBmb3IgdGhpcyBjb250cmFjdCBjYWxsLlxuICAgKlxuICAgKiBAcmV0dXJucyB7QWJzdHJhY3RDb250cmFjdEJ1aWxkZXJ9IHRoaXMgYnVpbGRlclxuICAgKi9cbiAgcG9zdENvbmRpdGlvbnMocG9zdENvbmRpdGlvbnM6IFBvc3RDb25kaXRpb25bXSk6IHRoaXMge1xuICAgIHRoaXMuX3Bvc3RDb25kaXRpb25zID0gcG9zdENvbmRpdGlvbnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLmJ1aWxkQ29udHJhY3RDYWxsT3B0aW9ucygpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc3R4VHJhbnNhY3Rpb24gPSBhd2FpdCBtYWtlVW5zaWduZWRDb250cmFjdENhbGwodGhpcy5fb3B0aW9ucyk7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb250cmFjdENhbGxPcHRpb25zKCk6IFVuc2lnbmVkQ29udHJhY3RDYWxsT3B0aW9ucyB8IFVuc2lnbmVkTXVsdGlTaWdDb250cmFjdENhbGxPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0czogQ29udHJhY3RDYWxsT3B0aW9ucyA9IHtcbiAgICAgIGNvbnRyYWN0QWRkcmVzczogdGhpcy5fY29udHJhY3RBZGRyZXNzLFxuICAgICAgY29udHJhY3ROYW1lOiB0aGlzLl9jb250cmFjdE5hbWUsXG4gICAgICBmdW5jdGlvbk5hbWU6IHRoaXMuX2Z1bmN0aW9uTmFtZSxcbiAgICAgIGZ1bmN0aW9uQXJnczogdGhpcy5fZnVuY3Rpb25BcmdzLFxuICAgICAgcG9zdENvbmRpdGlvbk1vZGU6IHRoaXMuX3Bvc3RDb25kaXRpb25Nb2RlLFxuICAgICAgcG9zdENvbmRpdGlvbnM6IHRoaXMuX3Bvc3RDb25kaXRpb25zLFxuICAgICAgYW5jaG9yTW9kZTogdGhpcy5fYW5jaG9yTW9kZSxcbiAgICAgIG5ldHdvcms6IHRoaXMuX25ldHdvcmssXG4gICAgICBmZWU6IG5ldyBCaWdOdW0odGhpcy5fZmVlLmZlZSkudG9TdHJpbmcoKSxcbiAgICAgIG5vbmNlOiBuZXcgQmlnTnVtKHRoaXMuX25vbmNlKS50b1N0cmluZygpLFxuICAgIH07XG4gICAgaWYgKHRoaXMuX2Zyb21QdWJLZXlzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZGVmYXVsdE9wdHMsXG4gICAgICAgIHB1YmxpY0tleTogdGhpcy5fZnJvbVB1YktleXNbMF0sXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodGhpcy5fZnJvbVB1YktleXMubGVuZ3RoID4gMSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZGVmYXVsdE9wdHMsXG4gICAgICAgIHB1YmxpY0tleXM6IHRoaXMuX2Zyb21QdWJLZXlzLFxuICAgICAgICBudW1TaWduYXR1cmVzOiB0aGlzLl9udW1iZXJTaWduYXR1cmVzLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdzdXBwbHkgYXQgbGVhc3QgMSBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -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
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
export declare const FUNCTION_NAME_SENDMANY = "send-many";
|
|
2
2
|
export declare const CONTRACT_NAME_SENDMANY = "send-many-memo";
|
|
3
|
-
export declare const CONTRACT_NAME_STAKING = "pox-
|
|
3
|
+
export declare const CONTRACT_NAME_STAKING = "pox-4";
|
|
4
|
+
export declare const CONTRACT_NAME_POX5 = "pox-5";
|
|
5
|
+
export declare const VALID_STAKING_CONTRACT_NAMES: string[];
|
|
6
|
+
export declare const FUNCTION_NAME_TRANSFER = "transfer";
|
|
7
|
+
export declare const CONTRACT_NAME_SBTC_WITHDRAWAL = "sbtc-withdrawal";
|
|
8
|
+
export declare const FUNCTION_NAME_INITIATE_WITHDRAWAL = "initiate-withdrawal-request";
|
|
9
|
+
export declare const FUNCTION_NAME_STAKE = "stake";
|
|
10
|
+
export declare const FUNCTION_NAME_STAKE_UPDATE = "stake-update";
|
|
11
|
+
export declare const FUNCTION_NAME_UNSTAKE = "unstake";
|
|
12
|
+
export declare const FUNCTION_NAME_REGISTER_FOR_BOND = "register-for-bond";
|
|
13
|
+
export declare const FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = "announce-l1-early-exit";
|
|
14
|
+
export declare const FUNCTION_NAME_UPDATE_BOND_REGISTRATION = "update-bond-registration";
|
|
15
|
+
export declare const FUNCTION_NAME_CLAIM_REWARDS = "claim-rewards";
|
|
16
|
+
export declare const FUNCTION_NAME_CLAIM_STAKER_REWARDS = "claim-staker-rewards-for-signer";
|
|
17
|
+
export declare const FUNCTION_NAME_CALCULATE_REWARDS = "calculate-rewards";
|
|
18
|
+
export declare const VALID_POX5_CONTRACT_FUNCTION_NAMES: string[];
|
|
4
19
|
export declare const VALID_CONTRACT_FUNCTION_NAMES: string[];
|
|
5
20
|
export declare const DEFAULT_SEED_SIZE_BYTES = 64;
|
|
6
21
|
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;
|
|
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,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,4BAA4B,UAA8C,CAAC;AACxF,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAC/D,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,+BAA+B,sBAAsB,CAAC;AACnE,eAAO,MAAM,oCAAoC,2BAA2B,CAAC;AAC7E,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AACjF,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,eAAO,MAAM,kCAAkC,oCAAoC,CAAC;AACpF,eAAO,MAAM,+BAA+B,sBAAsB,CAAC;AAEnE,eAAO,MAAM,kCAAkC,UAU9C,CAAC;AAEF,eAAO,MAAM,6BAA6B,UASzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,2BAA2B,IAAI,CAAC"}
|
|
@@ -1,9 +1,34 @@
|
|
|
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.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.VALID_POX5_CONTRACT_FUNCTION_NAMES = exports.FUNCTION_NAME_CALCULATE_REWARDS = exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS = exports.FUNCTION_NAME_CLAIM_REWARDS = exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION = exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = exports.FUNCTION_NAME_REGISTER_FOR_BOND = exports.FUNCTION_NAME_UNSTAKE = exports.FUNCTION_NAME_STAKE_UPDATE = exports.FUNCTION_NAME_STAKE = exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = exports.CONTRACT_NAME_SBTC_WITHDRAWAL = exports.FUNCTION_NAME_TRANSFER = exports.VALID_STAKING_CONTRACT_NAMES = exports.CONTRACT_NAME_POX5 = 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
|
-
exports.CONTRACT_NAME_STAKING = 'pox-
|
|
6
|
+
exports.CONTRACT_NAME_STAKING = 'pox-4';
|
|
7
|
+
exports.CONTRACT_NAME_POX5 = 'pox-5';
|
|
8
|
+
exports.VALID_STAKING_CONTRACT_NAMES = [exports.CONTRACT_NAME_STAKING, exports.CONTRACT_NAME_POX5];
|
|
9
|
+
exports.FUNCTION_NAME_TRANSFER = 'transfer';
|
|
10
|
+
exports.CONTRACT_NAME_SBTC_WITHDRAWAL = 'sbtc-withdrawal';
|
|
11
|
+
exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = 'initiate-withdrawal-request';
|
|
12
|
+
exports.FUNCTION_NAME_STAKE = 'stake';
|
|
13
|
+
exports.FUNCTION_NAME_STAKE_UPDATE = 'stake-update';
|
|
14
|
+
exports.FUNCTION_NAME_UNSTAKE = 'unstake';
|
|
15
|
+
exports.FUNCTION_NAME_REGISTER_FOR_BOND = 'register-for-bond';
|
|
16
|
+
exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = 'announce-l1-early-exit';
|
|
17
|
+
exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION = 'update-bond-registration';
|
|
18
|
+
exports.FUNCTION_NAME_CLAIM_REWARDS = 'claim-rewards';
|
|
19
|
+
exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS = 'claim-staker-rewards-for-signer';
|
|
20
|
+
exports.FUNCTION_NAME_CALCULATE_REWARDS = 'calculate-rewards';
|
|
21
|
+
exports.VALID_POX5_CONTRACT_FUNCTION_NAMES = [
|
|
22
|
+
exports.FUNCTION_NAME_STAKE,
|
|
23
|
+
exports.FUNCTION_NAME_STAKE_UPDATE,
|
|
24
|
+
exports.FUNCTION_NAME_UNSTAKE,
|
|
25
|
+
exports.FUNCTION_NAME_REGISTER_FOR_BOND,
|
|
26
|
+
exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION,
|
|
27
|
+
exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT,
|
|
28
|
+
exports.FUNCTION_NAME_CLAIM_REWARDS,
|
|
29
|
+
exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS,
|
|
30
|
+
exports.FUNCTION_NAME_CALCULATE_REWARDS,
|
|
31
|
+
];
|
|
7
32
|
exports.VALID_CONTRACT_FUNCTION_NAMES = [
|
|
8
33
|
'stack-stx',
|
|
9
34
|
'delegate-stx',
|
|
@@ -11,9 +36,11 @@ exports.VALID_CONTRACT_FUNCTION_NAMES = [
|
|
|
11
36
|
'stack-aggregation-commit',
|
|
12
37
|
'revoke-delegate-stx',
|
|
13
38
|
'send-many',
|
|
39
|
+
'transfer',
|
|
40
|
+
'initiate-withdrawal-request',
|
|
14
41
|
];
|
|
15
42
|
exports.DEFAULT_SEED_SIZE_BYTES = 64;
|
|
16
43
|
// https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-encoding
|
|
17
44
|
exports.ANCHOR_MODE = 3;
|
|
18
45
|
exports.DEFAULT_MULTISIG_SIG_NUMBER = 2;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxzQkFBc0IsR0FBRyxXQUFXLENBQUM7QUFDckMsUUFBQSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUMxQyxRQUFBLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUNoQyxRQUFBLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUM3QixRQUFBLDRCQUE0QixHQUFHLENBQUMsNkJBQXFCLEVBQUUsMEJBQWtCLENBQUMsQ0FBQztBQUMzRSxRQUFBLHNCQUFzQixHQUFHLFVBQVUsQ0FBQztBQUNwQyxRQUFBLDZCQUE2QixHQUFHLGlCQUFpQixDQUFDO0FBQ2xELFFBQUEsaUNBQWlDLEdBQUcsNkJBQTZCLENBQUM7QUFFbEUsUUFBQSxtQkFBbUIsR0FBRyxPQUFPLENBQUM7QUFDOUIsUUFBQSwwQkFBMEIsR0FBRyxjQUFjLENBQUM7QUFDNUMsUUFBQSxxQkFBcUIsR0FBRyxTQUFTLENBQUM7QUFDbEMsUUFBQSwrQkFBK0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxRQUFBLG9DQUFvQyxHQUFHLHdCQUF3QixDQUFDO0FBQ2hFLFFBQUEsc0NBQXNDLEdBQUcsMEJBQTBCLENBQUM7QUFDcEUsUUFBQSwyQkFBMkIsR0FBRyxlQUFlLENBQUM7QUFDOUMsUUFBQSxrQ0FBa0MsR0FBRyxpQ0FBaUMsQ0FBQztBQUN2RSxRQUFBLCtCQUErQixHQUFHLG1CQUFtQixDQUFDO0FBRXRELFFBQUEsa0NBQWtDLEdBQUc7SUFDaEQsMkJBQW1CO0lBQ25CLGtDQUEwQjtJQUMxQiw2QkFBcUI7SUFDckIsdUNBQStCO0lBQy9CLDhDQUFzQztJQUN0Qyw0Q0FBb0M7SUFDcEMsbUNBQTJCO0lBQzNCLDBDQUFrQztJQUNsQyx1Q0FBK0I7Q0FDaEMsQ0FBQztBQUVXLFFBQUEsNkJBQTZCLEdBQUc7SUFDM0MsV0FBVztJQUNYLGNBQWM7SUFDZCxvQkFBb0I7SUFDcEIsMEJBQTBCO0lBQzFCLHFCQUFxQjtJQUNyQixXQUFXO0lBQ1gsVUFBVTtJQUNWLDZCQUE2QjtDQUM5QixDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFMUMsbUhBQW1IO0FBQ3RHLFFBQUEsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNoQixRQUFBLDJCQUEyQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NFTkRNQU5ZID0gJ3NlbmQtbWFueSc7XG5leHBvcnQgY29uc3QgQ09OVFJBQ1RfTkFNRV9TRU5ETUFOWSA9ICdzZW5kLW1hbnktbWVtbyc7XG5leHBvcnQgY29uc3QgQ09OVFJBQ1RfTkFNRV9TVEFLSU5HID0gJ3BveC00JztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FX1BPWDUgPSAncG94LTUnO1xuZXhwb3J0IGNvbnN0IFZBTElEX1NUQUtJTkdfQ09OVFJBQ1RfTkFNRVMgPSBbQ09OVFJBQ1RfTkFNRV9TVEFLSU5HLCBDT05UUkFDVF9OQU1FX1BPWDVdO1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfVFJBTlNGRVIgPSAndHJhbnNmZXInO1xuZXhwb3J0IGNvbnN0IENPTlRSQUNUX05BTUVfU0JUQ19XSVRIRFJBV0FMID0gJ3NidGMtd2l0aGRyYXdhbCc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9JTklUSUFURV9XSVRIRFJBV0FMID0gJ2luaXRpYXRlLXdpdGhkcmF3YWwtcmVxdWVzdCc7XG5cbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NUQUtFID0gJ3N0YWtlJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NUQUtFX1VQREFURSA9ICdzdGFrZS11cGRhdGUnO1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfVU5TVEFLRSA9ICd1bnN0YWtlJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1JFR0lTVEVSX0ZPUl9CT05EID0gJ3JlZ2lzdGVyLWZvci1ib25kJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0FOTk9VTkNFX0wxX0VBUkxZX0VYSVQgPSAnYW5ub3VuY2UtbDEtZWFybHktZXhpdCc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9VUERBVEVfQk9ORF9SRUdJU1RSQVRJT04gPSAndXBkYXRlLWJvbmQtcmVnaXN0cmF0aW9uJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0NMQUlNX1JFV0FSRFMgPSAnY2xhaW0tcmV3YXJkcyc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9DTEFJTV9TVEFLRVJfUkVXQVJEUyA9ICdjbGFpbS1zdGFrZXItcmV3YXJkcy1mb3Itc2lnbmVyJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0NBTENVTEFURV9SRVdBUkRTID0gJ2NhbGN1bGF0ZS1yZXdhcmRzJztcblxuZXhwb3J0IGNvbnN0IFZBTElEX1BPWDVfQ09OVFJBQ1RfRlVOQ1RJT05fTkFNRVMgPSBbXG4gIEZVTkNUSU9OX05BTUVfU1RBS0UsXG4gIEZVTkNUSU9OX05BTUVfU1RBS0VfVVBEQVRFLFxuICBGVU5DVElPTl9OQU1FX1VOU1RBS0UsXG4gIEZVTkNUSU9OX05BTUVfUkVHSVNURVJfRk9SX0JPTkQsXG4gIEZVTkNUSU9OX05BTUVfVVBEQVRFX0JPTkRfUkVHSVNUUkFUSU9OLFxuICBGVU5DVElPTl9OQU1FX0FOTk9VTkNFX0wxX0VBUkxZX0VYSVQsXG4gIEZVTkNUSU9OX05BTUVfQ0xBSU1fUkVXQVJEUyxcbiAgRlVOQ1RJT05fTkFNRV9DTEFJTV9TVEFLRVJfUkVXQVJEUyxcbiAgRlVOQ1RJT05fTkFNRV9DQUxDVUxBVEVfUkVXQVJEUyxcbl07XG5cbmV4cG9ydCBjb25zdCBWQUxJRF9DT05UUkFDVF9GVU5DVElPTl9OQU1FUyA9IFtcbiAgJ3N0YWNrLXN0eCcsXG4gICdkZWxlZ2F0ZS1zdHgnLFxuICAnZGVsZWdhdGUtc3RhY2stc3R4JyxcbiAgJ3N0YWNrLWFnZ3JlZ2F0aW9uLWNvbW1pdCcsXG4gICdyZXZva2UtZGVsZWdhdGUtc3R4JyxcbiAgJ3NlbmQtbWFueScsXG4gICd0cmFuc2ZlcicsXG4gICdpbml0aWF0ZS13aXRoZHJhd2FsLXJlcXVlc3QnLFxuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gNjQ7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3Nnb3Yvc2lwcy9ibG9iL21haW4vc2lwcy9zaXAtMDA1L3NpcC0wMDUtYmxvY2tzLWFuZC10cmFuc2FjdGlvbnMubWQjdHJhbnNhY3Rpb24tZW5jb2RpbmdcbmV4cG9ydCBjb25zdCBBTkNIT1JfTU9ERSA9IDM7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NVUxUSVNJR19TSUdfTlVNQkVSID0gMjtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/contractBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAuC,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAKL,YAAY,
|
|
1
|
+
{"version":3,"file":"contractBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/contractBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAuC,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAKL,YAAY,EAQb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,qBAAa,eAAgB,SAAQ,uBAAuB;gBAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAUlC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAWtC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAchC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhC,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI;IAY7D,OAAO,CAAC,OAAO;CA2DhB"}
|