Open tcoratger opened 1 month ago
A few notes:
A few notes:
- For deployment of OZ accounts, we can check starkli's code
- For rebalancing, I think a simple CRON (out of repo) script might do the trick?
- How do we implement selection?
- Where does the private key live in this case?
- How many private keys for the OZ accounts?
- Where does the "list" of OZ account address live?
A few notes:
- For deployment of OZ accounts, we can check starkli's code
- For rebalancing, I think a simple CRON (out of repo) script might do the trick?
- How do we implement selection?
- Where does the private key live in this case?
- How many private keys for the OZ accounts?
- Where does the "list" of OZ account address live?
- yes would say that a cron is fine
- for selection I would say either random if we are 100% sure the balance is always sufficient for all accounts (some risks if multiple txs at same time with same account for ex) or select the richest account but less arbitrary
The problem with selection afaik is the probability to hit nonce errors because two transactions that are too close (in time) to one another might send two txs with same nonce
Design overview for the execute_from_outside
in the RPC.
The issue which I am not sure yet how to solve is that the retry service becomes a big problem now with execute_from_outside
, since before the nonce of the account was checked by the gateway and quickly rejected in case it was invalid. Now with execute_from_outside
, the nonce gets checked in the __execute__
of the relayer, which means:
__execute__
level which is way later in the transaction.Design overview for the
execute_from_outside
in the RPC.The issue which I am not sure yet how to solve is that the retry service becomes a big problem now with
execute_from_outside
, since before the nonce of the account was checked by the gateway and quickly rejected in case it was invalid. Now withexecute_from_outside
, the nonce gets checked in the__execute__
of the relayer, which means:
- it gets rejected at the
__execute__
level which is way later in the transaction.- relayer has to pay for the execution of a transaction for which the nonce is incorrect, meaning relayer now pays for each retry.
Nice!! Where did you find this idea?
Can we check that it is a good idea? Maybe with someone from Lambda, Pimlico and Biconomy?
Where did you find this idea?
Just brainstorming alone and checking the tokio sync docs.
I guess we could ask Lambda, I don't think Pimlico actually do nonce management afaik, because in the EVM world, the mempool takes care of that for you
Where did you find this idea?
Just brainstorming alone and checking the tokio sync docs.
I guess we could ask Lambda, I don't think Pimlico actually do nonce management afaik, because in the EVM world, the mempool takes care of that for you
Not sure, since you still need to sign the correct nonce? So something or someone is supposed to increment nonces
Theoretically we could just store a mapping of Account -> Nonce, and increment optimistically a nonce every time we post a tx, and if the tx is rejected (nonce shouldnt be incremented) we decrease it
You can technically send 10 txs in a row without cooldown on SN, granted you increment nonce
In view of our launch on Starknet Testnet, we want to be able to execute transactions from outside on Kakarot.
To be able to execute such transactions through the RPC, we need to make some modifications to its architecture which will be described here:
Accounts setup
Account management (deployment and rebalancing)
Transaction handling
execute_from_outside
on the target contract.We can construct the transaction via something like: