readOnlyBuild method
Create a read-only wallet matching the supplied properties. Resets the builder.
Implementation
Result<ReadOnlyWallet, String> readOnlyBuild() {
if (_stakeAddress == null) {
return Err("Read-only wallet creation requires a staking address");
}
_walletName ??= "Wallet #${_walletNameIndex++}";
if (_blockchainAdapter != null) {
if (_blockchainAdapter! is BlockfrostBlockchainAdapter) {
_networkId =
(_blockchainAdapter as BlockfrostBlockchainAdapter).networkId;
}
} else {
_networkId ??= NetworkId.mainnet;
final adapterResult = _lookupOrCreateBlockchainAdapter(
networkId: _networkId!,
key: _networkId! == NetworkId.mainnet
? _mainnetAdapterKey
: _testnetAdapterKey,
);
if (adapterResult.isErr()) return Err(adapterResult.unwrapErr());
_blockchainAdapter = adapterResult.unwrap();
}
final wallet = ReadOnlyWalletImpl(
blockchainAdapter: _blockchainAdapter!,
stakeAddress: _stakeAddress!,
walletName: _walletName!,
);
reset();
return Ok(wallet);
}