generateSignAndSendTransactionUri method

Uri generateSignAndSendTransactionUri({
  1. required String transaction,
  2. required String redirect,
})

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

  • Returns URL which will be used to send to Phantom Wallet signAndSendTransaction endpoint.
  • Refer to for creating compiled transaction without signing in flutter/dart.
  • Also it redirects user to redirect with nonce and encrypted data as query parameters.
  • Encrypted data contains signature and can be decrypted using decryptPayload method.

Implementation

Uri generateSignAndSendTransactionUri(
    {required String transaction, required String redirect}) {
  var payload = {
    "session": _sessionToken,
    "transaction": base58encode(
      Uint8List.fromList(
        base64.decode(transaction),
      ),
    ),
  };
  var encryptedPayload = encryptPayload(payload);

  return Uri(
    scheme: scheme,
    host: host,
    path: '/ul/v1/signAndSendTransaction',
    queryParameters: {
      "dapp_encryption_public_key": base58encode(dAppPublicKey.asTypedList),
      "nonce": base58encode(encryptedPayload["nonce"]),
      'redirect_link': "$deepLink$redirect",
      'payload': base58encode(encryptedPayload["encryptedPayload"])
    },
  );
}