pub trait StateExt {
// Required methods
fn state_initialize(
&mut self,
method_context: MethodContext,
contract: Address,
contract_state: &Address,
state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>,
) -> Result<(), ContractError>;
fn state_write(
&mut self,
method_context: MethodContext,
contract: Address,
contract_state: &Address,
new_state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>,
) -> Result<(), ContractError>;
fn state_read(
&self,
contract: Address,
contract_state: &Address,
state: &mut VariableBytes<RECOMMENDED_STATE_CAPACITY>,
) -> Result<(), ContractError>;
fn state_is_empty(
&self,
contract: Address,
contract_state: &Address,
) -> Result<bool, ContractError>;
}
Expand description
Required Methods§
Sourcefn state_initialize(
&mut self,
method_context: MethodContext,
contract: Address,
contract_state: &Address,
state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>,
) -> Result<(), ContractError>
fn state_initialize( &mut self, method_context: MethodContext, contract: Address, contract_state: &Address, state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>, ) -> Result<(), ContractError>
Initialize state.
Similar to State::write()
, but returns error if the state is not empty.
Sourcefn state_write(
&mut self,
method_context: MethodContext,
contract: Address,
contract_state: &Address,
new_state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>,
) -> Result<(), ContractError>
fn state_write( &mut self, method_context: MethodContext, contract: Address, contract_state: &Address, new_state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>, ) -> Result<(), ContractError>
Write state.
Only direct caller is allowed to write its own state for security reasons.
Sourcefn state_read(
&self,
contract: Address,
contract_state: &Address,
state: &mut VariableBytes<RECOMMENDED_STATE_CAPACITY>,
) -> Result<(), ContractError>
fn state_read( &self, contract: Address, contract_state: &Address, state: &mut VariableBytes<RECOMMENDED_STATE_CAPACITY>, ) -> Result<(), ContractError>
Read state
Sourcefn state_is_empty(
&self,
contract: Address,
contract_state: &Address,
) -> Result<bool, ContractError>
fn state_is_empty( &self, contract: Address, contract_state: &Address, ) -> Result<bool, ContractError>
Check if the state is empty