es/channel/index.js
async function callContractStatic ({ amount, callData, contract, abiVersion }) {
  return snakeToPascalObjKeys(await call(this, 'channels.dry_run.call_contract', {
    amount,
    call_data: callData,
    contract,
    abi_version: abiVersion
  }))
}
async function callContractStatic ({ amount, callData, contract, abiVersion }) {
  return snakeToPascalObjKeys(await call(this, 'channels.dry_run.call_contract', {
    amount,
    call_data: callData,
    contract,
    abi_version: abiVersion
  }))
}
async function callContractStatic ( { amount , callData , contract , abiVersion } ) { return snakeToPascalObjKeys ( await call ( this , 'channels.dry_run.call_contract' , { amount , call_data : callData , contract , abi_version : abiVersion } ) ) }
Call contract using dry-run

In order to get the result of a potential contract call, one might need to
dry-run a contract call. It takes the exact same arguments as a call would
and returns the call object.

The call is executed in the channel's state but it does not impact the state
whatsoever. It uses as an environment the latest channel's state and the current
top of the blockchain as seen by the node.

@param {Object} options
@param {String} [options.amount] - Amount the caller of the contract commits to it
@param {String} [options.callData] - ABI encoded compiled AEVM call data for the code
@param {Number} [options.contract] - Address of the contract to call
@param {Number} [options.abiVersion] - Version of the ABI
@return {Promise<Object>}
@example channel.callContractStatic({
contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',
callData: 'cb_1111111111111111...',
amount: 0,
abiVersion: 1
}).then(({ returnValue, gasUsed }) => {
console.log('Returned value:', returnValue)
console.log('Gas used:', gasUsed)
})
Call contract using dry - run