@kynesyslabs/demosdk 2.1.9 → 2.1.11
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/README.md +48 -48
- package/build/abstraction/Identities.d.ts +40 -7
- package/build/abstraction/Identities.js +62 -46
- package/build/abstraction/Identities.js.map +1 -1
- package/build/demoswork/workstep.js.map +1 -1
- package/build/encryption/index.d.ts +0 -2
- package/build/encryption/index.js +1 -5
- package/build/encryption/index.js.map +1 -1
- package/build/multichain/core/btc.d.ts +40 -0
- package/build/multichain/core/btc.js +372 -0
- package/build/multichain/core/btc.js.map +1 -0
- package/build/multichain/core/index.d.ts +1 -0
- package/build/multichain/core/index.js +3 -1
- package/build/multichain/core/index.js.map +1 -1
- package/build/multichain/localsdk/btc.d.ts +11 -0
- package/build/multichain/localsdk/btc.js +89 -0
- package/build/multichain/localsdk/btc.js.map +1 -0
- package/build/multichain/localsdk/index.d.ts +1 -0
- package/build/multichain/localsdk/index.js +3 -1
- package/build/multichain/localsdk/index.js.map +1 -1
- package/build/multichain/websdk/btc.d.ts +4 -0
- package/build/multichain/websdk/btc.js +11 -0
- package/build/multichain/websdk/btc.js.map +1 -0
- package/build/multichain/websdk/index.d.ts +1 -0
- package/build/multichain/websdk/index.js +3 -1
- package/build/multichain/websdk/index.js.map +1 -1
- package/build/websdk/DemosTransactions.js +10 -1
- package/build/websdk/DemosTransactions.js.map +1 -1
- package/build/websdk/DemosWebAuth.d.ts +2 -2
- package/build/websdk/DemosWebAuth.js.map +1 -1
- package/build/websdk/demosclass.d.ts +2 -2
- package/build/websdk/demosclass.js.map +1 -1
- package/build/websdk/types/KeyPair.d.ts +2 -2
- package/build/websdk/utils/forge_converter.d.ts +1 -1
- package/build/websdk/utils/forge_converter.js +1 -1
- package/build/websdk/utils/forge_converter.js.map +1 -1
- package/package.json +7 -2
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.BTC = void 0;
|
|
40
|
+
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
41
|
+
const bip32_1 = require("bip32");
|
|
42
|
+
const ecc = __importStar(require("tiny-secp256k1"));
|
|
43
|
+
const utils_1 = require("./utils");
|
|
44
|
+
const axios_1 = __importDefault(require("axios"));
|
|
45
|
+
const ecpair_1 = require("ecpair");
|
|
46
|
+
const defaultChain_1 = require("./types/defaultChain");
|
|
47
|
+
const ECPair = (0, ecpair_1.ECPairFactory)(ecc);
|
|
48
|
+
const bip32 = (0, bip32_1.BIP32Factory)(ecc);
|
|
49
|
+
const BITCOIN_CONSTANTS = {
|
|
50
|
+
DUST_LIMIT_P2WPKH: 294,
|
|
51
|
+
BASE_TX_SIZE: 10,
|
|
52
|
+
INPUT_SIZE: 68,
|
|
53
|
+
OUTPUT_SIZE: 31,
|
|
54
|
+
SAT_PER_VBYTE: 1,
|
|
55
|
+
MAX_ATTEMPTS: 100,
|
|
56
|
+
MAX_INDEX: 100,
|
|
57
|
+
DEFAULT_NETWORK: bitcoin.networks.testnet,
|
|
58
|
+
MAX_EMPTY: 5,
|
|
59
|
+
};
|
|
60
|
+
class BTC extends defaultChain_1.DefaultChain {
|
|
61
|
+
constructor(rpc_url, network = BITCOIN_CONSTANTS.DEFAULT_NETWORK) {
|
|
62
|
+
super(rpc_url);
|
|
63
|
+
this.changeIndex = 0;
|
|
64
|
+
this.lastUsedUtxos = [];
|
|
65
|
+
this.usedChangeAddresses = new Set(); // For storing used change addresses
|
|
66
|
+
this.name = "btc";
|
|
67
|
+
this.provider = rpc_url;
|
|
68
|
+
this.network = network;
|
|
69
|
+
}
|
|
70
|
+
async connect() {
|
|
71
|
+
try {
|
|
72
|
+
const url = this.getApiUrl("/blocks/tip/height");
|
|
73
|
+
const response = await axios_1.default.get(url);
|
|
74
|
+
this.connected = !!response.data;
|
|
75
|
+
return this.connected;
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error("BTC connection error:", error);
|
|
79
|
+
this.connected = false;
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Generate a private key for the BTC chain
|
|
85
|
+
* @param seed - The seed to generate the private key from (optional)
|
|
86
|
+
* @returns The private key as a WIF string
|
|
87
|
+
*/
|
|
88
|
+
generatePrivateKey(seed) {
|
|
89
|
+
if (seed) {
|
|
90
|
+
// Generate deterministic key from seed using BIP32
|
|
91
|
+
const root = bip32.fromSeed(seed, this.network);
|
|
92
|
+
const path = this.network === bitcoin.networks.testnet
|
|
93
|
+
? "m/84'/1'/0'/0/0"
|
|
94
|
+
: "m/84'/0'/0'/0/0";
|
|
95
|
+
const child = root.derivePath(path);
|
|
96
|
+
return child.toWIF();
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// Generate random key if no seed provided
|
|
100
|
+
const keyPair = ECPair.makeRandom({ network: this.network });
|
|
101
|
+
return keyPair.toWIF();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async generateChangeAddress() {
|
|
105
|
+
const seed = this.wallet.privateKey;
|
|
106
|
+
const root = bip32.fromSeed(seed, this.network);
|
|
107
|
+
let address;
|
|
108
|
+
let attempts = 0;
|
|
109
|
+
// Check if the address has been used before
|
|
110
|
+
while (attempts < BITCOIN_CONSTANTS.MAX_ATTEMPTS) {
|
|
111
|
+
const child = root.derivePath(`m/84'/1'/0'/1/${this.changeIndex}`);
|
|
112
|
+
const payment = bitcoin.payments.p2wpkh({
|
|
113
|
+
pubkey: Buffer.from(child.publicKey),
|
|
114
|
+
network: this.network,
|
|
115
|
+
});
|
|
116
|
+
address = payment.address;
|
|
117
|
+
// Check if there is a UTXO at this address (i.e., if it was used)
|
|
118
|
+
const utxos = await this.fetchUTXOs(address);
|
|
119
|
+
if (utxos.length === 0 && !this.usedChangeAddresses.has(address)) {
|
|
120
|
+
this.usedChangeAddresses.add(address); // Add to the list of used addresses
|
|
121
|
+
this.changeIndex++;
|
|
122
|
+
return address;
|
|
123
|
+
}
|
|
124
|
+
this.changeIndex++;
|
|
125
|
+
attempts++;
|
|
126
|
+
}
|
|
127
|
+
throw new Error("Failed to generate a unique change address after maximum attempts");
|
|
128
|
+
}
|
|
129
|
+
async connectWallet(privateKeyWIF) {
|
|
130
|
+
try {
|
|
131
|
+
this.wallet = ECPair.fromWIF(privateKeyWIF, this.network);
|
|
132
|
+
const { address } = bitcoin.payments.p2wpkh({
|
|
133
|
+
pubkey: Buffer.from(this.wallet.publicKey),
|
|
134
|
+
network: this.network,
|
|
135
|
+
});
|
|
136
|
+
this.address = address;
|
|
137
|
+
return this.wallet;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
throw new Error(`Failed to connect wallet: ${error}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
getAddress() {
|
|
144
|
+
(0, utils_1.required)(this.address, "Wallet not connected");
|
|
145
|
+
return this.address;
|
|
146
|
+
}
|
|
147
|
+
getApiUrl(path) {
|
|
148
|
+
const baseUrl = this.provider.replace(/\/api$/, "");
|
|
149
|
+
return `${baseUrl}/api${path}`;
|
|
150
|
+
}
|
|
151
|
+
async fetchUTXOs(address) {
|
|
152
|
+
try {
|
|
153
|
+
const url = this.getApiUrl(`/address/${address}/utxo`);
|
|
154
|
+
const response = await axios_1.default.get(url);
|
|
155
|
+
const utxos = response.data || [];
|
|
156
|
+
return utxos;
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
throw new Error(`Error receiving UTXOs: ${error}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
async fetchAllUTXOs() {
|
|
163
|
+
const mainAddressUTXOs = await this.fetchUTXOs(this.getAddress());
|
|
164
|
+
const seed = this.wallet.privateKey;
|
|
165
|
+
const root = bip32.fromSeed(seed, this.network);
|
|
166
|
+
let changeUTXOs = [];
|
|
167
|
+
let i = 0;
|
|
168
|
+
let emptyCount = 0;
|
|
169
|
+
while (i < BITCOIN_CONSTANTS.MAX_INDEX &&
|
|
170
|
+
emptyCount < BITCOIN_CONSTANTS.MAX_EMPTY) {
|
|
171
|
+
const child = root.derivePath(`m/84'/1'/0'/1/${i}`);
|
|
172
|
+
const { address } = bitcoin.payments.p2wpkh({
|
|
173
|
+
pubkey: Buffer.from(child.publicKey),
|
|
174
|
+
network: this.network,
|
|
175
|
+
});
|
|
176
|
+
const utxos = await this.fetchUTXOs(address);
|
|
177
|
+
if (utxos.length === 0) {
|
|
178
|
+
emptyCount++;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
emptyCount = 0;
|
|
182
|
+
}
|
|
183
|
+
changeUTXOs = changeUTXOs.concat(utxos.map(utxo => ({
|
|
184
|
+
...utxo,
|
|
185
|
+
derivedKey: child,
|
|
186
|
+
})));
|
|
187
|
+
i++;
|
|
188
|
+
}
|
|
189
|
+
return [...mainAddressUTXOs, ...changeUTXOs];
|
|
190
|
+
}
|
|
191
|
+
async getTxHex(txid) {
|
|
192
|
+
try {
|
|
193
|
+
const url = this.getApiUrl(`/tx/${txid}/hex`);
|
|
194
|
+
const response = await axios_1.default.get(url);
|
|
195
|
+
const txHex = response.data;
|
|
196
|
+
return txHex;
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
throw new Error(`Failed to get transaction hex: ${error}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
toSigner(ecpair) {
|
|
203
|
+
return {
|
|
204
|
+
publicKey: Buffer.from(ecpair.publicKey),
|
|
205
|
+
sign: (hash, lowR) => {
|
|
206
|
+
const signature = ecpair.sign(hash, lowR);
|
|
207
|
+
return Buffer.from(signature);
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
async preparePay(address, amount, overrideFeeRate, addNoise = false) {
|
|
212
|
+
const txs = await this.preparePays([{ address, amount }], overrideFeeRate, addNoise);
|
|
213
|
+
return txs[0];
|
|
214
|
+
}
|
|
215
|
+
async preparePays(payments, overrideFeeRate, addNoise = false) {
|
|
216
|
+
(0, utils_1.required)(this.wallet, "Wallet not connected");
|
|
217
|
+
let availableUtxos = await this.fetchAllUTXOs();
|
|
218
|
+
const psbts = [];
|
|
219
|
+
for (const payment of payments) {
|
|
220
|
+
const { psbt, usedUtxos } = await this.createUnsignedPSBT(payment.address, payment.amount, availableUtxos, overrideFeeRate, addNoise);
|
|
221
|
+
psbts.push(psbt);
|
|
222
|
+
this.lastUsedUtxos = usedUtxos.map((u, i) => ({
|
|
223
|
+
...u,
|
|
224
|
+
derivedKey: availableUtxos.find(utxo => utxo.txid === u.txid && utxo.vout === u.vout)?.derivedKey,
|
|
225
|
+
}));
|
|
226
|
+
availableUtxos = availableUtxos.filter(utxo => !usedUtxos.some(used => used.txid === utxo.txid && used.vout === utxo.vout));
|
|
227
|
+
}
|
|
228
|
+
return this.signTransactions(psbts);
|
|
229
|
+
}
|
|
230
|
+
async createUnsignedPSBT(address, amount, availableUtxos, overrideFeeRate, addNoise = false) {
|
|
231
|
+
const amountNum = Number(amount);
|
|
232
|
+
if (isNaN(amountNum) || amountNum <= 0)
|
|
233
|
+
throw new Error("Incorrect amount");
|
|
234
|
+
if (availableUtxos.length === 0)
|
|
235
|
+
throw new Error("No UTXOs available");
|
|
236
|
+
const psbt = new bitcoin.Psbt({ network: this.network });
|
|
237
|
+
let totalInput = 0;
|
|
238
|
+
let inputCount = 0;
|
|
239
|
+
const usedUtxos = [];
|
|
240
|
+
const inputAddresses = new Set(); // Store input addresses for verification
|
|
241
|
+
const sortedUtxos = [...availableUtxos].sort((a, b) => b.value - a.value);
|
|
242
|
+
const outputCount = addNoise ? 3 : 2;
|
|
243
|
+
let estimatedFee = await this.calculateFee(1, outputCount, overrideFeeRate);
|
|
244
|
+
for (const utxo of sortedUtxos) {
|
|
245
|
+
const pubkey = utxo.derivedKey
|
|
246
|
+
? utxo.derivedKey.publicKey
|
|
247
|
+
: this.wallet.publicKey;
|
|
248
|
+
const p2wpkh = bitcoin.payments.p2wpkh({
|
|
249
|
+
pubkey: Buffer.from(pubkey),
|
|
250
|
+
network: this.network,
|
|
251
|
+
});
|
|
252
|
+
const utxoAddress = p2wpkh.address;
|
|
253
|
+
inputAddresses.add(utxoAddress); // Save input address
|
|
254
|
+
psbt.addInput({
|
|
255
|
+
hash: utxo.txid,
|
|
256
|
+
index: utxo.vout,
|
|
257
|
+
witnessUtxo: {
|
|
258
|
+
script: p2wpkh.output,
|
|
259
|
+
value: utxo.value,
|
|
260
|
+
},
|
|
261
|
+
sequence: 0xfffffffe, // Enable RBF
|
|
262
|
+
});
|
|
263
|
+
totalInput += utxo.value;
|
|
264
|
+
inputCount++;
|
|
265
|
+
usedUtxos.push({ txid: utxo.txid, vout: utxo.vout });
|
|
266
|
+
estimatedFee = await this.calculateFee(inputCount, outputCount, overrideFeeRate);
|
|
267
|
+
if (totalInput >= amountNum + estimatedFee)
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
const finalFee = await this.calculateFee(inputCount, outputCount, overrideFeeRate);
|
|
271
|
+
if (totalInput < amountNum + finalFee) {
|
|
272
|
+
throw new Error(`Insufficient funds: There is ${totalInput}, need ${amountNum + finalFee}`);
|
|
273
|
+
}
|
|
274
|
+
psbt.addOutput({
|
|
275
|
+
address,
|
|
276
|
+
value: amountNum,
|
|
277
|
+
});
|
|
278
|
+
const change = totalInput - amountNum - finalFee;
|
|
279
|
+
let remainingChange = change;
|
|
280
|
+
if (addNoise &&
|
|
281
|
+
remainingChange >= BITCOIN_CONSTANTS.DUST_LIMIT_P2WPKH * 2) {
|
|
282
|
+
const noiseAmount = Math.floor(remainingChange / 3);
|
|
283
|
+
if (noiseAmount >= BITCOIN_CONSTANTS.DUST_LIMIT_P2WPKH) {
|
|
284
|
+
const noiseAddress = await this.generateChangeAddress();
|
|
285
|
+
if (inputAddresses.has(noiseAddress)) {
|
|
286
|
+
throw new Error("Generated noise address matches an input address");
|
|
287
|
+
}
|
|
288
|
+
psbt.addOutput({
|
|
289
|
+
address: noiseAddress,
|
|
290
|
+
value: noiseAmount,
|
|
291
|
+
});
|
|
292
|
+
remainingChange -= noiseAmount;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
if (remainingChange >= BITCOIN_CONSTANTS.DUST_LIMIT_P2WPKH) {
|
|
296
|
+
const changeAddress = await this.generateChangeAddress();
|
|
297
|
+
if (inputAddresses.has(changeAddress)) {
|
|
298
|
+
throw new Error("Generated change address matches an input address");
|
|
299
|
+
}
|
|
300
|
+
psbt.addOutput({
|
|
301
|
+
address: changeAddress,
|
|
302
|
+
value: remainingChange,
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
else if (remainingChange > 0) {
|
|
306
|
+
console.log(`The remaining ${remainingChange} satoshi went to the commission`);
|
|
307
|
+
}
|
|
308
|
+
return { psbt, usedUtxos };
|
|
309
|
+
}
|
|
310
|
+
async getFeeRate(overrideRate) {
|
|
311
|
+
if (overrideRate !== undefined) {
|
|
312
|
+
return overrideRate;
|
|
313
|
+
}
|
|
314
|
+
try {
|
|
315
|
+
const url = this.getApiUrl("/fee-estimates");
|
|
316
|
+
const response = await axios_1.default.get(url);
|
|
317
|
+
const feeRate = Math.ceil(response.data["2"]) || BITCOIN_CONSTANTS.SAT_PER_VBYTE;
|
|
318
|
+
return feeRate > 0 ? feeRate : BITCOIN_CONSTANTS.SAT_PER_VBYTE;
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
console.error("Error receiving commission, using standard:", error);
|
|
322
|
+
return BITCOIN_CONSTANTS.SAT_PER_VBYTE;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
async calculateFee(inputsCount, outputsCount, overrideFeeRate) {
|
|
326
|
+
const txSize = BITCOIN_CONSTANTS.BASE_TX_SIZE +
|
|
327
|
+
inputsCount * BITCOIN_CONSTANTS.INPUT_SIZE +
|
|
328
|
+
outputsCount * BITCOIN_CONSTANTS.OUTPUT_SIZE;
|
|
329
|
+
const feeRate = await this.getFeeRate(overrideFeeRate);
|
|
330
|
+
const fee = Math.ceil(txSize * feeRate);
|
|
331
|
+
return fee;
|
|
332
|
+
}
|
|
333
|
+
async signTransaction(psbt) {
|
|
334
|
+
const [signed] = await this.signTransactions([psbt]);
|
|
335
|
+
return signed;
|
|
336
|
+
}
|
|
337
|
+
async signTransactions(psbts) {
|
|
338
|
+
(0, utils_1.required)(this.wallet, "Wallet not connected");
|
|
339
|
+
return psbts.map(psbt => {
|
|
340
|
+
psbt.data.inputs.forEach((input, index) => {
|
|
341
|
+
const utxo = this.lastUsedUtxos[index];
|
|
342
|
+
const keyPair = utxo.derivedKey || this.wallet;
|
|
343
|
+
psbt.signInput(index, this.toSigner(keyPair));
|
|
344
|
+
});
|
|
345
|
+
psbt.finalizeAllInputs();
|
|
346
|
+
const tx = psbt.extractTransaction();
|
|
347
|
+
const txHex = tx.toHex();
|
|
348
|
+
return txHex;
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
async getBalance() {
|
|
352
|
+
const utxos = await this.fetchAllUTXOs();
|
|
353
|
+
const totalBalance = utxos.reduce((sum, utxo) => sum + utxo.value, 0);
|
|
354
|
+
return totalBalance.toString();
|
|
355
|
+
}
|
|
356
|
+
async getEmptyTransaction() {
|
|
357
|
+
return {
|
|
358
|
+
version: 2,
|
|
359
|
+
locktime: 0,
|
|
360
|
+
ins: [],
|
|
361
|
+
outs: [],
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
async signMessage() {
|
|
365
|
+
throw new Error("Method not implemented");
|
|
366
|
+
}
|
|
367
|
+
async verifyMessage() {
|
|
368
|
+
throw new Error("Method not implemented");
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
exports.BTC = BTC;
|
|
372
|
+
//# sourceMappingURL=btc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc.js","sourceRoot":"","sources":["../../../../src/multichain/core/btc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NEAR = exports.xrplGetLastSequence = exports.XRPL = exports.TON = exports.SOLANA = exports.MULTIVERSX = exports.IBC = exports.EVM = exports.required = exports.DefaultChain = void 0;
|
|
3
|
+
exports.NEAR = exports.xrplGetLastSequence = exports.XRPL = exports.BTC = exports.TON = exports.SOLANA = exports.MULTIVERSX = exports.IBC = exports.EVM = exports.required = exports.DefaultChain = void 0;
|
|
4
4
|
var defaultChain_1 = require("./types/defaultChain");
|
|
5
5
|
Object.defineProperty(exports, "DefaultChain", { enumerable: true, get: function () { return defaultChain_1.DefaultChain; } });
|
|
6
6
|
var utils_1 = require("./utils");
|
|
@@ -16,6 +16,8 @@ var solana_1 = require("./solana");
|
|
|
16
16
|
Object.defineProperty(exports, "SOLANA", { enumerable: true, get: function () { return solana_1.SOLANA; } });
|
|
17
17
|
var ton_1 = require("./ton");
|
|
18
18
|
Object.defineProperty(exports, "TON", { enumerable: true, get: function () { return ton_1.TON; } });
|
|
19
|
+
var btc_1 = require("./btc");
|
|
20
|
+
Object.defineProperty(exports, "BTC", { enumerable: true, get: function () { return btc_1.BTC; } });
|
|
19
21
|
// The official XRPL Library is called "xrpl" which conflicts with the name of our XRPL SDK
|
|
20
22
|
var xrp_1 = require("./xrp");
|
|
21
23
|
Object.defineProperty(exports, "XRPL", { enumerable: true, get: function () { return xrp_1.XRPL; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/multichain/core/index.ts"],"names":[],"mappings":";;;AAAA,qDAM6B;AALzB,4GAAA,YAAY,OAAA;AAkBhB,iCAAkC;AAAzB,iGAAA,QAAQ,OAAA;AAEjB,sBAAsB;AACtB,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AAEZ,2FAA2F;AAC3F,6BAAiD;AAAxC,2FAAA,IAAI,OAAA;AAAE,0GAAA,mBAAmB,OAAA;AAClC,+BAA6B;AAApB,4FAAA,IAAI,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/multichain/core/index.ts"],"names":[],"mappings":";;;AAAA,qDAM6B;AALzB,4GAAA,YAAY,OAAA;AAkBhB,iCAAkC;AAAzB,iGAAA,QAAQ,OAAA;AAEjB,sBAAsB;AACtB,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AAEZ,2FAA2F;AAC3F,6BAAiD;AAAxC,2FAAA,IAAI,OAAA;AAAE,0GAAA,mBAAmB,OAAA;AAClC,+BAA6B;AAApB,4FAAA,IAAI,OAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BTC as BTCCore } from "../core/btc";
|
|
2
|
+
import * as bitcoin from "bitcoinjs-lib";
|
|
3
|
+
export declare class BTC extends BTCCore {
|
|
4
|
+
private static instances;
|
|
5
|
+
constructor(rpcUrl: string, network?: bitcoin.Network);
|
|
6
|
+
sendTransaction(signedTxHex: string): Promise<{
|
|
7
|
+
result: string;
|
|
8
|
+
hash: string;
|
|
9
|
+
}>;
|
|
10
|
+
static createInstance(networkType: string, rpcUrl: string, network: bitcoin.Network): BTC;
|
|
11
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.BTC = void 0;
|
|
40
|
+
const btc_1 = require("../core/btc");
|
|
41
|
+
const utils_1 = require("../core/utils");
|
|
42
|
+
const axios_1 = __importDefault(require("axios"));
|
|
43
|
+
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
44
|
+
const interfaces_1 = require("../core/types/interfaces");
|
|
45
|
+
class BTC extends btc_1.BTC {
|
|
46
|
+
constructor(rpcUrl, network = bitcoin.networks.testnet) {
|
|
47
|
+
super(rpcUrl, network);
|
|
48
|
+
}
|
|
49
|
+
async sendTransaction(signedTxHex) {
|
|
50
|
+
(0, utils_1.required)(this.provider, "Provider not connected");
|
|
51
|
+
try {
|
|
52
|
+
const url = this.provider.includes("blockstream.info") &&
|
|
53
|
+
this.provider.endsWith("/api")
|
|
54
|
+
? `${this.provider.slice(0, -4)}/api/tx`
|
|
55
|
+
: `${this.provider}/tx`;
|
|
56
|
+
const response = await axios_1.default.post(url, signedTxHex, {
|
|
57
|
+
headers: { "Content-Type": "text/plain" },
|
|
58
|
+
});
|
|
59
|
+
// Blockstream returns txid as a string; adjust if other providers differ
|
|
60
|
+
if (response.data) {
|
|
61
|
+
return {
|
|
62
|
+
result: interfaces_1.XmTransactionResult.success,
|
|
63
|
+
hash: response.data,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
throw new Error("Failed to send transaction: no txid in response");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
console.error("Error sending transaction:", error);
|
|
72
|
+
throw new Error(`Failed to send transaction: ${axios_1.default.isAxiosError(error) ? error.message : String(error)}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
static createInstance(networkType, rpcUrl, network) {
|
|
76
|
+
if (!BTC.instances.has(networkType)) {
|
|
77
|
+
const instance = new BTC(rpcUrl, network);
|
|
78
|
+
BTC.instances.set(networkType, instance);
|
|
79
|
+
}
|
|
80
|
+
const instance = BTC.instances.get(networkType);
|
|
81
|
+
if (instance) {
|
|
82
|
+
return instance;
|
|
83
|
+
}
|
|
84
|
+
throw new Error("Could not create or retrieve instance");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.BTC = BTC;
|
|
88
|
+
BTC.instances = new Map();
|
|
89
|
+
//# sourceMappingURL=btc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc.js","sourceRoot":"","sources":["../../../../src/multichain/localsdk/btc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAsD;AACtD,mDAAkD;AAClD,kDAAyB;AACzB,uDAAwC;AACxC,mEAAwE;AAExE,MAAa,GAAI,SAAQ,SAAO;IAG5B,YACI,MAAc,EACd,UAA2B,OAAO,CAAC,QAAQ,CAAC,OAAO;QAEnD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe,CACjB,WAAmB;QAEnB,IAAA,gBAAQ,EAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAA;QAEjD,IAAI,CAAC;YACD,MAAM,GAAG,GACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1B,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACxC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAA;YAE/B,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;gBAChD,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;aAC5C,CAAC,CAAA;YAEF,yEAAyE;YACzE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAChB,OAAO;oBACH,MAAM,EAAE,gCAAmB,CAAC,OAAO;oBACnC,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACtB,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CACX,iDAAiD,CACpD,CAAA;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;YAClD,MAAM,IAAI,KAAK,CACX,+BACI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAC5D,EAAE,CACL,CAAA;QACL,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,cAAc,CACxB,WAAmB,EACnB,MAAc,EACd,OAAwB;QAExB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACzC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,QAAQ,CAAA;QACnB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC5D,CAAC;;AA7DL,kBA8DC;AA7DkB,aAAS,GAAqB,IAAI,GAAG,EAAe,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NEAR = exports.MULTIVERSX = exports.SOLANA = exports.TON = exports.IBC = exports.EVM = exports.XRPL = void 0;
|
|
3
|
+
exports.BTC = exports.NEAR = exports.MULTIVERSX = exports.SOLANA = exports.TON = exports.IBC = exports.EVM = exports.XRPL = void 0;
|
|
4
4
|
var xrp_1 = require("./xrp");
|
|
5
5
|
Object.defineProperty(exports, "XRPL", { enumerable: true, get: function () { return xrp_1.XRPL; } });
|
|
6
6
|
var evm_1 = require("./evm");
|
|
@@ -15,4 +15,6 @@ var multiversx_1 = require("./multiversx");
|
|
|
15
15
|
Object.defineProperty(exports, "MULTIVERSX", { enumerable: true, get: function () { return multiversx_1.MULTIVERSX; } });
|
|
16
16
|
var near_1 = require("./near");
|
|
17
17
|
Object.defineProperty(exports, "NEAR", { enumerable: true, get: function () { return near_1.NEAR; } });
|
|
18
|
+
var btc_1 = require("./btc");
|
|
19
|
+
Object.defineProperty(exports, "BTC", { enumerable: true, get: function () { return btc_1.BTC; } });
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/multichain/localsdk/index.ts"],"names":[],"mappings":";;;AAAA,6BAA4B;AAAnB,2FAAA,IAAI,OAAA;AACb,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,+BAA6B;AAApB,4FAAA,IAAI,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/multichain/localsdk/index.ts"],"names":[],"mappings":";;;AAAA,6BAA4B;AAAnB,2FAAA,IAAI,OAAA;AACb,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,6BAA2B;AAAlB,0FAAA,GAAG,OAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BTC = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
class BTC extends core_1.BTC {
|
|
6
|
+
constructor(rpc_url) {
|
|
7
|
+
super(rpc_url);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.BTC = BTC;
|
|
11
|
+
//# sourceMappingURL=btc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc.js","sourceRoot":"","sources":["../../../../src/multichain/websdk/btc.ts"],"names":[],"mappings":";;;AAAA,4CAAuE;AAEvE,MAAa,GAAI,SAAQ,UAAU;IAC/B,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;CAGJ;AAND,kBAMC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NEAR = exports.MULTIVERSX = exports.SOLANA = exports.TON = exports.IBC = exports.EVM = exports.XRPL = void 0;
|
|
3
|
+
exports.BTC = exports.NEAR = exports.MULTIVERSX = exports.SOLANA = exports.TON = exports.IBC = exports.EVM = exports.XRPL = void 0;
|
|
4
4
|
var xrp_1 = require("./xrp");
|
|
5
5
|
Object.defineProperty(exports, "XRPL", { enumerable: true, get: function () { return xrp_1.XRPL; } });
|
|
6
6
|
var evm_1 = require("./evm");
|
|
@@ -15,4 +15,6 @@ var multiversx_1 = require("./multiversx");
|
|
|
15
15
|
Object.defineProperty(exports, "MULTIVERSX", { enumerable: true, get: function () { return multiversx_1.MULTIVERSX; } });
|
|
16
16
|
var near_1 = require("./near");
|
|
17
17
|
Object.defineProperty(exports, "NEAR", { enumerable: true, get: function () { return near_1.NEAR; } });
|
|
18
|
+
var btc_1 = require("./btc");
|
|
19
|
+
Object.defineProperty(exports, "BTC", { enumerable: true, get: function () { return btc_1.BTC; } });
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/multichain/websdk/index.ts"],"names":[],"mappings":";;;AAAA,6BAA4B;AAAnB,2FAAA,IAAI,OAAA;AACb,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,+BAA6B;AAApB,4FAAA,IAAI,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/multichain/websdk/index.ts"],"names":[],"mappings":";;;AAAA,6BAA4B;AAAnB,2FAAA,IAAI,OAAA;AACb,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,6BAA2B;AAAlB,0FAAA,GAAG,OAAA"}
|
|
@@ -178,7 +178,16 @@ exports.DemosTransactions = {
|
|
|
178
178
|
// ! Problem: we are tampering the ValidityData, so the tx will fail miserably (see validateTransaction.ts -> signValidityData)
|
|
179
179
|
// See prepare(data) for a possible solution
|
|
180
180
|
//validationData.response.data.transaction = signedTx
|
|
181
|
-
|
|
181
|
+
const res = await demos.call("execute", "", validationData, "broadcastTx");
|
|
182
|
+
try {
|
|
183
|
+
return {
|
|
184
|
+
...res,
|
|
185
|
+
response: JSON.parse(res.response),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
return res;
|
|
190
|
+
}
|
|
182
191
|
},
|
|
183
192
|
// NOTE Subnet transactions methods are imported and exposed in demos.ts from the l2ps.ts file.
|
|
184
193
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemosTransactions.js","sourceRoot":"","sources":["../../../src/websdk/DemosTransactions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DemosTransactions.js","sourceRoot":"","sources":["../../../src/websdk/DemosTransactions.ts"],"names":[],"mappings":"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"}
|