This is to discuss the Transaction V3 Structure SNIP:
Open questions:
- Should we separate the fields
nonce_data_availability_mode
andfee_data_availability_mode
or use onedata_availability_mode
that 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__