Module: Platon

Defined in:
lib/platon/open_ssl.rb,
lib/platon.rb,
lib/platon/tx.rb,
lib/platon/abi.rb,
lib/platon/gas.rb,
lib/platon/key.rb,
lib/platon/ppos.rb,
lib/platon/sedes.rb,
lib/platon/utils.rb,
lib/platon/client.rb,
lib/platon/address.rb,
lib/platon/decoder.rb,
lib/platon/encoder.rb,
lib/platon/version.rb,
lib/platon/contract.rb,
lib/platon/function.rb,
lib/platon/solidity.rb,
lib/platon/formatter.rb,
lib/platon/secp256k1.rb,
lib/platon/deployment.rb,
lib/platon/ipc_client.rb,
lib/platon/http_client.rb,
lib/platon/segwit_addr.rb,
lib/platon/transaction.rb,
lib/platon/contract_event.rb,
lib/platon/function_input.rb,
lib/platon/function_output.rb,
lib/platon/contract_initializer.rb

Overview

originally lifted from github.com/lian/bitcoin-ruby thanks to everyone there for figuring this out

Defined Under Namespace

Modules: Sedes, Utils Classes: Abi, Address, Client, CompilationError, Contract, ContractEvent, ContractInitializer, Decoder, Deployment, Encoder, Formatter, Function, FunctionInput, FunctionOutput, Gas, HttpClient, InvalidTransaction, IpcClient, Key, OpenSsl, Ppos, Secp256k1, SegwitAddr, Singleton, Solidity, Transaction, Tx, ValidationError

Constant Summary collapse

BYTE_ZERO =
"\x00".freeze
UINT_MAX =
2**256 - 1
UnsignedTx =
Tx.exclude([:v, :r, :s])
VERSION =
"1.0.1"

Class Method Summary collapse

Class Method Details

.chain_id_from_signature(signature) ⇒ Object



31
32
33
34
35
36
# File 'lib/platon.rb', line 31

def chain_id_from_signature(signature)
  return nil if Platon.replayable_v?(signature[:v])

  cid = (signature[:v] - 35) / 2
  (cid < 1) ? nil : cid
end

.replayable_chain_idObject



19
20
21
# File 'lib/platon.rb', line 19

def replayable_chain_id
  27
end

.replayable_v?(v) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/platon.rb', line 27

def replayable_v?(v)
  [replayable_chain_id, replayable_chain_id + 1].include? v
end

.v_baseObject



23
24
25
# File 'lib/platon.rb', line 23

def v_base
  replayable_chain_id
end