This is to discuss the Transaction V3 Structure SNIP:
Open questions:
- Should we separate the fields
nonce_data_availability_modeandfee_data_availability_modeor use onedata_availability_modethat will be used both for nonce and fee?
This is to discuss the Transaction V3 Structure SNIP:
Open questions:
nonce_data_availability_mode and fee_data_availability_mode or use one data_availability_mode that will be used both for nonce and fee?I had envisioned paymaster’s being offered by dapps generally on a per-dapp basis. In which case I imagine providing the paymaster_address would allow the dapp’s paymaster to validate the “request” by the account that the tx fees be covered.
I appreciate that backward compatibility is addressed with a transition period for the tx sender, but are there any backward compatibility issues on the contract side? I.e. would an immutable / non-upgradeable Cairo 1 contract deployed prior to 0.13 still be compatible with a v3 tx sent after 0.13?
And although the pre-0.13 contract wouldn’t be able to take advantage of volition with its internal storage, would a user by able to submit a v3 tx to the pre-0.13 contract with a L2DA fee selected, and / or with a paymaster selected?
Yes, Cairo 1.0 contracts won’t break. The OS keeps all syscalls and execution backward compatible for Cairo 1.0.
As you mentioned, non-upgradable contracts won’t be able to benefit from new features (e.g., volition) or the new TxInfo (e.g., max L1_gas price for the tx), but the deployed contract won’t break and will continue functioning.
Users initiating a v3 transaction will be able to enjoy paying fees from their L2DA balance and the use of the paymaster (once implemented in Starknet) regardless of the contracts they’re interacting with.
I have various random questions:
|| operator in some places. What does it do? Is it string concatenation?Resource can only be L1_GAS or L2_GAS correct?nonce_data_availability_mode and fee_data_availability_mode work? What are they for? Isn’t nonce_data_availability_mode set only once when an account is deployed?compiled_class_hash calculated? The link in the document leads to something unrelated. Why do we need it at all?compiled_class_hash.Great proposal! A few questions:
tip for tx order, is this somehow enforced? Or just implemented at the sequencer level but can be changed by the sequencer?account_init_code needed in the declare fields?Deploy_account_v3_tx_hash, deploy_account as TX_PREFIX). Can’t validate_deploy be used by any other, regular contract? I don’t think it should be account specific.|| mean?paymaster_address should be 0? or oneself?get_execution_info changes, the first element is not named, just typed (List[Resource]) i guess the obvious name would be resources.Also, some small typos:
__validate_delcare__ → __validate_declare__