Skip to content

Conversation

@dckc
Copy link
Member

@dckc dckc commented Dec 22, 2025

Added documentation for EVM Wallet integration with Ymax Contract, including sequence diagrams and detailed explanations of the process for opening portfolios and handling deposits.

rendered:

closes: #XXXX
refs:

Description

Security Considerations

Scaling Considerations

Documentation Considerations

Testing Considerations

Upgrade Considerations

dckc added 2 commits December 22, 2025 17:54
Added documentation for EVM Wallet integration with Ymax Contract, including sequence diagrams and detailed explanations of the process for opening portfolios and handling deposits.
Added detailed orchestration sequence for creating and depositing in the EVM wallet.
@dckc dckc added the bypass:integration Prevent integration tests from running on PR label Dec 23, 2025
note right of YO: call via Axelar GMP<br/>from contractAccount
YO-->>FF: execute()
FF-->>FF: Factory = new Factory{<br/>owner=agoric1ymaxlca}
FF-->>R: FactoryCreated{address=0xFAC1}
Copy link
Member Author

@dckc dckc Jan 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need a round-trip to establish 0xFAC1? or can we use CREATE2 to predict it?

p.s. looks like we're predicting it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Either. I didn't want to prescribe one here, but I believe the current prototype uses CREATE2.

@dckc dckc assigned mhofman and dckc Jan 6, 2026
This was referenced Jan 7, 2026
mergify bot added a commit that referenced this pull request Jan 8, 2026
closes: https://github.com/Agoric/agoric-private/issues/665

## Description
Adds a stub EVM Handler and the invitation mechanism akin to planner and resolver.

Adds a planner invitation test, later replicated with the EVM handler

### Security Considerations
This does not implement any revocation for the EVM handler. In the future we can switch the current implementation with a noop, and replace with a revocable power.

### Scaling Considerations
None

### Documentation Considerations
See #12294

### Testing Considerations
Added test of inviation

### Upgrade Considerations
Will be deployed in the next ymax release. Operator will need to send invitation.
mergify bot added a commit that referenced this pull request Jan 8, 2026
refs: https://github.com/Agoric/agoric-private/issues/666
refs: agoric-labs/ymax0-ui0#25

## Description
Adds shared helpers for handling Permit2 and Ymax EIP-712 messages, both on chain, in services and in the UI.

This is all implemented as `.ts` in published packages so for external consumers, this will need to be consumed through jsr.io, until we can properly generate and .js files from .ts files (and rewrite import specifiers) before publishing.

Also updates the codegen of vendored viem for on-chain usage.

### Security Considerations
Need to review the EIP-712 signed data handling, since it will be used on chain for user submitted messages.

Will be done as part of #12318

### Scaling Considerations
We previously checked that doing signature verification in JS on chain was not too expensive.

### Documentation Considerations
See #12294

### Testing Considerations
This was manually tested in agoric-labs/ymax0-ui0#25

TODO: Unit tests, in a follow-up PR

This will be integration tested when integrated in #12318.

### Upgrade Considerations

None, new helpers
@mhofman mhofman force-pushed the dc-ymax-evm-wallet-design branch from a58d7eb to 96fbfaa Compare January 14, 2026 00:58
@mhofman mhofman marked this pull request as ready for review January 15, 2026 07:35
@mhofman mhofman added the automerge:squash Automatically squash merge label Jan 15, 2026
Copy link
Member

@mhofman mhofman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's land this

@mergify mergify bot merged commit 35107d8 into master Jan 15, 2026
109 of 111 checks passed
@mergify mergify bot deleted the dc-ymax-evm-wallet-design branch January 15, 2026 08:10
mergify bot added a commit that referenced this pull request Jan 16, 2026
closes: https://github.com/Agoric/agoric-private/issues/666
closes: #12320

Refs: agoric-labs/agoric-to-axelar-local#52

## Description
- Updates GMP flows to support `createAndDeposit` message to the new `despositFactory` (see agoric-labs/agoric-to-axelar-local#52)
- Implememt `openPortfolioFromEVM`, with a Permit2-backed create+deposit, plus supporting orchestration utilities and tests. 
- Add handling logic for EVM wallet messages, invoking related EVM facet and flows in the portfolio contract

Key areas to review: `packages/portfolio-contract/src/portfolio.flows.ts`, `packages/portfolio-contract/src/pos-gmp.flows.ts`, and the flow/contract tests.

### Security Considerations

The flow relies on Permit2 signatures and Axelar GMP payloads; it introduces a new entrypoint that consumes signed permit data and triggers EVM account creation and deposits. Review signature validation boundaries and payload decoding in the flow path.

### Scaling Considerations
Unremarkable.

### Documentation Considerations
See #12294

No end-user docs expected for this contributor-facing change; the contract test and flow tests serve as executable documentation for the API and design.

### Testing Considerations

The several **test.todo**s represent a proposal to postpone those tests indefinitely on the basis that these are not cost-effective at this point. Reviewers will please advise.

Primitive bootstrap test of the EVM Wallet message handler.

### Upgrade Considerations

- The new factory and deposit factory EVM contract used by the change emit a different `SmartWalletCreated` event. The resolver change included in this PR needs to be deployed in conjunction with the deployment of the corresponding portfolio contract on chain.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge:squash Automatically squash merge bypass:integration Prevent integration tests from running on PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants