Deploys a contract on behalf of the ContractFactory contract.
fn deploy(
env: soroban_sdk::Env,
deployment_args: ContractDeploymentArgs,
) -> soroban_sdk::Address
Idempotently deploys a contract and then dispatches a sequence of inner contract calls in the same top-level invocation.
If the deterministic address is already deployed, deployment is skipped and the calls run against the existing contract. If any inner call reverts, the host aborts the transaction and the whole sequence (including the deploy) is rolled back.
The deployed contract's authorization requirement is hoisted to the
top-level invocation via require_auth. Without this, sub-invocations
that internally call require_auth(self) — such as a smart-account's
add_signer — would fail with Error(Auth, InvalidAction) because
their auth wouldn't be tied to the root contract invocation. Hoisting
here means callers sign for the deployed contract once and the
signature transitively covers any inner self-authorizing calls.
fn deploy_and_call(
env: soroban_sdk::Env,
deployment_args: ContractDeploymentArgs,
calls: soroban_sdk::Vec,
) -> soroban_sdk::Address
Deploys a contract on behalf of the ContractFactory contract.
If the contract is already deployed at the deterministic address, returns it.
fn deploy_idempotent(
env: soroban_sdk::Env,
deployment_args: ContractDeploymentArgs,
) -> soroban_sdk::Address
Uploads the contract WASM and deploys it on behalf of the ContractFactory contract.
fn upload_and_deploy(
env: soroban_sdk::Env,
wasm_bytes: soroban_sdk::Bytes,
salt: soroban_sdk::BytesN<32>,
constructor_args: soroban_sdk::Vec,
) -> soroban_sdk::Address
fn get_deployed_address(
env: soroban_sdk::Env,
salt: soroban_sdk::BytesN<32>,
wasm_hash: soroban_sdk::BytesN<32>,
constructor_args: soroban_sdk::Vec,
) -> soroban_sdk::Address