Struct casper_contract_schema::CallMethod
source · pub struct CallMethod {
pub wasm_file_name: String,
pub description: Option<String>,
pub arguments: Vec<Argument>,
}
Expand description
Call method definition.
Fields§
§wasm_file_name: String
§description: Option<String>
§arguments: Vec<Argument>
Implementations§
source§impl CallMethod
impl CallMethod
sourcepub fn new(
wasm_file_name: &str,
description: &str,
arguments: Vec<Argument>
) -> Self
pub fn new( wasm_file_name: &str, description: &str, arguments: Vec<Argument> ) -> Self
Creates a new call method definition.
Examples found in repository?
examples/erc20.rs (lines 137-150)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
pub fn example_erc20_schema() -> ContractSchema {
ContractSchema {
casper_contract_schema_version: 1,
toolchain: String::from("rustc 1.73.0 (cc66ad468 2023-10-03)"),
contract_name: String::from("Erc20"),
contract_version: String::from("0.1.0"),
authors: vec![String::from("John Doe <john@doe.com>")],
repository: Some(String::from(
"https://github.com/casper-ecosystem/casper-contract-schema",
)),
homepage: Some(String::from("https://john.doe.com")),
errors: vec![
UserError {
name: String::from("InsufficientFunds"),
description: Some(String::from("Insufficient funds")),
discriminant: 100u16,
},
UserError {
name: String::from("InsufficientAllowance"),
description: Some(String::from("Insufficient allowance")),
discriminant: 101u16,
},
],
types: vec![
CustomType::Struct {
name: TypeName::new("Transfer"),
description: Some(String::from("Transfer event")),
members: vec![
StructMember::new(
"from",
"Sender of tokens.",
NamedCLType::Option(Box::new(NamedCLType::Key)),
),
StructMember::new(
"to",
"Recipient of tokens.",
NamedCLType::Option(Box::new(NamedCLType::Key)),
),
StructMember::new("value", "Transfered amount.", NamedCLType::U256),
],
},
CustomType::Struct {
name: TypeName::new("Approval"),
description: Some(String::from("Approval event")),
members: vec![
StructMember::new("owner", "", NamedCLType::Option(Box::new(NamedCLType::Key))),
StructMember::new(
"spender",
"",
NamedCLType::Option(Box::new(NamedCLType::Key)),
),
StructMember::new("value", "", NamedCLType::U256),
],
},
],
entry_points: vec![
Entrypoint {
name: String::from("transfer"),
description: Some(String::from("Transfer tokens to another account")),
is_mutable: true,
arguments: vec![
Argument::new("recipient", "", NamedCLType::Key),
Argument::new("amount", "", NamedCLType::U256),
],
return_ty: NamedCLType::Unit.into(),
is_contract_context: true,
access: Access::Public,
},
Entrypoint {
name: String::from("transfer_from"),
description: Some(String::from("Transfer tokens from one account to another")),
is_mutable: true,
arguments: vec![
Argument::new("owner", "", NamedCLType::Key),
Argument::new("recipient", "", NamedCLType::Key),
Argument::new("amount", "", NamedCLType::U256),
],
return_ty: NamedCLType::Unit.into(),
is_contract_context: true,
access: Access::Public,
},
Entrypoint {
name: String::from("approve"),
description: Some(String::from(
"Approve spender to use tokens on behalf of the owner",
)),
is_mutable: true,
arguments: vec![
Argument::new("spender", "", NamedCLType::Key),
Argument::new("amount", "", NamedCLType::U256),
],
return_ty: NamedCLType::Unit.into(),
is_contract_context: true,
access: Access::Public,
},
Entrypoint {
name: String::from("allowance"),
description: Some(String::from(
"Check the amount of tokens that an owner allowed to a spender",
)),
is_mutable: false,
arguments: vec![
Argument::new("owner", "", NamedCLType::Key),
Argument::new("spender", "", NamedCLType::Key),
],
return_ty: NamedCLType::U256.into(),
is_contract_context: true,
access: Access::Public,
},
Entrypoint {
name: String::from("balance_of"),
description: Some(String::from(
"Check the amount of tokens owned by an account",
)),
is_mutable: false,
arguments: vec![Argument::new("owner", "", NamedCLType::Key)],
return_ty: NamedCLType::U256.into(),
is_contract_context: true,
access: Access::Public,
},
Entrypoint {
name: String::from("total_supply"),
description: Some(String::from("Check the total supply of tokens")),
is_mutable: false,
arguments: vec![],
return_ty: NamedCLType::U256.into(),
is_contract_context: true,
access: Access::Public,
},
],
events: vec![
Event::new("event_Transfer", "Transfer"),
Event::new("event_Approval", "Approval"),
],
call: Some(CallMethod::new(
"erc20.wasm",
"Fungible token",
vec![
Argument::new("name", "Name of the token", NamedCLType::String),
Argument::new("symbol", "Symbol of the token", NamedCLType::String),
Argument::new("decimals", "Number of decimals", NamedCLType::U8),
Argument::new(
"initial_supply",
"Initial supply of tokens",
NamedCLType::U256,
),
],
)),
}
}
Trait Implementations§
source§impl Debug for CallMethod
impl Debug for CallMethod
source§impl<'de> Deserialize<'de> for CallMethod
impl<'de> Deserialize<'de> for CallMethod
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>,
Deserialize this value from the given Serde deserializer. Read more
source§impl JsonSchema for CallMethod
impl JsonSchema for CallMethod
source§fn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the
$ref
keyword. Read moreAuto Trait Implementations§
impl Freeze for CallMethod
impl RefUnwindSafe for CallMethod
impl Send for CallMethod
impl Sync for CallMethod
impl Unpin for CallMethod
impl UnwindSafe for CallMethod
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
Mutably borrows from an owned value. Read more