Struct Deploy

Source
pub struct Deploy { /* private fields */ }
Expand description

A signed smart contract.

Implementations§

Source§

impl Deploy

Source

pub fn new( hash: DeployHash, header: DeployHeader, payment: ExecutableDeployItem, session: ExecutableDeployItem, ) -> Deploy

Constructs a new Deploy.

Source

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

Available on crate features std and testing only.

Constructs a new signed Deploy.

Source

pub fn hash(&self) -> &DeployHash

Returns the DeployHash identifying this Deploy.

Source

pub fn account(&self) -> &PublicKey

Returns the public key of the account providing the context in which to run the Deploy.

Source

pub fn timestamp(&self) -> Timestamp

Returns the creation timestamp of the Deploy.

Source

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.

Source

pub fn expired(&self, current_instant: Timestamp) -> bool

Returns true if the Deploy has expired.

Source

pub fn gas_price(&self) -> u64

Returns the sender’s gas price tolerance for block inclusion.

Source

pub fn body_hash(&self) -> &Digest

Returns the hash of the body (i.e. the Wasm code) of the Deploy.

Source

pub fn chain_name(&self) -> &str

Returns the name of the chain the Deploy should be executed on.

Source

pub fn header(&self) -> &DeployHeader

Returns a reference to the DeployHeader of this Deploy.

Source

pub fn take_header(self) -> DeployHeader

Consumes self, returning the DeployHeader of this Deploy.

Source

pub fn payment(&self) -> &ExecutableDeployItem

Returns the ExecutableDeployItem for payment code.

Source

pub fn session(&self) -> &ExecutableDeployItem

Returns the ExecutableDeployItem for session code.

Source

pub fn approvals(&self) -> &BTreeSet<Approval>

Returns the Approvals for this deploy.

Source

pub fn destructure( self, ) -> (DeployHash, DeployHeader, ExecutableDeployItem, ExecutableDeployItem, BTreeSet<Approval>)

Consumes self, returning a tuple of its constituent parts.

Source

pub fn sign(&mut self, secret_key: &SecretKey)

Adds a signature of this Deploy’s hash to its approvals.

Source

pub fn compute_approvals_hash(&self) -> Result<ApprovalsHash, Error>

Returns the ApprovalsHash of this Deploy’s approvals.

Source

pub fn is_valid_size( &self, max_transaction_size: u32, ) -> Result<(), DeployExcessiveSizeError>

Available on crate feature std only.

Returns true if the serialized size of the deploy is not greater than max_transaction_size.

Source

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.

Source

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
Source

pub fn is_transfer(&self) -> bool

Returns true if this deploy is a native transfer.

Source

pub fn is_account_session(&self) -> bool

Should this transaction start in the initiating accounts context?

Source

pub fn is_config_compliant( &self, chainspec: &Chainspec, timestamp_leeway: TimeDiff, at: Timestamp, ) -> Result<(), InvalidDeploy>

Available on crate features 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
Source

