getTransactionStatus method
Returns execution status, or null if the transaction is not indexed.
Implementation
@override
Future<SuiReceipt?> getTransactionStatus(String digest, [SuiNetwork? network]) async {
Future<SuiReceipt?> instrumentationOperation() async {
final operationScope = _state.flowScope.capture(replace: false);
await operationScope.ready();
operationScope.check();
final configured = _suiService.getNetworks((_state.projectSettings?.networks?.map((networkGroup) => (networkGroup.chainName == "sui" ? networkGroup.networks?.map((networkConfiguration) => NetworkData(chain: "SUI", networkId: networkConfiguration.networkId, name: networkConfiguration.name, displayName: (networkConfiguration.vanityName == "" ? networkConfiguration.name : (networkConfiguration.vanityName ?? networkConfiguration.name)), rpcUrls: NetworkRpcUrls(http: [...(networkConfiguration.privateCustomerRpcUrls ?? <String>[]), ...networkConfiguration.rpcUrls]), blockExplorerUrls: (networkConfiguration.blockExplorerUrls ?? <String>[]), iconUrl: firstOrNull(networkConfiguration.iconUrls), nativeCurrency: networkConfiguration.nativeCurrency, cluster: networkConfiguration.cluster, genesisHash: networkConfiguration.genesisHash, testnet: (networkConfiguration.testnet ?? false))).toList() ?? const [] : <NetworkData>[])).toList() ?? const []).expand((items) => items).toList(), (_suiState.suiNetworks ?? <SuiNetwork>[]));
operationScope.check();
final selected = firstWhereOrNull<SuiNetwork>(configured, (item) => item.name == (_state.activeSuiNetworkName ?? ""));
final requestedNetwork = (network ?? selected ?? firstOrNull(configured));
if (requestedNetwork == null) {
throw DynamicStateException("no Sui GraphQL networks configured; provide one with useSui");
}
operationScope.check();
final resolvedNetworks = _suiService.getNetworks((_state.projectSettings?.networks?.map((networkGroup) => (networkGroup.chainName == "sui" ? networkGroup.networks?.map((networkConfiguration) => NetworkData(chain: "SUI", networkId: networkConfiguration.networkId, name: networkConfiguration.name, displayName: (networkConfiguration.vanityName == "" ? networkConfiguration.name : (networkConfiguration.vanityName ?? networkConfiguration.name)), rpcUrls: NetworkRpcUrls(http: [...(networkConfiguration.privateCustomerRpcUrls ?? <String>[]), ...networkConfiguration.rpcUrls]), blockExplorerUrls: (networkConfiguration.blockExplorerUrls ?? <String>[]), iconUrl: firstOrNull(networkConfiguration.iconUrls), nativeCurrency: networkConfiguration.nativeCurrency, cluster: networkConfiguration.cluster, genesisHash: networkConfiguration.genesisHash, testnet: (networkConfiguration.testnet ?? false))).toList() ?? const [] : <NetworkData>[])).toList() ?? const []).expand((items) => items).toList(), <SuiNetwork>[requestedNetwork]);
operationScope.check();
final resolvedNetwork = firstOrNull(resolvedNetworks);
if (resolvedNetwork == null) {
throw DynamicStateException("no Sui GraphQL networks configured; provide one with useSui");
}
operationScope.check();
final receipt = await _suiService.getTransactionStatus(digest, resolvedNetwork);
operationScope.check();
return receipt;
}
return await _api.instrumentation.runAsync("sui.getTransactionStatus", instrumentationOperation);
}