| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- // SPDX-License-Identifier: Apache-2.0
- import '../../solana-library/system_instruction.sol';
- contract TestingInstruction {
- @mutableSigner(from)
- @mutableSigner(to)
- function create_account(uint64 lamports, uint64 space, address owner) external {
- SystemInstruction.create_account(tx.accounts.from.key, tx.accounts.to.key, lamports, space, owner);
- }
- @mutableSigner(from)
- @mutableAccount(to)
- @signer(base)
- function create_account_with_seed(string seed, uint64 lamports, uint64 space, address owner) external {
- SystemInstruction.create_account_with_seed(
- tx.accounts.from.key, tx.accounts.to.key, tx.accounts.base.key, seed, lamports, space, owner);
- }
- @mutableSigner(assignAccount)
- function assign(address owner) external {
- SystemInstruction.assign(tx.accounts.assignAccount.key, owner);
- }
- @mutableAccount(assignAccount)
- @signer(base)
- function assign_with_seed(string seed, address owner) external {
- SystemInstruction.assign_with_seed(tx.accounts.assignAccount.key, tx.accounts.base.key, seed, owner);
- }
- @mutableSigner(from)
- @mutableAccount(to)
- function transfer(uint64 lamports) external {
- SystemInstruction.transfer(tx.accounts.from.key, tx.accounts.to.key, lamports);
- }
- @mutableAccount(fromKey)
- @signer(fromBase)
- @mutableAccount(toKey)
- function transfer_with_seed(string seed, address from_owner, uint64 lamports) external {
- SystemInstruction.transfer_with_seed(
- tx.accounts.fromKey.key,
- tx.accounts.fromBase.key,
- seed,
- from_owner,
- tx.accounts.toKey.key,
- lamports);
- }
- @mutableSigner(accKey)
- function allocate(uint64 space) external {
- SystemInstruction.allocate(tx.accounts.accKey.key, space);
- }
- @mutableAccount(accKey)
- @signer(base)
- function allocate_with_seed(string seed, uint64 space, address owner) external {
- SystemInstruction.allocate_with_seed(
- tx.accounts.accKey.key,
- tx.accounts.base.key,
- seed,
- space,
- owner);
- }
- @mutableSigner(from)
- @mutableAccount(nonce)
- @signer(base)
- function create_nonce_account_with_seed(string seed, address authority, uint64 lamports) external {
- SystemInstruction.create_nonce_account_with_seed(
- tx.accounts.from.key,
- tx.accounts.nonce.key,
- tx.accounts.base.key,
- seed,
- authority,
- lamports);
- }
- @mutableSigner(from)
- @mutableSigner(nonce)
- function create_nonce_account(address authority, uint64 lamports) external {
- SystemInstruction.create_nonce_account(tx.accounts.from.key,
- tx.accounts.nonce.key, authority, lamports);
- }
- @mutableAccount(nonce)
- function advance_nonce_account(address authorized) external {
- SystemInstruction.advance_nonce_account(
- tx.accounts.nonce.key, authorized);
- }
- @mutableAccount(nonce)
- @mutableAccount(to)
- @signer(authority)
- function withdraw_nonce_account(uint64 lamports) external {
- SystemInstruction.withdraw_nonce_account(
- tx.accounts.nonce.key,
- tx.accounts.authority.key,
- tx.accounts.to.key, lamports);
- }
- @mutableAccount(nonce)
- @signer(authority)
- function authorize_nonce_account(address new_authority) external {
- SystemInstruction.authorize_nonce_account(
- tx.accounts.nonce.key,
- tx.accounts.authority.key, new_authority);
- }
- // This is not available on Solana v1.9.15
- // function upgrade_nonce_account(address nonce) external {
- // SystemInstruction.upgrade_nonce_account(nonce);
- // }
- }
|