pub fn random(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random Deploy.

Source

pub fn random_with_timestamp_and_ttl( rng: &mut TestRng, timestamp: Timestamp, ttl: TimeDiff, ) -> Self

Available on crate features std and testing only.

Returns a random Deploy but using the specified timestamp and ttl.

Source

pub fn invalidate(&mut self)

Available on crate features std and testing only.

Turns self into an invalid Deploy by clearing the chain_name, invalidating the deploy hash.

Source

pub fn random_valid_native_transfer(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random Deploy for a native transfer.

Source

pub 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.

Returns a random Deploy for a native transfer with timestamp and ttl.

Source

pub fn random_valid_native_transfer_without_deps(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random Deploy for a native transfer with no dependencies.

Source

pub fn random_without_payment_amount(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy without a payment amount specified.

Source

pub fn random_with_mangled_payment_amount(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy with an invalid value for the payment amount.

Source

pub fn random_with_payment_one(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy with insufficient payment amount.

Source

pub fn random_with_insufficient_payment_amount( rng: &mut TestRng, payment_amount: U512, ) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy with insufficient payment amount.

Source

pub fn random_with_oversized_payment_amount(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy with an invalid value for the payment amount.

Source

pub fn random_with_valid_custom_payment_contract_by_name( rng: &mut TestRng, ) -> Self

Available on crate features std and testing only.

Returns a random Deploy with custom payment specified as a stored contract by name.

Source

pub fn random_with_missing_payment_contract_by_hash(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy with custom payment specified as a stored contract by hash, but missing the runtime args.

Source

pub fn random_with_missing_entry_point_in_payment_contract( rng: &mut TestRng, ) -> Self

Available on crate features 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.

Source

pub fn random_with_versioned_payment_package_by_name( version: Option<u32>, rng: &mut TestRng, ) -> Self

Available on crate features std and testing only.

Returns a random Deploy with custom payment specified as a stored versioned contract by name.

Source

pub fn random_with_valid_custom_payment_package_by_name( rng: &mut TestRng, ) -> Self

Available on crate features std and testing only.

Returns a random Deploy with custom payment specified as a stored versioned contract by name.

Source

pub fn random_with_missing_payment_package_by_hash(rng: &mut TestRng) -> Self

Available on crate features 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.

Source

pub fn random_with_nonexistent_contract_version_in_payment_package( rng: &mut TestRng, ) -> Self

Available on crate features 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.

Source

pub fn random_with_payment_package_version_by_hash( version: Option<u32>, rng: &mut TestRng, ) -> Self

Available on crate features 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.

Source

pub fn random_with_valid_session_contract_by_name(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random Deploy with custom session specified as a stored contract by name.

Source

pub fn random_with_missing_session_contract_by_hash(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy with custom session specified as a stored contract by hash, but missing the runtime args.

Source

pub fn random_with_missing_entry_point_in_session_contract( rng: &mut TestRng, ) -> Self

Available on crate features 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.

Source

pub fn random_with_valid_session_package_by_name(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random Deploy with custom session specified as a stored versioned contract by name.

Source

pub fn random_with_versioned_session_package_by_name( version: Option<u32>, rng: &mut TestRng, ) -> Self

Available on crate features std and testing only.

Returns a random Deploy with custom session specified as a stored versioned contract by name.

Source

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

Available on crate features std and testing only.

Returns a random deploy with custom session specified as a stored versioned contract by name.

Source

pub fn random_with_missing_session_package_by_hash(rng: &mut TestRng) -> Self

Available on crate features 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.

Source

pub fn random_with_versioned_session_package_by_hash( version: Option<u32>, rng: &mut TestRng, ) -> Self

Available on crate features std and testing only.
Source

pub fn random_without_transfer_target(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid transfer Deploy with the “target” runtime arg missing.

Source

pub fn random_without_transfer_amount(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid transfer Deploy with the “amount” runtime arg missing.

Source

pub fn random_with_mangled_transfer_amount(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid transfer Deploy with an invalid “amount” runtime arg.

Source

pub fn random_with_empty_session_module_bytes(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy with empty session bytes.

Source

pub fn random_expired_deploy(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random invalid Deploy with an expired TTL.

Source

pub fn random_with_native_transfer_in_payment_logic(rng: &mut TestRng) -> Self

Available on crate features std and testing only.

Returns a random Deploy with native transfer as payment code.

Source

pub fn random_with_gas_price(rng: &mut TestRng, gas_price: u64) -> Self

Available on crate features std and testing only.

Returns a random valid Deploy with specified gas price.

Source

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

Available on crate features std and testing only.

Creates an add bid deploy, for testing.

Source

pub 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.

Creates a withdraw bid deploy, for testing.

Source

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

Available on crate features std and testing only.

Creates a delegate deploy, for testing.

Source

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

Available on crate features std and testing only.

Creates an undelegate deploy, for testing.

Source

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

Available on crate features std and testing only.

Creates an redelegate deploy, for testing.

Source

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

Available on crate features std and testing only.

Creates a native transfer, for testing.

Trait Implementations§

Source§

impl Clone for Deploy

Source§

fn clone(&self) -> Deploy

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl DataSize for Deploy

Source§

const IS_DYNAMIC: bool = true

If true, the type has a heap size that can vary at runtime, depending on the actual value.
Source§

const STATIC_HEAP_SIZE: usize = 0usize

The amount of space a value of the type always occupies. If 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

Estimates the size of heap memory taken up by this value. Read more
Source§

impl Debug for Deploy

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Deploy

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for Deploy

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<Deploy> for Transaction

Source§

fn from(deploy: Deploy) -> Self

Converts to this type from the input type.
Source§

impl FromBytes for Deploy

Source§

fn from_bytes(bytes: &[u8]) -> Result<(Self, &[u8]), Error>

Deserializes the slice into Self.
Source§

fn from_vec(bytes: Vec<u8>) -> Result<(Self, Vec<u8>), Error>

Deserializes the Vec<u8> into Self.
Source§

impl GasLimited for Deploy

Available on crate feature std only.
Source§

type Error = InvalidDeploy

The error type.
Source§

fn gas_cost( &self, chainspec: &Chainspec, gas_price: u8, ) -> Result<Motes, Self::Error>

Returns a gas cost based upon the gas_limit, the gas price, and the chainspec settings.
Source§

fn gas_limit(&self, chainspec: &Chainspec) -> Result<Gas, Self::Error>

Returns the gas / computation limit prior to execution.
Source§

fn gas_price_tolerance(&self) -> Result<u8, Self::Error>

Returns the gas price tolerance.
Source§

const GAS_PRICE_FLOOR: u8 = 1u8

The minimum allowed gas price (aka the floor).
Source§

impl Hash for Deploy

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl JsonSchema for Deploy

Source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
Source§

impl Ord for Deploy

Source§

fn cmp(&self, other: &Deploy) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Deploy

Source§

fn eq(&self, other: &Deploy) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Deploy

Source§

fn partial_cmp(&self, other: &Deploy) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for Deploy

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ToBytes for Deploy

Source§

fn to_bytes(&self) -> Result<Vec<u8>, Error>

Serializes &self to a Vec<u8>.
Source§

fn serialized_length(&self) -> usize

Returns the length of the 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.
Source§

fn write_bytes(&self, writer: &mut Vec<u8>) -> Result<(), Error>

Writes &self into a mutable writer.
Source§

fn into_bytes(self) -> Result<Vec<u8>, Error>
where Self: Sized,

Consumes self and serializes to a Vec<u8>.
Source§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,