@teleportdao/bitcoin 1.7.6 → 1.7.8

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 (46) hide show
  1. package/dist/bitcoin-wallet-base.d.ts +1 -6
  2. package/dist/bitcoin-wallet-base.d.ts.map +1 -1
  3. package/dist/bitcoin-wallet-base.js +4 -3
  4. package/dist/bitcoin-wallet-base.js.map +1 -1
  5. package/dist/transaction-builder/transaction-builder.d.ts.map +1 -1
  6. package/dist/transaction-builder/transaction-builder.js +1 -1
  7. package/dist/transaction-builder/transaction-builder.js.map +1 -1
  8. package/package.json +4 -4
  9. package/src/bitcoin-interface-ordinal.ts +181 -181
  10. package/src/bitcoin-interface-teleswap.ts +252 -252
  11. package/src/bitcoin-interface-utils.ts +59 -59
  12. package/src/bitcoin-interface.ts +247 -247
  13. package/src/bitcoin-utils.ts +591 -591
  14. package/src/bitcoin-wallet-base.ts +310 -314
  15. package/src/helper/brc20-helper.ts +181 -181
  16. package/src/helper/ordinal-helper.ts +118 -118
  17. package/src/index.ts +15 -15
  18. package/src/ordinal-wallet.ts +738 -738
  19. package/src/sign/index.ts +1 -1
  20. package/src/sign/sign-transaction.ts +108 -108
  21. package/src/teleswap-wallet.ts +152 -152
  22. package/src/transaction-builder/bitcoin-transaction-builder.ts +44 -44
  23. package/src/transaction-builder/index.ts +3 -3
  24. package/src/transaction-builder/ordinal-transaction-builder.ts +147 -147
  25. package/src/transaction-builder/transaction-builder.ts +706 -705
  26. package/src/type.ts +43 -43
  27. package/src/utils/networks.ts +33 -33
  28. package/src/utils/tools.ts +89 -89
  29. package/tsconfig.json +9 -9
  30. package/webpack.config.js +16 -16
  31. package/dist/bitcoin-base.d.ts +0 -93
  32. package/dist/bitcoin-base.d.ts.map +0 -1
  33. package/dist/bitcoin-base.js +0 -236
  34. package/dist/bitcoin-base.js.map +0 -1
  35. package/dist/helper/burn-request-helper.d.ts +0 -7
  36. package/dist/helper/burn-request-helper.d.ts.map +0 -1
  37. package/dist/helper/burn-request-helper.js +0 -26
  38. package/dist/helper/burn-request-helper.js.map +0 -1
  39. package/dist/helper/teleport-request-helper.d.ts +0 -47
  40. package/dist/helper/teleport-request-helper.d.ts.map +0 -1
  41. package/dist/helper/teleport-request-helper.js +0 -146
  42. package/dist/helper/teleport-request-helper.js.map +0 -1
  43. package/dist/teleport-dao-payments.d.ts +0 -76
  44. package/dist/teleport-dao-payments.d.ts.map +0 -1
  45. package/dist/teleport-dao-payments.js +0 -217
  46. 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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"}