bitcoin-php icon indicating copy to clipboard operation
bitcoin-php copied to clipboard

Bitcoin implementation in PHP

Results 91 bitcoin-php issues
Sort by recently updated
recently updated
newest added

I've been working on {y,Y,z,Z}{prv,pub} support in [hd-wallet-derive](https://github.com/dan-da/hd-wallet-derive) and its complicated especially when considering all the other coins besides bitcoin and that some of them define their own special prefix...

to allow extending BlockHeader for ZCash

I've parsed ZCash blocks. It has different header and tx structure, not Bitcoin-compatible. It requires custom BlockFactory with custom BlockHeaderSerializer and TransactionSerializer. I made it work by extending this classes....

question

I'm extracting data from block hex in Dash. ``` Bitcoin::setNetwork(NetworkFactory::dash()); // block hash is 0000000000000039b7e3341e8bdd18056f6362471325ce6402cdc80de33fa9cc $block = BlockFactory::fromHex("0000002068d6f1c872cf73d34013d2b445a5c399db640265db1e6ba309000000000000002d4538e3751dd00b4ec817571c24df1230475eba2940faa283f8167f631e681cf5b2615ad52840196f1ea2f31301000000010000000000000000000000000000000000000000000000000000000000000000ffffffff27031a4f0c04f5b2615a08000023a6b30300000fe4b883e5bda9e7a59ee4bb99e9b1bc04f09f909fa6a3da9e020824bd0a000000001976a9146d2ec0a7219b67efd092c105648f9a1870cd607988ac1424bd0a000000001976a9147c086eada12bdb10a265c16c08a7ae87366bd48188ac0000000001000000012c92648a32e8d9416459bb5e208ad742c18ae4235670eac5fefa9bbf88c24cbc010000006b48304502210098865e2d14286d30562df6e337b36aa1ba5859cff0a82e20c42562925c10af7502204184130a639e9a8288b90365b4950be8d0ad1c0bf2a40c89f4f1e8b7de3f7d4d0121029c1c6748374f4a88590dc7f909dbc0ddff25a9c329f11db131802aef4c0e3b22ffffffff01cc79df0b000000001976a914829c1f597af15e9dc04ce3deb9e95dd26df1855088ac000000000100000006b2e613c5ce56993b254eb9033609056f16c24b565bc62768c40a0c1d2613b701000000006a47304402201adec2b0e82d5114d1234c3d73ace07e1f27247c183d8ef573b7309557f00a92022007fca6f25c32d23dc37b7684dabafac84a51a686154317192e5f4e67e829a40b012103a9768108ad34afd46c306b1a4cfdb7d70a24091fef6b4f702f1dd723ee957006ffffffffcb879c289d51f30f08b187cd2a2332dabfc16d790ec53f5a56dcccaa0998b2d6cf0400006b48304502210093352b71e98687999303a6a4bc2c586c852ba92c1c6624021abf5f8454b14195022061df9043d9f006162758ed45fb3512147ca06199e9cbdb57d13056a426e356cb01210327e2b2c56ec3e440cfd57f8cf90ee00ed66b9092427159c0feb552c2ec611af4ffffffff377d42929377c2714ded7860e918225186c698b980725ac2dcfc343e947c72b6f80400006b48304502210090b4ceeb3ee9735a774c93592a11e98438960f24967f180b1e5bd17c93621fa3022008ff97befc699115eea19ab0100899b673afb5c5809225df8a78ed446334ca0401210334e50f197187a0d2e46f40ce57e99fd4b0a21b9e4d5cf414fd71c871ea2b8b6fffffffff04847db77987435b0b4f2ddcbdb1bdbcb3d2415c2751200df12cc669ca1268bc710100006a473044022035ef0a4e5def54ef84fb1518daf255df9c2ce64c7208461ce84c737b747aee58022004830c4f7f6b0c7f0a605a04097ef4c63b15c5df017ff4059c75ab70c4260ec3012102841b502f809a95f71a37c2d41aa0d9c63765168857ef0db19ce421b289dd7aafffffffff377d42929377c2714ded7860e918225186c698b980725ac2dcfc343e947c72b6fa0400006b483045022100896458d3d1520660e5e54897435127dabc4e04cc384c4d7dec6abe34e38cda52022038184a9d8495d90b4f119d405cb8e60b9716ada05cf58877c582106369a3814a012103b4bd683b74c202d4995fee9773bc39b5413653c8695924611983434d645b74baffffffff6a16c4964b92ee0b7b1d18b632f6a157853d3885635161117f89be5c2dd4ed76d20000006a4730440220479e0a518ce2f76ccfce024bca9d152a873fa874642ccf84c888363537e7a47b02205bbd89f1911338ac18c26c545772c79bf5844efed2858eae2f5241412b19e9030121026d89343a1b7a635702965246082c18ee01e046e2fcf919d3bd5579a68cea05eaffffffff0380f0fa02000000001976a914f8d6a93157e04fe87d2bcd645b37ac033491144488ac94388900000000001976a91424eebef9078b395e3ffc09f1554cab104a5e725088ac9dbd1a00000000001976a914f354cbac7151d8a6b692e45898e1169344aadc9c88ac0000000001000000010a9fff67d268dc30073a0e2869e332664f3ab9efad539eed899a00ee1921be6f000000006b483045022100d323b9d0a53b720dfbb0f0012bc91e13493d41eef960206b22f1aa6d379f695f02203dce45bc921bd7117970b32a55043085f77d7e7095489412009b235ff10ddc360121022c3c03cb2f9766b0adeda64b4dce6ae3ca881d12f838a709a081a2b84c424001ffffffff02624e761b000000001976a9144aa9a10d02e85afd01bb28681e8c539f56f7e9cb88ac619fa700000000001976a9145cb834cfb0ca22bb451762186640916c0597fe6f88ac0000000001000000010275cc3511796c0c11f937d336aca23673fa9543f312e3dc62d84d2915ef8a3f010000006b483045022100e08884233d1b4030af84be1a468a44c9530cc13af3fdb712e413495ba996c0d20220666583220b6a400475e29b3ffef8a62c6c18841e460af9d5b9bea3a329f73e020121037d31156679affe4c28aed5e34af775cbbbb0a2f6eaaa11a5ecdd80ba202bd87cffffffff02c0e1e400000000001976a91494d0ac16f67156a787bee0e7ebcc8ddebdf4b41988ac91448801000000001976a91423964d7f69717978b1cf9969af07fb467b51204388ac0000000001000000017207677188d5d321a56989408d2105a724a2f193ab5d2bcd485fb7e56b3746b2010000006b483045022100adc553c544d584e18bf633220ed64118bf9ed97416a715a0163d63b1136693b0022028de083b6c17b738ae257781ebf58d935f5b9d783c3db6207bdd9f549823f74a0121023d82da961301cb4f122ae2950f105cbcc9cd9a5ea72260e9d9fb97852aa4ad3dfeffffff0240420f00000000001976a9145af70af4d10e5e541fbf5f19c447751d8e4ddd8788acf6d42801000000001976a914cb31ec95e60f04f72e1416fbedf864e5b637cfda88ac194f0c00010000000184faa5370bf83745abbf01e85f42d7c97a4240a2d79604092a4dcf5d66f7382c010000006a4730440220287ba615114a94464d477fb5a83e626c87384bc92d0f0c64e9d4ee6f4cc3636e02203329c492cf68a5c6cc4f9ef1e4a9658bc77b5ec184325f08b3fad34b4739716c0121022c1fa3921d6a63bb342957cff2e9f5399f714c48b4f83650d41c624bdcba56e7feffffff0230750000000000001976a914a79cd83e8dce4896a917e42963cf422db3d0a61f88ace8450b00000000001976a914c7ea1c4bc6ce2e0fdf75ac060148ccaf6f1ae33c88acdd4e0c00010000000121708466e27a00ee21027a38f844a3e0303f908f1e299f174a492a3550221a38010000006b48304502210082c9900b44399a76f59cb4bbca725fcc8a5b0c590804688473c772d1f25c0f5f02205c9b1ed2b178904711cd3112b7af58a1df6de0f30cda45953b631a05b65bfba7012103e9d7c34fe69147e1cc6486bb6e6dfe1fd2cdad93635e79891218b6e4d555f5efffffffff01f782e700000000001976a9146fd4cdbd13b229fbe2a1f9a23e5fa517a2de6a9c88ac000000000100000001bd4e5cbd43b7fc642a6b71aa6a753b7b61039734dfc9dded459090f588c88fc4010000006a47304402205a65ed480c869fde51fa7778f1f4dc3288b69208f3adf63d5b099e96c08d361102203df60276af5b449f73d94bf544f686611d947c43e46f09ce45cfe99791832bc601210268ad9a84456239163ba145ab2ce389659b0d6bb2f5d715719ac4f428da4afc2dfeffffff0260721400000000001976a91426beb9961d9227b237a314aa2f2acfaaca0adf0788ac9d53a707000000001976a914484734e0f70d49db3feef4a111d1ad85ea99941c88ac184f0c0001000000013803497825edd6def6cde2d40d38d3425a6c55d39884fff7cf3b839ec3df91fb010000006a4730440220639f8c03513409ddb8d1f55fe065ea9f0a4cff09838588fcdb506ee41cd7244402201fc99a423da1029943f785f52e464300a3bf0977a2ed9ac73fd69ae14099c03701210227745288b82786fd4f79fcd979cc30778f7e544293c098b47292b0f04d07068ffeffffff0290ab1e00000000001976a9142167b9b522e826daf1efe6344f45a8e41ff35b0f88ac2ba78807000000001976a914b242a7d352fe752d2fae55b95a10c3724b71714388ac194f0c000100000001facb6f307a582eb1bffb3951be2d798514853187b9f2f666e292d7643ddd5f87010000006a47304402200e44885eccd7beaa03460274cf25bffe8598126f507985f0146860f75ef7e04b02201924e55cf0515fad9e897b34d1b2f5f246908712eaf1d88083c9831f499bfcae012103f2c2ebb366edd064eda36d62280c8fa51747680c573defcf5d93883dfa00079dfeffffff0230390a00000000001976a914b451d41e7d068e9b4fbaa27129bf4aa1a5fe258088ac196d7e07000000001976a9140d60d99a1df428323c1db78d3afc545f98a3cc6788ac194f0c000100000001657fe818dbb3dccfefc8e286c8c22f6211a514bd4e9001851dc3b4203f8192d7010000006a47304402201f32b3b3b9ccc16415294322df22bae2be51168a0ef4658ae0a71da633434fba0220247ebcbb7a6916f164d31c3b2aca5d8f2f7251a6f4e6c78662093eae9555a78b012102d47647a17c905f6f83e61382795c46122d068dc4e41574c2b233c309df4710b7feffffff0230390a00000000001976a91452f14d60d4e01489de48b9d4f0a515740e4a4c2188ac07337407000000001976a9148b4fbaa1b41bf203c168f6a2d15f18113cae9c0f88ac194f0c000100000001f094ba863097fa0f4de3c745a2e6c7aed2c6eb0db0a0d86b72a7bff5cd9e5170010000006a47304402200e80e734ae19f53572ea0c872c3d60865fc60ce6d1747f68abb239f3ebf69028022033fc10a4b36c17d315eaa2cdeb6d99ddc31fc45bd6b1185138be1a4b06650532012102300029a81a3453cdf6dba499cb1b489495c0287e6f26b504d0e82634f5fbdbbffeffffff02cc4d0000000000001976a9148d151954f3c95dad578f5a4307ee6c7ffe93e61988ac30390a00000000001976a91433c52c82d71c1a36027d47466423c3ce9b1bc50788ac184f0c000100000001b98f7d5a100e84459823ad602d0276569b505212567357ba3b9bd2c9022b1c27010000006b48304502210098d79e1b498fd4121240a9e48428b6ba85d36a4921dfadcff61c9786dfeb547602202785d912ce55df9fdadb8eda49acdb862f0f3359a807329ebf2e92cf31fa6a3c012102ed73f3a536b7cc33e50bd4766e0ce696e833db24fe4477abf75a127210191e71feffffff0209630000000000001976a914ff2f738f447bb96d2861a086eb1141a851dcb95088ac48892501000000001976a914ecd032bbec7ade5fdb53bcc3af83cd167472bca888ac194f0c000100000001631229f8e11e4b06710efdf5e8f05fa6f44f1c2623f1e5aecb8d976f1bdbe150010000006b483045022100d9728fda6b328936b5df695f32d8da08b5e320435dc82ca0b2a046d1116c6e32022031a2ccc50fa65a815b1c436711d885467f5eb5d80a7fbdbea122425d15b69034012103ef1e2f779738037cbfdbf867fa6a9eb53e21a27d3bac114fdef42a5c561b4606feffffff0230750000000000001976a914e3abec0bebfe4510caecee1ef9ee948164cea3d388ac226c1800000000001976a914ca6cdaa63bd13d15e5b53a47f183f51befcb981488ac194f0c000100000001da79077eb110c999135a35b727f3422b2b0b19ccfc443f37e8d3b5d07e1bcd76010000006a47304402204dbfd8354732676189b3292ec29c5f3b1c0924dd47434a7185b25a25699569ef02206dd234aae6df91d48019fd848ede901f55e14d614789f2a8f880347551150cfd01210249c807bac8a0ba594185819c7f575b42628c808c019c319a0632d91631d10ab8feffffff0230750000000000001976a914a4634fb2d2e8a239e141d433bb9e65faed07107d88ac0ff61700000000001976a914f66f4898c3d282bd6aadbbaace9567f9adf3731588ac194f0c000100000001375060e3bf1173c89398ea104d713ac6cb7dd522f4bd514d3f174069218bc530010000006a473044022067c069c777fe0a37174db749911990dcb5425b1107ec894b0502d0f171bbaa40022067cbc3395ae7286069d265b5b0c4f0b7d55c99e77a7fa2b2a22c6dd66879bdd0012102c62f1f8317b653054303b15dd780ed8462c70199c9a7db548a328e33064f4563feffffff0230390a00000000001976a914f8f37f12699a4e3de812b3078ba471e6b39456fc88acf6f86907000000001976a91479e84b7c18e3e7549b62098361fee972626f661988ac194f0c0001000000019b618456253fcf8e75a420ad417caa672e5557742c0072f7b920bcf8cf9621b8010000006a47304402207d83d80d1f66f5ecb3c46ea043039c3fcfe506c6bd3d32dbbca2527c75f12856022057414900b97c50c2a9b966c9046ae80abcaa1a637ac6f2090243e18b73d45ba5012103f09441fd537a05ba1cae2a831a42bcf6603960f5ab75396424bd47771b2cf099feffffff0230390a00000000001976a914886f714081cbcebd4063a244697e6604af7a60ce88ace4be5f07000000001976a914821189629a13110d9cd477061fc536d85489db8e88ac194f0c00010000000143812b1b532ece200ae53d0416f132c2eabeafd92bf0ab60f631edb7c3f96ae0010000006a473044022069449cfdd80e9050c95efe215e1447697703493bfd6cebac80423a9f0e0cd05002203b28c0aef219712386a25c4494100a61ac0cbf480db5247ff604334f9e35d5e20121029bd4be5e698f92633fcd8ff65d198ea90c312aa0e19ae777d462ee150608c8a0feffffff0230390a00000000001976a9148958809b0cac77361dec4ed6c5a25eb760412eba88acd2845507000000001976a914511edade24960a884b6e7841d9c1d4cae4faf07c88ac194f0c00"); var_dump($block->getHeader()->getHash()->getHex()); var_dump($block->getHeader()->getPrevBlock()->getHex()); ``` outputs: ``` string(64) "1e4ff4f4cf964ed9b51459503b0946bf9d6eab1e60468546d48df3092bd96521" string(64) "0000000000000009a36b1edb650264db99c3a545b4d21340d373cf72c8f1d668" ``` current block...

Speaks for itself - I think going forward we need to avoid code in markdown files, and have a sectioned examples folder.. But we need to do better on this...

help wanted
documentation

It's a bit annoying not being able to test the type of network using it's class name.. Would be desireable to have some named classes for these. Also review: -...

One thing I frequently miss is the ability to estimate the size of a transaction before signing it, so I don't have to resign with the correct fee/change set. Size...

I'm using version 1 of this package. Now I can create transaction in Bitcoin, Dogecoin, Litecoin But I can't crate a transaction in Bitcoin cash just in this way: ```...