addSigner method
Future<CrossmintWalletAddSignerResult>
addSigner({
- required String walletId,
- required CrossmintSignerConfig signer,
- bool prepareOnly = false,
override
Implementation
@override
Future<CrossmintWalletAddSignerResult> addSigner({
required String walletId,
required CrossmintSignerConfig signer,
bool prepareOnly = false,
}) async {
final String resolvedChain = await _resolveWalletChainForSignerRegistration(
walletId,
);
final CrossmintJsonMap response = await _service.registerSigner(
walletId,
_codec.serializeSignerRegistrationRequest(signer, chain: resolvedChain),
);
final CrossmintWalletSigner? signerState = _responseParser
.walletSignerFromMap(response, chain: resolvedChain);
if (signerState == null) {
throw CrossmintWalletException(
'Wallet signer registration did not return signer state for chain "$resolvedChain".',
cause: response,
);
}
return CrossmintWalletAddSignerResult(
signer: signerState,
signatureId: prepareOnly
? _responseParser.signatureIdFromSignerRegistration(
response,
chain: resolvedChain,
)
: null,
transactionId: prepareOnly
? _responseParser.transactionIdFromSignerRegistration(
response,
chain: resolvedChain,
)
: null,
raw: response,
);
}