|
@ -68,6 +68,10 @@ Transaction::Transaction(bytesConstRef _rlpData, CheckSignature _checkSig) |
|
|
m_type = rlp[field = 3].isEmpty() ? ContractCreation : MessageCall; |
|
|
m_type = rlp[field = 3].isEmpty() ? ContractCreation : MessageCall; |
|
|
m_receiveAddress = rlp[field = 3].isEmpty() ? Address() : rlp[field = 3].toHash<Address>(RLP::VeryStrict); |
|
|
m_receiveAddress = rlp[field = 3].isEmpty() ? Address() : rlp[field = 3].toHash<Address>(RLP::VeryStrict); |
|
|
m_value = rlp[field = 4].toInt<u256>(); |
|
|
m_value = rlp[field = 4].toInt<u256>(); |
|
|
|
|
|
|
|
|
|
|
|
if (!rlp[field = 5].isData()) |
|
|
|
|
|
BOOST_THROW_EXCEPTION(BadRLP() << errinfo_comment("transaction data RLP must be an array")); |
|
|
|
|
|
|
|
|
m_data = rlp[field = 5].toBytes(); |
|
|
m_data = rlp[field = 5].toBytes(); |
|
|
byte v = rlp[field = 6].toInt<byte>() - 27; |
|
|
byte v = rlp[field = 6].toInt<byte>() - 27; |
|
|
h256 r = rlp[field = 7].toInt<u256>(); |
|
|
h256 r = rlp[field = 7].toInt<u256>(); |
|
|