@teleportdao/bitcoin 1.7.20 → 1.7.21

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.
Files changed (43) hide show
  1. package/.tmp/rbf.ts +24 -27
  2. package/dist/helper/teleswap-helper.js +1 -1
  3. package/dist/helper/teleswap-helper.js.map +1 -1
  4. package/package.json +3 -3
  5. package/src/bitcoin-interface-ordinal.ts +181 -181
  6. package/src/bitcoin-interface-teleswap.ts +252 -252
  7. package/src/bitcoin-interface-utils.ts +60 -60
  8. package/src/bitcoin-interface.ts +241 -241
  9. package/src/bitcoin-utils.ts +591 -591
  10. package/src/bitcoin-wallet-base.ts +310 -310
  11. package/src/helper/brc20-helper.ts +181 -181
  12. package/src/helper/ordinal-helper.ts +118 -118
  13. package/src/helper/teleswap-helper.ts +1 -1
  14. package/src/index.ts +15 -15
  15. package/src/ordinal-wallet.ts +738 -738
  16. package/src/sign/index.ts +1 -1
  17. package/src/sign/sign-transaction.ts +108 -108
  18. package/src/teleswap-wallet.ts +155 -155
  19. package/src/transaction-builder/bitcoin-transaction-builder.ts +44 -44
  20. package/src/transaction-builder/index.ts +3 -3
  21. package/src/transaction-builder/ordinal-transaction-builder.ts +147 -147
  22. package/src/transaction-builder/transaction-builder.ts +706 -706
  23. package/src/type.ts +48 -48
  24. package/src/utils/networks.ts +33 -33
  25. package/src/utils/tools.ts +90 -90
  26. package/tsconfig.json +9 -9
  27. package/webpack.config.js +16 -16
  28. package/dist/bitcoin-base.d.ts +0 -93
  29. package/dist/bitcoin-base.d.ts.map +0 -1
  30. package/dist/bitcoin-base.js +0 -236
  31. package/dist/bitcoin-base.js.map +0 -1
  32. package/dist/helper/burn-request-helper.d.ts +0 -7
  33. package/dist/helper/burn-request-helper.d.ts.map +0 -1
  34. package/dist/helper/burn-request-helper.js +0 -26
  35. package/dist/helper/burn-request-helper.js.map +0 -1
  36. package/dist/helper/teleport-request-helper.d.ts +0 -47
  37. package/dist/helper/teleport-request-helper.d.ts.map +0 -1
  38. package/dist/helper/teleport-request-helper.js +0 -146
  39. package/dist/helper/teleport-request-helper.js.map +0 -1
  40. package/dist/teleport-dao-payments.d.ts +0 -76
  41. package/dist/teleport-dao-payments.d.ts.map +0 -1
  42. package/dist/teleport-dao-payments.js +0 -217
  43. package/dist/teleport-dao-payments.js.map +0 -1
