PaymentStrParams

Struct PaymentStrParams 

Source
pub struct PaymentStrParams<'a> { /* private fields */ }
Expand description

Container for payment-related arguments used while constructing a Deploy.

§payment_args_simple

For methods taking payment_args_simple, this parameter is the payment contract arguments, in the form <NAME:TYPE='VALUE'> or <NAME:TYPE=null>.

It can only be used with the following simple CLTypes: bool, i32, i64, u8, u32, u64, u128, u256, u512, unit, string, key, account_hash, uref, public_key and Option of each of these.

Example inputs are:

name_01:bool='false'
name_02:i32='-1'
name_03:i64='-2'
name_04:u8='3'
name_05:u32='4'
name_06:u64='5'
name_07:u128='6'
name_08:u256='7'
name_09:u512='8'
name_10:unit=''
name_11:string='a value'
key_account_name:key='account-hash-0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20'
key_hash_name:key='hash-0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20'
key_uref_name:key='uref-0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20-000'
account_hash_name:account_hash='account-hash-0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20'
uref_name:uref='uref-0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20-007'
public_key_name:public_key='0119bf44096984cdfe8541bac167dc3b96c85086aa30b6b6cb0c5c38ad703166e1'

For optional values of any these types, prefix the type with “opt_” and use the term “null” without quotes to specify a None value:

name_01:opt_bool='true'       # Some(true)
name_02:opt_bool='false'      # Some(false)
name_03:opt_bool=null         # None
name_04:opt_i32='-1'          # Some(-1)
name_05:opt_i32=null          # None
name_06:opt_unit=''           # Some(())
name_07:opt_unit=null         # None
name_08:opt_string='a value'  # Some("a value".to_string())
name_09:opt_string='null'     # Some("null".to_string())
name_10:opt_string=null       # None

To get a list of supported types, call cli::simple_args_help::supported_cl_type_list. To get this list of examples for supported types, call cli::simple_args_help::supported_cl_type_examples.

§payment_args_json

For methods taking payment_args_json, this parameter is the payment contract arguments, as a JSON-encoded Array of JSON Objects of the form:

[{"name":<String>,"type":<VALUE>,"value":<VALUE>}]

To get comprehensive information and a set of examples, call cli::json_args_help::info_and_examples.

Example inputs are:

[{"name":"a","type":"Bool","value":false}]
[{"name":"b","type":"I32","value":-1}]
[{"name":"c","type":"U64","value":1}]
[{"name":"d","type":"U512","value":"20000000000000000000"}]
[{"name":"e","type":"Unit","value":null}]
[{"name":"f","type":"String","value":"a"}]
[{"name":"g","type":"Key","value":"account-hash-201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201"}]
[{"name":"h","type":"URef","value":"uref-201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201-007"}]
[{"name":"i","type":"PublicKey","value":"017279ea868d185a40ed32ec076807c070de9c0fe986f5418c2aa71478f1e8ddf8"}]
[{"name":"j","type":{"Option":"U64"},"value":999}]        # Some(999_u64)
[{"name":"k","type":{"Option":"String"},"value":null}]    # None
[{"name":"l","type":{"List":{"Option":"U256"}},"value":[1,null,"3"]}]
[{"name":"m","type":{"List":"U8"},"value":"0102ff"}]      # for Vec<u8> only, can parse from hex string
[{"name":"n","type":{"ByteArray":3},"value":"0114ff"}]
[{"name":"o","type":{"ByteArray":3},"value":[1,20,255]}]
[{"name":"p","type":{"Result":{"ok":"Bool","err":"U8"}},"value":{"Ok":true}}]
[{"name":"q","type":{"Result":{"ok":"Bool","err":"U8"}},"value":{"Err":1}}]
[{"name":"r","type":{"Map":{"key":"U8","value":"Bool"}},"value":[{"key":1,"value":true},{"key":2,"value":false}]}]
## for Map with key as String or Number can use an Object rather than an Array:
[{"name":"s","type":{"Map":{"key":"U8","value":"Bool"}},"value":{"1":true,"2":false}}]
[{"name":"t","type":{"Tuple3":["Bool","U8","String"]},"value":[true,128,"a"]}]

Note while multiple payment args can be specified for a single payment code instance, only one of payment_args_simple, or payment_args_json may be used.

Implementations§

Source§

impl<'a> PaymentStrParams<'a>

Source

pub fn with_path( payment_path: &'a str, payment_args_simple: Vec<&'a str>, payment_args_json: &'a str, ) -> Self

Constructs a PaymentStrParams using a payment smart contract file.

Source

pub fn with_amount(payment_amount: &'a str) -> Self

Constructs a PaymentStrParams using a payment amount.

payment_amount uses the standard-payment system contract rather than custom payment Wasm. The value is the ‘amount’ arg of the standard-payment contract.

Source

pub fn with_name( payment_name: &'a str, payment_entry_point: &'a str, payment_args_simple: Vec<&'a str>, payment_args_json: &'a str, ) -> Self

Constructs a PaymentStrParams using a stored contract’s name.

  • payment_name is the name of the stored contract (associated with the executing account) to be called as the payment.
  • payment_entry_point is the name of the method that will be used when calling the payment contract.
  • See the struct docs for a description of payment_args_simple, payment_args_json
Source

pub fn with_hash( payment_hash: &'a str, payment_entry_point: &'a str, payment_args_simple: Vec<&'a str>, payment_args_json: &'a str, ) -> Self

Constructs a PaymentStrParams using a stored contract’s hex-encoded hash.

  • payment_hash is the hex-encoded hash of the stored contract to be called as the payment.
  • payment_entry_point is the name of the method that will be used when calling the payment contract.
  • See the struct docs for a description of payment_args_simple, payment_args_json
Source

pub fn with_package_name( payment_package_name: &'a str, payment_version: &'a str, payment_entry_point: &'a str, payment_args_simple: Vec<&'a str>, payment_args_json: &'a str, ) -> Self

Constructs a PaymentStrParams using a stored contract’s package name.

  • payment_package_name is the name of the stored package to be called as the payment.
  • payment_version is the version of the called payment contract. The latest will be used if payment_version is empty.
  • payment_entry_point is the name of the method that will be used when calling the payment contract.
  • See the struct docs for a description of payment_args_simple, payment_args_json
Source

pub fn with_package_hash( payment_package_hash: &'a str, payment_version: &'a str, payment_entry_point: &'a str, payment_args_simple: Vec<&'a str>, payment_args_json: &'a str, ) -> Self

Constructs a PaymentStrParams using a stored contract’s package hash.

  • payment_package_hash is the hex-encoded hash of the stored package to be called as the payment.
  • payment_version is the version of the called payment contract. The latest will be used if payment_version is empty.
  • payment_entry_point is the name of the method that will be used when calling the payment contract.
  • See the struct docs for a description of payment_args_simple, payment_args_json

Trait Implementations§

Source§

impl<'a> Debug for PaymentStrParams<'a>

Source§

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

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

impl<'a> Default for PaymentStrParams<'a>

Source§

fn default() -> PaymentStrParams<'a>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for PaymentStrParams<'a>

§

impl<'a> RefUnwindSafe for PaymentStrParams<'a>

§

impl<'a> Send for PaymentStrParams<'a>

§

impl<'a> Sync for PaymentStrParams<'a>

§

impl<'a> Unpin for PaymentStrParams<'a>

§

impl<'a> UnwindSafe for PaymentStrParams<'a>

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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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> ErasedDestructor for T
where T: 'static,