Valide endereços legados, segwit, segwit nativo (bech32) e Bitcoin taproot.
PHP | Versão do pacote |
---|---|
7.x | v1.0 |
8.x | v2.0+ |
Observe que os endereços taproot são suportados na versão 2.1 deste pacote.
Instale o pacote via compositor:
composer require kielabokkie/bitcoin-address-validator
Primeiro você instancia a classe validadora:
$ addressValidator = new Kielabokkie Bitcoin AddressValidator ;
Valide qualquer tipo de endereço (legado, segwit, segwit nativo e taproot):
$ addressValidator -> isValid ( ' 1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i ' );
Endereço legado (P2PKH):
$ addressValidator -> isPayToPublicKeyHash ( ' 1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i ' );
Endereço Segwit (P2SH):
$ addressValidator -> isPayToScriptHash ( ' 3ALJH9Y951VCGcVZYAdpA3KchoP9McEj1G ' );
Endereço segwit nativo (bech32):
$ addressValidator -> isBech32 ( ' bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 ' );
Endereço Taproot (P2TR):
$ addressValidator -> isPayToTaproot ( ' bc1pveaamy78cq5hvl74zmfw52fxyjun3lh7lgt44j03ygx02zyk8lesgk06f6 ' );
Por padrão, o validador apenas passa os endereços da rede principal como válidos. Se quiser validar os endereços mainnet e testnet, você pode usar o encadeamento de métodos:
// Both valid
$ addressValidator -> includeTestnet ()-> isBech32 ( ' bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 ' );
$ addressValidator -> includeTestnet ()-> isBech32 ( ' tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx ' );
Se quiser validar apenas endereços testnet, você pode fazer isso da seguinte maneira:
// Invalid
$ addressValidator -> onlyTestnet ()-> isBech32 ( ' bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 ' );
// Valid
$ addressValidator -> onlyTestnet ()-> isBech32 ( ' tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx ' );
Este pacote é testado em relação aos dados de teste do repositório oficial de bitcoin/bitcoin. Se você encontrar um endereço que não foi validado corretamente, abra um problema para ele.
Execute os testes com:
composer test
Este pacote é baseado nos seguintes pacotes e usa muito de seu código:
Todo o crédito vai para os autores originais.
Este pacote rendeu muito dinheiro, economizou tempo ou apenas despertou alegria?
Uma doação seria muito apreciada: 32vtWJSomccxQ6y1tgSwSHXN5PChpdYy27