Documentation Index
Fetch the complete documentation index at: https://docs.aultblockchain.com/llms.txt
Use this file to discover all available pages before exploring further.
Address
0x0000000000000000000000000000000000000800
Supported Methods
Transactions
| Signature |
|---|
delegate(address,string,uint256) |
cancelUnbondingDelegation(address,string,uint256,uint256) |
redelegate(address,string,string,uint256) |
undelegate(address,string,uint256) |
Queries
| Signature |
|---|
delegation(address,string) |
redelegation(address,string,string) |
redelegations(address,string,string,tuple) |
unbondingDelegation(address,string) |
validator(address) |
validators(string,tuple) |
Query Examples
Set the current testnet EVM JSON-RPC endpoint and precompile address:
export RPC_URL="https://test-json-rpc.cloud.aultblockchain.xyz"
export STAKING_PRECOMPILE="0x0000000000000000000000000000000000000800"
Direct call
cast call "$STAKING_PRECOMPILE" \
"validators(string,(bytes,uint64,uint64,bool,bool))((string,string,bool,uint8,uint256,uint256,(string,string,string,string,string),int64,int64,uint256,uint256)[],(bytes,uint64))" \
"" \
"(0x,0,20,false,false)" \
--rpc-url "$RPC_URL"
Call from contract
address constant STAKING = 0x0000000000000000000000000000000000000800;
struct PageRequest {
bytes key;
uint64 offset;
uint64 limit;
bool countTotal;
bool reverse;
}
function queryStakingValidators() external view returns (bytes memory) {
PageRequest memory page = PageRequest("", 0, 20, false, false);
(bool ok, bytes memory out) = STAKING.staticcall(
abi.encodeWithSignature(
"validators(string,(bytes,uint64,uint64,bool,bool))",
"",
page
)
);
require(ok, "precompile call failed");
return out;
}
Transaction Examples
Environment Variables
cast wallet import ault-ops --interactive
export CAST_ACCOUNT="ault-ops"
export FROM="$(cast wallet address --account "$CAST_ACCOUNT")"
export VALOPER="<aultvaloper...>"
export AMOUNT="<amount_uint256>"
Direct call
cast send "$STAKING_PRECOMPILE" \
"delegate(address,string,uint256)" \
"$FROM" \
"$VALOPER" \
"$AMOUNT" \
--rpc-url "$RPC_URL" \
--account "$CAST_ACCOUNT"
Call from contract
address constant STAKING = 0x0000000000000000000000000000000000000800;
function txStakingDelegate(
string calldata validator,
uint256 amount
) external returns (bool) {
(bool ok, bytes memory out) = STAKING.call(
abi.encodeWithSignature(
"delegate(address,string,uint256)",
msg.sender,
validator,
amount
)
);
require(ok, "precompile call failed");
return abi.decode(out, (bool));
}
Notes
- Validator arguments use the Cosmos validator operator address format (
aultvaloper...).
- Amounts are specified in base units (
aault).
ABI
Download Staking ABI JSON