1717
1818@logged_group ("neon.AccountWhitelist" )
1919class AccountWhitelist :
20- def __init__ (self , solana : SolanaInteractor , payer : SolanaAccount , permission_update_int : int ):
20+ def __init__ (self , solana : SolanaInteractor , permission_update_int : int ):
2121 self .solana = solana
2222 self .account_cache = {}
2323 self .permission_update_int = permission_update_int
@@ -31,13 +31,8 @@ def __init__(self, solana: SolanaInteractor, payer: SolanaAccount, permission_up
3131 self .error (f'Wrong proxy configuration: allowance and denial tokens must both exist or absent!' )
3232 raise Exception ("NEON service is unhealthy. Try again later" )
3333
34- self .allowance_token = PermissionToken (self .solana ,
35- PublicKey (ALLOWANCE_TOKEN_ADDR ),
36- payer )
37-
38- self .denial_token = PermissionToken (self .solana ,
39- PublicKey (DENIAL_TOKEN_ADDR ),
40- payer )
34+ self .allowance_token = PermissionToken (self .solana , PublicKey (ALLOWANCE_TOKEN_ADDR ))
35+ self .denial_token = PermissionToken (self .solana , PublicKey (DENIAL_TOKEN_ADDR ))
4136
4237 def read_balance_diff (self , ether_addr : Union [str , EthereumAddress ]) -> int :
4338 token_list = [
@@ -50,30 +45,30 @@ def read_balance_diff(self, ether_addr: Union[str, EthereumAddress]) -> int:
5045 denial_balance = balance_list [1 ]
5146 return allowance_balance - denial_balance
5247
53- def grant_permissions (self , ether_addr : Union [str , EthereumAddress ], min_balance : int ):
48+ def grant_permissions (self , ether_addr : Union [str , EthereumAddress ], min_balance : int , signer : SolanaAccount ):
5449 try :
5550 diff = self .read_balance_diff (ether_addr )
5651 if diff >= min_balance :
5752 self .info (f'{ ether_addr } already has permission' )
5853 return True
5954
6055 to_mint = min_balance - diff
61- self .allowance_token .mint_to (to_mint , ether_addr )
56+ self .allowance_token .mint_to (to_mint , ether_addr , signer )
6257 self .info (f'Permissions granted to { ether_addr } ' )
6358 return True
6459 except Exception as err :
6560 self .error (f'Failed to grant permissions to { ether_addr } : { type (err )} : { err } ' )
6661 return False
6762
68- def deprive_permissions (self , ether_addr : Union [str , EthereumAddress ], min_balance : int ):
63+ def deprive_permissions (self , ether_addr : Union [str , EthereumAddress ], min_balance : int , signer : SolanaAccount ):
6964 try :
7065 diff = self .read_balance_diff (ether_addr )
7166 if diff < min_balance :
7267 self .info (f'{ ether_addr } already deprived' )
7368 return True
7469
7570 to_mint = diff - min_balance + 1
76- self .denial_token .mint_to (to_mint , ether_addr )
71+ self .denial_token .mint_to (to_mint , ether_addr , signer )
7772 self .info (f'Permissions deprived to { ether_addr } ' )
7873 return True
7974 except Exception as err :
0 commit comments