getContractState method
Future<({BigInt balance, ({int seqno, String shard, int workchain}) blockId, Uint8List? code, Uint8List? data, LastTransactionId? lastTransaction, String state, int timestamp})>
getContractState(
- InternalAddress address
inherited
Returns a contract state as a record, wrapped in a Future:
Future<({
BigInt balance,
String state,
Uint8List? code,
Uint8List? data,
LastTransactionId? lastTransaction,
({int seqno, String shard, int workchain}) blockId,
int timestamp
})>
Implementation
Future<
({
BigInt balance,
String state,
Uint8List? code,
Uint8List? data,
LastTransactionId? lastTransaction,
({int seqno, String shard, int workchain}) blockId,
int timestamp
})> getContractState(InternalAddress address) async {
var info = await _getAddressInformation(address);
BigInt balance = switch (info.balance) {
SbiString() => BigInt.parse((info.balance as SbiString).value),
SbiBigInt() => (info.balance as SbiBigInt).value,
};
var state = info.state;
return (
balance: balance,
state: state,
code:
info.code != '' ? Uint8List.fromList(base64.decode(info.code)) : null,
data:
info.data != '' ? Uint8List.fromList(base64.decode(info.data)) : null,
lastTransaction: info.lastTransactionId.lt != '0'
? LastTransactionId(
lt: info.lastTransactionId.lt,
hash: info.lastTransactionId.hash,
)
: null,
blockId: (
workchain: info.blockId.workchain,
shard: info.blockId.shard,
seqno: info.blockId.seqno
),
timestamp: info.syncUtime,
);
}