Skip to content
This repository was archived by the owner on May 11, 2026. It is now read-only.

Commit b2ea664

Browse files
committed
fixing - polymarket.py
fixing - geth_poa_middleware creating self.creds fixing - _init_api_keys fixing - MarketOrderArgs in execute_market_order def
1 parent 081f2b5 commit b2ea664

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

.env.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
POLYGON_WALLET_PRIVATE_KEY=""
2+
PROXY_ADDRESS=''
3+
POLY_API_KEY=''
4+
POLY_API_SECRET=''
5+
POLY_API_PASSPHRASE=''
26
OPENAI_API_KEY=""
37
TAVILY_API_KEY=""
48
NEWSAPI_API_KEY=""

agents/polymarket/polymarket.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111

1212
from web3 import Web3
1313
from web3.constants import MAX_INT
14-
from web3.middleware import geth_poa_middleware
14+
try:
15+
from web3.middleware import ExtraDataToPOAMiddleware as poa_middleware
16+
except ImportError:
17+
# Eğer web3 sürümün çok eskiyse eski adı kullan
18+
from web3.middleware import geth_poa_middleware as poa_middleware
1519

1620
import httpx
1721
from py_clob_client.client import ClobClient
@@ -44,6 +48,7 @@ def __init__(self) -> None:
4448

4549
self.chain_id = 137 # POLYGON
4650
self.private_key = os.getenv("POLYGON_WALLET_PRIVATE_KEY")
51+
self.proxy_address = os.getenv("PROXY_ADDRESS")
4752
self.polygon_rpc = "https://polygon-rpc.com"
4853
self.w3 = Web3(Web3.HTTPProvider(self.polygon_rpc))
4954

@@ -57,22 +62,33 @@ def __init__(self) -> None:
5762
self.ctf_address = "0x4D97DCd97eC945f40cF65F87097ACe5EA0476045"
5863

5964
self.web3 = Web3(Web3.HTTPProvider(self.polygon_rpc))
60-
self.web3.middleware_onion.inject(geth_poa_middleware, layer=0)
65+
self.w3.middleware_onion.inject(poa_middleware, layer=0)
6166

6267
self.usdc = self.web3.eth.contract(
6368
address=self.usdc_address, abi=self.erc20_approve
6469
)
6570
self.ctf = self.web3.eth.contract(
6671
address=self.ctf_address, abi=self.erc1155_set_approval
6772
)
73+
74+
self.creds = ApiCreds(
75+
api_key=os.getenv('POLY_API_KEY').strip() if os.getenv('POLY_API_KEY') else "",
76+
api_secret=os.getenv('POLY_API_SECRET').strip() if os.getenv('POLY_API_SECRET') else "",
77+
api_passphrase=os.getenv('POLY_API_PASSPHRASE').strip() if os.getenv('POLY_API_PASSPHRASE') else ""
78+
)
6879

6980
self._init_api_keys()
7081
self._init_approvals(False)
7182

7283
def _init_api_keys(self) -> None:
7384
self.client = ClobClient(
74-
self.clob_url, key=self.private_key, chain_id=self.chain_id
75-
)
85+
host=self.clob_url,
86+
key=self.private_key,
87+
chain_id=self.chain_id,
88+
signature_type=2,
89+
funder=self.proxy_address,
90+
creds=self.creds
91+
)
7692
self.credentials = self.client.create_or_derive_api_creds()
7793
self.client.set_api_creds(self.credentials)
7894
# print(self.credentials)
@@ -338,11 +354,12 @@ def execute_order(self, price, size, side, token_id) -> str:
338354
OrderArgs(price=price, size=size, side=side, token_id=token_id)
339355
)
340356

341-
def execute_market_order(self, market, amount) -> str:
357+
def execute_market_order(self, market, amount, side = "BUY") -> str:
342358
token_id = ast.literal_eval(market[0].dict()["metadata"]["clob_token_ids"])[1]
343359
order_args = MarketOrderArgs(
344360
token_id=token_id,
345361
amount=amount,
362+
side='BUY' if side.upper() == "BUY" else 'SELL'
346363
)
347364
signed_order = self.client.create_market_order(order_args)
348365
print("Execute market order... signed_order ", signed_order)

0 commit comments

Comments
 (0)