deriveContractId

suspend fun deriveContractId(deployer: Address, salt: ByteArray, network: Network): String

Derives the contract id a deployment by the given deployer with the given salt creates on the given network.

The id depends only on the deployer address, the salt and the network; the executable the contract is created with (WASM hash, CAP-85 external reference or Stellar asset) does not enter the derivation. Use it to know a contract's address before deploying, for example when the address is needed in constructor arguments of another contract.

Return

the derived contract id ("C...")

Parameters

deployer

the address the deployment is issued from (account or contract)

salt

the 32 byte salt the deployment uses

network

the network the contract is deployed to

Throws

if salt is not exactly 32 bytes