-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sending EIP-712 Transactions #171
Comments
I like this flexibility; EIP-712 could be a great suggestion. |
Signing a EIP-712 structure, and sending a transaction are two independent actions. |
Just as an analogy, take a look at cast wallet sign. |
In our case, we are considering executing the full process:
The nonce is important for us... |
Are you talking about espresso sequencer? Please provide context in the original post. |
/nonce and /submit Yes, for Espresso and Paio + Avail |
Does espresso and paio + avail follow the exact same |
Yes the same API |
Probably something like |
Something like aws cli |
Today we have:
Could be:
|
Currently every type of input is a subcommand of Consider also the future adoption of
Even though coprocessor might be a different case, because the user develops a custom smart contract, which then sends an input to the coprocessor task issuer. We don't want to replicate what Coming back to "L2" inputs, it's not very clear to me if sending a transaction to espresso or paio is equivalent to the current structure of the It looks more to me like sending a generic input, and then choosing the destination, which is either the InputBox L1 contract, or a sequencer. |
I agree, how about:
|
How about:
|
Nice! |
For the client side, it does not matter whether it is Espresso or Paio, as the /submit endpoint receives the same payload. How about: |
I wrote a draft following the |
You would have to ask for the address to send |
The command line already asks for the address... |
Well, in case of sequencer !== evm, the address should not default to anvil, as you are not sending to anvil, but to the sequencer. Not there is also a chain-id parameter. |
Hi folks. I think there is some confusion here. The user is not sending the input to a specific sequencer. He doesn't need to care if this will go to Espresso or Paio, only that the input will be submitted to an L2 endpoint that may act as a gateway to forward it to wherever is appropriate (usually some sequencer like Espresso or Paio). I'd use one of these options:
For (1), I admit I'm not very fond of "type", which is too abstract. Maybe something like "layer", "network", "destination" or something like that could work better. But atm I think I still prefer "type" over those :P |
As a curiosity, which may be related: is there a |
Thinking more about this, I'm leaning more towards |
There is no send for ERC-4337 operations. From the application backend perspective there is no difference of a generic input that comes from ERC-4337 (other than the fact that the sender is a smart account). I think the utility of the |
I haven't seen the term "format" in this context, but I have seen the term "type", as in transaction types (for ethereum). But ERC-4337 and these paio thing are not transactions. Sometimes they are called meta-transactions, and ERC-4337 call them UserOps. |
Interesting info!
|
The app address will be the same for EVM and L2 (Paio/Espresso)
It's the base layer chain ID. It's useful to prevent the transaction from being replayed on another chain. I still don't get how to determine the |
You currently can't. The |
I think by "address" here @tuler means the URL endpoint for the send command, which for L1 JSON-RPC tx's defaults to http://localhost:8545 (Anvil). In the case of EIP-712 L2 tx's, it should default to wherever the CLI will be mapping the Node's |
IMO, it should be Node v2 abstracts which L2 it is using (Paio, Espresso, or Anvil) from the end user's point of view. ![]() |
Ok, but IMO the default path in the local environment is something to be discussed in #150. From everything we discussed above, I think the best option we currently have is:
where:
But I'm still a bit unsure if this is the best solution. The current options for
I think they all have the same meaning for both What do you think? |
I think the params will be conditioned to the transaction type, |
Ohh, that's nice, I didn't know that was an option. So, do you like that proposal of doing The URL options could then be something like |
More or less. I still think json-rpc was the way to go. With a
I guess just 1 url. |
What about
|
The CLI has several services that can be enabled.
I don't know if If we have |
/nonce is associated with an account, while /submit relates to the generic input. /account/nonce /input/submit account+input = transaction |
I meant the component name. |
I guess it would be an |
This is interesting. Have you already thought about details of this? |
Someone needs to decide this so we can move forward. I'm okay with whatever you guys decide ;-) |
Haven't thought about details. |
I'm ok with |
We can do that. |
Agree 100% |
Yeah, sure. |
I updated the PR #176 with
I'm studying this format. |
Yeah, this really looks like what we'd like to do. When submitting, it returns a |
Hey everyone,
We’re considering how to structure a command for sending EIP-712 transactions and would love some input.
The process includes:
/nonce
endpoint)./submit
endpoint).This applies to both Espresso and Paio + Avail, which follow the same API structure.
Possible Approaches:
cartesi send
A general send command with an option to specify EIP-712 format.cartesi <context> send
A subcommand that provides additional context before sending, such ascartesi l2 send
.The text was updated successfully, but these errors were encountered: