@teleportdao/bitcoin 1.7.2 → 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-base.d.ts +93 -0
- package/dist/bitcoin-base.d.ts.map +1 -0
- package/dist/bitcoin-base.js +236 -0
- package/dist/bitcoin-base.js.map +1 -0
- 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/burn-request-helper.d.ts +7 -0
- package/dist/helper/burn-request-helper.d.ts.map +1 -0
- package/dist/helper/burn-request-helper.js +26 -0
- package/dist/helper/burn-request-helper.js.map +1 -0
- package/dist/helper/teleport-request-helper.d.ts +47 -0
- package/dist/helper/teleport-request-helper.d.ts.map +1 -0
- package/dist/helper/teleport-request-helper.js +146 -0
- package/dist/helper/teleport-request-helper.js.map +1 -0
- 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/teleport-dao-payments.d.ts +76 -0
- package/dist/teleport-dao-payments.d.ts.map +1 -0
- package/dist/teleport-dao-payments.js +217 -0
- package/dist/teleport-dao-payments.js.map +1 -0
- 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-ordinal.ts +181 -181
- package/src/bitcoin-interface-teleswap.ts +252 -255
- package/src/bitcoin-interface-utils.ts +59 -59
- package/src/bitcoin-interface.ts +247 -247
- package/src/bitcoin-utils.ts +591 -591
- package/src/bitcoin-wallet-base.ts +314 -314
- package/src/helper/brc20-helper.ts +181 -181
- package/src/helper/ordinal-helper.ts +118 -118
- package/src/helper/teleswap-helper.ts +77 -101
- package/src/index.ts +15 -15
- package/src/ordinal-wallet.ts +738 -738
- package/src/sign/index.ts +1 -1
- package/src/sign/sign-transaction.ts +108 -108
- package/src/teleswap-wallet.ts +152 -155
- package/src/transaction-builder/bitcoin-transaction-builder.ts +44 -44
- package/src/transaction-builder/index.ts +3 -3
- package/src/transaction-builder/ordinal-transaction-builder.ts +147 -147
- package/src/transaction-builder/transaction-builder.ts +705 -705
- package/src/type.ts +43 -43
- package/src/utils/networks.ts +33 -33
- package/src/utils/tools.ts +89 -89
- package/tsconfig.json +9 -9
- package/webpack.config.js +16 -16
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { requestTypes: teleportRequestsType } = require("@teleportdao/configs").teleswap;
|
|
3
|
+
const { BigNumber } = require("bignumber.js");
|
|
4
|
+
function parseTeleportAndExchangeRequest(data) {
|
|
5
|
+
let parsedData = {};
|
|
6
|
+
parsedData.requestType = "transfer";
|
|
7
|
+
let offset = 0;
|
|
8
|
+
parsedData.chainId = Number(`0x${data.slice(offset, (offset += 2))}`);
|
|
9
|
+
parsedData.appId = Number(`0x${data.slice(offset, (offset += 4))}`);
|
|
10
|
+
parsedData.recipientAddress = `0x${data.slice(offset, (offset += 40))}`;
|
|
11
|
+
parsedData.percentageFee = Number(`0x${data.slice(offset, (offset += 4))}`) / 100;
|
|
12
|
+
parsedData.speed = data.slice(offset, (offset += 2)) === "01";
|
|
13
|
+
if (data.length === offset) {
|
|
14
|
+
return {
|
|
15
|
+
status: true,
|
|
16
|
+
data: parsedData,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
parsedData.requestType = "exchange";
|
|
20
|
+
parsedData.exchangeTokenAddress = `0x${data.slice(offset, (offset += 40))}`;
|
|
21
|
+
parsedData.outputAmount = new BigNumber(`0x${data.slice(offset, (offset += 56))}`).toFixed();
|
|
22
|
+
parsedData.deadline = new BigNumber(`0x${data.slice(offset, (offset += 8))}`).toFixed();
|
|
23
|
+
parsedData.isFixedToken = data.slice(offset, (offset += 2)) === "01";
|
|
24
|
+
if (data.length === offset) {
|
|
25
|
+
return {
|
|
26
|
+
status: true,
|
|
27
|
+
data: parsedData,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
status: false,
|
|
32
|
+
message: `invalid OP_RETURN data for requestType: 'transfer or exchange'. invalid data length : ${data.length} - valid length : ${offset}`,
|
|
33
|
+
code: "INVALID_OP_RETURN",
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function parseLendAndBorrowRequest(data) {
|
|
37
|
+
let parsedData = {};
|
|
38
|
+
parsedData.requestType = "lend";
|
|
39
|
+
let offset = 0;
|
|
40
|
+
parsedData.chainId = Number(`0x${data.slice(offset, (offset += 2))}`);
|
|
41
|
+
parsedData.appId = Number(`0x${data.slice(offset, (offset += 4))}`);
|
|
42
|
+
parsedData.recipientAddress = `0x${data.slice(offset, (offset += 40))}`;
|
|
43
|
+
parsedData.percentageFee = Number(`0x${data.slice(offset, (offset += 4))}`) / 100;
|
|
44
|
+
parsedData.mode = Number(`0x${data.slice(offset, (offset += 2))}`);
|
|
45
|
+
if (data.length === offset) {
|
|
46
|
+
return {
|
|
47
|
+
status: true,
|
|
48
|
+
data: parsedData,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
parsedData.requestType = "borrow";
|
|
52
|
+
parsedData.tokenAddress = `0x${data.slice(offset, (offset += 40))}`;
|
|
53
|
+
parsedData.borrowAmount = Number(`0x${data.slice(offset, (offset += 56))}`);
|
|
54
|
+
if (data.length === offset) {
|
|
55
|
+
return {
|
|
56
|
+
status: true,
|
|
57
|
+
data: parsedData,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
status: false,
|
|
62
|
+
message: `invalid OP_RETURN data for requestType: 'lend or borrow'. invalid data length : ${data.length} - valid length : ${offset}`,
|
|
63
|
+
code: "INVALID_OP_RETURN",
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function parseRawRequest(opReturnData) {
|
|
67
|
+
let data = opReturnData.slice(2, 4) === "4c" ? opReturnData.slice(6) : opReturnData.slice(4);
|
|
68
|
+
let _chainId = Number(`0x${data.slice(0, 2)}`);
|
|
69
|
+
let appIdHex = data.slice(2, 6);
|
|
70
|
+
if (!appIdHex) {
|
|
71
|
+
return {
|
|
72
|
+
status: false,
|
|
73
|
+
message: `invalid OP_RETURN data : ${data}`,
|
|
74
|
+
code: "INVALID_APP_ID",
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
let appId = Number(`0x${appIdHex}`);
|
|
78
|
+
let requestType = Object.keys(teleportRequestsType).find((key) => appId >= teleportRequestsType[key].appIdRange[0] &&
|
|
79
|
+
appId <= teleportRequestsType[key].appIdRange[1]);
|
|
80
|
+
switch (requestType) {
|
|
81
|
+
case "transfer":
|
|
82
|
+
case "exchange":
|
|
83
|
+
return parseTeleportAndExchangeRequest(data);
|
|
84
|
+
case "lend":
|
|
85
|
+
return parseLendAndBorrowRequest(data);
|
|
86
|
+
default:
|
|
87
|
+
return {
|
|
88
|
+
status: false,
|
|
89
|
+
message: `invalid appId : ${appId}`,
|
|
90
|
+
code: "INVALID_OP_RETURN",
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function validateRequestAndValue(data, requestOutputIndex, value, valueOutputIndex, { minTeleporterFeeAmount = 0 }) {
|
|
95
|
+
if (!data) {
|
|
96
|
+
return {
|
|
97
|
+
status: false,
|
|
98
|
+
message: "no data to validate. it should not happen",
|
|
99
|
+
code: "NOT_ACCEPTED_BY_TELEPORTER",
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (+data.percentageFee > 100) {
|
|
103
|
+
return {
|
|
104
|
+
status: false,
|
|
105
|
+
message: `percentageFee greater than 100 is invalid. percentageFee: ${data.percentageFee}`,
|
|
106
|
+
code: "INVALID_FEE",
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if ((data.percentageFee / 100) * +value <= minTeleporterFeeAmount) {
|
|
110
|
+
return {
|
|
111
|
+
status: false,
|
|
112
|
+
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}`,
|
|
113
|
+
code: "NOT_ACCEPTED_BY_TELEPORTER",
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
status: true,
|
|
118
|
+
data,
|
|
119
|
+
requestOutputIndex,
|
|
120
|
+
value,
|
|
121
|
+
valueOutputIndex,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function checkAndParseProtocolRequest(vouts, address, config = { minTeleporterFeeAmount: 0 }) {
|
|
125
|
+
var _a;
|
|
126
|
+
let requestOutputIndex = vouts.findIndex((vout_) => vout_.script.startsWith("6a"));
|
|
127
|
+
if (requestOutputIndex >= 0) {
|
|
128
|
+
let opReturnData = ((_a = vouts[requestOutputIndex]) === null || _a === void 0 ? void 0 : _a.script) || null;
|
|
129
|
+
let valueOutputIndex = vouts.findIndex((vout_) => vout_.address === address);
|
|
130
|
+
let value = valueOutputIndex >= 0 ? vouts[valueOutputIndex].value || 0 : 0;
|
|
131
|
+
let dataResponse = parseRawRequest(opReturnData);
|
|
132
|
+
if (dataResponse.status) {
|
|
133
|
+
return validateRequestAndValue(dataResponse.data, requestOutputIndex, value, valueOutputIndex, config);
|
|
134
|
+
}
|
|
135
|
+
return dataResponse;
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
status: false,
|
|
139
|
+
message: "transaction outputs should contain OP_RETURN",
|
|
140
|
+
code: "NO_OP_RETURN",
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
module.exports = {
|
|
144
|
+
checkAndParseProtocolRequest,
|
|
145
|
+
};
|
|
146
|
+
//# sourceMappingURL=teleport-request-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teleport-request-helper.js","sourceRoot":"","sources":["../../src/helper/teleport-request-helper.js"],"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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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { ExtendedUtxo, Target } from "./transaction-builder/transaction-builder";
|
|
2
|
+
import { BitcoinBase } from "./bitcoin-base";
|
|
3
|
+
export type TransferRequest = {
|
|
4
|
+
changeAddress?: string;
|
|
5
|
+
lockerAddress: string;
|
|
6
|
+
amount: number;
|
|
7
|
+
fullAmount?: boolean;
|
|
8
|
+
chainId: number;
|
|
9
|
+
appId: number;
|
|
10
|
+
recipientAddress: string;
|
|
11
|
+
percentageFee: number;
|
|
12
|
+
speed?: number | boolean;
|
|
13
|
+
isExchange?: boolean;
|
|
14
|
+
exchangeTokenAddress?: string;
|
|
15
|
+
outputAmount?: number;
|
|
16
|
+
deadline?: number;
|
|
17
|
+
isFixedToken?: boolean;
|
|
18
|
+
feeSpeed?: "normal" | "fast" | "slow";
|
|
19
|
+
staticFeeRate?: number;
|
|
20
|
+
};
|
|
21
|
+
export declare class TeleportDaoPayment extends BitcoinBase {
|
|
22
|
+
payBurnRequest(receivers: Target[], feeSpeed?: "normal" | "fast" | "slow"): Promise<string>;
|
|
23
|
+
transferBitcoinToEth({ lockerAddress, amount, fullAmount, chainId, appId, recipientAddress, percentageFee, speed, isExchange, exchangeTokenAddress, outputAmount, deadline, isFixedToken, feeSpeed, staticFeeRate, }: TransferRequest): Promise<string>;
|
|
24
|
+
getBitcoinToEthTargetOutputs({ lockerAddress, amount, fullAmount, chainId, appId, recipientAddress, percentageFee, speed, isExchange, exchangeTokenAddress, outputAmount, deadline, isFixedToken, }: TransferRequest): Promise<Target[]>;
|
|
25
|
+
getBitcoinToEthUnsignedPsbt({ changeAddress, extendedUtxo, lockerAddress, amount, fullAmount, chainId, appId, recipientAddress, percentageFee, speed, isExchange, exchangeTokenAddress, outputAmount, deadline, isFixedToken, feeSpeed, staticFeeRate, }: TransferRequest & {
|
|
26
|
+
extendedUtxo: ExtendedUtxo[];
|
|
27
|
+
}): Promise<{
|
|
28
|
+
unsignedTransaction: string;
|
|
29
|
+
outputs: Target[];
|
|
30
|
+
inputs: {
|
|
31
|
+
hash: string;
|
|
32
|
+
value: number;
|
|
33
|
+
index: number;
|
|
34
|
+
signerInfo: import("./transaction-builder/transaction-builder").SignerInfo;
|
|
35
|
+
}[];
|
|
36
|
+
fee: number;
|
|
37
|
+
change: import("./transaction-builder/transaction-builder").ChangeTarget | undefined;
|
|
38
|
+
}>;
|
|
39
|
+
bitcoinToEthLend({ lockerAddress, amount, chainId, appId, recipientAddress, percentageFee, mode, isBorrow, tokenAddress, borrowAmount, staticFeeRate, }: {
|
|
40
|
+
lockerAddress: string;
|
|
41
|
+
amount: number;
|
|
42
|
+
chainId: number;
|
|
43
|
+
appId: number;
|
|
44
|
+
recipientAddress: string;
|
|
45
|
+
percentageFee: number;
|
|
46
|
+
staticFeeRate: number;
|
|
47
|
+
mode?: 0 | 1 | boolean;
|
|
48
|
+
isBorrow?: boolean;
|
|
49
|
+
tokenAddress?: string;
|
|
50
|
+
borrowAmount?: number;
|
|
51
|
+
}): Promise<string>;
|
|
52
|
+
static getTransferOpReturnData({ chainId, appId, recipientAddress, percentageFee, speed, isExchange, exchangeTokenAddress, outputAmount, deadline, isFixedToken, }: {
|
|
53
|
+
chainId: number;
|
|
54
|
+
appId: number;
|
|
55
|
+
recipientAddress: string;
|
|
56
|
+
percentageFee: number;
|
|
57
|
+
deadline: number;
|
|
58
|
+
speed?: number | boolean;
|
|
59
|
+
isExchange?: boolean;
|
|
60
|
+
exchangeTokenAddress?: string;
|
|
61
|
+
outputAmount?: number;
|
|
62
|
+
isFixedToken?: boolean;
|
|
63
|
+
}): string;
|
|
64
|
+
static getLendingOpReturnData({ chainId, appId, recipientAddress, percentageFee, mode, isBorrow, tokenAddress, borrowAmount, }: {
|
|
65
|
+
chainId: number;
|
|
66
|
+
appId: number;
|
|
67
|
+
recipientAddress: string;
|
|
68
|
+
percentageFee: number;
|
|
69
|
+
mode?: 0 | 1 | boolean;
|
|
70
|
+
isBorrow?: boolean;
|
|
71
|
+
tokenAddress?: string;
|
|
72
|
+
borrowAmount?: number;
|
|
73
|
+
}): string;
|
|
74
|
+
}
|
|
75
|
+
export default TeleportDaoPayment;
|
|
76
|
+
//# sourceMappingURL=teleport-dao-payments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teleport-dao-payments.d.ts","sourceRoot":"","sources":["../src/teleport-dao-payments.ts"],"names":[],"mappings":"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"}
|