defmodule Soroban.Contract do
@moduledoc """
Exposes the function to invoke Soroban smart contracts
"""
alias Soroban.Contract.{
DeployAssetContract,
DeployContract,
ExtendFootprintTTL,
InvokeContractFunction,
RestoreFootprint,
UploadContractCode
}
defdelegate invoke(
server,
network_passphrase,
contract_address,
source_secret_key,
function_name,
function_args \\ [],
auth_secret_keys \\ [],
addl_resources \\ []
),
to: InvokeContractFunction,
as: :invoke
defdelegate simulate_invoke(
server,
network_passphrase,
contract_address,
source_public_key,
function_name,
function_args \\ [],
addl_resources \\ []
),
to: InvokeContractFunction,
as: :simulate_invoke
defdelegate upload(
server,
network_passphrase,
wasm,
source_secret_key,
addl_resources \\ []
),
to: UploadContractCode,
as: :upload
defdelegate deploy(
server,
network_passphrase,
wasm_id,
source_secret_key,
addl_resources \\ []
),
to: DeployContract,
as: :deploy
defdelegate deploy_asset(
server,
network_passphrase,
asset_code,
asset_issuer,
source_secret_key,
addl_resources \\ []
),
to: DeployAssetContract,
as: :deploy
defdelegate extend_contract(
server,
network_passphrase,
contract_address,
secret_key,
ledgers_to_extend,
addl_resources \\ []
),
to: ExtendFootprintTTL,
as: :extend_contract
defdelegate extend_contract_wasm(
server,
network_passphrase,
wasm_id,
secret_key,
ledgers_to_extend,
addl_resources \\ []
),
to: ExtendFootprintTTL,
as: :extend_contract_wasm
defdelegate extend_contract_keys(
server,
network_passphrase,
contract_address,
secret_key,
ledgers_to_extend,
keys,
addl_resources \\ []
),
to: ExtendFootprintTTL,
as: :extend_contract_keys
defdelegate restore_contract(
server,
network_passphrase,
contract_address,
secret_key,
addl_resources \\ []
),
to: RestoreFootprint,
as: :restore_contract
defdelegate restore_contract_wasm(
server,
network_passphrase,
wasm_id,
secret_key,
addl_resources \\ []
),
to: RestoreFootprint,
as: :restore_contract_wasm
defdelegate restore_contract_keys(
server,
network_passphrase,
contract_address,
secret_key,
keys,
addl_resources \\ []
),
to: RestoreFootprint,
as: :restore_contract_keys
defdelegate retrieve_unsigned_xdr_to_invoke(
server,
network_passphrase,
contract_address,
source_public_key,
function_name,
function_args \\ [],
addl_resources \\ []
),
to: InvokeContractFunction,
as: :retrieve_unsigned_xdr_to_invoke
defdelegate retrieve_unsigned_xdr_to_upload(
server,
network_passphrase,
wasm,
source_public_key,
addl_resources \\ []
),
to: UploadContractCode,
as: :retrieve_unsigned_xdr_to_upload
defdelegate retrieve_unsigned_xdr_to_deploy(
server,
network_passphrase,
wasm_id,
source_public_key,
addl_resources \\ []
),
to: DeployContract,
as: :retrieve_unsigned_xdr_to_deploy
defdelegate retrieve_unsigned_xdr_to_deploy_asset(
server,
network_passphrase,
asset_code,
source_public_key,
addl_resources \\ []
),
to: DeployAssetContract,
as: :retrieve_unsigned_xdr_to_deploy_asset
end