buildSignAndSendTransactionUri method

Uri buildSignAndSendTransactionUri({
  1. required String transaction,
  2. Uint8List? nonce,
})

Generate an URL with given transaction to signAndSend it with Phantom Wallet.

Implementation

Uri buildSignAndSendTransactionUri({
  required String transaction,
  Uint8List? nonce,
}) {
  final requestNonce = nonce ?? _core.crypto.getUtils().randomBytes(24);

  final payload = {
    'session': _sessionToken,
    'transaction': base58.encode(
      Uint8List.fromList(
        base64.decode(transaction),
      ),
    ),
  };
  final encryptedPayload = encryptPayload(payload, requestNonce);

  return Uri(
    scheme: _scheme,
    host: _host,
    path: '/ul/v1/signAndSendTransaction',
    queryParameters: {
      'redirect_link': '$_redirectLink?phantomRequest=signAndSendTransaction',
      'dapp_encryption_public_key': dappPublicKey,
      'nonce': base58.encode(requestNonce),
      'payload': base58.encode(encryptedPayload!),
    },
  );
}