0996f21 changes the original lamport mutation into a regular system transfer. The lamport mutation works, but its unclear why, when examining the runtime guarantee that program XYZ should only be able to borrow lamports from an account owned by program XYZ. In the original state we were able to borrow lamports from an account owned by the system program. The system transfer is safer, should the original behavior turn out to be unintended.
ca85338 refactors the seed constraint for the transaction_buffer account. It now uses a u8 for derivation instead of tying it to the multisigs transaction_index. It allows a creator to have up to 255 concurrent buffers open. In contrast to using a create_key this improves indexability and saves us the overhead of having to pass 32 bytes for the account and an additional 64 byte signature.
This PR includes the following commits:
0996f21 - refactor: lamport mutation into system transfer
ca85338 - feat: u8 for buffer seeding
0996f21
changes the original lamport mutation into a regular system transfer. The lamport mutation works, but its unclear why, when examining the runtime guarantee that program XYZ should only be able to borrow lamports from an account owned by program XYZ. In the original state we were able to borrow lamports from an account owned by the system program. The system transfer is safer, should the original behavior turn out to be unintended.ca85338
refactors the seed constraint for thetransaction_buffer
account. It now uses a u8 for derivation instead of tying it to the multisigstransaction_index
. It allows a creator to have up to 255 concurrent buffers open. In contrast to using acreate_key
this improves indexability and saves us the overhead of having to pass 32 bytes for the account and an additional 64 byte signature.