Junaidb commited on
Commit
b3640d2
·
verified ·
1 Parent(s): 473b6fb

Create components/functions.py

Browse files
Files changed (1) hide show
  1. components/functions.py +114 -0
components/functions.py ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import base58
2
+ from eth_utils import is_checksum_address, is_hex_address
3
+ from web3 import Web3
4
+ import requests
5
+
6
+ from solders.keypair import Keypair
7
+ import base58
8
+
9
+ from eth_account import Account
10
+ from eth_account.messages import encode_defunct
11
+
12
+
13
+ def NetworkResolver(address: str):
14
+ address = address.strip()
15
+
16
+ # 1. Check Ethereum
17
+ if is_hex_address(address):
18
+ return {
19
+ "chain": "ethereum"
20
+ }
21
+
22
+ # 2. Check Solana
23
+ try:
24
+ if len(base58.b58decode(address)) == 32:
25
+ return {
26
+ "chain": "solana"
27
+ }
28
+ except:
29
+ pass
30
+
31
+ return {"chain": "unknown"}
32
+
33
+
34
+
35
+
36
+ def InfuraRPC(address):
37
+
38
+ infura="https://mainnet.infura.io/v3/acaf5aa43726452185384862eda2b38a"
39
+ apikey="acaf5aa43726452185384862eda2b38a"
40
+
41
+ w3 = Web3(Web3.HTTPProvider(infura))
42
+ wei = w3.eth.get_balance(address)
43
+ eth = w3.from_wei(wei, "ether")
44
+
45
+ print("Address:", address)
46
+ print("Balance (ETH):", eth)
47
+ return {"eth_balance":eth}
48
+
49
+
50
+
51
+ def HeliusAPI(address):
52
+ url = f"https://mainnet.helius-rpc.com/?api-key=4e833ada-d32c-48c5-b020-c11b2253f25b"
53
+ payload = {
54
+ "jsonrpc": "2.0",
55
+ "id": 1,
56
+ "method": "getBalance",
57
+ "params": [address]
58
+ }
59
+ res = requests.post(url, json=payload)
60
+ data = res.json()
61
+ lamports = data.get("result", {}).get("value",0)
62
+ sol = lamports / 1e9
63
+ print(f"Address: {address}")
64
+ print(f"SOL Balance: {sol}")
65
+ return {"sol_balance":sol}
66
+
67
+
68
+
69
+
70
+ def EthereumSigner(address,payload: str):
71
+
72
+
73
+ map={
74
+ "pkey":"b0e143aa6764ba2a5673b4bdc3891bd92bfceb60ca9aca810d11eca6362a074e"
75
+ }
76
+ pkey=None
77
+ if address=="0xA34A13e95CE831953e598689e864a97B7DE949eb":
78
+ pkey=map["pkey"]
79
+
80
+ try:
81
+ msg = encode_defunct(text=payload)
82
+ #private_key="b0e143aa6764ba2a5673b4bdc3891bd92bfceb60ca9aca810d11eca6362a074e"
83
+ signed = Account.sign_message(msg, pkey)
84
+
85
+
86
+ return {"signature":signed.signature.hex()}
87
+ except Exception as e:
88
+ return {"signature":str(e)}
89
+
90
+
91
+
92
+
93
+
94
+ def SolanaSigner(address,payload:str):
95
+
96
+ map={
97
+ "pkey":"3iGdffgcjsdjfRmQ4Jv5bdCaWZGdfbyT8k7vJiPhrghiCMYiqehGqA7QRmzeVpKJD6GRqXFkvj5nU3ZiD9JJQP97"
98
+ }
99
+ pkey=None
100
+ if address=="75BgVvMNZ8Es1JffEDNYxWNVE2yoBTndLxViARhYWPF":
101
+ pkey=map["pkey"]
102
+
103
+ try:
104
+ secret = base58.b58decode(pkey)
105
+ kp = Keypair.from_bytes(secret)
106
+
107
+ msg = payload.encode()
108
+ sig = kp.sign_message(msg)
109
+
110
+
111
+ return {"signature":base58.b58encode(bytes(sig)).decode()}
112
+ except Exception as e:
113
+ return {"signature":str(e)}
114
+