class Ethereum::VM::CallData
Attributes
size[R]
Public Class Methods
new(parent_memory, offset=0, size=nil)
click to toggle source
# File lib/ethereum/vm/call_data.rb, line 9 def initialize(parent_memory, offset=0, size=nil) @data = parent_memory @offset = offset @size = size || @data.size @rlimit = @offset + @size end
Public Instance Methods
extract32(i)
click to toggle source
# File lib/ethereum/vm/call_data.rb, line 22 def extract32(i) return 0 if i >= @size right = [@offset+i+32, @rlimit].min o = @data.safe_slice(@offset+i...right) Utils.bytearray_to_int(o + [0]*(32-o.size)) end
extract_all()
click to toggle source
# File lib/ethereum/vm/call_data.rb, line 16 def extract_all d = @data.safe_slice(@offset, @size) d += [0] * (@size - d.size) Utils.int_array_to_bytes(d) end
extract_copy(mem, memstart, datastart, size)
click to toggle source
# File lib/ethereum/vm/call_data.rb, line 30 def extract_copy(mem, memstart, datastart, size) size.times do |i| mem[memstart+i] = datastart+i < @size ? @data[@offset+datastart+i] : 0 end end