@@ -1,217 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.TeleportDaoPayment = void 0;
13
- const bitcoin_base_1 = require("./bitcoin-base");
14
- class TeleportDaoPayment extends bitcoin_base_1.BitcoinBase {
15
- payBurnRequest(receivers, feeSpeed = "normal") {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- if (!this.currentAccount || !this.currentAccountType || !this.publicKey || !this.privateKey) {
18
- throw new Error("account not initialized");
19
- }
20
- let extendedUtxo = yield this.getExtendedUtxo({
21
- address: this.currentAccount,
22
- addressType: this.currentAccountType,
23
- publicKey: this.publicKey.toString("hex"),
24
- });
25
- let feeRate = yield this.transactionBuilder._getFeeRate(feeSpeed);
26
- let unsignedTx = yield this.transactionBuilder.processUnsignedTransaction({
27
- extendedUtxo,
28
- targets: receivers,
29
- changeAddress: this.currentAccount,
30
- feeRate,
31
- fullAmount: false,
32
- });
33
- let signedPsbt = yield this.signer.signPsbt(unsignedTx, this.privateKey);
34
- let signedTx = this.signer.finalizePsbts([signedPsbt]);
35
- let txId = yield this.transactionBuilder.sendTx(signedTx);
36
- return txId;
37
- });
38
- }
39
- transferBitcoinToEth({ lockerAddress, amount, fullAmount = false, chainId, appId, recipientAddress, percentageFee, speed = 0, isExchange = false, exchangeTokenAddress = "0x0000000000000000000000000000000000000000", outputAmount = 0, deadline, isFixedToken = false, feeSpeed = "normal", staticFeeRate, }) {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- if (!this.currentAccount || !this.currentAccountType || !this.publicKey || !this.privateKey) {
42
- throw new Error("account not initialized");
43
- }
44
- let extendedUtxo = yield this.getExtendedUtxo({
45
- address: this.currentAccount,
46
- addressType: this.currentAccountType,
47
- publicKey: this.publicKey.toString("hex"),
48
- });
49
- let unsignedTx = yield this.getBitcoinToEthUnsignedPsbt({
50
- changeAddress: this.currentAccount,
51
- extendedUtxo,
52
- lockerAddress,
53
- amount,
54
- fullAmount,
55
- chainId,
56
- appId,
57
- recipientAddress,
58
- percentageFee,
59
- speed,
60
- isExchange,
61
- exchangeTokenAddress,
62
- outputAmount,
63
- deadline,
64
- isFixedToken,
65
- feeSpeed,
66
- staticFeeRate,
67
- });
68
- let signedPsbt = yield this.signer.signPsbt(unsignedTx, this.privateKey);
69
- let txId = yield this.sendSignedPsbt(signedPsbt);
70
- return txId;
71
- });
72
- }
73
- getBitcoinToEthTargetOutputs({ lockerAddress, amount, fullAmount = false, chainId, appId, recipientAddress, percentageFee, speed = 0, isExchange = false, exchangeTokenAddress = "0x0000000000000000000000000000000000000000", outputAmount = 0, deadline = 0, isFixedToken = false, }) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- let dataHex = TeleportDaoPayment.getTransferOpReturnData({
76
- chainId,
77
- appId,
78
- recipientAddress,
79
- percentageFee,
80
- speed,
81
- isExchange,
82
- exchangeTokenAddress,
83
- outputAmount,
84
- deadline,
85
- isFixedToken,
86
- });
87
- let opTarget = this.transactionBuilder.getOpReturnTarget(dataHex);
88
- return fullAmount
89
- ? [opTarget]
90
- : [
91
- {
92
- address: lockerAddress,
93
- value: amount,
94
- },
95
- opTarget,
96
- ];
97
- });
98
- }
99
- getBitcoinToEthUnsignedPsbt({ changeAddress, extendedUtxo, lockerAddress, amount, fullAmount = false, chainId, appId, recipientAddress, percentageFee, speed = 0, isExchange = false, exchangeTokenAddress = "0x0000000000000000000000000000000000000000", outputAmount = 0, deadline = 0, isFixedToken = false, feeSpeed = "normal", staticFeeRate, }) {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- let feeRate = staticFeeRate || (yield this.transactionBuilder._getFeeRate(feeSpeed));
102
- let targets = yield this.getBitcoinToEthTargetOutputs({
103
- lockerAddress,
104
- amount,
105
- fullAmount,
106
- chainId,
107
- appId,
108
- recipientAddress,
109
- percentageFee,
110
- speed,
111
- isExchange,
112
- exchangeTokenAddress,
113
- outputAmount,
114
- deadline,
115
- isFixedToken,
116
- });
117
- let unsignedTx = yield this.transactionBuilder.processUnsignedTransaction({
118
- extendedUtxo,
119
- targets,
120
- changeAddress: fullAmount ? lockerAddress : changeAddress,
121
- feeRate,
122
- fullAmount,
123
- });
124
- return unsignedTx;
125
- });
126
- }
127
- bitcoinToEthLend({ lockerAddress, amount, chainId, appId, recipientAddress, percentageFee, mode = 0, isBorrow = false, tokenAddress = "0x0000000000000000000000000000000000000000", borrowAmount = 0, staticFeeRate, }) {
128
- return __awaiter(this, void 0, void 0, function* () {
129
- if (!this.currentAccount || !this.currentAccountType || !this.publicKey || !this.privateKey) {
130
- throw new Error("account not initialized");
131
- }
132
- let dataHex = TeleportDaoPayment.getLendingOpReturnData({
133
- chainId,
134
- appId,
135
- recipientAddress,
136
- percentageFee,
137
- mode,
138
- isBorrow,
139
- tokenAddress,
140
- borrowAmount,
141
- });
142
- let opTarget = this.transactionBuilder.getOpReturnTarget(dataHex);
143
- let extendedUtxo = yield this.transactionBuilder.getExtendedUtxo({
144
- address: this.currentAccount,
145
- addressType: this.currentAccountType,
146
- publicKey: this.publicKey.toString("hex"),
147
- });
148
- let unsignedTx = yield this.transactionBuilder.processUnsignedTransaction({
149
- extendedUtxo,
150
- targets: [
151
- {
152
- address: lockerAddress,
153
- value: amount,
154
- },
155
- opTarget,
156
- ],
157
- changeAddress: this.currentAccount,
158
- feeRate: staticFeeRate,
159
- fullAmount: false,
160
- });
161
- let signedPsbt = yield this.signer.signPsbt(unsignedTx, this.privateKey);
162
- let signedTx = this.signer.finalizePsbts([signedPsbt]);
163
- let txId = yield this.transactionBuilder.sendTx(signedTx);
164
- return txId;
165
- });
166
- }
167
- static getTransferOpReturnData({ chainId, appId, recipientAddress, percentageFee, speed = 0, isExchange = false, exchangeTokenAddress = "0x0000000000000000000000000000000000000000", outputAmount = 0, deadline, isFixedToken = false, }) {
168
- let chainIdHex = Number(chainId).toString(16).padStart(2, "0");
169
- let appIdHex = Number(appId).toString(16).padStart(4, "0");
170
- let recipientAddressHex = recipientAddress.replace("0x", "").toLowerCase().padStart(40, "0");
171
- let percentageFeeHex = Number((percentageFee * 100).toFixed(0))
172
- .toString(16)
173
- .padStart(4, "0");
174
- let speedHex = speed ? "01" : "00";
175
- let dataHex = chainIdHex + appIdHex + recipientAddressHex + percentageFeeHex + speedHex;
176
- if (!isExchange) {
177
- if (dataHex.length !== 26 * 2)
178
- throw new Error("invalid data length");
179
- return dataHex;
180
- }
181
- let exchangeTokenAddressHex = exchangeTokenAddress
182
- .replace("0x", "")
183
- .toLowerCase()
184
- .padStart(40, "0");
185
- let outputAmountHex = Number(outputAmount).toString(16).padStart(56, "0");
186
- let deadlineHex = Number(deadline).toString(16).padStart(8, "0");
187
- let isFixedTokenHex = isFixedToken ? "01" : "00";
188
- dataHex = dataHex + exchangeTokenAddressHex + outputAmountHex + deadlineHex + isFixedTokenHex;
189
- if (dataHex.length !== 79 * 2)
190
- throw new Error("invalid data length");
191
- return dataHex;
192
- }
193
- static getLendingOpReturnData({ chainId, appId, recipientAddress, percentageFee, mode, isBorrow = false, tokenAddress = "0x0000000000000000000000000000000000000000", borrowAmount = 0, }) {
194
- let chainIdHex = Number(chainId).toString(16).padStart(2, "0");
195
- let appIdHex = Number(appId).toString(16).padStart(4, "0");
196
- let recipientAddressHex = recipientAddress.replace("0x", "").toLowerCase().padStart(40, "0");
197
- let percentageFeeHex = Number((percentageFee * 100).toFixed(0))
198
- .toString(16)
199
- .padStart(4, "0");
200
- let modeHex = Number(mode).toString(16).padStart(2, "0");
201
- let dataHex = chainIdHex + appIdHex + recipientAddressHex + percentageFeeHex + modeHex;
202
- if (!isBorrow) {
203
- if (dataHex.length !== 26 * 2)
204
- throw new Error("invalid data length");
205
- return dataHex;
206
- }
207
- let tokenAddressHex = tokenAddress.replace("0x", "").toLowerCase().padStart(40, "0");
208
- let borrowAmountHex = Number(borrowAmount).toString(16).padStart(56, "0");
209
- dataHex = dataHex + tokenAddressHex + borrowAmountHex;
210
- if (dataHex.length !== 74 * 2)
211
- throw new Error("invalid data length");
212
- return dataHex;
213
- }
214
- }
215
- exports.TeleportDaoPayment = TeleportDaoPayment;
216
- exports.default = TeleportDaoPayment;
217
- //# sourceMappingURL=teleport-dao-payments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"teleport-dao-payments.js","sourceRoot":"","sources":["../src/teleport-dao-payments.ts"],"names":[],"mappings":"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"}