buildSignMessageUri method
Generates an URL with given nonce
to be signed by Phantom Wallet
If nonce
is not passed it will generate one
Implementation
Uri buildSignMessageUri({required String message, Uint8List? nonce}) {
final requestNonce = nonce ?? _core.crypto.getUtils().randomBytes(24);
/// Hash the nonce so that it is not exposed to the user
final hashedNonce = SHA256Digest().process(requestNonce);
final hashedMessage = '$message\n\nNonce: ${base58.encode(hashedNonce)}';
final payload = {
'session': _sessionToken,
'message': _isBase58String(message)
? message
: base58.encode(
Uint8List.fromList(hashedMessage.codeUnits),
),
};
final encryptedPayload = encryptPayload(payload, requestNonce);
return Uri(
scheme: _scheme,
host: _host,
path: 'ul/v1/signMessage',
queryParameters: {
'redirect_link': '$_redirectLink?phantomRequest=signMessage',
'dapp_encryption_public_key': dappPublicKey,
'nonce': base58.encode(requestNonce),
'payload': base58.encode(encryptedPayload!),
},
);
}