34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/tigerbeetle/converters/transfer.rb', line 34
def to_native(ptr, value)
validate_uint!(:id, 128, value.id)
validate_uint!(:debit_account_id, 128, value.debit_account_id)
validate_uint!(:credit_account_id, 128, value.credit_account_id)
validate_uint!(:amount, 128, value.amount)
validate_uint!(:user_data_128, 128, value.user_data_128)
validate_uint!(:user_data_64, 64, value.user_data_64)
validate_uint!(:user_data_32, 32, value.user_data_32)
validate_uint!(:timeout, 32, value.timeout)
validate_uint!(:ledger, 32, value.ledger)
validate_uint!(:code, 16, value.code)
TBClient::Transfer.new(ptr).tap do |result|
Converters::UInt128.to_native(result[:id].to_ptr, value.id)
Converters::UInt128.to_native(result[:debit_account_id].to_ptr, value.debit_account_id)
Converters::UInt128.to_native(result[:credit_account_id].to_ptr, value.credit_account_id)
Converters::UInt128.to_native(result[:amount].to_ptr, value.amount)
Converters::UInt128.to_native(result[:pending_id].to_ptr, value.pending_id)
Converters::UInt128.to_native(result[:user_data_128].to_ptr, value.user_data_128)
result[:user_data_64] = value.user_data_64
result[:user_data_32] = value.user_data_32
result[:timeout] = value.timeout
result[:ledger] = value.ledger
result[:code] = value.code
result[:flags] = value.flags
Converters::Time.to_native(ptr + result.offset_of(:timestamp), value.timestamp || 0)
end
end
|