callContract

Call this function to execute an custom transaction.

Example Usage

// Call an arbitrary contract.
const contractAddress = '0x1f6557356bfb310a556300a36fb18f54fb4791b1';
// The contract's ABI
const contractAbi = [...]; // Replace with your contract's ABI
// Create an instance of the contract
const contract = new ethers.Contract(contractAddress, contractAbi, signer);
// Get the calldata for a contract call
const calldata = contract.interface.encodeFunctionData('someFunction', ['arg1', 'arg2']);

// Call the contract, with gas sponsored by the paymaster.
const contractCallTxInfo = await hallidayClient.callContract({
  from_in_game_player_id: userInGameId,								// your user's id in your application
  target_address: contractAddress,
  value: "0",
  calldata,
  sponsor_gas: true,
});

Inputs

CallContractRequest Object

NameTypeDescription
from_in_game_player_idstringThe user id of the sending user
target_addressstringAddress of the target contract
valuestringValue being transferred to target_address ("0" if not transferring any tokens to target_address)
calldatastringEncoded data representing the contract call to execute for user
sponsor_gasbooleanWhether to pay for user's gas on their behalf
on_rate_limit (optional)FunctionCallback to run if user is rate-limited (i.e small message on screen for a few seconds)
gas_fee_overrides (optional)max_fee_per_gas: string;
max_priority_fee_per_gas:
string;
Hardcoded gas fee values in Wei to use for transaction instead of dynamic query values

Outputs

Promise to a GetTransactionReponse Object

NameTypeDescription
blockchain_typestringThe blockchain on which this transaction occurred (e.g. ETHEREUM, IMMUTABLE_PROD)
tx_idstringThe ID of the transaction
statusstringThe status of the transaction (e.g. PENDING, COMPLETE, FAILED)
retry_countnumberThe number of times we've retried sending this transaction
on_chain_id (optional)stringThe blockchain transaction id if the transaction succeeded
error_message (optional)stringThe error message if the transaction failed
user_op_receipt (optional)stringJSON Object of the user operation receipt (if the operation went through on chain)