bobcat_interfaces/
sels.rs1use bobcat_cd::const_keccak_sel;
2
3#[macro_export]
4macro_rules! selectors {
5 ($($name:ident = $str:literal),* $(,)?) => {
6 $(
7 pub(crate) const $name: [u8; 4] = const_keccak_sel($str);
8 )*
9 };
10}
11
12selectors! {
13 SEL_TOTAL_SUPPLY = b"totalSupply()",
14 SEL_BALANCE_OF = b"balanceOf(address)",
15 SEL_ALLOWANCE = b"allowance(address,address)",
16 SEL_TRANSFER = b"transfer(address,uint256)",
17 SEL_TRANSFER_FROM = b"transferFrom(address,address,uint256)",
18 SEL_APPROVE = b"approve(address,uint256)",
19 SEL_PERMIT = b"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)",
20 SEL_NONCES = b"nonces(address)",
21 SEL_DOMAIN_SEPARATOR = b"DOMAIN_SEPARATOR()"
22}
23
24#[test]
25fn test_allowance() {
26 assert_eq!([0xdd, 0x62, 0xed, 0x3e], SEL_ALLOWANCE);
27}