Interactions sent as data items when bundling is enabled
This release introduce new way of creating and signing interactions when bundling is enabled and interactions are sent to Warp Sequencer. Interactions are sent as data items instead of native Arweave transactions. Thanks to that interactions can be bundled in a top-level bundle by Warp Sequencer (using nested bundles concept).
Nothing has changed in a way Warp Sequencer adds a sequence to the bundle containing interaction data item (same sort key rule apply). Nested bundling however allows an easy retrieval of the interaction transaction from Arweave gateway and Arweave GQL. More info about how the interaction data items are wrapped in a bundle, what tags are added, how we upload to it to Bundlr and how to easy retrieve the transaction in Warp Academy.
From the client perspective almost nothing is changing except for the signing perspective.
Interactions sent through Warp Sequencer
- If user wants to sign interaction server-side with Arweave wallet, he/she needs to connect wallet same way as previously:
const contract = warp.contract(contract_id).connect(jwk);
- If user wants to use some custom signing (like signing with Arweave wallet in browser, signing with Ethereum wallet server-side or signing with Ethereum wallet in browser),
warp-contracts-plugin-signature
is needed. More info and example implementations in this section of Warp Academy. - More custom implementation requires implementation of
Signer
class (https://github.com/warp-contracts/warp-arbundles/blob/main/src/signing/Signer.ts), an example implementation for ArweaveSigner here. Please note that previous way of custom signing has been switched off when bundling is enabled.
Interaction sent directly to Arweave
Rules for signing process have not changed for L1 transactions. Please use it the old way.
What's Changed
- feat: interaction data item by @asiaziola in #430
Full Changelog: v1.4.12...v1.4.13