Add o1.exchange trading plugin#70
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
🟡 Heimdall Review Status
|
stephancill
left a comment
There was a problem hiding this comment.
Thanks for the submission. The documented endpoints resolve and the response shapes match, but the Permit2 signing flow has a blocking issue:
Required
- The Permit2 flow string-replaces a fixed 65-byte
SIGNATURE_PLACEHOLDERinunsigned.datawith the signature. This only holds for EOA signatures. Base smart-account signatures (ERC-1271/6492) are variable-length (unbounded; >200 bytes in practice) and the signature is ABI-encoded as a dynamicbytesfield with a length prefix and offset. Splicing such a signature into a fixed 65-byte slot produces malformed calldata, so the flow fails for smart-contract wallets — the common Base account type. Encode the signature as dynamicbytes(and support ERC-1271 verification), or have the build endpoint accept the signature and re-encode server-side.
Minor
- Submitting the order through
send_callsbypasses o1's/order/completeprivate-mempool relay, somevProtectiondoes not apply to these submissions. State this so it isn't presented as MEV-protected. - The API-token URL is inconsistent across sections; use the one that resolves.
## Authshould document token lifetime/refresh, and## Submissionshould state thevaluehex-wei contract.- Consider adding
low-liquiditytoriskfor arbitrary-token / pool-targeted trades.
Thanks for putting this together — the o1.exchange integration is shaping up well. As part of reviewing the Wave 2 submissions I ran an automated, read-only health check against the APIs this plugin documents. The endpoints themselves look healthy; there's one signing-flow item worth addressing before merge, plus a couple of notes: Findings
What was checkedRead-only probes only: Really appreciate the contribution — happy to clarify any of the above. Since this is an automated check, please double-check anything that looks unexpected on your end before changing it.
|
Summary
http-apiintegration →send_callsTest plan
api.o1.exchangeis reachable and/orderendpoint returns expected unsigned tx shapesend_callsmapping:{ to, data, value }fromunsignedobject,gasLimit/chainIdstripped🤖 Generated with Claude Code