@teleportdao/bitcoin 1.7.3 → 1.7.6
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/bitcoin-interface-teleswap.d.ts +6 -1
- package/dist/bitcoin-interface-teleswap.d.ts.map +1 -1
- package/dist/bitcoin-interface-teleswap.js +2 -4
- package/dist/bitcoin-interface-teleswap.js.map +1 -1
- package/dist/helper/teleswap-helper.d.ts +20 -8
- package/dist/helper/teleswap-helper.d.ts.map +1 -1
- package/dist/helper/teleswap-helper.js +55 -50
- package/dist/helper/teleswap-helper.js.map +1 -1
- package/dist/teleswap-wallet.d.ts +4 -6
- package/dist/teleswap-wallet.d.ts.map +1 -1
- package/dist/teleswap-wallet.js +7 -8
- package/dist/teleswap-wallet.js.map +1 -1
- package/package.json +5 -5
- package/src/bitcoin-interface-teleswap.ts +1 -4
- package/src/helper/teleswap-helper.ts +77 -101
- package/src/teleswap-wallet.ts +11 -14
|
@@ -64,11 +64,13 @@ export declare class BitcoinInterfaceTeleswap extends BitcoinInterface {
|
|
|
64
64
|
data?: undefined;
|
|
65
65
|
value?: undefined;
|
|
66
66
|
valueOutputIndex?: undefined;
|
|
67
|
+
requestOutputIndex?: undefined;
|
|
67
68
|
} | {
|
|
68
69
|
status: true;
|
|
69
70
|
data: WrapOpReturnWithType;
|
|
70
71
|
value: number;
|
|
71
72
|
valueOutputIndex: number;
|
|
73
|
+
requestOutputIndex: number;
|
|
72
74
|
message?: undefined;
|
|
73
75
|
code?: undefined;
|
|
74
76
|
};
|
|
@@ -91,6 +93,7 @@ export declare class BitcoinInterfaceTeleswap extends BitcoinInterface {
|
|
|
91
93
|
data?: undefined;
|
|
92
94
|
value?: undefined;
|
|
93
95
|
valueOutputIndex?: undefined;
|
|
96
|
+
requestOutputIndex?: undefined;
|
|
94
97
|
};
|
|
95
98
|
lockerAddress: string;
|
|
96
99
|
lockerLockingScript: string;
|
|
@@ -102,7 +105,7 @@ export declare class BitcoinInterfaceTeleswap extends BitcoinInterface {
|
|
|
102
105
|
address?: string;
|
|
103
106
|
addressScript?: string;
|
|
104
107
|
merkleProof?: Transaction["merkleProof"];
|
|
105
|
-
}), lockerAddress: string
|
|
108
|
+
}), lockerAddress: string): Promise<{
|
|
106
109
|
transaction: bitcoin.Types.ConfirmedTransaction & {
|
|
107
110
|
address?: string | undefined;
|
|
108
111
|
addressScript?: string | undefined;
|
|
@@ -115,11 +118,13 @@ export declare class BitcoinInterfaceTeleswap extends BitcoinInterface {
|
|
|
115
118
|
data?: undefined;
|
|
116
119
|
value?: undefined;
|
|
117
120
|
valueOutputIndex?: undefined;
|
|
121
|
+
requestOutputIndex?: undefined;
|
|
118
122
|
} | {
|
|
119
123
|
status: true;
|
|
120
124
|
data: WrapOpReturnWithType;
|
|
121
125
|
value: number;
|
|
122
126
|
valueOutputIndex: number;
|
|
127
|
+
requestOutputIndex: number;
|
|
123
128
|
message?: undefined;
|
|
124
129
|
code?: undefined;
|
|
125
130
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitcoin-interface-teleswap.d.ts","sourceRoot":"","sources":["../src/bitcoin-interface-teleswap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAGL,UAAU,EACV,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEpC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG;QAChD,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;KACzC,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,OAAO,CAAA;QACf,IAAI,EAAE,oBAAoB,CAAA;QAC1B,KAAK,EAAE,MAAM,CAAA;QACb,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG;QAChD,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;KACzC,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,OAAO,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,qBAAa,wBAAyB,SAAQ,gBAAgB;IAEtD,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;IAoCnE,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;IA4BrF,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"bitcoin-interface-teleswap.d.ts","sourceRoot":"","sources":["../src/bitcoin-interface-teleswap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAGL,UAAU,EACV,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEpC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG;QAChD,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;KACzC,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,OAAO,CAAA;QACf,IAAI,EAAE,oBAAoB,CAAA;QAC1B,KAAK,EAAE,MAAM,CAAA;QACb,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG;QAChD,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;KACzC,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,OAAO,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,qBAAa,wBAAyB,SAAQ,gBAAgB;IAEtD,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;IAoCnE,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;IA4BrF,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqB1C,kBAAkB,CACtB,gBAAgB,EACZ;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG;QACpC,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;KACzC,CAAC,EACN,aAAa,EAAE,MAAM;;;;0BAKL,WAAW,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;IAuBtC,4BAA4B,CAChC,SAAS,EAAE,MAAM,EAAE,EACnB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM;;;;;;IA0BlB,mCAAmC,CACvC,SAAS,EAAE,MAAM,EAAE,EACnB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM;;;;;;IA0BlB,4BAA4B,CAChC,WAAW,EAAE;QACX,IAAI,EAAE,GAAG,CAAA;QACT,IAAI,CAAC,EAAE,GAAG,CAAA;QACV,GAAG,CAAC,EAAE,GAAG,CAAA;QACT,aAAa,CAAC,EAAE,GAAG,CAAA;KACpB,EACD,aAAa,EAAE,MAAM;CAexB"}
|
|
@@ -92,7 +92,7 @@ class BitcoinInterfaceTeleswap extends bitcoin_interface_1.default {
|
|
|
92
92
|
return { requests, invalidRequests };
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
|
-
getWrapRequestByTx(inputTransaction, lockerAddress
|
|
95
|
+
getWrapRequestByTx(inputTransaction, lockerAddress) {
|
|
96
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
97
|
let transaction;
|
|
98
98
|
if ("vout" in inputTransaction && "blockNumber" in inputTransaction) {
|
|
@@ -104,9 +104,7 @@ class BitcoinInterfaceTeleswap extends bitcoin_interface_1.default {
|
|
|
104
104
|
transaction = yield this.getTransaction(inputTransaction.txId);
|
|
105
105
|
}
|
|
106
106
|
let vout = transaction.vout;
|
|
107
|
-
let request = (0, teleswap_helper_1.checkAndParseWrapRequest)(vout, lockerAddress
|
|
108
|
-
minTeleporterFeeAmount,
|
|
109
|
-
});
|
|
107
|
+
let request = (0, teleswap_helper_1.checkAndParseWrapRequest)(vout, lockerAddress);
|
|
110
108
|
let lockerLockingScript = transaction.addressScript ||
|
|
111
109
|
this.convertAddressToScript(lockerAddress).script.toString("hex");
|
|
112
110
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitcoin-interface-teleswap.js","sourceRoot":"","sources":["../src/bitcoin-interface-teleswap.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bitcoin-interface-teleswap.js","sourceRoot":"","sources":["../src/bitcoin-interface-teleswap.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,12 @@ export type WrapOpReturn = {
|
|
|
11
11
|
chainId: number;
|
|
12
12
|
appId: number;
|
|
13
13
|
recipientAddress: string;
|
|
14
|
-
|
|
14
|
+
thirdPartyId: number;
|
|
15
|
+
networkFee: string;
|
|
15
16
|
speed: boolean;
|
|
16
17
|
outputToken?: string;
|
|
17
18
|
outputAmount?: string;
|
|
18
|
-
|
|
19
|
-
isFixedToken?: boolean;
|
|
19
|
+
bridgePercentageFee?: number;
|
|
20
20
|
};
|
|
21
21
|
export type UnwrapInfo = {
|
|
22
22
|
receivers: (Vout & {
|
|
@@ -33,9 +33,10 @@ export type UnwrapInfo = {
|
|
|
33
33
|
};
|
|
34
34
|
};
|
|
35
35
|
export type WrapOpReturnWithType = WrapOpReturn & {
|
|
36
|
-
requestType: "
|
|
36
|
+
requestType: "Wrap" | "WrapAndSwap";
|
|
37
37
|
};
|
|
38
|
-
export declare function generateWrapOpReturn({ chainId, appId, recipientAddress,
|
|
38
|
+
export declare function generateWrapOpReturn({ chainId, appId, recipientAddress, networkFee, thirdPartyId, speed, isExchange, outputToken, outputAmount, bridgePercentageFee, }: Omit<WrapOpReturn, "thirdPartyId"> & {
|
|
39
|
+
thirdPartyId?: number;
|
|
39
40
|
isExchange?: boolean;
|
|
40
41
|
}): string;
|
|
41
42
|
export declare function getBurnTransactionInfo(address: string, vin?: Vin[], vouts?: Vout[]): {
|
|
@@ -52,6 +53,17 @@ export declare function getBurnTransactionInfo(address: string, vin?: Vin[], vou
|
|
|
52
53
|
value: number;
|
|
53
54
|
};
|
|
54
55
|
} | undefined;
|
|
56
|
+
export declare function parseWrapRequest(data: string): {
|
|
57
|
+
status: boolean;
|
|
58
|
+
data: WrapOpReturnWithType;
|
|
59
|
+
message?: undefined;
|
|
60
|
+
code?: undefined;
|
|
61
|
+
} | {
|
|
62
|
+
status: boolean;
|
|
63
|
+
message: string;
|
|
64
|
+
code: string;
|
|
65
|
+
data?: undefined;
|
|
66
|
+
};
|
|
55
67
|
export declare function parseWrapRawRequest(opReturnData: string): {
|
|
56
68
|
status: boolean;
|
|
57
69
|
data: WrapOpReturnWithType;
|
|
@@ -63,20 +75,20 @@ export declare function parseWrapRawRequest(opReturnData: string): {
|
|
|
63
75
|
code: string;
|
|
64
76
|
data?: undefined;
|
|
65
77
|
};
|
|
66
|
-
export declare function checkAndParseWrapRequest(vouts: Vout[], lockerAddress: string
|
|
67
|
-
minTeleporterFeeAmount?: number | undefined;
|
|
68
|
-
}): {
|
|
78
|
+
export declare function checkAndParseWrapRequest(vouts: Vout[], lockerAddress: string): {
|
|
69
79
|
status: boolean;
|
|
70
80
|
message: string;
|
|
71
81
|
code: string;
|
|
72
82
|
data?: undefined;
|
|
73
83
|
value?: undefined;
|
|
74
84
|
valueOutputIndex?: undefined;
|
|
85
|
+
requestOutputIndex?: undefined;
|
|
75
86
|
} | {
|
|
76
87
|
status: true;
|
|
77
88
|
data: WrapOpReturnWithType;
|
|
78
89
|
value: number;
|
|
79
90
|
valueOutputIndex: number;
|
|
91
|
+
requestOutputIndex: number;
|
|
80
92
|
message?: undefined;
|
|
81
93
|
code?: undefined;
|
|
82
94
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teleswap-helper.d.ts","sourceRoot":"","sources":["../../src/helper/teleswap-helper.ts"],"names":[],"mappings":"AAGA,KAAK,GAAG,GAAG;IACT,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,
|
|
1
|
+
{"version":3,"file":"teleswap-helper.d.ts","sourceRoot":"","sources":["../../src/helper/teleswap-helper.ts"],"names":[],"mappings":"AAGA,KAAK,GAAG,GAAG;IACT,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IAEd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,CAAC,IAAI,GAAG;QACjB,KAAK,EAAE,MAAM,CAAA;KACd,CAAC,EAAE,CAAA;IACJ,OAAO,EAAE,CAAC,IAAI,GAAG;QACf,KAAK,EAAE,MAAM,CAAA;KACd,CAAC,EAAE,CAAA;IACJ,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG;IAChD,WAAW,EAAE,MAAM,GAAG,aAAa,CAAA;CACpC,CAAA;AAYD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAgB,EAChB,KAAa,EACb,UAAkB,EAClB,WAAW,EACX,YAAY,EACZ,mBAAuB,GACxB,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG;IACtC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,UAkDA;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,GAAG,EAAO,EAAE,KAAK,GAAE,IAAI,EAAO;;eAM9E,MAAM;;;eAGN,MAAM;;;;;;;;cAelB;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;EAoD5C;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM;;;;;;;;;;EA+BvD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM;;;;;;;;;;;;;;;;EAsC5E"}
|
|
@@ -3,17 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.checkAndParseWrapRequest = exports.parseWrapRawRequest = exports.getBurnTransactionInfo = exports.generateWrapOpReturn = void 0;
|
|
6
|
+
exports.checkAndParseWrapRequest = exports.parseWrapRawRequest = exports.parseWrapRequest = exports.getBurnTransactionInfo = exports.generateWrapOpReturn = void 0;
|
|
7
7
|
const configs_1 = require("@teleportdao/configs");
|
|
8
8
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
9
|
const wrapOpReturnLength = {
|
|
10
|
-
chainId:
|
|
11
|
-
appId:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
chainId: 4,
|
|
11
|
+
appId: 2,
|
|
12
|
+
thirdPartyId: 2,
|
|
13
|
+
networkFee: 6,
|
|
14
|
+
bridgePercentageFee: 6,
|
|
15
|
+
outputAmount: 28,
|
|
15
16
|
};
|
|
16
|
-
function generateWrapOpReturn({ chainId, appId, recipientAddress,
|
|
17
|
+
function generateWrapOpReturn({ chainId, appId, recipientAddress, networkFee, thirdPartyId = 0, speed = false, isExchange = false, outputToken, outputAmount, bridgePercentageFee = 0, }) {
|
|
17
18
|
let data = "";
|
|
18
19
|
if ((0, bignumber_js_1.default)(chainId).toString(16).length > wrapOpReturnLength.chainId) {
|
|
19
20
|
throw new Error("invalid chainId");
|
|
@@ -21,18 +22,20 @@ function generateWrapOpReturn({ chainId, appId, recipientAddress, percentageFee,
|
|
|
21
22
|
if ((0, bignumber_js_1.default)(appId).toString(16).length > wrapOpReturnLength.appId) {
|
|
22
23
|
throw new Error("invalid appId");
|
|
23
24
|
}
|
|
24
|
-
if ((0, bignumber_js_1.default)(
|
|
25
|
+
if ((0, bignumber_js_1.default)(networkFee).toString(16).length > wrapOpReturnLength.networkFee) {
|
|
25
26
|
throw new Error("invalid percentageFee");
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
if ((0, bignumber_js_1.default)(thirdPartyId).toString(16).length > wrapOpReturnLength.thirdPartyId) {
|
|
29
|
+
throw new Error("invalid percentageFee");
|
|
30
|
+
}
|
|
31
|
+
data += (0, bignumber_js_1.default)(chainId).toString(16).padStart(wrapOpReturnLength.chainId, "0");
|
|
32
|
+
data += (0, bignumber_js_1.default)(appId).toString(16).padStart(wrapOpReturnLength.appId, "0");
|
|
29
33
|
data += recipientAddress.replace("0x", "").toLowerCase().padStart(40, "0");
|
|
30
|
-
data += (0, bignumber_js_1.default)((
|
|
31
|
-
.toString(16)
|
|
32
|
-
.padStart(4, "0");
|
|
34
|
+
data += (0, bignumber_js_1.default)(networkFee).toString(16).padStart(wrapOpReturnLength.networkFee, "0");
|
|
33
35
|
data += speed ? "01" : "00";
|
|
36
|
+
data += (0, bignumber_js_1.default)(thirdPartyId).toString(16).padStart(wrapOpReturnLength.thirdPartyId, "0");
|
|
34
37
|
if (!isExchange) {
|
|
35
|
-
if (data.length !==
|
|
38
|
+
if (data.length !== 28 * 2)
|
|
36
39
|
throw new Error("invalid data length");
|
|
37
40
|
return data;
|
|
38
41
|
}
|
|
@@ -43,14 +46,19 @@ function generateWrapOpReturn({ chainId, appId, recipientAddress, percentageFee,
|
|
|
43
46
|
(0, bignumber_js_1.default)(outputAmount).toString(16).length > wrapOpReturnLength.outputAmount) {
|
|
44
47
|
throw new Error("invalid outputAmount");
|
|
45
48
|
}
|
|
46
|
-
if (
|
|
47
|
-
|
|
49
|
+
if ((bridgePercentageFee || 0) > 100 ||
|
|
50
|
+
(0, bignumber_js_1.default)(bridgePercentageFee || 0)
|
|
51
|
+
.multipliedBy(1e7)
|
|
52
|
+
.toString(16).length > wrapOpReturnLength.bridgePercentageFee) {
|
|
53
|
+
throw new Error("invalid percentageFee");
|
|
48
54
|
}
|
|
49
55
|
data += outputToken.replace("0x", "").toLowerCase().padStart(40, "0");
|
|
50
|
-
data += (0, bignumber_js_1.default)(outputAmount).toString(16).padStart(
|
|
51
|
-
data += (0, bignumber_js_1.default)(
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
data += (0, bignumber_js_1.default)(outputAmount).toString(16).padStart(wrapOpReturnLength.outputAmount, "0");
|
|
57
|
+
data += (0, bignumber_js_1.default)(bridgePercentageFee || 0)
|
|
58
|
+
.multipliedBy(1e7)
|
|
59
|
+
.toString(16)
|
|
60
|
+
.padStart(wrapOpReturnLength.bridgePercentageFee, "0");
|
|
61
|
+
if (data.length !== 65 * 2)
|
|
54
62
|
throw new Error("invalid data length");
|
|
55
63
|
return data;
|
|
56
64
|
}
|
|
@@ -73,19 +81,16 @@ function getBurnTransactionInfo(address, vin = [], vouts = []) {
|
|
|
73
81
|
});
|
|
74
82
|
return { receivers, changes, totalInputValue, lockerVin };
|
|
75
83
|
}
|
|
76
|
-
return;
|
|
77
84
|
}
|
|
78
85
|
exports.getBurnTransactionInfo = getBurnTransactionInfo;
|
|
79
86
|
function parseWrapRequest(data) {
|
|
80
87
|
let parsedData = {};
|
|
81
|
-
parsedData.requestType = "
|
|
88
|
+
parsedData.requestType = "Wrap";
|
|
82
89
|
let offset = 0;
|
|
83
|
-
parsedData.chainId = (0, bignumber_js_1.default)(`0x${data.slice(offset, (offset +=
|
|
84
|
-
parsedData.appId = (0, bignumber_js_1.default)(`0x${data.slice(offset, (offset +=
|
|
90
|
+
parsedData.chainId = (0, bignumber_js_1.default)(`0x${data.slice(offset, (offset += wrapOpReturnLength.chainId))}`).toNumber();
|
|
91
|
+
parsedData.appId = (0, bignumber_js_1.default)(`0x${data.slice(offset, (offset += wrapOpReturnLength.appId))}`).toNumber();
|
|
85
92
|
parsedData.recipientAddress = `0x${data.slice(offset, (offset += 40))}`;
|
|
86
|
-
parsedData.
|
|
87
|
-
.dividedBy(100)
|
|
88
|
-
.toNumber();
|
|
93
|
+
parsedData.networkFee = new bignumber_js_1.default(`0x${data.slice(offset, (offset += wrapOpReturnLength.networkFee))}`).toFixed(0);
|
|
89
94
|
parsedData.speed = data.slice(offset, (offset += 2)) === "01";
|
|
90
95
|
if (data.length === offset) {
|
|
91
96
|
return {
|
|
@@ -93,11 +98,19 @@ function parseWrapRequest(data) {
|
|
|
93
98
|
data: parsedData,
|
|
94
99
|
};
|
|
95
100
|
}
|
|
96
|
-
parsedData.requestType = "
|
|
97
|
-
parsedData.
|
|
98
|
-
parsedData.outputAmount = new bignumber_js_1.default(`0x${data.slice(offset, (offset +=
|
|
99
|
-
parsedData.
|
|
100
|
-
|
|
101
|
+
parsedData.requestType = "WrapAndSwap";
|
|
102
|
+
parsedData.outputToken = `0x${data.slice(offset, (offset += 40))}`;
|
|
103
|
+
parsedData.outputAmount = new bignumber_js_1.default(`0x${data.slice(offset, (offset += wrapOpReturnLength.outputAmount))}`).toFixed(0);
|
|
104
|
+
parsedData.bridgePercentageFee = new bignumber_js_1.default(`0x${data.slice(offset, (offset += wrapOpReturnLength.bridgePercentageFee))}`)
|
|
105
|
+
.dividedBy(1e7)
|
|
106
|
+
.toNumber();
|
|
107
|
+
if (parsedData.bridgePercentageFee > 100) {
|
|
108
|
+
return {
|
|
109
|
+
status: false,
|
|
110
|
+
message: `invalid OP_RETURN data for requestType: 'wrap or wrapAndSwap'. invalid bridgePercentageFee`,
|
|
111
|
+
code: "INVALID_OP_RETURN",
|
|
112
|
+
};
|
|
113
|
+
}
|
|
101
114
|
if (data.length === offset) {
|
|
102
115
|
return {
|
|
103
116
|
status: true,
|
|
@@ -106,10 +119,11 @@ function parseWrapRequest(data) {
|
|
|
106
119
|
}
|
|
107
120
|
return {
|
|
108
121
|
status: false,
|
|
109
|
-
message: `invalid OP_RETURN data for requestType: '
|
|
122
|
+
message: `invalid OP_RETURN data for requestType: 'wrap or wrapAndSwap'. invalid data length : ${data.length} - valid length : ${offset}`,
|
|
110
123
|
code: "INVALID_OP_RETURN",
|
|
111
124
|
};
|
|
112
125
|
}
|
|
126
|
+
exports.parseWrapRequest = parseWrapRequest;
|
|
113
127
|
function parseWrapRawRequest(opReturnData) {
|
|
114
128
|
let data = opReturnData.slice(2, 4) === "4c" ? opReturnData.slice(6) : opReturnData.slice(4);
|
|
115
129
|
let appIdHex = data.slice(2, 6);
|
|
@@ -136,7 +150,7 @@ function parseWrapRawRequest(opReturnData) {
|
|
|
136
150
|
}
|
|
137
151
|
}
|
|
138
152
|
exports.parseWrapRawRequest = parseWrapRawRequest;
|
|
139
|
-
function checkAndParseWrapRequest(vouts, lockerAddress
|
|
153
|
+
function checkAndParseWrapRequest(vouts, lockerAddress) {
|
|
140
154
|
var _a;
|
|
141
155
|
let requestOutputIndex = vouts.findIndex((vout_) => vout_.script.startsWith("6a"));
|
|
142
156
|
if (requestOutputIndex >= 0) {
|
|
@@ -154,22 +168,13 @@ function checkAndParseWrapRequest(vouts, lockerAddress, { minTeleporterFeeAmount
|
|
|
154
168
|
if (!response.status || !("data" in response) || !response.data) {
|
|
155
169
|
return response;
|
|
156
170
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
if ((data.percentageFee / 100) * +value <= minTeleporterFeeAmount) {
|
|
166
|
-
return {
|
|
167
|
-
status: false,
|
|
168
|
-
message: `fee amount is less than or equal minimum teleporter fee amount.percentageFee: ${data.percentageFee} - value: ${value} - feeAmount ${((data.percentageFee / 100) * +value).toFixed(8)} - minimumFee: ${minTeleporterFeeAmount}`,
|
|
169
|
-
code: "NOT_ACCEPTED_BY_TELEPORTER",
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
return { status: response.status, data, value, valueOutputIndex };
|
|
171
|
+
return {
|
|
172
|
+
status: response.status,
|
|
173
|
+
data: response.data,
|
|
174
|
+
value,
|
|
175
|
+
valueOutputIndex,
|
|
176
|
+
requestOutputIndex,
|
|
177
|
+
};
|
|
173
178
|
}
|
|
174
179
|
return {
|
|
175
180
|
status: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teleswap-helper.js","sourceRoot":"","sources":["../../src/helper/teleswap-helper.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA+C;AAC/C,gEAAoC;
|
|
1
|
+
{"version":3,"file":"teleswap-helper.js","sourceRoot":"","sources":["../../src/helper/teleswap-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,11 +20,10 @@ export type TransferRequest = {
|
|
|
20
20
|
};
|
|
21
21
|
export declare class TeleswapWallet extends BitcoinBaseWallet {
|
|
22
22
|
sendToMultipleAddress(receivers: TargetAddress[], feeSpeed?: "normal" | "fast" | "slow"): Promise<string>;
|
|
23
|
-
wrapUnsigned(recipientAddress: string, amount:
|
|
23
|
+
wrapUnsigned(recipientAddress: string, amount: string, networkFee: string, signer: SignerInfo, lockerAddress: string, exchange?: {
|
|
24
24
|
outputToken: string;
|
|
25
25
|
outputAmount: string;
|
|
26
|
-
|
|
27
|
-
isFixedToken?: boolean;
|
|
26
|
+
bridgePercentageFee?: number;
|
|
28
27
|
}, { chainId, appId, }?: {
|
|
29
28
|
chainId?: number | undefined;
|
|
30
29
|
appId?: number | undefined;
|
|
@@ -40,11 +39,10 @@ export declare class TeleswapWallet extends BitcoinBaseWallet {
|
|
|
40
39
|
fee: number;
|
|
41
40
|
change: import("./transaction-builder/transaction-builder").ChangeTarget | undefined;
|
|
42
41
|
}>;
|
|
43
|
-
wrap(recipientAddress: string, amount:
|
|
42
|
+
wrap(recipientAddress: string, amount: string, networkFee: string, lockerAddress: string, exchange?: {
|
|
44
43
|
outputToken: string;
|
|
45
44
|
outputAmount: string;
|
|
46
|
-
|
|
47
|
-
isFixedToken?: boolean;
|
|
45
|
+
bridgePercentageFee?: number;
|
|
48
46
|
}, { chainId, appId, }?: {
|
|
49
47
|
chainId?: number | undefined;
|
|
50
48
|
appId?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teleswap-wallet.d.ts","sourceRoot":"","sources":["../src/teleswap-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACd,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzD,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,qBAAa,cAAe,SAAQ,iBAAiB;IAE7C,qBAAqB,CACzB,SAAS,EAAE,aAAa,EAAE,EAC1B,QAAQ,GAAE,QAAQ,GAAG,MAAM,GAAG,MAAiB;IAsB3C,YAAY,CAChB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,
|
|
1
|
+
{"version":3,"file":"teleswap-wallet.d.ts","sourceRoot":"","sources":["../src/teleswap-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACd,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzD,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,qBAAa,cAAe,SAAQ,iBAAiB;IAE7C,qBAAqB,CACzB,SAAS,EAAE,aAAa,EAAE,EAC1B,QAAQ,GAAE,QAAQ,GAAG,MAAM,GAAG,MAAiB;IAsB3C,YAAY,CAChB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAC7B,EACD,EACE,OAAa,EACb,KAAwB,GACzB;;;KAAK,EACN,UAAU,UAAQ,EAClB,kBAAkB,CAAC,EAAE,YAAY,EAAE,EACnC,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,MAAM;;;;;;;;;;;;IAqClB,IAAI,CACR,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAC7B,EACD,EACE,OAAa,EACb,KAAwB,GACzB;;;KAAK,EACN,UAAU,UAAQ,EAClB,kBAAkB,CAAC,EAAE,YAAY,EAAE,EACnC,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,MAAM;CAwBzB;AACD,eAAe,cAAc,CAAA"}
|
package/dist/teleswap-wallet.js
CHANGED
|
@@ -33,28 +33,27 @@ class TeleswapWallet extends bitcoin_wallet_base_1.BitcoinBaseWallet {
|
|
|
33
33
|
return txId;
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
|
-
wrapUnsigned(recipientAddress, amount,
|
|
36
|
+
wrapUnsigned(recipientAddress, amount, networkFee, signer, lockerAddress, exchange, { chainId = 137, appId = exchange ? 1 : 0, } = {}, fullAmount = false, staticExtendedUtxo, staticFeeRate, changeAddress) {
|
|
37
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
38
|
const dataHex = (0, teleswap_helper_1.generateWrapOpReturn)({
|
|
39
39
|
chainId,
|
|
40
40
|
appId,
|
|
41
41
|
recipientAddress,
|
|
42
|
-
|
|
42
|
+
networkFee,
|
|
43
43
|
speed: false,
|
|
44
44
|
isExchange: !!exchange,
|
|
45
45
|
outputAmount: exchange === null || exchange === void 0 ? void 0 : exchange.outputAmount,
|
|
46
46
|
outputToken: exchange === null || exchange === void 0 ? void 0 : exchange.outputToken,
|
|
47
|
-
|
|
48
|
-
isFixedToken: (exchange === null || exchange === void 0 ? void 0 : exchange.isFixedToken) || false,
|
|
47
|
+
bridgePercentageFee: exchange === null || exchange === void 0 ? void 0 : exchange.bridgePercentageFee,
|
|
49
48
|
});
|
|
50
49
|
let extendedUtxo = staticExtendedUtxo || (yield this.getExtendedUtxo(signer));
|
|
51
|
-
let feeRate = staticFeeRate || (yield this.
|
|
50
|
+
let feeRate = staticFeeRate || (yield this.btcInterface.getFeeRate("normal"));
|
|
52
51
|
const targets = fullAmount
|
|
53
52
|
? [this.transactionBuilder.getOpReturnTarget(dataHex)]
|
|
54
53
|
: [
|
|
55
54
|
{
|
|
56
55
|
address: lockerAddress,
|
|
57
|
-
value: amount,
|
|
56
|
+
value: +amount,
|
|
58
57
|
},
|
|
59
58
|
this.transactionBuilder.getOpReturnTarget(dataHex),
|
|
60
59
|
];
|
|
@@ -68,12 +67,12 @@ class TeleswapWallet extends bitcoin_wallet_base_1.BitcoinBaseWallet {
|
|
|
68
67
|
return unsignedTx;
|
|
69
68
|
});
|
|
70
69
|
}
|
|
71
|
-
wrap(recipientAddress, amount,
|
|
70
|
+
wrap(recipientAddress, amount, networkFee, lockerAddress, exchange, { chainId = 137, appId = exchange ? 1 : 0, } = {}, fullAmount = false, staticExtendedUtxo, staticFeeRate, changeAddress) {
|
|
72
71
|
return __awaiter(this, void 0, void 0, function* () {
|
|
73
72
|
if (!this.signerInfo || !this.privateKey) {
|
|
74
73
|
throw new Error("account not initialized");
|
|
75
74
|
}
|
|
76
|
-
let unsignedTransaction = yield this.wrapUnsigned(recipientAddress, amount,
|
|
75
|
+
let unsignedTransaction = yield this.wrapUnsigned(recipientAddress, amount, networkFee, this.signerInfo, lockerAddress, exchange, {
|
|
77
76
|
chainId,
|
|
78
77
|
appId,
|
|
79
78
|
}, fullAmount, staticExtendedUtxo, staticFeeRate, changeAddress);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teleswap-wallet.js","sourceRoot":"","sources":["../src/teleswap-wallet.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,+DAAyD;AACzD,8DAA+D;AAsB/D,MAAa,cAAe,SAAQ,uCAAiB;IAE7C,qBAAqB,CACzB,SAA0B,EAC1B,WAAuC,QAAQ;;YAE/C,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;aAC3C;YACD,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC9D,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YACjE,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,CAAC;gBACxE,YAAY;gBACZ,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,IAAI,CAAC,cAAc;gBAClC,OAAO;gBACP,UAAU,EAAE,KAAK;aAClB,CAAC,CAAA;YACF,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YACxE,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;YACtD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACzD,OAAO,IAAI,CAAA;QACb,CAAC;KAAA;IAIK,YAAY,CAChB,gBAAwB,EACxB,MAAc,EACd,
|
|
1
|
+
{"version":3,"file":"teleswap-wallet.js","sourceRoot":"","sources":["../src/teleswap-wallet.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teleportdao/bitcoin",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.6",
|
|
4
4
|
"description": "teleswap bitcoin package",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"test": "echo \"Error: no test specified\" && exit
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 3",
|
|
9
9
|
"build:tsc": "tsc",
|
|
10
10
|
"build:watch": "npx tsc --watch",
|
|
11
11
|
"build": "npx tsc"
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"license": "ISC",
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@bitcoinerlab/secp256k1": "^1.0.5",
|
|
17
|
-
"@teleportdao/configs": "^1.7.
|
|
18
|
-
"@teleportdao/providers": "^1.7.
|
|
17
|
+
"@teleportdao/configs": "^1.7.6",
|
|
18
|
+
"@teleportdao/providers": "^1.7.6",
|
|
19
19
|
"axios": "^0.27.2",
|
|
20
20
|
"bignumber.js": "^9.1.1",
|
|
21
21
|
"bip32": "^4.0.0",
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "c91fed69eadbb2dfcb180707f91bfcc86f406e21"
|
|
35
35
|
}
|
|
@@ -142,7 +142,6 @@ export class BitcoinInterfaceTeleswap extends BitcoinInterface {
|
|
|
142
142
|
merkleProof?: Transaction["merkleProof"]
|
|
143
143
|
}),
|
|
144
144
|
lockerAddress: string,
|
|
145
|
-
minTeleporterFeeAmount = 0,
|
|
146
145
|
) {
|
|
147
146
|
let transaction: bitcoin.Types.ConfirmedTransaction & {
|
|
148
147
|
address?: string
|
|
@@ -157,9 +156,7 @@ export class BitcoinInterfaceTeleswap extends BitcoinInterface {
|
|
|
157
156
|
}
|
|
158
157
|
|
|
159
158
|
let vout = transaction.vout
|
|
160
|
-
let request = checkAndParseWrapRequest(vout!, lockerAddress
|
|
161
|
-
minTeleporterFeeAmount,
|
|
162
|
-
})
|
|
159
|
+
let request = checkAndParseWrapRequest(vout!, lockerAddress)
|
|
163
160
|
let lockerLockingScript: string =
|
|
164
161
|
transaction.addressScript ||
|
|
165
162
|
this.convertAddressToScript(lockerAddress).script!.toString("hex")
|
|
@@ -16,13 +16,13 @@ export type WrapOpReturn = {
|
|
|
16
16
|
chainId: number
|
|
17
17
|
appId: number
|
|
18
18
|
recipientAddress: string
|
|
19
|
-
|
|
19
|
+
thirdPartyId: number
|
|
20
|
+
networkFee: string
|
|
20
21
|
speed: boolean
|
|
21
22
|
//
|
|
22
23
|
outputToken?: string
|
|
23
24
|
outputAmount?: string
|
|
24
|
-
|
|
25
|
-
isFixedToken?: boolean
|
|
25
|
+
bridgePercentageFee?: number
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export type UnwrapInfo = {
|
|
@@ -41,29 +41,32 @@ export type UnwrapInfo = {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export type WrapOpReturnWithType = WrapOpReturn & {
|
|
44
|
-
requestType: "
|
|
44
|
+
requestType: "Wrap" | "WrapAndSwap"
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
// hex length -> 1 byte = 2
|
|
47
48
|
const wrapOpReturnLength = {
|
|
48
|
-
chainId:
|
|
49
|
-
appId:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
chainId: 4,
|
|
50
|
+
appId: 2,
|
|
51
|
+
thirdPartyId: 2,
|
|
52
|
+
networkFee: 6,
|
|
53
|
+
bridgePercentageFee: 6,
|
|
54
|
+
outputAmount: 28,
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
export function generateWrapOpReturn({
|
|
56
58
|
chainId,
|
|
57
59
|
appId,
|
|
58
60
|
recipientAddress, // 20 bytes
|
|
59
|
-
|
|
61
|
+
networkFee, // 2 bytes in percent %
|
|
62
|
+
thirdPartyId = 0,
|
|
60
63
|
speed = false, // 1 byte
|
|
61
64
|
isExchange = false,
|
|
62
65
|
outputToken, // 20 bytes
|
|
63
66
|
outputAmount, // 28 bytes
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
bridgePercentageFee = 0,
|
|
68
|
+
}: Omit<WrapOpReturn, "thirdPartyId"> & {
|
|
69
|
+
thirdPartyId?: number
|
|
67
70
|
isExchange?: boolean
|
|
68
71
|
}) {
|
|
69
72
|
let data = ""
|
|
@@ -73,18 +76,20 @@ export function generateWrapOpReturn({
|
|
|
73
76
|
if (BigNumber(appId).toString(16).length > wrapOpReturnLength.appId) {
|
|
74
77
|
throw new Error("invalid appId")
|
|
75
78
|
}
|
|
76
|
-
if (BigNumber(
|
|
79
|
+
if (BigNumber(networkFee).toString(16).length > wrapOpReturnLength.networkFee) {
|
|
77
80
|
throw new Error("invalid percentageFee")
|
|
78
81
|
}
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
if (BigNumber(thirdPartyId).toString(16).length > wrapOpReturnLength.thirdPartyId) {
|
|
83
|
+
throw new Error("invalid percentageFee")
|
|
84
|
+
}
|
|
85
|
+
data += BigNumber(chainId).toString(16).padStart(wrapOpReturnLength.chainId, "0")
|
|
86
|
+
data += BigNumber(appId).toString(16).padStart(wrapOpReturnLength.appId, "0")
|
|
81
87
|
data += recipientAddress.replace("0x", "").toLowerCase().padStart(40, "0")
|
|
82
|
-
data += BigNumber((
|
|
83
|
-
.toString(16)
|
|
84
|
-
.padStart(4, "0")
|
|
88
|
+
data += BigNumber(networkFee).toString(16).padStart(wrapOpReturnLength.networkFee, "0")
|
|
85
89
|
data += speed ? "01" : "00"
|
|
90
|
+
data += BigNumber(thirdPartyId).toString(16).padStart(wrapOpReturnLength.thirdPartyId, "0")
|
|
86
91
|
if (!isExchange) {
|
|
87
|
-
if (data.length !==
|
|
92
|
+
if (data.length !== 28 * 2) throw new Error("invalid data length")
|
|
88
93
|
return data
|
|
89
94
|
}
|
|
90
95
|
if (!outputToken) {
|
|
@@ -96,15 +101,22 @@ export function generateWrapOpReturn({
|
|
|
96
101
|
) {
|
|
97
102
|
throw new Error("invalid outputAmount")
|
|
98
103
|
}
|
|
99
|
-
if (
|
|
100
|
-
|
|
104
|
+
if (
|
|
105
|
+
(bridgePercentageFee || 0) > 100 ||
|
|
106
|
+
BigNumber(bridgePercentageFee || 0)
|
|
107
|
+
.multipliedBy(1e7)
|
|
108
|
+
.toString(16).length > wrapOpReturnLength.bridgePercentageFee
|
|
109
|
+
) {
|
|
110
|
+
throw new Error("invalid percentageFee")
|
|
101
111
|
}
|
|
102
|
-
|
|
103
112
|
data += outputToken.replace("0x", "").toLowerCase().padStart(40, "0")
|
|
104
|
-
data += BigNumber(outputAmount).toString(16).padStart(
|
|
105
|
-
|
|
106
|
-
data +=
|
|
107
|
-
|
|
113
|
+
data += BigNumber(outputAmount).toString(16).padStart(wrapOpReturnLength.outputAmount, "0")
|
|
114
|
+
|
|
115
|
+
data += BigNumber(bridgePercentageFee || 0)
|
|
116
|
+
.multipliedBy(1e7)
|
|
117
|
+
.toString(16)
|
|
118
|
+
.padStart(wrapOpReturnLength.bridgePercentageFee, "0")
|
|
119
|
+
if (data.length !== 65 * 2) throw new Error("invalid data length")
|
|
108
120
|
return data
|
|
109
121
|
}
|
|
110
122
|
|
|
@@ -132,21 +144,24 @@ export function getBurnTransactionInfo(address: string, vin: Vin[] = [], vouts:
|
|
|
132
144
|
})
|
|
133
145
|
return { receivers, changes, totalInputValue, lockerVin }
|
|
134
146
|
}
|
|
135
|
-
return
|
|
136
147
|
}
|
|
137
148
|
|
|
138
149
|
//
|
|
139
150
|
|
|
140
|
-
function parseWrapRequest(data: string) {
|
|
141
|
-
let parsedData:
|
|
142
|
-
parsedData.requestType = "
|
|
151
|
+
export function parseWrapRequest(data: string) {
|
|
152
|
+
let parsedData: Partial<WrapOpReturnWithType> = {}
|
|
153
|
+
parsedData.requestType = "Wrap"
|
|
143
154
|
let offset = 0
|
|
144
|
-
parsedData.chainId = BigNumber(
|
|
145
|
-
|
|
155
|
+
parsedData.chainId = BigNumber(
|
|
156
|
+
`0x${data.slice(offset, (offset += wrapOpReturnLength.chainId))}`,
|
|
157
|
+
).toNumber() // 1 bytes
|
|
158
|
+
parsedData.appId = BigNumber(
|
|
159
|
+
`0x${data.slice(offset, (offset += wrapOpReturnLength.appId))}`,
|
|
160
|
+
).toNumber() // 2 bytes
|
|
146
161
|
parsedData.recipientAddress = `0x${data.slice(offset, (offset += 40))}` // 20 bytes
|
|
147
|
-
parsedData.
|
|
148
|
-
.
|
|
149
|
-
|
|
162
|
+
parsedData.networkFee = new BigNumber(
|
|
163
|
+
`0x${data.slice(offset, (offset += wrapOpReturnLength.networkFee))}`,
|
|
164
|
+
).toFixed(0)
|
|
150
165
|
parsedData.speed = data.slice(offset, (offset += 2)) === "01" // 1 byte
|
|
151
166
|
if (data.length === offset) {
|
|
152
167
|
return {
|
|
@@ -155,11 +170,24 @@ function parseWrapRequest(data: string) {
|
|
|
155
170
|
}
|
|
156
171
|
}
|
|
157
172
|
|
|
158
|
-
parsedData.requestType = "
|
|
159
|
-
parsedData.
|
|
160
|
-
parsedData.outputAmount = new BigNumber(
|
|
161
|
-
|
|
162
|
-
|
|
173
|
+
parsedData.requestType = "WrapAndSwap"
|
|
174
|
+
parsedData.outputToken = `0x${data.slice(offset, (offset += 40))}` // 20 bytes
|
|
175
|
+
parsedData.outputAmount = new BigNumber(
|
|
176
|
+
`0x${data.slice(offset, (offset += wrapOpReturnLength.outputAmount))}`,
|
|
177
|
+
).toFixed(0) // 28 bytes
|
|
178
|
+
parsedData.bridgePercentageFee = new BigNumber(
|
|
179
|
+
`0x${data.slice(offset, (offset += wrapOpReturnLength.bridgePercentageFee))}`,
|
|
180
|
+
)
|
|
181
|
+
.dividedBy(1e7)
|
|
182
|
+
.toNumber()
|
|
183
|
+
|
|
184
|
+
if (parsedData.bridgePercentageFee > 100) {
|
|
185
|
+
return {
|
|
186
|
+
status: false,
|
|
187
|
+
message: `invalid OP_RETURN data for requestType: 'wrap or wrapAndSwap'. invalid bridgePercentageFee`,
|
|
188
|
+
code: "INVALID_OP_RETURN",
|
|
189
|
+
}
|
|
190
|
+
}
|
|
163
191
|
if (data.length === offset) {
|
|
164
192
|
return {
|
|
165
193
|
status: true,
|
|
@@ -169,43 +197,11 @@ function parseWrapRequest(data: string) {
|
|
|
169
197
|
|
|
170
198
|
return {
|
|
171
199
|
status: false,
|
|
172
|
-
message: `invalid OP_RETURN data for requestType: '
|
|
200
|
+
message: `invalid OP_RETURN data for requestType: 'wrap or wrapAndSwap'. invalid data length : ${data.length} - valid length : ${offset}`,
|
|
173
201
|
code: "INVALID_OP_RETURN",
|
|
174
202
|
}
|
|
175
203
|
}
|
|
176
204
|
|
|
177
|
-
// function parseLendAndBorrowRequest(data: string) {
|
|
178
|
-
// let parsedData: any = {}
|
|
179
|
-
// parsedData.requestType = "lend"
|
|
180
|
-
|
|
181
|
-
// let offset = 0
|
|
182
|
-
// parsedData.chainId = BigNumber(`0x${data.slice(offset, (offset += 2))}`) // 1 bytes
|
|
183
|
-
// parsedData.appId = BigNumber(`0x${data.slice(offset, (offset += 4))}`) // 2 bytes
|
|
184
|
-
// parsedData.recipientAddress = `0x${data.slice(offset, (offset += 40))}` // 20 bytes
|
|
185
|
-
// parsedData.percentageFee = BigNumber(`0x${data.slice(offset, (offset += 4))}`) / 100 // 2 bytes
|
|
186
|
-
// parsedData.mode = BigNumber(`0x${data.slice(offset, (offset += 2))}`) // 1 byte
|
|
187
|
-
// if (data.length === offset) {
|
|
188
|
-
// return {
|
|
189
|
-
// status: true,
|
|
190
|
-
// data: parsedData,
|
|
191
|
-
// }
|
|
192
|
-
// }
|
|
193
|
-
// parsedData.requestType = "borrow"
|
|
194
|
-
// parsedData.tokenAddress = `0x${data.slice(offset, (offset += 40))}` // 20 bytes
|
|
195
|
-
// parsedData.borrowAmount = BigNumber(`0x${data.slice(offset, (offset += 56))}`) // 28 bytes
|
|
196
|
-
// if (data.length === offset) {
|
|
197
|
-
// return {
|
|
198
|
-
// status: true,
|
|
199
|
-
// data: parsedData,
|
|
200
|
-
// }
|
|
201
|
-
// }
|
|
202
|
-
// return {
|
|
203
|
-
// status: false,
|
|
204
|
-
// message: `invalid OP_RETURN data for requestType: 'lend or borrow'. invalid data length : ${data.length} - valid length : ${offset}`,
|
|
205
|
-
// code: "INVALID_OP_RETURN",
|
|
206
|
-
// }
|
|
207
|
-
// }
|
|
208
|
-
|
|
209
205
|
export function parseWrapRawRequest(opReturnData: string) {
|
|
210
206
|
let data = opReturnData.slice(2, 4) === "4c" ? opReturnData.slice(6) : opReturnData.slice(4)
|
|
211
207
|
let appIdHex = data.slice(2, 6) // 2 bytes
|
|
@@ -239,11 +235,7 @@ export function parseWrapRawRequest(opReturnData: string) {
|
|
|
239
235
|
}
|
|
240
236
|
}
|
|
241
237
|
|
|
242
|
-
export function checkAndParseWrapRequest(
|
|
243
|
-
vouts: Vout[],
|
|
244
|
-
lockerAddress: string,
|
|
245
|
-
{ minTeleporterFeeAmount = 0 } = {},
|
|
246
|
-
) {
|
|
238
|
+
export function checkAndParseWrapRequest(vouts: Vout[], lockerAddress: string) {
|
|
247
239
|
let requestOutputIndex = vouts.findIndex((vout_) => vout_.script.startsWith("6a"))
|
|
248
240
|
if (requestOutputIndex >= 0) {
|
|
249
241
|
let opReturnData = vouts[requestOutputIndex]?.script || null
|
|
@@ -268,29 +260,13 @@ export function checkAndParseWrapRequest(
|
|
|
268
260
|
}
|
|
269
261
|
}
|
|
270
262
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
code: "INVALID_FEE",
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
if ((data.percentageFee / 100) * +value <= minTeleporterFeeAmount) {
|
|
282
|
-
return {
|
|
283
|
-
status: false,
|
|
284
|
-
message: `fee amount is less than or equal minimum teleporter fee amount.percentageFee: ${
|
|
285
|
-
data.percentageFee
|
|
286
|
-
} - value: ${value} - feeAmount ${((data.percentageFee / 100) * +value).toFixed(
|
|
287
|
-
8,
|
|
288
|
-
)} - minimumFee: ${minTeleporterFeeAmount}`,
|
|
289
|
-
code: "NOT_ACCEPTED_BY_TELEPORTER",
|
|
290
|
-
}
|
|
263
|
+
return {
|
|
264
|
+
status: response.status,
|
|
265
|
+
data: response.data,
|
|
266
|
+
value,
|
|
267
|
+
valueOutputIndex,
|
|
268
|
+
requestOutputIndex,
|
|
291
269
|
}
|
|
292
|
-
|
|
293
|
-
return { status: response.status, data, value, valueOutputIndex }
|
|
294
270
|
}
|
|
295
271
|
return {
|
|
296
272
|
status: false,
|
package/src/teleswap-wallet.ts
CHANGED
|
@@ -54,15 +54,14 @@ export class TeleswapWallet extends BitcoinBaseWallet {
|
|
|
54
54
|
|
|
55
55
|
async wrapUnsigned(
|
|
56
56
|
recipientAddress: string,
|
|
57
|
-
amount:
|
|
58
|
-
|
|
57
|
+
amount: string,
|
|
58
|
+
networkFee: string,
|
|
59
59
|
signer: SignerInfo,
|
|
60
60
|
lockerAddress: string,
|
|
61
61
|
exchange?: {
|
|
62
62
|
outputToken: string
|
|
63
63
|
outputAmount: string
|
|
64
|
-
|
|
65
|
-
isFixedToken?: boolean
|
|
64
|
+
bridgePercentageFee?: number
|
|
66
65
|
},
|
|
67
66
|
{
|
|
68
67
|
chainId = 137, // 80001
|
|
@@ -77,23 +76,22 @@ export class TeleswapWallet extends BitcoinBaseWallet {
|
|
|
77
76
|
chainId,
|
|
78
77
|
appId,
|
|
79
78
|
recipientAddress,
|
|
80
|
-
|
|
79
|
+
networkFee,
|
|
81
80
|
speed: false,
|
|
82
81
|
isExchange: !!exchange,
|
|
83
82
|
outputAmount: exchange?.outputAmount,
|
|
84
83
|
outputToken: exchange?.outputToken,
|
|
85
|
-
|
|
86
|
-
isFixedToken: exchange?.isFixedToken || false,
|
|
84
|
+
bridgePercentageFee: exchange?.bridgePercentageFee,
|
|
87
85
|
})
|
|
88
86
|
let extendedUtxo = staticExtendedUtxo || (await this.getExtendedUtxo(signer))
|
|
89
|
-
let feeRate = staticFeeRate || (await this.
|
|
87
|
+
let feeRate = staticFeeRate || (await this.btcInterface.getFeeRate("normal"))
|
|
90
88
|
|
|
91
89
|
const targets = fullAmount
|
|
92
90
|
? [this.transactionBuilder.getOpReturnTarget(dataHex)]
|
|
93
91
|
: [
|
|
94
92
|
{
|
|
95
93
|
address: lockerAddress,
|
|
96
|
-
value: amount,
|
|
94
|
+
value: +amount,
|
|
97
95
|
},
|
|
98
96
|
this.transactionBuilder.getOpReturnTarget(dataHex),
|
|
99
97
|
]
|
|
@@ -111,14 +109,13 @@ export class TeleswapWallet extends BitcoinBaseWallet {
|
|
|
111
109
|
|
|
112
110
|
async wrap(
|
|
113
111
|
recipientAddress: string,
|
|
114
|
-
amount:
|
|
115
|
-
|
|
112
|
+
amount: string,
|
|
113
|
+
networkFee: string,
|
|
116
114
|
lockerAddress: string,
|
|
117
115
|
exchange?: {
|
|
118
116
|
outputToken: string
|
|
119
117
|
outputAmount: string
|
|
120
|
-
|
|
121
|
-
isFixedToken?: boolean
|
|
118
|
+
bridgePercentageFee?: number
|
|
122
119
|
},
|
|
123
120
|
{
|
|
124
121
|
chainId = 137, // 80001
|
|
@@ -135,7 +132,7 @@ export class TeleswapWallet extends BitcoinBaseWallet {
|
|
|
135
132
|
let unsignedTransaction = await this.wrapUnsigned(
|
|
136
133
|
recipientAddress,
|
|
137
134
|
amount,
|
|
138
|
-
|
|
135
|
+
networkFee,
|
|
139
136
|
this.signerInfo,
|
|
140
137
|
lockerAddress,
|
|
141
138
|
exchange,
|