Introduce new spec allowing an additional empp push to be specified in bip21 token sends (ALP only). Implement and test in Cashtab.
The use case we are solving for here is including arbitrary message data in a token transaction. This is important in cryptocurrency for onchain annotation of payments, or allowing a token payment to interact with an app.
This implementation covers an MVP use case: including a Solana address in a FIRMA payment to allow onchain redemption of Firma for USDT on the SOL network.
In this diff,
- We define a spec
- We modify the Send screen in Cashtab to support the new bip21 spec, either by entering a bip21 string into the "Address" field or by including a bip21 query string in the URL
- We modify Cashtab-specific ALP output construction to optionally support a single additional user-specified output
- We modify tx parsing to parse for this in ALP txs
- We define a spec for encoding a SOL address in an EMPP push, and implement parsing this app action in Cashtab