diff --git a/curls/getEsploraTx.sh b/curls/getEsploraTx.sh index c7249a98..00cfa219 100755 --- a/curls/getEsploraTx.sh +++ b/curls/getEsploraTx.sh @@ -4,5 +4,5 @@ curl -s 'http://localhost:3000/v1/regtest' \ "jsonrpc": "2.0", "id": 1, "method": "esplora_tx", - "params": ["8913339817f6d81236bb0d550db203faac55490d5f7bf6a09597397ba04f5dbf"] + "params": ["b3b9ce5b174aba757ce149d9df1fe573e0efa59be365215f70e548180f23e1b2"] }' | jq . diff --git a/lib/cli/index.js b/lib/cli/index.js index 158ff75d..b62821c3 100644 --- a/lib/cli/index.js +++ b/lib/cli/index.js @@ -441,6 +441,48 @@ const runeEtch = new commander_1.Command('etch') provider, })); }); +const runeProtoburn = new commander_1.Command('protoburn') + .requiredOption('-p, --provider ', 'provider to use when querying the network for utxos') + .requiredOption('-m, --mnemonic ', 'mnemonic you want to get private keys from') + .requiredOption('-tag, --protocolTag ', 'Protorune Tag to be set') + .requiredOption('-rId, --runeId ', 'name of rune to etch') + .requiredOption('-ptr, --pointer ', 'the amount of runes each mint') + .option('-legacy, --legacy ', 'legacy private key') + .option('-taproot, --taproot ', 'taproot private key') + .option('-nested, --nested-segwit ', 'nested segwit private key') + .option('-native, --native-segwit ', 'native segwit private key') + .option('-feeRate, --feeRate ', 'fee rate') + .option('-amt, --amount ', 'amount to burn') + .option('-inscAdd, --inscriptionAddress ', 'address runes live on that you are burning') + /* @dev example call + oyl rune protoburn -m 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about' -native 4604b4b710fe91f584fff084e1a9159fe4f8408fff380596a604948474ce4fa3 -taproot 41f41d69260df4cf277826a9b65a3717e4eeddbeedf637f212ca096576479361 -p regtest -feeRate 2 -tag 369 -inscAdd 'bcrt1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqvg32hk' -amt 100 -rId 263:1 -ptr 0 + */ + .action(async (options) => { + const provider = defaultProvider[options.provider]; + const signer = new __3.Signer(provider.network, { + segwitPrivateKey: options.nativeSegwit, + taprootPrivateKey: options.taproot, + nestedSegwitPrivateKey: options.nestedSegwit, + legacyPrivateKey: options.legacy, + }); + const account = (0, __1.mnemonicToAccount)({ + mnemonic: options.mnemonic, + opts: { + network: provider.network, + }, + }); + console.log(await rune.protoburn({ + pointer: Number(options.pointer), + runeId: options.runeId, + inscriptionAddress: options.inscriptionAddress, + amount: Number(options.amount), + protocolTag: options.protocolTag, + feeRate: options.feeRate, + account, + signer, + provider, + })); +}); const getRuneByName = new commander_1.Command('getRuneByName') .description('Returns rune details based on name provided') .requiredOption('-p, --provider ', 'provider to use when querying the network for utxos') @@ -633,6 +675,7 @@ const runeCommand = new commander_1.Command('rune') .addCommand(runeSend) .addCommand(runeMint) .addCommand(runeEtch) + .addCommand(runeProtoburn) .addCommand(getRuneByName); const providerCommand = new commander_1.Command('provider') .description('Functions avaialble for all provider services') diff --git a/lib/cli/index.js.map b/lib/cli/index.js.map index f7476fc3..43ef6516 100644 --- a/lib/cli/index.js.map +++ b/lib/cli/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/rune/rune.d.ts b/lib/rune/rune.d.ts index 0ccbbd88..b0186320 100644 --- a/lib/rune/rune.d.ts +++ b/lib/rune/rune.d.ts @@ -39,6 +39,19 @@ export declare const createEtchPsbt: ({ account, symbol, cap, premine, perMintAm }) => Promise<{ psbt: string; }>; +export declare const createProtoBurnPsbt: ({ account, inscriptionAddress, runeId, amount, pointer, protocolTag, provider, feeRate, fee, }: { + account: Account; + inscriptionAddress: string; + runeId: string; + amount: number; + pointer: number; + protocolTag: bigint; + provider: Provider; + feeRate?: number; + fee?: number; +}) => Promise<{ + psbt: string; +}>; export declare const findRuneUtxos: ({ address, greatestToLeast, provider, runeId, targetNumberOfRunes, }: { address: string; greatestToLeast: boolean; @@ -87,6 +100,19 @@ export declare const actualEtchFee: ({ account, symbol, cap, premine, perMintAmo }) => Promise<{ fee: number; }>; +export declare const actualProtoburnFee: ({ account, inscriptionAddress, runeId, amount, pointer, protocolTag, provider, feeRate, signer, }: { + account: Account; + inscriptionAddress: string; + runeId: string; + amount: number; + pointer: number; + protocolTag: bigint; + provider: Provider; + feeRate?: number; + signer: Signer; +}) => Promise<{ + fee: number; +}>; export declare const send: ({ toAddress, amount, runeId, inscriptionAddress, feeRate, account, provider, signer, }: { toAddress: string; amount: number; @@ -139,3 +165,21 @@ export declare const etch: ({ symbol, cap, premine, perMintAmount, turbo, divisi fee: number; satsPerVByte: string; }>; +export declare const protoburn: ({ account, inscriptionAddress, runeId, amount, pointer, protocolTag, provider, feeRate, signer, }: { + account: Account; + inscriptionAddress: string; + runeId: string; + amount: number; + pointer: number; + protocolTag: bigint; + provider: Provider; + feeRate?: number; + signer: Signer; +}) => Promise<{ + txId: string; + rawTx: string; + size: any; + weight: any; + fee: number; + satsPerVByte: string; +}>; diff --git a/lib/rune/rune.js b/lib/rune/rune.js index a3e862e1..78a96952 100644 --- a/lib/rune/rune.js +++ b/lib/rune/rune.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.etch = exports.mint = exports.send = exports.actualEtchFee = exports.actualMintFee = exports.actualSendFee = exports.findRuneUtxos = exports.createEtchPsbt = exports.createMintPsbt = exports.createSendPsbt = void 0; +exports.protoburn = exports.etch = exports.mint = exports.send = exports.actualProtoburnFee = exports.actualEtchFee = exports.actualMintFee = exports.actualSendFee = exports.findRuneUtxos = exports.createProtoBurnPsbt = exports.createEtchPsbt = exports.createMintPsbt = exports.createSendPsbt = void 0; const tslib_1 = require("tslib"); const btc_1 = require("../btc/btc"); const bitcoin = tslib_1.__importStar(require("bitcoinjs-lib")); @@ -237,6 +237,13 @@ const createMintPsbt = async ({ account, runeId, provider, amount, feeRate, fee, throw new errors_1.OylTransactionError(Error('Insufficient Balance')); } const changeAmount = gatheredUtxos.totalAmount - (finalFee + utils_1.inscriptionSats); + const script = (0, utils_1.createRuneMintScript)({ + runeId, + mintOutPutIndex: 1, + pointer: 1, + }); + const output = { script: script, value: 0 }; + psbt.addOutput(output); psbt.addOutput({ value: utils_1.inscriptionSats, address: account.taproot.address, @@ -245,13 +252,6 @@ const createMintPsbt = async ({ account, runeId, provider, amount, feeRate, fee, address: account[account.spendStrategy.changeAddress].address, value: changeAmount, }); - const script = (0, utils_1.createRuneMintScript)({ - runeId, - mintOutPutIndex: 0, - pointer: 0, - }); - const output = { script: script, value: 0 }; - psbt.addOutput(output); const formattedPsbtTx = await (0, utils_1.formatInputsToSign)({ _psbt: psbt, senderPublicKey: account.taproot.pubkey, @@ -337,15 +337,6 @@ const createEtchPsbt = async ({ account, symbol, cap, premine, perMintAmount, tu if (gatheredUtxos.totalAmount < finalFee + utils_1.inscriptionSats) { throw new errors_1.OylTransactionError(Error('Insufficient Balance')); } - const changeAmount = gatheredUtxos.totalAmount - (finalFee + utils_1.inscriptionSats); - psbt.addOutput({ - value: utils_1.inscriptionSats, - address: account.taproot.address, - }); - psbt.addOutput({ - address: account[account.spendStrategy.changeAddress].address, - value: changeAmount, - }); const script = (0, utils_1.createRuneEtchScript)({ symbol, cap, @@ -358,6 +349,15 @@ const createEtchPsbt = async ({ account, symbol, cap, premine, perMintAmount, tu }); const output = { script: script, value: 0 }; psbt.addOutput(output); + const changeAmount = gatheredUtxos.totalAmount - (finalFee + utils_1.inscriptionSats); + psbt.addOutput({ + value: utils_1.inscriptionSats, + address: account.taproot.address, + }); + psbt.addOutput({ + address: account[account.spendStrategy.changeAddress].address, + value: changeAmount, + }); const formattedPsbtTx = await (0, utils_1.formatInputsToSign)({ _psbt: psbt, senderPublicKey: account.taproot.pubkey, @@ -370,6 +370,186 @@ const createEtchPsbt = async ({ account, symbol, cap, premine, perMintAmount, tu } }; exports.createEtchPsbt = createEtchPsbt; +const createProtoBurnPsbt = async ({ account, inscriptionAddress, runeId, amount, pointer, protocolTag, provider, feeRate, fee, }) => { + try { + const minFee = (0, btc_1.minimumFee)({ + taprootInputCount: 2, + nonTaprootInputCount: 0, + outputCount: 2, + }); + const calculatedFee = minFee * feeRate < 250 ? 250 : minFee * feeRate; + let finalFee = fee ? fee : calculatedFee; + let gatheredUtxos = await (0, utxo_1.accountSpendableUtxos)({ + account, + provider, + spendAmount: finalFee + utils_1.inscriptionSats, + }); + let psbt = new bitcoin.Psbt({ network: provider.network }); + const { runeUtxos, runeTotalSatoshis } = await (0, exports.findRuneUtxos)({ + address: inscriptionAddress, + greatestToLeast: account.spendStrategy.utxoSortGreatestToLeast, + provider, + runeId, + targetNumberOfRunes: amount, + }); + for await (const utxo of runeUtxos) { + if ((0, utils_2.getAddressType)(utxo.address) === 0) { + const previousTxHex = await provider.esplora.getTxHex(utxo.txId); + psbt.addInput({ + hash: utxo.txId, + index: parseInt(utxo.txIndex), + nonWitnessUtxo: Buffer.from(previousTxHex, 'hex'), + }); + } + if ((0, utils_2.getAddressType)(utxo.address) === 2) { + const redeemScript = bitcoin.script.compile([ + bitcoin.opcodes.OP_0, + bitcoin.crypto.hash160(Buffer.from(account.nestedSegwit.pubkey, 'hex')), + ]); + psbt.addInput({ + hash: utxo.txId, + index: parseInt(utxo.txIndex), + redeemScript: redeemScript, + witnessUtxo: { + value: utxo.satoshis, + script: bitcoin.script.compile([ + bitcoin.opcodes.OP_HASH160, + bitcoin.crypto.hash160(redeemScript), + bitcoin.opcodes.OP_EQUAL, + ]), + }, + }); + } + if ((0, utils_2.getAddressType)(utxo.address) === 1 || + (0, utils_2.getAddressType)(utxo.address) === 3) { + const previousTxInfo = await provider.esplora.getTxInfo(utxo.txId); + psbt.addInput({ + hash: utxo.txId, + index: parseInt(utxo.txIndex), + witnessUtxo: { + value: utxo.satoshis, + script: Buffer.from(previousTxInfo.vout[utxo.txIndex].scriptpubkey, 'hex'), + }, + }); + } + } + if (!fee && gatheredUtxos.utxos.length > 1) { + const txSize = (0, btc_1.minimumFee)({ + taprootInputCount: gatheredUtxos.utxos.length, + nonTaprootInputCount: 0, + outputCount: 3, + }); + finalFee = txSize * feeRate < 250 ? 250 : txSize * feeRate; + if (gatheredUtxos.totalAmount < finalFee) { + gatheredUtxos = await (0, utxo_1.accountSpendableUtxos)({ + account, + provider, + spendAmount: finalFee + utils_1.inscriptionSats, + }); + } + } + if (!fee && gatheredUtxos.utxos.length > 1) { + const txSize = (0, btc_1.minimumFee)({ + taprootInputCount: gatheredUtxos.utxos.length, + nonTaprootInputCount: 0, + outputCount: 2, + }); + finalFee = txSize * feeRate < 250 ? 250 : txSize * feeRate; + if (gatheredUtxos.totalAmount < finalFee) { + gatheredUtxos = await (0, utxo_1.accountSpendableUtxos)({ + account, + provider, + spendAmount: finalFee + utils_1.inscriptionSats, + }); + } + } + for (let i = 0; i < gatheredUtxos.utxos.length; i++) { + if ((0, utils_2.getAddressType)(gatheredUtxos.utxos[i].address) === 0) { + const previousTxHex = await provider.esplora.getTxHex(gatheredUtxos.utxos[i].txId); + psbt.addInput({ + hash: gatheredUtxos.utxos[i].txId, + index: gatheredUtxos.utxos[i].outputIndex, + nonWitnessUtxo: Buffer.from(previousTxHex, 'hex'), + }); + } + if ((0, utils_2.getAddressType)(gatheredUtxos.utxos[i].address) === 2) { + const redeemScript = bitcoin.script.compile([ + bitcoin.opcodes.OP_0, + bitcoin.crypto.hash160(Buffer.from(account.nestedSegwit.pubkey, 'hex')), + ]); + psbt.addInput({ + hash: gatheredUtxos.utxos[i].txId, + index: gatheredUtxos.utxos[i].outputIndex, + redeemScript: redeemScript, + witnessUtxo: { + value: gatheredUtxos.utxos[i].satoshis, + script: bitcoin.script.compile([ + bitcoin.opcodes.OP_HASH160, + bitcoin.crypto.hash160(redeemScript), + bitcoin.opcodes.OP_EQUAL, + ]), + }, + }); + } + if ((0, utils_2.getAddressType)(gatheredUtxos.utxos[i].address) === 1 || + (0, utils_2.getAddressType)(gatheredUtxos.utxos[i].address) === 3) { + psbt.addInput({ + hash: gatheredUtxos.utxos[i].txId, + index: gatheredUtxos.utxos[i].outputIndex, + witnessUtxo: { + value: gatheredUtxos.utxos[i].satoshis, + script: Buffer.from(gatheredUtxos.utxos[i].scriptPk, 'hex'), + }, + }); + } + } + if (gatheredUtxos.totalAmount < finalFee + utils_1.inscriptionSats) { + throw new errors_1.OylTransactionError(Error('Insufficient Balance')); + } + psbt.addInput({ + hash: 'b3b9ce5b174aba757ce149d9df1fe573e0efa59be365215f70e548180f23e1b2', + index: 1, + witnessUtxo: { + value: 546, + script: Buffer.from('5120a60869f0dbcf1dc659c9cecbaf8050135ea9e8cdc487053f1dc6880949dc684c', 'hex'), + }, + }); + const runeIdSplit = runeId.split(':'); + const block = BigInt(runeIdSplit[0]); + const tx = Number(runeIdSplit[1]); + const script = (0, utils_1.createProtoBurnScript)({ + runes: [ + { + id: { block, tx }, + amount: BigInt(amount), + }, + ], + protocolTag, + pointer, + }); + const output = { script: script, value: 0 }; + psbt.addOutput(output); + const changeAmount = gatheredUtxos.totalAmount - (finalFee + utils_1.inscriptionSats); + psbt.addOutput({ + value: utils_1.inscriptionSats + runeTotalSatoshis, + address: account.taproot.address, + }); + psbt.addOutput({ + address: account[account.spendStrategy.changeAddress].address, + value: changeAmount, + }); + const formattedPsbtTx = await (0, utils_1.formatInputsToSign)({ + _psbt: psbt, + senderPublicKey: account.taproot.pubkey, + network: provider.network, + }); + return { psbt: formattedPsbtTx.toBase64() }; + } + catch (error) { + throw new errors_1.OylTransactionError(error); + } +}; +exports.createProtoBurnPsbt = createProtoBurnPsbt; const findRuneUtxos = async ({ address, greatestToLeast, provider, runeId, targetNumberOfRunes, }) => { const runeUtxos = []; const runeUtxoOutpoints = await provider.api.getRuneOutpoints({ @@ -569,6 +749,54 @@ const actualEtchFee = async ({ account, symbol, cap, premine, perMintAmount, tur return { fee: finalFee }; }; exports.actualEtchFee = actualEtchFee; +const actualProtoburnFee = async ({ account, inscriptionAddress, runeId, amount, pointer, protocolTag, provider, feeRate, signer, }) => { + if (!feeRate) { + feeRate = (await provider.esplora.getFeeEstimates())['1']; + } + const { psbt } = await (0, exports.createProtoBurnPsbt)({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + }); + const { signedPsbt } = await signer.signAllInputs({ + rawPsbt: psbt, + finalize: true, + }); + let rawPsbt = bitcoin.Psbt.fromBase64(signedPsbt, { + network: account.network, + }); + const signedHexPsbt = rawPsbt.extractTransaction().toHex(); + const vsize = (await provider.sandshrew.bitcoindRpc.testMemPoolAccept([signedHexPsbt]))[0].vsize; + const correctFee = vsize * feeRate; + const { psbt: finalPsbt } = await (0, exports.createProtoBurnPsbt)({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + fee: correctFee, + }); + const { signedPsbt: signedAll } = await signer.signAllInputs({ + rawPsbt: finalPsbt, + finalize: true, + }); + let finalRawPsbt = bitcoin.Psbt.fromBase64(signedAll, { + network: account.network, + }); + const finalSignedHexPsbt = finalRawPsbt.extractTransaction().toHex(); + const finalVsize = (await provider.sandshrew.bitcoindRpc.testMemPoolAccept([finalSignedHexPsbt]))[0].vsize; + const finalFee = finalVsize * feeRate; + return { fee: finalFee }; +}; +exports.actualProtoburnFee = actualProtoburnFee; const send = async ({ toAddress, amount, runeId, inscriptionAddress, feeRate, account, provider, signer, }) => { if (!inscriptionAddress) { inscriptionAddress = account.taproot.address; @@ -667,4 +895,37 @@ const etch = async ({ symbol, cap, premine, perMintAmount, turbo, divisibility, return result; }; exports.etch = etch; +const protoburn = async ({ account, inscriptionAddress, runeId, amount, pointer, protocolTag, provider, feeRate, signer, }) => { + const { fee } = await (0, exports.actualProtoburnFee)({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + signer, + }); + const { psbt: finalPsbt } = await (0, exports.createProtoBurnPsbt)({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + fee, + }); + const { signedPsbt } = await signer.signAllInputs({ + rawPsbt: finalPsbt, + finalize: true, + }); + const result = await provider.pushPsbt({ + psbtBase64: signedPsbt, + }); + return result; +}; +exports.protoburn = protoburn; //# sourceMappingURL=rune.js.map \ No newline at end of file diff --git a/lib/rune/rune.js.map b/lib/rune/rune.js.map index d8e36c3d..c178b5ad 100644 --- a/lib/rune/rune.js.map +++ b/lib/rune/rune.js.map @@ -1 +1 @@ -{"version":3,"file":"rune.js","sourceRoot":"","sources":["../../src/rune/rune.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rune.js","sourceRoot":"","sources":["../../src/rune/rune.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/shared/utils.d.ts b/lib/shared/utils.d.ts index 2103342f..ac62c01d 100644 --- a/lib/shared/utils.d.ts +++ b/lib/shared/utils.d.ts @@ -91,6 +91,28 @@ export declare const createRuneEtchScript: ({ pointer, runeName, symbol, divisib premine?: number; turbo?: boolean; }) => Buffer; +export declare const createProtoBurnScript: ({ runes, protocolTag, pointer, }: { + runes: { + id: { + block: bigint; + tx: number; + }; + amount: bigint; + }[]; + protocolTag: bigint; + pointer: number; +}) => Buffer; +export declare const encodeProtoburn: ({ runes, protocolTag, pointer, }: { + runes: { + id: { + block: bigint; + tx: number; + }; + amount: bigint; + }[]; + protocolTag: bigint; + pointer: number; +}) => Buffer; export declare let RPC_ADDR: string; export declare const callBTCRPCEndpoint: (method: string, params: string | string[], network: string) => Promise; export declare function getAddressType(address: string): AddressType | null; diff --git a/lib/shared/utils.js b/lib/shared/utils.js index 5fd1e9da..dc185688 100644 --- a/lib/shared/utils.js +++ b/lib/shared/utils.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.findRuneUtxosToSpend = exports.encodeVarint = exports.isValidJSON = exports.filterUtxos = exports.filterTaprootUtxos = exports.getRawTxnHashFromTxnId = exports.calculateTaprootTxSize = exports.getOutputValueByVOutIndex = exports.waitForTransaction = exports.getAddressType = exports.callBTCRPCEndpoint = exports.RPC_ADDR = exports.createRuneEtchScript = exports.createRuneMintScript = exports.createRuneSendScript = exports.createInscriptionScript = exports.signInputs = exports.timeout = exports.formatInputsToSign = exports.calculateAmountGatheredUtxo = exports.calculateAmountGathered = exports.getInscriptionsByWalletBIS = exports.getWitnessDataChunk = exports.utxoToInput = exports.validator = exports.amountToSatoshis = exports.delay = exports.satoshisToAmount = exports.tweakSigner = exports.getFee = exports.getNetwork = exports.assertHex = exports.ECPair = exports.inscriptionSats = exports.addressTypeMap = void 0; +exports.findRuneUtxosToSpend = exports.encodeVarint = exports.isValidJSON = exports.filterUtxos = exports.filterTaprootUtxos = exports.getRawTxnHashFromTxnId = exports.calculateTaprootTxSize = exports.getOutputValueByVOutIndex = exports.waitForTransaction = exports.getAddressType = exports.callBTCRPCEndpoint = exports.RPC_ADDR = exports.encodeProtoburn = exports.createProtoBurnScript = exports.createRuneEtchScript = exports.createRuneMintScript = exports.createRuneSendScript = exports.createInscriptionScript = exports.signInputs = exports.timeout = exports.formatInputsToSign = exports.calculateAmountGatheredUtxo = exports.calculateAmountGathered = exports.getInscriptionsByWalletBIS = exports.getWitnessDataChunk = exports.utxoToInput = exports.validator = exports.amountToSatoshis = exports.delay = exports.satoshisToAmount = exports.tweakSigner = exports.getFee = exports.getNetwork = exports.assertHex = exports.ECPair = exports.inscriptionSats = exports.addressTypeMap = void 0; const tslib_1 = require("tslib"); const bitcoin = tslib_1.__importStar(require("bitcoinjs-lib")); const ecpair_1 = tslib_1.__importDefault(require("ecpair")); @@ -12,6 +12,8 @@ const axios_1 = tslib_1.__importDefault(require("axios")); const bip371_1 = require("bitcoinjs-lib/src/psbt/bip371"); const ordit_sdk_1 = require("@sadoprotocol/ordit-sdk"); const runestone_lib_1 = require("@magiceden-oss/runestone-lib"); +const runestone_protostone_upgrade_1 = require("protorune/lib/src.ts/runestone_protostone_upgrade"); +const protostone_1 = require("protorune/lib/src.ts/protostone"); bitcoin.initEccLib(secp256k1_1.default); exports.addressTypeMap = { 0: 'p2pkh', 1: 'p2tr', 2: 'p2sh', 3: 'p2wpkh' }; exports.inscriptionSats = 546; @@ -371,6 +373,31 @@ const createRuneEtchScript = ({ pointer = 0, runeName, symbol, divisibility, per return runeEtch; }; exports.createRuneEtchScript = createRuneEtchScript; +const createProtoBurnScript = ({ runes, protocolTag, pointer, }) => { + const runestone = (0, exports.encodeProtoburn)({ + runes, + protocolTag, + pointer, + }); + return runestone; +}; +exports.createProtoBurnScript = createProtoBurnScript; +const encodeProtoburn = ({ runes, protocolTag, pointer, }) => { + // outputs and their meanings: + // - output 0: runestone + // - output 1: UTXO of address + // - output 2: virtual output -- represents the protoburn on our protoburn protocol + // all runes will go to output 2 -- performing the protoburn + // all unused runes will be refunded to pointer 1 and retained by the runes protocol + // the protostone will burn all runes onto the pointer 1 UTXO + const runestone = (0, runestone_protostone_upgrade_1.encodeRunestoneProtostone)({ + edicts: runes.map((r) => ({ ...r, output: 0 })), + pointer, + protostones: [protostone_1.ProtoStone.burn({ protocolTag, pointer: 1 })], + }).encodedRunestone; + return runestone; +}; +exports.encodeProtoburn = encodeProtoburn; exports.RPC_ADDR = 'https://mainnet.sandshrew.io/v1/6e3bc3c289591bb447c116fda149b094'; const callBTCRPCEndpoint = async (method, params, network) => { if (network === 'testnet') { diff --git a/lib/shared/utils.js.map b/lib/shared/utils.js.map index 75fa1de6..3dbce0ae 100644 --- a/lib/shared/utils.js.map +++ b/lib/shared/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index b1b72b92..f32ef09e 100644 --- a/package.json +++ b/package.json @@ -57,10 +57,12 @@ "ecpair": "^2.1.0", "fs-extra": "^11.1.1", "jsontokens": "^4.0.1", + "leb128": "^0.0.5", "nice-repl": "^0.1.2", "noble-secp256k1": "^1.2.14", "node-fetch": "^2.7.0", "prettier": "^2.8.8", + "protorune": "https://github.com/kungfuflex/protorune.git", "tiny-secp256k1": "^2.2.3", "ts-node": "^10.9.2", "wrap-ansi": "^9.0.0", diff --git a/src/cli/index.ts b/src/cli/index.ts index 1ca5dec7..9c4114ee 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -636,6 +636,69 @@ oyl rune etch -m 'abandon abandon abandon abandon abandon abandon abandon abando ) }) +const runeProtoburn = new Command('protoburn') + .requiredOption( + '-p, --provider ', + 'provider to use when querying the network for utxos' + ) + .requiredOption( + '-m, --mnemonic ', + 'mnemonic you want to get private keys from' + ) + .requiredOption('-tag, --protocolTag ', 'Protorune Tag to be set') + .requiredOption('-rId, --runeId ', 'name of rune to etch') + .requiredOption('-ptr, --pointer ', 'the amount of runes each mint') + .option('-legacy, --legacy ', 'legacy private key') + .option('-taproot, --taproot ', 'taproot private key') + .option( + '-nested, --nested-segwit ', + 'nested segwit private key' + ) + .option( + '-native, --native-segwit ', + 'native segwit private key' + ) + .option('-feeRate, --feeRate ', 'fee rate') + .option('-amt, --amount ', 'amount to burn') + .option( + '-inscAdd, --inscriptionAddress ', + 'address runes live on that you are burning' + ) + + /* @dev example call +oyl rune protoburn -m 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about' -native 4604b4b710fe91f584fff084e1a9159fe4f8408fff380596a604948474ce4fa3 -taproot 41f41d69260df4cf277826a9b65a3717e4eeddbeedf637f212ca096576479361 -p regtest -feeRate 2 -tag 369 -inscAdd 'bcrt1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqvg32hk' -amt 100 -rId 263:1 -ptr 0 +*/ + + .action(async (options) => { + const provider = defaultProvider[options.provider] + const signer = new Signer(provider.network, { + segwitPrivateKey: options.nativeSegwit, + taprootPrivateKey: options.taproot, + nestedSegwitPrivateKey: options.nestedSegwit, + legacyPrivateKey: options.legacy, + }) + const account = mnemonicToAccount({ + mnemonic: options.mnemonic, + opts: { + network: provider.network, + }, + }) + + console.log( + await rune.protoburn({ + pointer: Number(options.pointer), + runeId: options.runeId, + inscriptionAddress: options.inscriptionAddress, + amount: Number(options.amount), + protocolTag: options.protocolTag, + feeRate: options.feeRate, + account, + signer, + provider, + }) + ) + }) + const getRuneByName = new Command('getRuneByName') .description('Returns rune details based on name provided') .requiredOption( @@ -898,6 +961,7 @@ const runeCommand = new Command('rune') .addCommand(runeSend) .addCommand(runeMint) .addCommand(runeEtch) + .addCommand(runeProtoburn) .addCommand(getRuneByName) const providerCommand = new Command('provider') diff --git a/src/rune/rune.ts b/src/rune/rune.ts index fdf5b966..a501e9a3 100644 --- a/src/rune/rune.ts +++ b/src/rune/rune.ts @@ -4,6 +4,7 @@ import * as bitcoin from 'bitcoinjs-lib' import { FormattedUtxo, accountSpendableUtxos } from '../utxo/utxo' import { Account } from '../account/account' import { + createProtoBurnScript, createRuneEtchScript, createRuneMintScript, createRuneSendScript, @@ -328,6 +329,14 @@ export const createMintPsbt = async ({ const changeAmount = gatheredUtxos.totalAmount - (finalFee + inscriptionSats) + const script = createRuneMintScript({ + runeId, + mintOutPutIndex: 1, + pointer: 1, + }) + const output = { script: script, value: 0 } + psbt.addOutput(output) + psbt.addOutput({ value: inscriptionSats, address: account.taproot.address, @@ -338,14 +347,6 @@ export const createMintPsbt = async ({ value: changeAmount, }) - const script = createRuneMintScript({ - runeId, - mintOutPutIndex: 0, - pointer: 0, - }) - const output = { script: script, value: 0 } - psbt.addOutput(output) - const formattedPsbtTx = await formatInputsToSign({ _psbt: psbt, senderPublicKey: account.taproot.pubkey, @@ -472,6 +473,19 @@ export const createEtchPsbt = async ({ throw new OylTransactionError(Error('Insufficient Balance')) } + const script = createRuneEtchScript({ + symbol, + cap, + premine, + perMintAmount, + turbo, + divisibility, + runeName, + pointer: 0, + }) + const output = { script: script, value: 0 } + psbt.addOutput(output) + const changeAmount = gatheredUtxos.totalAmount - (finalFee + inscriptionSats) @@ -485,19 +499,244 @@ export const createEtchPsbt = async ({ value: changeAmount, }) - const script = createRuneEtchScript({ - symbol, - cap, - premine, - perMintAmount, - turbo, - divisibility, - runeName, - pointer: 0, + const formattedPsbtTx = await formatInputsToSign({ + _psbt: psbt, + senderPublicKey: account.taproot.pubkey, + network: provider.network, + }) + + return { psbt: formattedPsbtTx.toBase64() } + } catch (error) { + throw new OylTransactionError(error) + } +} + +export const createProtoBurnPsbt = async ({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + fee, +}: { + account: Account + inscriptionAddress: string + runeId: string + amount: number + pointer: number + protocolTag: bigint + provider: Provider + feeRate?: number + fee?: number +}) => { + try { + const minFee = minimumFee({ + taprootInputCount: 2, + nonTaprootInputCount: 0, + outputCount: 2, + }) + const calculatedFee = minFee * feeRate < 250 ? 250 : minFee * feeRate + let finalFee = fee ? fee : calculatedFee + + let gatheredUtxos: { + totalAmount: number + utxos: FormattedUtxo[] + } = await accountSpendableUtxos({ + account, + provider, + spendAmount: finalFee + inscriptionSats, + }) + + let psbt = new bitcoin.Psbt({ network: provider.network }) + + const { runeUtxos, runeTotalSatoshis } = await findRuneUtxos({ + address: inscriptionAddress, + greatestToLeast: account.spendStrategy.utxoSortGreatestToLeast, + provider, + runeId, + targetNumberOfRunes: amount, + }) + + for await (const utxo of runeUtxos) { + if (getAddressType(utxo.address) === 0) { + const previousTxHex: string = await provider.esplora.getTxHex(utxo.txId) + psbt.addInput({ + hash: utxo.txId, + index: parseInt(utxo.txIndex), + nonWitnessUtxo: Buffer.from(previousTxHex, 'hex'), + }) + } + if (getAddressType(utxo.address) === 2) { + const redeemScript = bitcoin.script.compile([ + bitcoin.opcodes.OP_0, + bitcoin.crypto.hash160( + Buffer.from(account.nestedSegwit.pubkey, 'hex') + ), + ]) + + psbt.addInput({ + hash: utxo.txId, + index: parseInt(utxo.txIndex), + redeemScript: redeemScript, + witnessUtxo: { + value: utxo.satoshis, + script: bitcoin.script.compile([ + bitcoin.opcodes.OP_HASH160, + bitcoin.crypto.hash160(redeemScript), + bitcoin.opcodes.OP_EQUAL, + ]), + }, + }) + } + if ( + getAddressType(utxo.address) === 1 || + getAddressType(utxo.address) === 3 + ) { + const previousTxInfo = await provider.esplora.getTxInfo(utxo.txId) + + psbt.addInput({ + hash: utxo.txId, + index: parseInt(utxo.txIndex), + witnessUtxo: { + value: utxo.satoshis, + script: Buffer.from( + previousTxInfo.vout[utxo.txIndex].scriptpubkey, + 'hex' + ), + }, + }) + } + } + + if (!fee && gatheredUtxos.utxos.length > 1) { + const txSize = minimumFee({ + taprootInputCount: gatheredUtxos.utxos.length, + nonTaprootInputCount: 0, + outputCount: 3, + }) + finalFee = txSize * feeRate < 250 ? 250 : txSize * feeRate + + if (gatheredUtxos.totalAmount < finalFee) { + gatheredUtxos = await accountSpendableUtxos({ + account, + provider, + spendAmount: finalFee + inscriptionSats, + }) + } + } + + if (!fee && gatheredUtxos.utxos.length > 1) { + const txSize = minimumFee({ + taprootInputCount: gatheredUtxos.utxos.length, + nonTaprootInputCount: 0, + outputCount: 2, + }) + finalFee = txSize * feeRate < 250 ? 250 : txSize * feeRate + + if (gatheredUtxos.totalAmount < finalFee) { + gatheredUtxos = await accountSpendableUtxos({ + account, + provider, + spendAmount: finalFee + inscriptionSats, + }) + } + } + + for (let i = 0; i < gatheredUtxos.utxos.length; i++) { + if (getAddressType(gatheredUtxos.utxos[i].address) === 0) { + const previousTxHex: string = await provider.esplora.getTxHex( + gatheredUtxos.utxos[i].txId + ) + psbt.addInput({ + hash: gatheredUtxos.utxos[i].txId, + index: gatheredUtxos.utxos[i].outputIndex, + nonWitnessUtxo: Buffer.from(previousTxHex, 'hex'), + }) + } + if (getAddressType(gatheredUtxos.utxos[i].address) === 2) { + const redeemScript = bitcoin.script.compile([ + bitcoin.opcodes.OP_0, + bitcoin.crypto.hash160( + Buffer.from(account.nestedSegwit.pubkey, 'hex') + ), + ]) + + psbt.addInput({ + hash: gatheredUtxos.utxos[i].txId, + index: gatheredUtxos.utxos[i].outputIndex, + redeemScript: redeemScript, + witnessUtxo: { + value: gatheredUtxos.utxos[i].satoshis, + script: bitcoin.script.compile([ + bitcoin.opcodes.OP_HASH160, + bitcoin.crypto.hash160(redeemScript), + bitcoin.opcodes.OP_EQUAL, + ]), + }, + }) + } + if ( + getAddressType(gatheredUtxos.utxos[i].address) === 1 || + getAddressType(gatheredUtxos.utxos[i].address) === 3 + ) { + psbt.addInput({ + hash: gatheredUtxos.utxos[i].txId, + index: gatheredUtxos.utxos[i].outputIndex, + witnessUtxo: { + value: gatheredUtxos.utxos[i].satoshis, + script: Buffer.from(gatheredUtxos.utxos[i].scriptPk, 'hex'), + }, + }) + } + } + + if (gatheredUtxos.totalAmount < finalFee + inscriptionSats) { + throw new OylTransactionError(Error('Insufficient Balance')) + } + + psbt.addInput({ + hash: 'b3b9ce5b174aba757ce149d9df1fe573e0efa59be365215f70e548180f23e1b2', + index: 1, + witnessUtxo: { + value: 546, + script: Buffer.from( + '5120a60869f0dbcf1dc659c9cecbaf8050135ea9e8cdc487053f1dc6880949dc684c', + 'hex' + ), + }, + }) + const runeIdSplit = runeId.split(':') + const block = BigInt(runeIdSplit[0]) + const tx = Number(runeIdSplit[1]) + const script = createProtoBurnScript({ + runes: [ + { + id: { block, tx }, + amount: BigInt(amount), + }, + ], + protocolTag, + pointer, }) const output = { script: script, value: 0 } psbt.addOutput(output) + const changeAmount = + gatheredUtxos.totalAmount - (finalFee + inscriptionSats) + + psbt.addOutput({ + value: inscriptionSats + runeTotalSatoshis, + address: account.taproot.address, + }) + + psbt.addOutput({ + address: account[account.spendStrategy.changeAddress].address, + value: changeAmount, + }) + const formattedPsbtTx = await formatInputsToSign({ _psbt: psbt, senderPublicKey: account.taproot.pubkey, @@ -837,6 +1076,91 @@ export const actualEtchFee = async ({ return { fee: finalFee } } +export const actualProtoburnFee = async ({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + signer, +}: { + account: Account + inscriptionAddress: string + runeId: string + amount: number + pointer: number + protocolTag: bigint + provider: Provider + feeRate?: number + signer: Signer +}) => { + if (!feeRate) { + feeRate = (await provider.esplora.getFeeEstimates())['1'] + } + + const { psbt } = await createProtoBurnPsbt({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + }) + + const { signedPsbt } = await signer.signAllInputs({ + rawPsbt: psbt, + finalize: true, + }) + + let rawPsbt = bitcoin.Psbt.fromBase64(signedPsbt, { + network: account.network, + }) + + const signedHexPsbt = rawPsbt.extractTransaction().toHex() + + const vsize = ( + await provider.sandshrew.bitcoindRpc.testMemPoolAccept([signedHexPsbt]) + )[0].vsize + + const correctFee = vsize * feeRate + + const { psbt: finalPsbt } = await createProtoBurnPsbt({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + fee: correctFee, + }) + + const { signedPsbt: signedAll } = await signer.signAllInputs({ + rawPsbt: finalPsbt, + finalize: true, + }) + + let finalRawPsbt = bitcoin.Psbt.fromBase64(signedAll, { + network: account.network, + }) + + const finalSignedHexPsbt = finalRawPsbt.extractTransaction().toHex() + + const finalVsize = ( + await provider.sandshrew.bitcoindRpc.testMemPoolAccept([finalSignedHexPsbt]) + )[0].vsize + + const finalFee = finalVsize * feeRate + + return { fee: finalFee } +} + export const send = async ({ toAddress, amount, @@ -1002,3 +1326,60 @@ export const etch = async ({ return result } + +export const protoburn = async ({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + signer, +}: { + account: Account + inscriptionAddress: string + runeId: string + amount: number + pointer: number + protocolTag: bigint + provider: Provider + feeRate?: number + signer: Signer +}) => { + const { fee } = await actualProtoburnFee({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + signer, + }) + + const { psbt: finalPsbt } = await createProtoBurnPsbt({ + account, + inscriptionAddress, + runeId, + amount, + pointer, + protocolTag, + provider, + feeRate, + fee, + }) + + const { signedPsbt } = await signer.signAllInputs({ + rawPsbt: finalPsbt, + finalize: true, + }) + + const result = await provider.pushPsbt({ + psbtBase64: signedPsbt, + }) + + return result +} diff --git a/src/shared/utils.ts b/src/shared/utils.ts index 457b653f..090d00fa 100644 --- a/src/shared/utils.ts +++ b/src/shared/utils.ts @@ -20,6 +20,8 @@ import { EsploraRpc } from '../rpclient/esplora' import { Provider } from '../provider/provider' import { addressFormats } from '@sadoprotocol/ordit-sdk' import { encodeRunestone } from '@magiceden-oss/runestone-lib' +import { encodeRunestoneProtostone } from 'protorune/lib/src.ts/runestone_protostone_upgrade' +import { ProtoStone } from 'protorune/lib/src.ts/protostone' bitcoin.initEccLib(ecc) @@ -251,8 +253,6 @@ export const getWitnessDataChunk = function ( return contentChunks } - - //FLAG FOR REMOVAL export const getInscriptionsByWalletBIS = async ( walletAddress: string, @@ -539,6 +539,55 @@ export const createRuneEtchScript = ({ return runeEtch } +export const createProtoBurnScript = ({ + runes, + protocolTag, + pointer, +}: { + runes: { + id: { block: bigint; tx: number } + amount: bigint + }[] + protocolTag: bigint + pointer: number +}) => { + const runestone = encodeProtoburn({ + runes, + protocolTag, + pointer, + }) + return runestone +} + +export const encodeProtoburn = ({ + runes, + protocolTag, + pointer, +}: { + runes: { + id: { block: bigint; tx: number } + amount: bigint + }[] + protocolTag: bigint + pointer: number +}) => { + // outputs and their meanings: + // - output 0: runestone + // - output 1: UTXO of address + // - output 2: virtual output -- represents the protoburn on our protoburn protocol + + // all runes will go to output 2 -- performing the protoburn + // all unused runes will be refunded to pointer 1 and retained by the runes protocol + // the protostone will burn all runes onto the pointer 1 UTXO + const runestone = encodeRunestoneProtostone({ + edicts: runes.map((r) => ({ ...r, output: 0 })), + pointer, + protostones: [ProtoStone.burn({ protocolTag, pointer: 1 })], + }).encodedRunestone + + return runestone +} + export let RPC_ADDR = 'https://mainnet.sandshrew.io/v1/6e3bc3c289591bb447c116fda149b094' diff --git a/yarn.lock b/yarn.lock index 8f616518..e3553257 100644 --- a/yarn.lock +++ b/yarn.lock @@ -678,6 +678,11 @@ typeforce "^1.11.5" wif "^2.0.6" +"@protobuf-ts/runtime@^2.9.4": + version "2.9.4" + resolved "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz#db8a78b1c409e26d258ca39464f4757d804add8f" + integrity sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg== + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" @@ -1287,6 +1292,11 @@ bn.js@=4.11.8: resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +bn.js@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -1389,6 +1399,13 @@ buffer-from@^1.0.0: resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer-pipe@0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/buffer-pipe/-/buffer-pipe-0.0.3.tgz#242197681d4591e7feda213336af6c07a5ce2409" + integrity sha512-GlxfuD/NrKvCNs0Ut+7b1IHjylfdegMBxQIlZHj7bObKVQBxB5S84gtm2yu1mQ8/sSggceWBDPY0cPXgvX2MuA== + dependencies: + safe-buffer "^5.1.2" + buffer-reverse@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz" @@ -1514,6 +1531,11 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" +clone@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + co@^4.6.0: version "4.6.0" resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" @@ -2664,6 +2686,14 @@ kleur@^3.0.3: resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +leb128@^0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/leb128/-/leb128-0.0.5.tgz#84524a86ef7799fb3933ce41345f6490e27ac948" + integrity sha512-elbNtfmu3GndZbesVF6+iQAfVjOXW9bM/aax9WwMlABZW+oK9sbAZEXoewaPHmL34sxa8kVwWsru8cNE/yn2gg== + dependencies: + bn.js "^5.0.0" + buffer-pipe "0.0.3" + leven@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" @@ -2708,7 +2738,7 @@ lodash.memoize@4.x: resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash@^4.17.20, lodash@^4.17.4: +lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3109,6 +3139,19 @@ protobufjs@^7.2.4: "@types/node" ">=13.7.0" long "^5.0.0" +"protorune@https://github.com/kungfuflex/protorune.git": + version "0.1.0" + resolved "https://github.com/kungfuflex/protorune.git#8634a8c19016b388bc02f439d0bb3d6fd4411c8c" + dependencies: + "@protobuf-ts/runtime" "^2.9.4" + bip32 "^4.0.0" + bip39 "^3.1.0" + clone "^2.1.2" + ecpair "^2.1.0" + lodash "^4.17.21" + tiny-secp256k1 "^2.2.3" + yargs "^17.7.2" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"