File tree 1 file changed +52
-0
lines changed
1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ from etherscan .enums .messages_enum import MessagesEnum as msgs
2
+
3
+ _CONTRACT_LEN = 42
4
+ _TX_LEN = 66
5
+ _WALLET_LEN = 42
6
+
7
+
8
+ class BaseAddress :
9
+ def __init__ (self ):
10
+ self ._address = ""
11
+ self ._maxlen = 0
12
+
13
+ def _check_0x (self , address : str ):
14
+ if address [:2 ] != "0x" :
15
+ raise ValueError (msgs .INVALID_ADDRESS )
16
+ return address
17
+
18
+ def _check_len (self , address : str ):
19
+ if len (address ) != self ._maxlen :
20
+ raise ValueError (msgs .INVALID_ADDRESS )
21
+ return address
22
+
23
+ def __repr__ (self ):
24
+ return self ._address
25
+
26
+ def __str__ (self ):
27
+ return self ._address
28
+
29
+ def __add__ (self , val : str ):
30
+ return self ._address + val
31
+
32
+ def __len__ (self ):
33
+ return len (self ._address )
34
+
35
+
36
+ class ContractAddress (BaseAddress ):
37
+ def __init__ (self , address : str ):
38
+ self ._maxlen = _CONTRACT_LEN
39
+ self ._address = self ._check_len (self ._check_0x (address ))
40
+
41
+
42
+ class TxHash (BaseAddress ):
43
+ def __init__ (self , address : str ):
44
+ self ._maxlen = _TX_LEN
45
+ self ._address = self ._check_len (self ._check_0x (address ))
46
+
47
+
48
+ class WalletAddress (BaseAddress ):
49
+ def __init__ (self , address : str ):
50
+ self ._maxlen = _WALLET_LEN
51
+ self ._address = self ._check_len (self ._check_0x (address ))
52
+
You can’t perform that action at this time.
0 commit comments