pub struct Deployer { /* private fields */ }
Expand description
Deployer provides access to deploying contracts.
Implementations§
Source§impl Deployer
impl Deployer
pub fn env(&self) -> &Env
Sourcepub fn with_current_contract(
&self,
salt: impl IntoVal<Env, BytesN<32>>,
) -> DeployerWithAddress
pub fn with_current_contract( &self, salt: impl IntoVal<Env, BytesN<32>>, ) -> DeployerWithAddress
Get a deployer that deploys contract that derive the contract IDs from the current contract and provided salt.
Sourcepub fn with_address(
&self,
address: Address,
salt: impl IntoVal<Env, BytesN<32>>,
) -> DeployerWithAddress
pub fn with_address( &self, address: Address, salt: impl IntoVal<Env, BytesN<32>>, ) -> DeployerWithAddress
Get a deployer that deploys contracts that derive the contract ID from the provided address and salt.
The deployer address must authorize all the deployments.
Sourcepub fn with_stellar_asset(
&self,
serialized_asset: impl IntoVal<Env, Bytes>,
) -> DeployerWithAsset
pub fn with_stellar_asset( &self, serialized_asset: impl IntoVal<Env, Bytes>, ) -> DeployerWithAsset
Get a deployer that deploys an instance of Stellar Asset Contract corresponding to the provided serialized asset.
serialized_asset
is the Stellar Asset
XDR serialized to bytes. Refer
to [soroban_sdk::xdr::Asset]
Sourcepub fn upload_contract_wasm(
&self,
contract_wasm: impl IntoVal<Env, Bytes>,
) -> BytesN<32>
pub fn upload_contract_wasm( &self, contract_wasm: impl IntoVal<Env, Bytes>, ) -> BytesN<32>
Upload the contract Wasm code to the network.
Returns the hash of the uploaded Wasm that can be then used for the contract deployment.
§Examples
use soroban_sdk::{BytesN, Env};
const WASM: &[u8] = include_bytes!("../doctest_fixtures/contract.wasm");
#[test]
fn test() {
let env = Env::default();
env.deployer().upload_contract_wasm(WASM);
}
Sourcepub fn update_current_contract_wasm(
&self,
wasm_hash: impl IntoVal<Env, BytesN<32>>,
)
pub fn update_current_contract_wasm( &self, wasm_hash: impl IntoVal<Env, BytesN<32>>, )
Replaces the executable of the current contract with the provided Wasm.
The Wasm blob identified by the wasm_hash
has to be already present
in the ledger (uploaded via [Deployer::upload_contract_wasm]
).
The function won’t do anything immediately. The contract executable will only be updated after the invocation has successfully finished.
Sourcepub fn extend_ttl(
&self,
contract_address: Address,
threshold: u32,
extend_to: u32,
)
pub fn extend_ttl( &self, contract_address: Address, threshold: u32, extend_to: u32, )
Extend the TTL of the contract instance and code.
Extends the TTL of the instance and code only if the TTL for the provided contract is below threshold
ledgers.
The TTL will then become extend_to
. Note that the threshold
check and TTL extensions are done for both the
contract code and contract instance, so it’s possible that one is bumped but not the other depending on what the
current TTL’s are.
The TTL is the number of ledgers between the current ledger and the final ledger the data can still be accessed.
Sourcepub fn extend_ttl_for_contract_instance(
&self,
contract_address: Address,
threshold: u32,
extend_to: u32,
)
pub fn extend_ttl_for_contract_instance( &self, contract_address: Address, threshold: u32, extend_to: u32, )
Extend the TTL of the contract instance.
Same as extend_ttl
but only for contract instance.
Sourcepub fn extend_ttl_for_code(
&self,
contract_address: Address,
threshold: u32,
extend_to: u32,
)
pub fn extend_ttl_for_code( &self, contract_address: Address, threshold: u32, extend_to: u32, )
Extend the TTL of the contract code.
Same as extend_ttl
but only for contract code.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Deployer
impl !RefUnwindSafe for Deployer
impl !Send for Deployer
impl !Sync for Deployer
impl Unpin for Deployer
impl !UnwindSafe for Deployer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
type Error = E
fn compare( &self, a: &(T, U, V, W), b: &(T, U, V, W), ) -> Result<Ordering, <C as Compare<(T, U, V, W)>>::Error>
Source§impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
type Error = E
fn compare( &self, a: &(T, U, V, W, X), b: &(T, U, V, W, X), ) -> Result<Ordering, <C as Compare<(T, U, V, W, X)>>::Error>
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more