pub struct Deploy { /* private fields */ }Expand description
A signed smart contract.
Implementations§
Source§impl Deploy
impl Deploy
Sourcepub fn new(
hash: DeployHash,
header: DeployHeader,
payment: ExecutableDeployItem,
session: ExecutableDeployItem,
) -> Deploy
pub fn new( hash: DeployHash, header: DeployHeader, payment: ExecutableDeployItem, session: ExecutableDeployItem, ) -> Deploy
Constructs a new Deploy.
Sourcepub fn new_signed(
timestamp: Timestamp,
ttl: TimeDiff,
gas_price: u64,
dependencies: Vec<DeployHash>,
chain_name: String,
payment: ExecutableDeployItem,
session: ExecutableDeployItem,
secret_key: &SecretKey,
account: Option<PublicKey>,
) -> Deploy
Available on crate features std and testing only.
pub fn new_signed( timestamp: Timestamp, ttl: TimeDiff, gas_price: u64, dependencies: Vec<DeployHash>, chain_name: String, payment: ExecutableDeployItem, session: ExecutableDeployItem, secret_key: &SecretKey, account: Option<PublicKey>, ) -> Deploy
std and testing only.Constructs a new signed Deploy.
Sourcepub fn hash(&self) -> &DeployHash
pub fn hash(&self) -> &DeployHash
Returns the DeployHash identifying this Deploy.
Sourcepub fn account(&self) -> &PublicKey
pub fn account(&self) -> &PublicKey
Returns the public key of the account providing the context in which to run the Deploy.
Sourcepub fn ttl(&self) -> TimeDiff
pub fn ttl(&self) -> TimeDiff
Returns the duration after the creation timestamp for which the Deploy will stay valid.
After this duration has ended, the Deploy will be considered expired.
Sourcepub fn expired(&self, current_instant: Timestamp) -> bool
pub fn expired(&self, current_instant: Timestamp) -> bool
Returns true if the Deploy has expired.
Sourcepub fn body_hash(&self) -> &Digest
pub fn body_hash(&self) -> &Digest
Returns the hash of the body (i.e. the Wasm code) of the Deploy.
Sourcepub fn chain_name(&self) -> &str
pub fn chain_name(&self) -> &str
Returns the name of the chain the Deploy should be executed on.
Sourcepub fn header(&self) -> &DeployHeader
pub fn header(&self) -> &DeployHeader
Returns a reference to the DeployHeader of this Deploy.
Sourcepub fn take_header(self) -> DeployHeader
pub fn take_header(self) -> DeployHeader
Consumes self, returning the DeployHeader of this Deploy.
Sourcepub fn payment(&self) -> &ExecutableDeployItem
pub fn payment(&self) -> &ExecutableDeployItem
Returns the ExecutableDeployItem for payment code.
Sourcepub fn session(&self) -> &ExecutableDeployItem
pub fn session(&self) -> &ExecutableDeployItem
Returns the ExecutableDeployItem for session code.
Sourcepub fn destructure(
self,
) -> (DeployHash, DeployHeader, ExecutableDeployItem, ExecutableDeployItem, BTreeSet<Approval>)
pub fn destructure( self, ) -> (DeployHash, DeployHeader, ExecutableDeployItem, ExecutableDeployItem, BTreeSet<Approval>)
Consumes self, returning a tuple of its constituent parts.
Sourcepub fn sign(&mut self, secret_key: &SecretKey)
pub fn sign(&mut self, secret_key: &SecretKey)
Adds a signature of this Deploy’s hash to its approvals.
Sourcepub fn compute_approvals_hash(&self) -> Result<ApprovalsHash, Error>
pub fn compute_approvals_hash(&self) -> Result<ApprovalsHash, Error>
Returns the ApprovalsHash of this Deploy’s approvals.
Sourcepub fn is_valid_size(
&self,
max_transaction_size: u32,
) -> Result<(), DeployExcessiveSizeError>
Available on crate feature std only.
pub fn is_valid_size( &self, max_transaction_size: u32, ) -> Result<(), DeployExcessiveSizeError>
std only.Returns true if the serialized size of the deploy is not greater than
max_transaction_size.
Sourcepub fn has_valid_hash(&self) -> Result<(), InvalidDeploy>
pub fn has_valid_hash(&self) -> Result<(), InvalidDeploy>
Returns Ok if and only if this Deploy’s body hashes to the value of body_hash(), and
if this Deploy’s header hashes to the value claimed as the deploy hash.
Sourcepub fn is_valid(&self) -> Result<(), InvalidDeploy>
pub fn is_valid(&self) -> Result<(), InvalidDeploy>
Returns Ok if and only if:
- the deploy hash is correct (should be the hash of the header), and
- the body hash is correct (should be the hash of the body), and
- approvals are non empty, and
- all approvals are valid signatures of the deploy hash
Sourcepub fn is_transfer(&self) -> bool
pub fn is_transfer(&self) -> bool
Returns true if this deploy is a native transfer.
Sourcepub fn is_account_session(&self) -> bool
pub fn is_account_session(&self) -> bool
Should this transaction start in the initiating accounts context?
Sourcepub fn is_config_compliant(
&self,
chainspec: &Chainspec,
timestamp_leeway: TimeDiff,
at: Timestamp,
) -> Result<(), InvalidDeploy>
Available on crate features std and testing only.
pub fn is_config_compliant( &self, chainspec: &Chainspec, timestamp_leeway: TimeDiff, at: Timestamp, ) -> Result<(), InvalidDeploy>
std and testing only.Returns Ok if and only if:
- the chain_name is correct,
- the configured parameters are complied with at the given timestamp
Sourcepub fn random(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random(rng: &mut TestRng) -> Self
std and testing only.Returns a random Deploy.
Sourcepub fn random_with_timestamp_and_ttl(
rng: &mut TestRng,
timestamp: Timestamp,
ttl: TimeDiff,
) -> Self
Available on crate features std and testing only.
pub fn random_with_timestamp_and_ttl( rng: &mut TestRng, timestamp: Timestamp, ttl: TimeDiff, ) -> Self
std and testing only.Returns a random Deploy but using the specified timestamp and ttl.
Sourcepub fn invalidate(&mut self)
Available on crate features std and testing only.
pub fn invalidate(&mut self)
std and testing only.Turns self into an invalid Deploy by clearing the chain_name, invalidating the deploy
hash.
Sourcepub fn random_valid_native_transfer(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_valid_native_transfer(rng: &mut TestRng) -> Self
std and testing only.Returns a random Deploy for a native transfer.
Sourcepub fn random_valid_native_transfer_with_timestamp_and_ttl(
rng: &mut TestRng,
timestamp: Timestamp,
ttl: TimeDiff,
) -> Self
Available on crate features std and testing only.
pub fn random_valid_native_transfer_with_timestamp_and_ttl( rng: &mut TestRng, timestamp: Timestamp, ttl: TimeDiff, ) -> Self
std and testing only.Returns a random Deploy for a native transfer with timestamp and ttl.
Sourcepub fn random_valid_native_transfer_without_deps(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_valid_native_transfer_without_deps(rng: &mut TestRng) -> Self
std and testing only.Returns a random Deploy for a native transfer with no dependencies.
Sourcepub fn random_without_payment_amount(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_without_payment_amount(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy without a payment amount specified.
Sourcepub fn random_with_mangled_payment_amount(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_mangled_payment_amount(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with an invalid value for the payment amount.
Sourcepub fn random_with_payment_one(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_payment_one(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with insufficient payment amount.
Sourcepub fn random_with_insufficient_payment_amount(
rng: &mut TestRng,
payment_amount: U512,
) -> Self
Available on crate features std and testing only.
pub fn random_with_insufficient_payment_amount( rng: &mut TestRng, payment_amount: U512, ) -> Self
std and testing only.Returns a random invalid Deploy with insufficient payment amount.
Sourcepub fn random_with_oversized_payment_amount(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_oversized_payment_amount(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with an invalid value for the payment amount.
Sourcepub fn random_with_valid_custom_payment_contract_by_name(
rng: &mut TestRng,
) -> Self
Available on crate features std and testing only.
pub fn random_with_valid_custom_payment_contract_by_name( rng: &mut TestRng, ) -> Self
std and testing only.Returns a random Deploy with custom payment specified as a stored contract by name.
Sourcepub fn random_with_missing_payment_contract_by_hash(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_missing_payment_contract_by_hash(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with custom payment specified as a stored contract by
hash, but missing the runtime args.
Sourcepub fn random_with_missing_entry_point_in_payment_contract(
rng: &mut TestRng,
) -> Self
Available on crate features std and testing only.
pub fn random_with_missing_entry_point_in_payment_contract( rng: &mut TestRng, ) -> Self
std and testing only.Returns a random invalid Deploy with custom payment specified as a stored contract by
hash, but calling an invalid entry point.
Sourcepub fn random_with_versioned_payment_package_by_name(
version: Option<u32>,
rng: &mut TestRng,
) -> Self
Available on crate features std and testing only.
pub fn random_with_versioned_payment_package_by_name( version: Option<u32>, rng: &mut TestRng, ) -> Self
std and testing only.Returns a random Deploy with custom payment specified as a stored versioned contract by
name.
Sourcepub fn random_with_valid_custom_payment_package_by_name(
rng: &mut TestRng,
) -> Self
Available on crate features std and testing only.
pub fn random_with_valid_custom_payment_package_by_name( rng: &mut TestRng, ) -> Self
std and testing only.Returns a random Deploy with custom payment specified as a stored versioned contract by
name.
Sourcepub fn random_with_missing_payment_package_by_hash(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_missing_payment_package_by_hash(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with custom payment specified as a stored versioned
contract by hash, but missing the runtime args.
Sourcepub fn random_with_nonexistent_contract_version_in_payment_package(
rng: &mut TestRng,
) -> Self
Available on crate features std and testing only.
pub fn random_with_nonexistent_contract_version_in_payment_package( rng: &mut TestRng, ) -> Self
std and testing only.Returns a random invalid Deploy with custom payment specified as a stored versioned
contract by hash, but calling an invalid entry point.
Sourcepub fn random_with_payment_package_version_by_hash(
version: Option<u32>,
rng: &mut TestRng,
) -> Self
Available on crate features std and testing only.
pub fn random_with_payment_package_version_by_hash( version: Option<u32>, rng: &mut TestRng, ) -> Self
std and testing only.Returns a random invalid Deploy with custom payment specified as a stored versioned
contract by hash, but missing the runtime args.
Sourcepub fn random_with_valid_session_contract_by_name(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_valid_session_contract_by_name(rng: &mut TestRng) -> Self
std and testing only.Returns a random Deploy with custom session specified as a stored contract by name.
Sourcepub fn random_with_missing_session_contract_by_hash(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_missing_session_contract_by_hash(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with custom session specified as a stored contract by
hash, but missing the runtime args.
Sourcepub fn random_with_missing_entry_point_in_session_contract(
rng: &mut TestRng,
) -> Self
Available on crate features std and testing only.
pub fn random_with_missing_entry_point_in_session_contract( rng: &mut TestRng, ) -> Self
std and testing only.Returns a random invalid Deploy with custom session specified as a stored contract by
hash, but calling an invalid entry point.
Sourcepub fn random_with_valid_session_package_by_name(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_valid_session_package_by_name(rng: &mut TestRng) -> Self
std and testing only.Returns a random Deploy with custom session specified as a stored versioned contract by
name.
Sourcepub fn random_with_versioned_session_package_by_name(
version: Option<u32>,
rng: &mut TestRng,
) -> Self
Available on crate features std and testing only.
pub fn random_with_versioned_session_package_by_name( version: Option<u32>, rng: &mut TestRng, ) -> Self
std and testing only.Returns a random Deploy with custom session specified as a stored versioned contract by
name.
Sourcepub fn random_contract_by_name(
rng: &mut TestRng,
maybe_secret_key: Option<SecretKey>,
maybe_contract_name: Option<String>,
maybe_entry_point_name: Option<String>,
maybe_timestamp: Option<Timestamp>,
maybe_ttl: Option<TimeDiff>,
) -> Self
Available on crate features std and testing only.
pub fn random_contract_by_name( rng: &mut TestRng, maybe_secret_key: Option<SecretKey>, maybe_contract_name: Option<String>, maybe_entry_point_name: Option<String>, maybe_timestamp: Option<Timestamp>, maybe_ttl: Option<TimeDiff>, ) -> Self
std and testing only.Returns a random deploy with custom session specified as a stored versioned contract by name.
Sourcepub fn random_with_missing_session_package_by_hash(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_missing_session_package_by_hash(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with custom session specified as a stored versioned
contract by hash, but missing the runtime args.
pub fn random_with_versioned_session_package_by_hash( version: Option<u32>, rng: &mut TestRng, ) -> Self
std and testing only.Sourcepub fn random_without_transfer_target(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_without_transfer_target(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid transfer Deploy with the “target” runtime arg missing.
Sourcepub fn random_without_transfer_amount(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_without_transfer_amount(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid transfer Deploy with the “amount” runtime arg missing.
Sourcepub fn random_with_mangled_transfer_amount(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_mangled_transfer_amount(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid transfer Deploy with an invalid “amount” runtime arg.
Sourcepub fn random_with_empty_session_module_bytes(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_empty_session_module_bytes(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with empty session bytes.
Sourcepub fn random_expired_deploy(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_expired_deploy(rng: &mut TestRng) -> Self
std and testing only.Returns a random invalid Deploy with an expired TTL.
Sourcepub fn random_with_native_transfer_in_payment_logic(rng: &mut TestRng) -> Self
Available on crate features std and testing only.
pub fn random_with_native_transfer_in_payment_logic(rng: &mut TestRng) -> Self
std and testing only.Returns a random Deploy with native transfer as payment code.
Sourcepub fn random_with_gas_price(rng: &mut TestRng, gas_price: u64) -> Self
Available on crate features std and testing only.
pub fn random_with_gas_price(rng: &mut TestRng, gas_price: u64) -> Self
std and testing only.Returns a random valid Deploy with specified gas price.
Sourcepub fn add_bid(
chain_name: String,
auction_contract_hash: AddressableEntityHash,
public_key: PublicKey,
bid_amount: U512,
delegation_rate: u8,
timestamp: Timestamp,
ttl: TimeDiff,
) -> Self
Available on crate features std and testing only.
pub fn add_bid( chain_name: String, auction_contract_hash: AddressableEntityHash, public_key: PublicKey, bid_amount: U512, delegation_rate: u8, timestamp: Timestamp, ttl: TimeDiff, ) -> Self
std and testing only.Creates an add bid deploy, for testing.
Sourcepub fn withdraw_bid(
chain_name: String,
auction_contract_hash: AddressableEntityHash,
public_key: PublicKey,
amount: U512,
timestamp: Timestamp,
ttl: TimeDiff,
) -> Self
Available on crate features std and testing only.
pub fn withdraw_bid( chain_name: String, auction_contract_hash: AddressableEntityHash, public_key: PublicKey, amount: U512, timestamp: Timestamp, ttl: TimeDiff, ) -> Self
std and testing only.Creates a withdraw bid deploy, for testing.
Sourcepub fn delegate(
chain_name: String,
auction_contract_hash: AddressableEntityHash,
validator_public_key: PublicKey,
delegator_public_key: PublicKey,
amount: U512,
timestamp: Timestamp,
ttl: TimeDiff,
) -> Self
Available on crate features std and testing only.
pub fn delegate( chain_name: String, auction_contract_hash: AddressableEntityHash, validator_public_key: PublicKey, delegator_public_key: PublicKey, amount: U512, timestamp: Timestamp, ttl: TimeDiff, ) -> Self
std and testing only.Creates a delegate deploy, for testing.
Sourcepub fn undelegate(
chain_name: String,
auction_contract_hash: AddressableEntityHash,
validator_public_key: PublicKey,
delegator_public_key: PublicKey,
amount: U512,
timestamp: Timestamp,
ttl: TimeDiff,
) -> Self
Available on crate features std and testing only.
pub fn undelegate( chain_name: String, auction_contract_hash: AddressableEntityHash, validator_public_key: PublicKey, delegator_public_key: PublicKey, amount: U512, timestamp: Timestamp, ttl: TimeDiff, ) -> Self
std and testing only.Creates an undelegate deploy, for testing.
Sourcepub fn redelegate(
chain_name: String,
auction_contract_hash: AddressableEntityHash,
validator_public_key: PublicKey,
delegator_public_key: PublicKey,
redelegate_validator_public_key: PublicKey,
amount: U512,
timestamp: Timestamp,
ttl: TimeDiff,
) -> Self
Available on crate features std and testing only.
pub fn redelegate( chain_name: String, auction_contract_hash: AddressableEntityHash, validator_public_key: PublicKey, delegator_public_key: PublicKey, redelegate_validator_public_key: PublicKey, amount: U512, timestamp: Timestamp, ttl: TimeDiff, ) -> Self
std and testing only.Creates an redelegate deploy, for testing.
Sourcepub fn native_transfer(
chain_name: String,
source_purse: Option<URef>,
sender_public_key: PublicKey,
receiver_public_key: PublicKey,
amount: Option<U512>,
timestamp: Timestamp,
ttl: TimeDiff,
gas_price: u64,
) -> Self
Available on crate features std and testing only.
pub fn native_transfer( chain_name: String, source_purse: Option<URef>, sender_public_key: PublicKey, receiver_public_key: PublicKey, amount: Option<U512>, timestamp: Timestamp, ttl: TimeDiff, gas_price: u64, ) -> Self
std and testing only.Creates a native transfer, for testing.
Trait Implementations§
Source§impl DataSize for Deploy
impl DataSize for Deploy
Source§const IS_DYNAMIC: bool = true
const IS_DYNAMIC: bool = true
true, the type has a heap size that can vary at runtime, depending on the actual value.Source§const STATIC_HEAP_SIZE: usize = 0usize
const STATIC_HEAP_SIZE: usize = 0usize
IS_DYNAMIC is false, this is
the total amount of heap memory occupied by the value. Otherwise this is a lower bound.Source§fn estimate_heap_size(&self) -> usize
fn estimate_heap_size(&self) -> usize
Source§impl<'de> Deserialize<'de> for Deploy
impl<'de> Deserialize<'de> for Deploy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<Deploy> for Transaction
impl From<Deploy> for Transaction
Source§impl GasLimited for Deploy
Available on crate feature std only.
impl GasLimited for Deploy
std only.Source§type Error = InvalidDeploy
type Error = InvalidDeploy
Source§fn gas_cost(
&self,
chainspec: &Chainspec,
gas_price: u8,
) -> Result<Motes, Self::Error>
fn gas_cost( &self, chainspec: &Chainspec, gas_price: u8, ) -> Result<Motes, Self::Error>
Source§fn gas_limit(&self, chainspec: &Chainspec) -> Result<Gas, Self::Error>
fn gas_limit(&self, chainspec: &Chainspec) -> Result<Gas, Self::Error>
Source§const GAS_PRICE_FLOOR: u8 = 1u8
const GAS_PRICE_FLOOR: u8 = 1u8
Source§impl JsonSchema for Deploy
impl JsonSchema for Deploy
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreSource§impl Ord for Deploy
impl Ord for Deploy
Source§impl PartialOrd for Deploy
impl PartialOrd for Deploy
Source§impl ToBytes for Deploy
impl ToBytes for Deploy
Source§fn serialized_length(&self) -> usize
fn serialized_length(&self) -> usize
Vec<u8> which would be returned from a successful call to
to_bytes() or into_bytes(). The data is not actually serialized, so this call is
relatively cheap.impl Eq for Deploy
Auto Trait Implementations§
impl !Freeze for Deploy
impl RefUnwindSafe for Deploy
impl Send for Deploy
impl Sync for Deploy
impl Unpin for Deploy
impl UnwindSafe for Deploy
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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