bitcoinjs / bitcoinjs-lib

A javascript Bitcoin library for node.js and browsers.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can not sign for input #1 with the key

ayenisholah opened this issue · comments

I am trying to sign data with psbt but getting the error below:

Error: Can not sign for input #1 with the key
at Psbt.checkTaprootHashesForSig (/Users/titan/projects/nfttools/nfttools-bidding-bot/node_modules/bitcoinjs-lib/src/psbt.js:851:13)
at Psbt._signTaprootInput (/Users/titan/projects/nfttools/nfttools-bidding-bot/node_modules/bitcoinjs-lib/src/psbt.js:687:31)
at Psbt.signInput (/Users/titan/projects/nfttools/nfttools-bidding-bot/node_modules/bitcoinjs-lib/src/psbt.js:635:19)
at SignData (/Users/titan/projects/nfttools/nfttools-bidding-bot/src/bid.ts:178:8)
at /Users/titan/projects/nfttools/nfttools-bidding-bot/src/bid.ts:117:42
at Generator.next ()
at fulfilled (/Users/titan/projects/nfttools/nfttools-bidding-bot/src/bid.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)

Here is my sign data code:
 export function SignData(unsignedData: any, privateKey: string) {
 console.log('Signing data...');

 const psbt = bitcoin.Psbt.fromBase64(unsignedData.psbtBase64);

 const keyPair: ECPairInterface = ECPair.fromWIF(privateKey)

 psbt.signInput(1, keyPair)

 const signedBuyingPSBTBase64 = psbt.toBase64();
 return signedBuyingPSBTBase64;
}

sample unsignedData:

{

  psbtBase64: 'cHNidP8BAPICAAAAAvc0QRrfeeYRiqoE/D4XTCjT/Sk03dzhfRCvznfqMKcGDAAAAAD/////dDlwLwNoydV7CZwpZ5fvprEGF8U1KkddOV7L/VM+u0kAAAAAAP////8EIgIAAAAAAAAiUSDwrXc4b6VlUv3jtpMshI+NRVekZGIOcGyfn19PohDZImtIAAAAAAAAF6kUBir/pEfXzO26gv0JRXUHf32t8QWHRAIAAAAAAAAXqRTqa4MqBcbKV4uqODbz8lVT1BBopYc5JAEAAAAAACJRIPCtdzhvpWVS/eO2kyyEj41FV6RkYg5wbJ+fX0+iENkiAAAAAAABASsiAgAAAAAAACJRILc+QpZW4BKHxFMTYjNswbFCX+oj7ehx2yHXsVGTQcllAQMEAQAAAAEXICYTwi9H8/j8o39nov453Wars/GhKe4F3OonU96lJiduAAEBK6CGAQAAAAAAIlEg8K13OG+lZVL947aTLISPjUVXpGRiDnBsn59fT6IQ2SIBFyBnJiXBmGHSxnh3HI215SLw1/hjkMDp6mNYeQQNf1A49gAAAAAA',
  toSignSigHash: 0,
  toSignInputs: [ 1 ],
  tokenId: '06a730ea77ceaf107de1dcdd3429fdd3284c173efc04aa8a11e679df1a4134f7i12',
  price: 18360,
  expirationDate: '1711084152744',
  buyerReceiveAddress: 'bc1p7zkhwwr054j49l0rk6fjepy034z40fryvg88qmylna05lgssmy3q77uf9y',
  buyerPaymentAddress: 'bc1p7zkhwwr054j49l0rk6fjepy034z40fryvg88qmylna05lgssmy3q77uf9y',
  buyerPaymentPublicKey: '02672625c19861d2c678771c8db5e522f0d7f86390c0e9ea635879040d7f5038f6'
}

depencies:

"dependencies": {
		"@cmdcode/tapscript": "^1.4.6",
		"axios": "^1.6.8",
		"axios-retry": "^4.1.0",
		"bip32": "^4.0.0",
		"bitcoinjs-lib": "^6.1.5",
		"crypto": "^1.0.1",
		"csv-parser": "^3.0.0",
		"dotenv": "^16.4.5",
		"ecpair": "^2.1.0",
		"taproot": "^0.4.1",
		"tiny-secp256k1": "^2.2.3",
		"yargs": "^17.7.2"
	}

The same with this #2024

You need to tweak your keyring!