buildSignTransactionUri method

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

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

Implementation

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

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

  final encryptedPayload = encryptPayload(payload, requestNonce);

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