Class: BTC::PublicKeyAddress
- Inherits:
-
Hash160Address
- Object
- Address
- BitcoinPaymentAddress
- Hash160Address
- BTC::PublicKeyAddress
- Defined in:
- lib/btcruby/address.rb
Overview
Standard pulic key (P2PKH) address (e.g. 19FGfswVqxNubJbh1NW8A4t51T9x9RDVWQ)
Constant Summary
Constants inherited from Hash160Address
Hash160Address::HASH160_LENGTH
Constants included from Opcodes
Opcodes::OPCODE_NAME_TO_VALUE, Opcodes::OPCODE_VALUE_TO_NAME, Opcodes::OP_0, Opcodes::OP_0NOTEQUAL, Opcodes::OP_1, Opcodes::OP_10, Opcodes::OP_11, Opcodes::OP_12, Opcodes::OP_13, Opcodes::OP_14, Opcodes::OP_15, Opcodes::OP_16, Opcodes::OP_1ADD, Opcodes::OP_1NEGATE, Opcodes::OP_1SUB, Opcodes::OP_2, Opcodes::OP_2DIV, Opcodes::OP_2DROP, Opcodes::OP_2DUP, Opcodes::OP_2MUL, Opcodes::OP_2OVER, Opcodes::OP_2ROT, Opcodes::OP_2SWAP, Opcodes::OP_3, Opcodes::OP_3DUP, Opcodes::OP_4, Opcodes::OP_5, Opcodes::OP_6, Opcodes::OP_7, Opcodes::OP_8, Opcodes::OP_9, Opcodes::OP_ABS, Opcodes::OP_ADD, Opcodes::OP_AND, Opcodes::OP_BOOLAND, Opcodes::OP_BOOLOR, Opcodes::OP_CAT, Opcodes::OP_CHECKLOCKTIMEVERIFY, Opcodes::OP_CHECKMULTISIG, Opcodes::OP_CHECKMULTISIGVERIFY, Opcodes::OP_CHECKSIG, Opcodes::OP_CHECKSIGVERIFY, Opcodes::OP_CODESEPARATOR, Opcodes::OP_DEPTH, Opcodes::OP_DIV, Opcodes::OP_DROP, Opcodes::OP_DUP, Opcodes::OP_ELSE, Opcodes::OP_ENDIF, Opcodes::OP_EQUAL, Opcodes::OP_EQUALVERIFY, Opcodes::OP_FALSE, Opcodes::OP_FROMALTSTACK, Opcodes::OP_GREATERTHAN, Opcodes::OP_GREATERTHANOREQUAL, Opcodes::OP_HASH160, Opcodes::OP_HASH256, Opcodes::OP_IF, Opcodes::OP_IFDUP, Opcodes::OP_INVALIDOPCODE, Opcodes::OP_INVERT, Opcodes::OP_LEFT, Opcodes::OP_LESSTHAN, Opcodes::OP_LESSTHANOREQUAL, Opcodes::OP_LSHIFT, Opcodes::OP_MAX, Opcodes::OP_MIN, Opcodes::OP_MOD, Opcodes::OP_MUL, Opcodes::OP_NEGATE, Opcodes::OP_NIP, Opcodes::OP_NOP, Opcodes::OP_NOP1, Opcodes::OP_NOP10, Opcodes::OP_NOP2, Opcodes::OP_NOP3, Opcodes::OP_NOP4, Opcodes::OP_NOP5, Opcodes::OP_NOP6, Opcodes::OP_NOP7, Opcodes::OP_NOP8, Opcodes::OP_NOP9, Opcodes::OP_NOT, Opcodes::OP_NOTIF, Opcodes::OP_NUMEQUAL, Opcodes::OP_NUMEQUALVERIFY, Opcodes::OP_NUMNOTEQUAL, Opcodes::OP_OR, Opcodes::OP_OVER, Opcodes::OP_PICK, Opcodes::OP_PUSHDATA1, Opcodes::OP_PUSHDATA2, Opcodes::OP_PUSHDATA4, Opcodes::OP_RESERVED, Opcodes::OP_RESERVED1, Opcodes::OP_RESERVED2, Opcodes::OP_RETURN, Opcodes::OP_RIGHT, Opcodes::OP_RIPEMD160, Opcodes::OP_ROLL, Opcodes::OP_ROT, Opcodes::OP_RSHIFT, Opcodes::OP_SHA1, Opcodes::OP_SHA256, Opcodes::OP_SIZE, Opcodes::OP_SUB, Opcodes::OP_SUBSTR, Opcodes::OP_SWAP, Opcodes::OP_TOALTSTACK, Opcodes::OP_TRUE, Opcodes::OP_TUCK, Opcodes::OP_VER, Opcodes::OP_VERIF, Opcodes::OP_VERIFY, Opcodes::OP_VERNOTIF, Opcodes::OP_WITHIN, Opcodes::OP_XOR
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(string: nil, hash: nil, network: nil, _raw_data: nil, public_key: nil, key: nil) ⇒ PublicKeyAddress
constructor
Instantiates address with a BTC::Key or a binary public key.
- #p2pkh? ⇒ Boolean
-
#script ⇒ Object
Returns BTC::Script with data 'OP_DUP OP_HASH160
OP_EQUALVERIFY OP_CHECKSIG'.
Methods inherited from Hash160Address
#data_for_base58check_encoding, #hash
Methods inherited from Address
#==, #data, #hash, #inspect, #mainnet?, mux_parse_raw_data, #network, #p2sh?, parse, parse_raw_data, #public_address, register_class, #testnet?, #to_s, #version
Constructor Details
#initialize(string: nil, hash: nil, network: nil, _raw_data: nil, public_key: nil, key: nil) ⇒ PublicKeyAddress
Instantiates address with a BTC::Key or a binary public key.
245 246 247 248 249 250 251 252 253 |
# File 'lib/btcruby/address.rb', line 245 def initialize(string: nil, hash: nil, network: nil, _raw_data: nil, public_key: nil, key: nil) if key super(hash: BTC.hash160(key.public_key), network: key.network || network) elsif public_key super(hash: BTC.hash160(public_key), network: network) else super(string: string, hash: hash, network: network, _raw_data: _raw_data) end end |
Class Method Details
.mainnet_version ⇒ Object
232 233 234 |
# File 'lib/btcruby/address.rb', line 232 def self.mainnet_version 0 end |
.testnet_version ⇒ Object
236 237 238 |
# File 'lib/btcruby/address.rb', line 236 def self.testnet_version 111 end |
Instance Method Details
#p2pkh? ⇒ Boolean
240 241 242 |
# File 'lib/btcruby/address.rb', line 240 def p2pkh? true end |
#script ⇒ Object
Returns BTC::Script with data 'OP_DUP OP_HASH160
256 257 258 259 |
# File 'lib/btcruby/address.rb', line 256 def script raise ArgumentError, "BTC::PublicKeyAddress: invalid data length (must be 20 bytes)" if self.data.bytesize != 20 BTC::Script.new << OP_DUP << OP_HASH160 << self.data << OP_EQUALVERIFY << OP_CHECKSIG end |