vulpemventures / go-elements

Go support for Liquid/Elements transactions
MIT License
27 stars 12 forks source link

How to Implement psbtStart.addOutput for a PSBT in go-elements #222

Closed infra403 closed 8 months ago

infra403 commented 9 months ago

` const atomPayload = new AtomicalsPayload(copiedData); const updatedBaseCommit: { scriptP2TR, hashLockP2TR, hashscript } = prepareCommitRevealConfig(this.options.opType, fundingKeypair, atomPayload) // console.log("updatedBaseCommit", JSON.stringify(updatedBaseCommit)) // console.log("fundingKeypair", JSON.stringify(fundingKeypair))

            let psbtStart = new Psbt({ network: NETWORK });
            psbtStart.setVersion(1);
            psbtStart.addInput({
                hash: fundingUtxo.txid,
                index: fundingUtxo.index,
                witnessUtxo: { value: fundingUtxo.value, script: Buffer.from(fundingKeypair.output, 'hex') },
                tapInternalKey: fundingKeypair.childNodeXOnlyPubkey,
            });
            // console.log("fundingUtxo", JSON.stringify(fundingUtxo))
            // console.log("witnessUtxo script",  Buffer.from(fundingKeypair.output, 'hex'))
            // console.log("tapInternalKey", fundingKeypair.childNodeXOnlyPubkey)

            psbtStart.addOutput({
                address: updatedBaseCommit.scriptP2TR.address,
                value: fees.revealFeePlusOutputs
            });

            this.addCommitChangeOutputIfRequired(fundingUtxo.value, fees, psbtStart, fundingKeypair.address);

            psbtStart.signInput(0, fundingKeypair.tweakedChildNode);
            // console.log("tweakedChildNode", fundingKeypair.tweakedChildNode)

            psbtStart.finalizeAllInputs()
            let prelimTx = psbtStart.extractTransaction();`
tiero commented 8 months ago

You should use psetv2 package. Refer to these tests https://github.com/vulpemventures/go-elements/blob/master/psetv2/pset_test.go