mezoAgent 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- {mezoAgent-0.1.0.dist-info → mezoAgent-0.1.2.dist-info}/METADATA +1 -1
- mezoAgent-0.1.2.dist-info/RECORD +6 -0
- mezoTransactionTool/transaction_tools.py +24 -14
- mezoAgent-0.1.0.dist-info/RECORD +0 -6
- {mezoAgent-0.1.0.dist-info → mezoAgent-0.1.2.dist-info}/WHEEL +0 -0
- {mezoAgent-0.1.0.dist-info → mezoAgent-0.1.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,6 @@
|
|
1
|
+
mezoTransactionTool/__init__.py,sha256=4izlG8P3PTGXZb_RvEQ3HlPMxQ1jzSINnF9nSlxnEXE,161
|
2
|
+
mezoTransactionTool/transaction_tools.py,sha256=XlyTaqiDGxN0tyqdyJA6tIX6xq6d6hfaQe-V2XKGcAU,6814
|
3
|
+
mezoAgent-0.1.2.dist-info/METADATA,sha256=9-Hi0dTMOqtYOOO8u1kjg-OGgFQTkAFxiy2CH5DP4-A,536
|
4
|
+
mezoAgent-0.1.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
5
|
+
mezoAgent-0.1.2.dist-info/top_level.txt,sha256=Czoa5A8CU_I_oPKDa5OXa5H7RM4Jk94PF9mIpz2V9t4,20
|
6
|
+
mezoAgent-0.1.2.dist-info/RECORD,,
|
@@ -17,19 +17,29 @@ if os.path.exists(USER_ENV_PATH):
|
|
17
17
|
else:
|
18
18
|
print("⚠️ Warning: No `.env` file found in your project directory! Transactions requiring signing may fail.")
|
19
19
|
|
20
|
-
# ✅ Load Private
|
20
|
+
# ✅ Load Private Keys from User's `.env`
|
21
21
|
PRIVATE_KEY = os.getenv("PRIVATE_KEY")
|
22
|
+
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
22
23
|
if not PRIVATE_KEY:
|
23
24
|
print("⚠️ Warning: PRIVATE_KEY not set. Please create a `.env` file in your project with your keys.")
|
24
25
|
PRIVATE_KEY = None # Allow package to be installed but prevent transactions
|
25
26
|
|
27
|
+
RPC_URL = "https://rpc.test.mezo.org"
|
28
|
+
|
29
|
+
# ✅ Initialize Web3 instance
|
30
|
+
web3_instance = Web3(Web3.HTTPProvider(RPC_URL))
|
31
|
+
|
32
|
+
# ✅ Check if connection is successful
|
33
|
+
if not web3_instance.is_connected():
|
34
|
+
raise ConnectionError("❌ Failed to connect to Mezo Matsnet RPC.")
|
35
|
+
|
26
36
|
# ✅ Create Account Object
|
27
|
-
account =
|
37
|
+
account = Web3.eth.account.from_key(PRIVATE_KEY)
|
28
38
|
sender_address = account.address
|
29
39
|
|
30
40
|
MUSD_ADDRESS = "0x637e22A1EBbca50EA2d34027c238317fD10003eB"
|
31
41
|
ERC20_ABI = json.loads('[{"constant": false, "inputs": [{"name": "recipient", "type": "address"},{"name": "amount", "type": "uint256"}],"name": "transfer","outputs": [{"name": "", "type": "bool"}],"stateMutability": "nonpayable","type":"function"}]')
|
32
|
-
musd_contract =
|
42
|
+
musd_contract = Web3.eth.contract(address=MUSD_ADDRESS, abi=ERC20_ABI)
|
33
43
|
|
34
44
|
# ✅ Define Structured Output Parser for Transaction Details
|
35
45
|
response_schemas = [
|
@@ -87,19 +97,19 @@ def mezo_agent_transaction_btc(transaction_prompt: str) -> str:
|
|
87
97
|
return "❌ This function only supports BTC transactions."
|
88
98
|
|
89
99
|
# ✅ Convert amount to Wei (BTC uses 18 decimals on Mezo Matsnet)
|
90
|
-
amount_wei =
|
100
|
+
amount_wei = Web3.to_wei(amount, "ether")
|
91
101
|
|
92
102
|
# ✅ Check sender's BTC balance
|
93
|
-
sender_balance =
|
94
|
-
sender_balance_btc =
|
103
|
+
sender_balance = Web3.eth.get_balance(sender_address)
|
104
|
+
sender_balance_btc = Web3.from_wei(sender_balance, "ether")
|
95
105
|
|
96
106
|
if sender_balance < amount_wei:
|
97
107
|
return f"❌ Insufficient BTC balance! You have {sender_balance_btc} BTC but need {amount} BTC."
|
98
108
|
|
99
109
|
# ✅ Fetch nonce and gas price
|
100
|
-
nonce =
|
101
|
-
gas_price =
|
102
|
-
gas_limit =
|
110
|
+
nonce = Web3.eth.get_transaction_count(sender_address)
|
111
|
+
gas_price = Web3.eth.gas_price
|
112
|
+
gas_limit = Web3.eth.estimate_gas({"to": recipient, "value": amount_wei, "from": sender_address})
|
103
113
|
|
104
114
|
tx = {
|
105
115
|
"to": recipient,
|
@@ -113,7 +123,7 @@ def mezo_agent_transaction_btc(transaction_prompt: str) -> str:
|
|
113
123
|
try:
|
114
124
|
# ✅ Sign and send the transaction
|
115
125
|
signed_tx = account.sign_transaction(tx)
|
116
|
-
tx_hash =
|
126
|
+
tx_hash = Web3.eth.send_raw_transaction(signed_tx.raw_transaction)
|
117
127
|
return f"✅ BTC Transaction Successful! Hash: {tx_hash.hex()}"
|
118
128
|
|
119
129
|
except Web3Exception as e:
|
@@ -146,8 +156,8 @@ def mezo_agent_transaction_musd(transaction_prompt: str) -> str:
|
|
146
156
|
|
147
157
|
# ✅ Convert amount to Wei (mUSD uses 18 decimals)
|
148
158
|
amount_musd_wei = int(amount * 10**18)
|
149
|
-
nonce =
|
150
|
-
gas_price =
|
159
|
+
nonce = Web3.eth.get_transaction_count(sender_address)
|
160
|
+
gas_price = Web3.eth.gas_price
|
151
161
|
|
152
162
|
try:
|
153
163
|
# ✅ Build the transaction for mUSD transfer
|
@@ -158,8 +168,8 @@ def mezo_agent_transaction_musd(transaction_prompt: str) -> str:
|
|
158
168
|
"gasPrice": gas_price,
|
159
169
|
})
|
160
170
|
|
161
|
-
signed_txn =
|
162
|
-
tx_hash =
|
171
|
+
signed_txn = Web3.eth.account.sign_transaction(txn, PRIVATE_KEY)
|
172
|
+
tx_hash = Web3.eth.send_raw_transaction(signed_txn.raw_transaction)
|
163
173
|
|
164
174
|
return f"✅ mUSD Transaction Successful! Hash: {tx_hash.hex()}"
|
165
175
|
|
mezoAgent-0.1.0.dist-info/RECORD
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
mezoTransactionTool/__init__.py,sha256=4izlG8P3PTGXZb_RvEQ3HlPMxQ1jzSINnF9nSlxnEXE,161
|
2
|
-
mezoTransactionTool/transaction_tools.py,sha256=6TlJPFvqB0kSpmjAXKuhPZsJ7JvNcyWYm6TYCCC_Mtc,6488
|
3
|
-
mezoAgent-0.1.0.dist-info/METADATA,sha256=m8ciD6ojJT8StDWvzwCsHzLSc5HPIxDImbiLl1ujHr8,536
|
4
|
-
mezoAgent-0.1.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
5
|
-
mezoAgent-0.1.0.dist-info/top_level.txt,sha256=Czoa5A8CU_I_oPKDa5OXa5H7RM4Jk94PF9mIpz2V9t4,20
|
6
|
-
mezoAgent-0.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|