sbtc-bridge-lib
Advanced tools
Comparing version 1.1.13 to 1.1.14
@@ -147,3 +147,3 @@ import * as secp from '@noble/secp256k1'; | ||
const stxAddresses = getStacksAddressFromPubkey(pubKey); | ||
const stacksAddress = (network === 'testnet') ? stxAddresses.tp2pkh : stxAddresses.mp2pkh; | ||
const stacksAddress = (network === network) ? stxAddresses.tp2pkh : stxAddresses.mp2pkh; | ||
return { | ||
@@ -162,7 +162,7 @@ opcode, | ||
export function buildDepositPayload(network, stacksAddress) { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
return buildDepositPayloadInternal(net, 0, stacksAddress, false); | ||
} | ||
export function buildDepositPayloadOpDrop(network, stacksAddress, revealFee) { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
return buildDepositPayloadInternal(net, revealFee, stacksAddress, true); | ||
@@ -215,3 +215,3 @@ } | ||
export function buildWithdrawPayload(network, amount, signature) { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
return buildWithdrawPayloadInternal(net, amount, signature, false); | ||
@@ -227,3 +227,3 @@ } | ||
export function buildWithdrawPayloadOpDrop(network, amount, signature) { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
return buildWithdrawPayloadInternal(net, amount, signature, true); | ||
@@ -284,3 +284,2 @@ } | ||
} | ||
console.log('parsePayloadFromTransaction:witnessData', witnessData); | ||
witnessData.txType = btc.OutScript.decode(out0.script).type; | ||
@@ -290,8 +289,16 @@ let innerPayload = {}; | ||
innerPayload = parseDepositPayload(d1); | ||
innerPayload.sbtcWallet = getAddressFromOutScript('testnet', tx.getOutput(1).script); | ||
//innerPayload.spendingAddress = getAddressFromOutScript('testnet', tx.getOutput(1).script as Uint8Array) | ||
innerPayload.sbtcWallet = getAddressFromOutScript(network, tx.getOutput(1).script); | ||
//const inScript = btc.RawInput.encode({ | ||
// index: tx.getInput(0).index || 0, | ||
// sequence: tx.getInput(0).sequence || 0, | ||
// txid: tx.getInput(0).txid as Uint8Array, | ||
// finalScriptSig: tx.getInput(0).finalScriptSig as Uint8Array, | ||
//}); | ||
if (tx.outputsLength > 2) | ||
innerPayload.spendingAddress = getAddressFromOutScript(network, tx.getOutput(2).script); | ||
console.log('parsePayloadFromTransaction:spendingAddress: ' + innerPayload.spendingAddress); | ||
return innerPayload; | ||
} | ||
else if (witnessData.opcode.toUpperCase() === '3E') { | ||
const recipient = getAddressFromOutScript('testnet', tx.getOutput(1).script); | ||
const recipient = getAddressFromOutScript(network, tx.getOutput(1).script); | ||
try { | ||
@@ -303,4 +310,5 @@ innerPayload = parseWithdrawPayload(network, hex.encode(d1), recipient, 'vrs'); | ||
} | ||
innerPayload.spendingAddress = getAddressFromOutScript(network, tx.getOutput(1).script); | ||
if (tx.outputsLength > 2) | ||
innerPayload.sbtcWallet = getAddressFromOutScript('testnet', tx.getOutput(2).script); | ||
innerPayload.sbtcWallet = getAddressFromOutScript(network, tx.getOutput(2).script); | ||
innerPayload.spendingAddress = recipient; | ||
@@ -321,11 +329,7 @@ return innerPayload; | ||
export function getDataToSign(network, amount, bitcoinAddress) { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
const tx = new btc.Transaction({ allowUnknowOutput: true, allowUnknownInputs: true, allowUnknownOutputs: true }); | ||
//console.log('getDataToSign:bitcoinAddress: ' + bitcoinAddress) | ||
tx.addOutputAddress(bitcoinAddress, BigInt(amount), net); | ||
//const amtBuf = amountToBigUint64(amount, 8); | ||
const amountBytes = P.U64BE.encode(BigInt(amount)); | ||
const data = concat(amountBytes, tx.getOutput(0).script); | ||
//const dataLen = (amountToUint8(data.length, 1)); | ||
//return data //concat(dataLen, data); | ||
return `Withdraw request for ${amount} satoshis to the bitcoin address ${bitcoinAddress} (${hex.encode(data)})`; | ||
@@ -332,0 +336,0 @@ } |
@@ -216,2 +216,3 @@ export type SbtcMiniContractsI = { | ||
dustAmount?: number; | ||
eventType?: string; | ||
}; | ||
@@ -218,0 +219,0 @@ export type KeySet = { |
{ | ||
"name": "sbtc-bridge-lib", | ||
"version": "1.1.13", | ||
"version": "1.1.14", | ||
"description": "Library for sBTC Bridge web client and API apps ", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -165,3 +165,3 @@ import * as secp from '@noble/secp256k1'; | ||
const stxAddresses = getStacksAddressFromPubkey(pubKey); | ||
const stacksAddress = (network === 'testnet') ? stxAddresses.tp2pkh : stxAddresses.mp2pkh; | ||
const stacksAddress = (network === network) ? stxAddresses.tp2pkh : stxAddresses.mp2pkh; | ||
return { | ||
@@ -181,3 +181,3 @@ opcode, | ||
export function buildDepositPayload(network:string, stacksAddress:string):string { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
return buildDepositPayloadInternal(net, 0, stacksAddress, false) | ||
@@ -187,3 +187,3 @@ } | ||
export function buildDepositPayloadOpDrop(network:string, stacksAddress:string, revealFee:number):string { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
return buildDepositPayloadInternal(net, revealFee, stacksAddress, true) | ||
@@ -238,3 +238,3 @@ } | ||
export function buildWithdrawPayload(network:string, amount:number, signature:string):string { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
return buildWithdrawPayloadInternal(net, amount, signature, false) | ||
@@ -251,3 +251,3 @@ } | ||
export function buildWithdrawPayloadOpDrop(network:string, amount:number, signature:string):string { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
return buildWithdrawPayloadInternal(net, amount, signature, true) | ||
@@ -308,3 +308,2 @@ } | ||
} | ||
console.log('parsePayloadFromTransaction:witnessData', witnessData) | ||
witnessData.txType = btc.OutScript.decode(out0.script as Uint8Array).type; | ||
@@ -315,7 +314,14 @@ | ||
innerPayload = parseDepositPayload(d1); | ||
innerPayload.sbtcWallet = getAddressFromOutScript('testnet', tx.getOutput(1).script as Uint8Array) | ||
//innerPayload.spendingAddress = getAddressFromOutScript('testnet', tx.getOutput(1).script as Uint8Array) | ||
innerPayload.sbtcWallet = getAddressFromOutScript(network, tx.getOutput(1).script as Uint8Array) | ||
//const inScript = btc.RawInput.encode({ | ||
// index: tx.getInput(0).index || 0, | ||
// sequence: tx.getInput(0).sequence || 0, | ||
// txid: tx.getInput(0).txid as Uint8Array, | ||
// finalScriptSig: tx.getInput(0).finalScriptSig as Uint8Array, | ||
//}); | ||
if (tx.outputsLength > 2) innerPayload.spendingAddress = getAddressFromOutScript(network, tx.getOutput(2).script!) | ||
console.log('parsePayloadFromTransaction:spendingAddress: ' + innerPayload.spendingAddress) | ||
return innerPayload; | ||
} else if (witnessData.opcode.toUpperCase() === '3E') { | ||
const recipient = getAddressFromOutScript('testnet', tx.getOutput(1).script as Uint8Array) | ||
const recipient = getAddressFromOutScript(network, tx.getOutput(1).script as Uint8Array) | ||
try { | ||
@@ -326,3 +332,4 @@ innerPayload = parseWithdrawPayload(network, hex.encode(d1), recipient, 'vrs') | ||
} | ||
if (tx.outputsLength > 2) innerPayload.sbtcWallet = getAddressFromOutScript('testnet', tx.getOutput(2).script as Uint8Array) | ||
innerPayload.spendingAddress = getAddressFromOutScript(network, tx.getOutput(1).script!); | ||
if (tx.outputsLength > 2) innerPayload.sbtcWallet = getAddressFromOutScript(network, tx.getOutput(2).script as Uint8Array) | ||
innerPayload.spendingAddress = recipient | ||
@@ -343,11 +350,7 @@ return innerPayload; | ||
export function getDataToSign (network:string, amount:number, bitcoinAddress:string):string { | ||
const net = (network === 'testnet') ? btc.TEST_NETWORK : btc.NETWORK; | ||
const net = (network === network) ? btc.TEST_NETWORK : btc.NETWORK; | ||
const tx = new btc.Transaction({ allowUnknowOutput: true, allowUnknownInputs:true, allowUnknownOutputs:true }); | ||
//console.log('getDataToSign:bitcoinAddress: ' + bitcoinAddress) | ||
tx.addOutputAddress(bitcoinAddress, BigInt(amount), net); | ||
//const amtBuf = amountToBigUint64(amount, 8); | ||
const amountBytes = P.U64BE.encode(BigInt(amount)); | ||
const data = concat(amountBytes, tx.getOutput(0).script!); | ||
//const dataLen = (amountToUint8(data.length, 1)); | ||
//return data //concat(dataLen, data); | ||
return `Withdraw request for ${amount} satoshis to the bitcoin address ${bitcoinAddress} (${hex.encode(data)})`; | ||
@@ -354,0 +357,0 @@ } |
@@ -214,2 +214,3 @@ export type SbtcMiniContractsI = { | ||
dustAmount?: number; | ||
eventType?: string; | ||
}; | ||
@@ -216,0 +217,0 @@ export type KeySet = { |
@@ -146,2 +146,3 @@ import { beforeAll, beforeEach, expect, describe, it } from 'vitest' | ||
expect(payload.sbtcWallet).equals('tb1p68eyfa7nprcegz4xdj5q9msjy69xgshzckvy64cmwegfzu77v2wslah8ww') | ||
expect(payload.spendingAddress).equals('tb1qp8r7ln235zx6nd8rsdzkgkrxc238p6eecys2m9') | ||
expect(payload.prinType).equals(0) | ||
@@ -148,0 +149,0 @@ }) |
210774
5003