afilini / bip174.org Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
It looks like bip174.org is unreachable
I am not aware of any online tool that supports converting raw transactions to/from PSBT format. It would be great if this is something that is possible to add.
I've been looking for something like this awesome tool while developing PayJoins and PSBTv2 for a while but noticed the website is down. I saw PSBT-toolkit, but that needs to be compiled and run on my machine from scala .
Since this is all client side wasm couldn't it be hosted by github pages? That would be mega convenient and reliable based on my experience.
Edit: maybe it's server side rendered now, but I guess it could be all done in the browser.
Steps:
cHNidP8BAFICAAAAAZ38ZijCbFiZ/hvT3DOGZb/VXXraEPYiCXPfLTht7BJ2AQAAAAD/////AfA9zR0AAAAAFgAUezoAv9wU0neVwrdJAdCdpu8TNXkAAAAATwEENYfPAto/0AiAAAAAlwSLGtBEWx7IJ1UXcnyHtOTrwYogP/oPlMAVZr046QADUbdDiH7h1A3DKmBDck8tZFmztaTXPa7I+64EcvO8Q+IM2QxqT64AAIAAAACATwEENYfPAto/0AiAAAABuQRSQnE5zXjCz/JES+NTzVhgXj5RMoXlKLQH+uP2FzUD0wpel8itvFV9rCrZp+OcFyLrrGnmaLbyZnzB1nHIPKsM2QxqT64AAIABAACAAAEBKwBlzR0AAAAAIgAgLFSGEmxJeAeagU4TcV1l82RZ5NbMre0mbQUIZFuvpjIBBUdSIQKdoSzbWyNWkrkVNq/v5ckcOrlHPY5DtTODarRWKZyIcSEDNys0I07Xz5wf6l0F1EFVeSe+lUKxYusC4ass6AIkwAtSriIGAp2hLNtbI1aSuRU2r+/lyRw6uUc9jkO1M4NqtFYpnIhxENkMak+uAACAAAAAgAAAAAAiBgM3KzQjTtfPnB/qXQXUQVV5J76VQrFi6wLhqyzoAiTACxDZDGpPrgAAgAEAAIAAAAAAACICA57/H1R6HV+S36K6evaslxpL0DukpzSwMVaiVritOh75EO3kXMUAAACAAAAAgAEAAIAA
tpubDBkJeJo2X94Yq3RVz65DoUgyLUkaDrkfyrn2VcgyCRSKCRonvKvCF2FpYDGJWDkdRHBajXJGpc63GnumUt63ySvqCu2XaTRGVTKMYGuFk9H
or tpubDBkJeJo2X94YsvtBEU1eKoibEWiNv51nW5iHhs6VZp59jsE6nen8KZMFyGHuGbCvqjRqirgeMcfpVBkttpUUT6brm4duzSGoZeTbhqCNUu6
anywhere on the pageBy comparison, here is the output using buidl:
>>> from buidl.psbt import PSBT
>>> psbt_b64 = "cHNidP8BAFICAAAAAZ38ZijCbFiZ/hvT3DOGZb/VXXraEPYiCXPfLTht7BJ2AQAAAAD/////AfA9zR0AAAAAFgAUezoAv9wU0neVwrdJAdCdpu8TNXkAAAAATwEENYfPAto/0AiAAAAAlwSLGtBEWx7IJ1UXcnyHtOTrwYogP/oPlMAVZr046QADUbdDiH7h1A3DKmBDck8tZFmztaTXPa7I+64EcvO8Q+IM2QxqT64AAIAAAACATwEENYfPAto/0AiAAAABuQRSQnE5zXjCz/JES+NTzVhgXj5RMoXlKLQH+uP2FzUD0wpel8itvFV9rCrZp+OcFyLrrGnmaLbyZnzB1nHIPKsM2QxqT64AAIABAACAAAEBKwBlzR0AAAAAIgAgLFSGEmxJeAeagU4TcV1l82RZ5NbMre0mbQUIZFuvpjIBBUdSIQKdoSzbWyNWkrkVNq/v5ckcOrlHPY5DtTODarRWKZyIcSEDNys0I07Xz5wf6l0F1EFVeSe+lUKxYusC4ass6AIkwAtSriIGAp2hLNtbI1aSuRU2r+/lyRw6uUc9jkO1M4NqtFYpnIhxENkMak+uAACAAAAAgAAAAAAiBgM3KzQjTtfPnB/qXQXUQVV5J76VQrFi6wLhqyzoAiTACxDZDGpPrgAAgAEAAIAAAAAAACICA57/H1R6HV+S36K6evaslxpL0DukpzSwMVaiVritOh75EO3kXMUAAACAAAAAgAEAAIAA"
>>> PSBT.parse_base64(psbt_b64)
Tx:
tx: c6176cf469d705b224046a55aa7128c533fd11fb74c37e5fbb48bbea6ff1523d
version: 2
locktime: 0
tx_ins:
{self.prev_tx.hex()}:{self.prev_index}
tx_outs:
499990000:OP_0 7b3a00bfdc14d27795c2b74901d09da6ef133579
PSBT XPUBS:
{b"\x04\x88\xb2\x1e\x02\xda?\xd0\x08\x80\x00\x00\x00\x97\x04\x8b\x1a\xd0D[\x1e\xc8'U\x17r|\x87\xb4\xe4\xeb\xc1\x8a ?\xfa\x0f\x94\xc0\x15f\xbd8\xe9\x00\x03Q\xb7C\x88~\xe1\xd4\r\xc3*`CrO-dY\xb3\xb5\xa4\xd7=\xae\xc8\xfb\xae\x04r\xf3\xbcC\xe2":
HD: tpubDBkJeJo2X94Yq3RVz65DoUgyLUkaDrkfyrn2VcgyCRSKCRonvKvCF2FpYDGJWDkdRHBajXJGpc63GnumUt63ySvqCu2XaTRGVTKMYGuFk9H
Path: d90c6a4f:m/174'/0'
, b'\x04\x88\xb2\x1e\x02\xda?\xd0\x08\x80\x00\x00\x01\xb9\x04RBq9\xcdx\xc2\xcf\xf2DK\xe3S\xcdX`^>Q2\x85\xe5(\xb4\x07\xfa\xe3\xf6\x175\x03\xd3\n^\x97\xc8\xad\xbcU}\xac*\xd9\xa7\xe3\x9c\x17"\xeb\xaci\xe6h\xb6\xf2f|\xc1\xd6q\xc8<\xab':
HD: tpubDBkJeJo2X94YsvtBEU1eKoibEWiNv51nW5iHhs6VZp59jsE6nen8KZMFyGHuGbCvqjRqirgeMcfpVBkttpUUT6brm4duzSGoZeTbhqCNUu6
Path: d90c6a4f:m/174'/1'
}
Psbt_Ins:
[
TxIn:
{self.prev_tx.hex()}:{self.prev_index}
Prev Tx:
None
Prev Output:
500000000:OP_0 2c5486126c4978079a814e13715d65f36459e4d6ccaded266d0508645bafa632
Sigs:
{}
RedeemScript:
None
WitnessScript:
OP_2 029da12cdb5b235692b91536afefe5c91c3ab9473d8e43b533836ab456299c8871 03372b34234ed7cf9c1fea5d05d441557927be9542b162eb02e1ab2ce80224c00b OP_2 OP_CHECKMULTISIG
PSBT Pubs:
{b'\x02\x9d\xa1,\xdb[#V\x92\xb9\x156\xaf\xef\xe5\xc9\x1c:\xb9G=\x8eC\xb53\x83j\xb4V)\x9c\x88q':
Point: 029da12cdb5b235692b91536afefe5c91c3ab9473d8e43b533836ab456299c8871
Path: d90c6a4f:m/174'/0'/0
, b"\x037+4#N\xd7\xcf\x9c\x1f\xea]\x05\xd4AUy'\xbe\x95B\xb1b\xeb\x02\xe1\xab,\xe8\x02$\xc0\x0b":
Point: 03372b34234ed7cf9c1fea5d05d441557927be9542b162eb02e1ab2ce80224c00b
Path: d90c6a4f:m/174'/1'/0
}
ScriptSig:
None
Witness:
None
]
Psbt_Outs:
[
TxOut:
499990000:OP_0 7b3a00bfdc14d27795c2b74901d09da6ef133579
RedeemScript:
None
WitnessScript
None
PSBT Pubs:
{b'\x03\x9e\xff\x1fTz\x1d_\x92\xdf\xa2\xbaz\xf6\xac\x97\x1aK\xd0;\xa4\xa74\xb01V\xa2V\xb8\xad:\x1e\xf9':
Point: 039eff1f547a1d5f92dfa2ba7af6ac971a4bd03ba4a734b03156a256b8ad3a1ef9
Path: ede45cc5:m/0'/0'/1'
}
]
Extra:
{}
I get a "PsbtEncoding(Psbt(NonStandardSigHashType(0)))" error when the transaction contains p2tr. Would be great if taproot support was added.
Great tool! Nice work.
Would be really sweet to support a diff tool, either parsed/serialized like you have now or base64 diff
Cheers
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.