Packages
signet
1.2.4
1.6.1
1.6.0
1.5.0
1.4.2
1.4.1
1.4.0
1.3.12
1.3.11
1.3.10
1.3.9
1.3.8
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.0.0-echo8
1.0.0-echo7
1.0.0-echo6
1.0.0-echo5
1.0.0-echo4
1.0.0-echo3
1.0.0-echo2
1.0.0-echo1
1.0.0-delta8
1.0.0-delta7
1.0.0-delta6
1.0.0-delta5
1.0.0-delta4
1.0.0-delta3
1.0.0-delta2
1.0.0-delta1
1.0.0-charlie9
1.0.0-charlie8
1.0.0-charlie7
1.0.0-charlie6
1.0.0-charlie5
1.0.0-charlie4
1.0.0-charlie3
1.0.0-charlie2
1.0.0-charlie1
1.0.0-beta9
1.0.0-beta8
1.0.0-beta7
1.0.0-beta6
1.0.0-beta5
1.0.0-beta4
1.0.0-beta3
1.0.0-beta2
1.0.0-beta1
1.0.0-alpha9
1.0.0-alpha8
1.0.0-alpha7
1.0.0-alpha6
1.0.0-alpha5
1.0.0-alpha4
1.0.0-alpha3
1.0.0-alpha2
1.0.0-alpha10
1.0.0-alpha1
0.2.0-alpha6
0.2.0-alpha5
0.2.0-alpha4
0.2.0-alpha1
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.1.0-rc7
0.1.0-rc6
0.1.0-rc5
0.1.0-rc4
0.1.0-rc3
0.1.0-rc2
0.1.0-rc1
0.1.0-rc0
Lightweight Ethereum and Solana RPC client for Elixir
Current section
Files
Jump to
Current section
Files
test/support/signet/contract/rock.ex
defmodule Signet.Contract.Rock do
@moduledoc ~S"""
This module was auto-generated by Signet. Any changes may be lost.
See `mix help signet.gen` for more information.
"""
use Signet.Hex
def contract_name do
"Rock"
end
def stumble_selector() do
%{
__struct__: ABI.FunctionSelector,
function: "Stumble",
function_type: :error,
returns: nil,
state_mutability: nil,
types: [%{name: "c", type: {:uint, 256}}]
}
end
def encode_stumble(c) do
ABI.encode(stumble_selector(), [c])
end
def decode_stumble_error(<<211, 49, 186, 152>> <> error) do
_signature = hex!("0xd331ba98")
ABI.decode(stumble_selector(), error)
end
def jam_selector() do
%{
__struct__: ABI.FunctionSelector,
function: "jam",
function_type: :function,
returns: [
%{
name: "f",
type: {:tuple, [%{name: "beats", type: {:uint, 256}}, %{name: "song", type: :string}]}
}
],
state_mutability: :pure,
types: [%{name: "beats", type: {:uint, 256}}]
}
end
def encode_jam(beats) do
ABI.encode(jam_selector(), [beats])
end
def prepare_jam(contract, beats, opts \\ []) do
Signet.RPC.prepare_trx(contract, encode_jam(beats), opts)
end
def build_trx_jam(contract, beats) do
%Signet.Transaction.V2{destination: contract, data: encode_jam(beats)}
end
def call_jam(contract, beats, opts \\ []) do
Signet.RPC.call_trx(build_trx_jam(contract, beats), opts)
end
def estimate_gas_jam(contract, beats, opts \\ []) do
Signet.RPC.estimate_gas(build_trx_jam(contract, beats), opts)
end
def execute_jam(contract, beats, opts \\ []) do
Signet.RPC.execute_trx(contract, encode_jam(beats), opts)
end
def decode_jam_call(<<191, 104, 23, 16>> <> calldata) do
_signature = hex!("0xbf681710")
ABI.decode(jam_selector(), calldata)
end
def exec_vm_jam(beats, exec_opts \\ []) do
case Signet.VM.exec_call(deployed_bytecode(), encode_jam(beats), exec_opts) do
{:ok, return_data} ->
case ABI.decode(%ABI.FunctionSelector{types: jam_selector().returns}, return_data,
decode_structs: true
) do
m when is_map(m) -> {:ok, m}
[decoded] -> {:ok, decoded}
els -> {:ok, els}
end
{:revert, revert_data} ->
case decode_error(revert_data) do
{:ok, error, data} -> {:revert, error, data}
:not_found -> {:revert, "Unknown", revert_data}
end
end
end
def exec_vm_jam_raw(beats, exec_opts \\ []) do
Signet.VM.exec_call(deployed_bytecode(), encode_jam(beats), exec_opts)
end
def stumble_144e59d6_selector() do
%{
__struct__: ABI.FunctionSelector,
function: "stumble",
function_type: :function,
returns: [%{name: "", type: {:uint, 256}}],
state_mutability: :pure,
types: []
}
end
def encode_stumble_144e59d6() do
ABI.encode(stumble_144e59d6_selector(), [])
end
def prepare_stumble_144e59d6(contract, opts \\ []) do
Signet.RPC.prepare_trx(contract, encode_stumble_144e59d6(), opts)
end
def build_trx_stumble_144e59d6(contract) do
%Signet.Transaction.V2{destination: contract, data: encode_stumble_144e59d6()}
end
def call_stumble_144e59d6(contract, opts \\ []) do
Signet.RPC.call_trx(build_trx_stumble_144e59d6(contract), opts)
end
def estimate_gas_stumble_144e59d6(contract, opts \\ []) do
Signet.RPC.estimate_gas(build_trx_stumble_144e59d6(contract), opts)
end
def execute_stumble_144e59d6(contract, opts \\ []) do
Signet.RPC.execute_trx(contract, encode_stumble_144e59d6(), opts)
end
def decode_stumble_144e59d6_call(<<20, 78, 89, 214>> <> calldata) do
_signature = hex!("0x144e59d6")
ABI.decode(stumble_144e59d6_selector(), calldata)
end
def exec_vm_stumble_144e59d6(exec_opts \\ []) do
case Signet.VM.exec_call(deployed_bytecode(), encode_stumble_144e59d6(), exec_opts) do
{:ok, return_data} ->
case ABI.decode(
%ABI.FunctionSelector{types: stumble_144e59d6_selector().returns},
return_data,
decode_structs: true
) do
m when is_map(m) -> {:ok, m}
[decoded] -> {:ok, decoded}
els -> {:ok, els}
end
{:revert, revert_data} ->
case decode_error(revert_data) do
{:ok, error, data} -> {:revert, error, data}
:not_found -> {:revert, "Unknown", revert_data}
end
end
end
def exec_vm_stumble_144e59d6_raw(exec_opts \\ []) do
Signet.VM.exec_call(deployed_bytecode(), encode_stumble_144e59d6(), exec_opts)
end
def decode_call(calldata = <<191, 104, 23, 16>> <> _) do
_signature = hex!("0xbf681710")
{:ok, "jam", decode_jam_call(calldata)}
end
def decode_call(calldata = <<20, 78, 89, 214>> <> _) do
_signature = hex!("0x144e59d6")
{:ok, "stumble", decode_stumble_144e59d6_call(calldata)}
end
def decode_call(_) do
:not_found
end
def decode_event(_, _) do
:not_found
end
def decode_error(error = <<211, 49, 186, 152>> <> _) do
_signature = hex!("0xd331ba98")
{:ok, "Stumble", decode_stumble_error(error)}
end
def decode_error(_) do
if true do
:not_found
else
{:ok, "Impossible", <<>>}
end
end
def bytecode() do
hex!(
"608060405234801561000f575f80fd5b506103458061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063144e59d614610038578063bf68171014610056575b5f80fd5b610040610086565b60405161004d919061014f565b60405180910390f35b610070600480360381019061006b9190610196565b6100c5565b60405161007d9190610294565b60405180910390f35b5f60376040517fd331ba980000000000000000000000000000000000000000000000000000000081526004016100bc91906102f6565b60405180910390fd5b6100cd61011e565b60405180604001604052808381526020016040518060400160405280600f81526020017f42616e64206f6e207468652052756e00000000000000000000000000000000008152508152509050919050565b60405180604001604052805f8152602001606081525090565b5f819050919050565b61014981610137565b82525050565b5f6020820190506101625f830184610140565b92915050565b5f80fd5b61017581610137565b811461017f575f80fd5b50565b5f813590506101908161016c565b92915050565b5f602082840312156101ab576101aa610168565b5b5f6101b884828501610182565b91505092915050565b6101ca81610137565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102075780820151818401526020810190506101ec565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61022c826101d0565b61023681856101da565b93506102468185602086016101ea565b61024f81610212565b840191505092915050565b5f604083015f83015161026f5f8601826101c1565b50602083015184820360208601526102878282610222565b9150508091505092915050565b5f6020820190508181035f8301526102ac818461025a565b905092915050565b5f819050919050565b5f819050919050565b5f6102e06102db6102d6846102b4565b6102bd565b610137565b9050919050565b6102f0816102c6565b82525050565b5f6020820190506103095f8301846102e7565b9291505056fea26469706673582212202c77c48aba2ef6154e6648ed7c485abc0d9fe67fb484d56a7e986a6ee7c7734764736f6c63430008170033"
)
end
def deployed_bytecode() do
hex!(
"608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063144e59d614610038578063bf68171014610056575b5f80fd5b610040610086565b60405161004d919061014f565b60405180910390f35b610070600480360381019061006b9190610196565b6100c5565b60405161007d9190610294565b60405180910390f35b5f60376040517fd331ba980000000000000000000000000000000000000000000000000000000081526004016100bc91906102f6565b60405180910390fd5b6100cd61011e565b60405180604001604052808381526020016040518060400160405280600f81526020017f42616e64206f6e207468652052756e00000000000000000000000000000000008152508152509050919050565b60405180604001604052805f8152602001606081525090565b5f819050919050565b61014981610137565b82525050565b5f6020820190506101625f830184610140565b92915050565b5f80fd5b61017581610137565b811461017f575f80fd5b50565b5f813590506101908161016c565b92915050565b5f602082840312156101ab576101aa610168565b5b5f6101b884828501610182565b91505092915050565b6101ca81610137565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102075780820151818401526020810190506101ec565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61022c826101d0565b61023681856101da565b93506102468185602086016101ea565b61024f81610212565b840191505092915050565b5f604083015f83015161026f5f8601826101c1565b50602083015184820360208601526102878282610222565b9150508091505092915050565b5f6020820190508181035f8301526102ac818461025a565b905092915050565b5f819050919050565b5f819050919050565b5f6102e06102db6102d6846102b4565b6102bd565b610137565b9050919050565b6102f0816102c6565b82525050565b5f6020820190506103095f8301846102e7565b9291505056fea26469706673582212202c77c48aba2ef6154e6648ed7c485abc0d9fe67fb484d56a7e986a6ee7c7734764736f6c63430008170033"
)
end
end