feat: add executeGatewayMintWithMemo using Arc Transaction Memos#33
feat: add executeGatewayMintWithMemo using Arc Transaction Memos#33consumeobeydie wants to merge 2 commits into
Conversation
Verification updateI tested 1. EOA wallet, direct signed transaction ( 2. Circle Developer Controlled Wallet, via I also reproduced the estimation failure independently with This suggests Marking this PR as a code contribution with a known limitation, documented for visibility. Happy to update if there's guidance on the correct way to estimate gas for CallFrom-based precompile calls. |
Additional verificationI also tried overriding gasLimit: '300000',
fee: { type: 'level', config: { feeLevel: 'MEDIUM' } },Confirmed the wallet ( This rules out gas limit as the cause and further confirms the issue is specifically Circle's |
Summary
Adds an opt-in variant of
executeGatewayMintthat wraps thegatewayMint()call through Arc's predeployed Memo contract (announced June 18, 2026), so a Gateway mint can carry a structured, queryable reference — e.g. an invoice ID or settlement batch ID — for reconciliation.What's included
ARC_MEMO_CONTRACT_ADDRESSconstant pointing to the predeployed Memo contract on Arc TestnetexecuteGatewayMintWithMemo()— same behavior asexecuteGatewayMint, but routes the call throughcallWithMemo(address,bytes,bytes32,string)so aMemoevent is emitted alongside the mintexecuteGatewayMintis untouched; this is purely additiveWhy this matters
Treasury and payment apps often need to tie an onchain mint/transfer back to an internal reference (invoice, batch, customer ID) for reconciliation. Transaction Memos let this happen at the call level without modifying the Gateway contracts or the existing
executeGatewayMintflow.How it works
The Memo contract preserves the original
msg.sendervia the CallFrom precompile and only emits theMemoevent if the wrappedgatewayMint()call succeeds — giving a clean signal for reconciliation pipelines.Verification
The
callWithMemosignature and behavior were verified against a live transaction on Arc Testnet before this PR:Resources