generateSignTransactionUri method
Generate an URL with given transaction to sign transaction with Phantom Wallet.
- Returns URL which will be used to send to Phantom Wallet
/signTransactionendpoint. - It redirects user to
redirectwithnonceand encrypteddataas query parameters. - Encrypted
datacontainssignedTransactionandbase58 encoded serialized transactionthat can be decrypted using decryptPayload method.
Implementation
Uri generateSignTransactionUri(
{required String transaction, required String redirect}) {
var payload = {
"transaction": base58encode(
Uint8List.fromList(
base64.decode(transaction),
),
),
"session": _sessionToken,
};
var encryptedPayload = encryptPayload(payload);
return Uri(
scheme: scheme,
host: host,
path: '/ul/v1/signTransaction',
queryParameters: {
"dapp_encryption_public_key": base58encode(dAppPublicKey.asTypedList),
"nonce": base58encode(encryptedPayload["nonce"]),
'redirect_link': "$deepLink$redirect",
'payload': base58encode(encryptedPayload["encryptedPayload"])
},
);
}