Inserts a suite of ink! unit tests intended for a contract implementing PSP22 trait.
$contract argument should be the name of the contract struct.
$constructor argument should be the name of a function, which initializes $contract
with the given total supply of tokens.
This macro should be invoked inside #[ink::contract] module.
A class implementing the internal logic of a PSP22 token.
Holds the state of all account balances and allowances.
Each method of this class corresponds to one type of transaction
as defined in the PSP22 standard.
Since this code is outside of ink::contract macro, the caller’s
address cannot be obtained automatically. Because of that, all
the methods that need to know the caller require an additional argument
(compared to transactions defined by the PSP22 standard or the PSP22 trait).
lib.rs contains an example implementation of a smart contract using this class.