1. Update Rust Dependencies
2. Update TypeScript Dependencies
3. New: Address Lookup Table Support
v0.7.0 adds Address Lookup Table (LUT) support, enabling more space in callback transactions for user data. Add two new accounts to your computation definition structs.Rust: Add LUT Accounts
Add these fields to yourInitCompDef structs:
Import
LUT_PROGRAM_ID from arcium_anchor. The lut_offset_slot is stored in the MXE account.TypeScript: Add LUT Address to Accounts
Use the newgetLookupTableAddress function:
uploadCircuit() is now idempotent - it checks circuit state before uploading and skips if already finalized.4. Tree-Shaking Support
Both@arcium-hq/client and @arcium-hq/reader now include "sideEffects": false in their package.json, enabling bundlers to tree-shake unused code for smaller bundle sizes. No code changes required - this is automatic when using modern bundlers like Webpack, Rollup, or esbuild.
5. Remove callback_url from queue_computation
Thecallback_url parameter has been removed from queue_computation.
Before (v0.6.3):
6. Verify Migration
7. Changes Summary
| Change | v0.6.3 | v0.7.0 |
|---|---|---|
| LUT accounts | N/A | New: address_lookup_table + lut_program required |
derive_mxe_lut_pda! | N/A | derive_mxe_lut_pda!(mxe_account.lut_offset_slot) |
getLookupTableAddress | N/A | getLookupTableAddress(programId, lutOffsetSlot) |
queue_computation | Has callback_url: Option<String> | Parameter removed |
| Tree-shaking | Not supported | sideEffects: false in client and reader |
| Rust Dependencies | 0.6.3 | 0.7.0 |
| TypeScript Client | @arcium-hq/client@0.6.3 | @arcium-hq/client@0.7.0 |