prediction-market-agent-tooling 0.57.5.dev217__py3-none-any.whl → 0.57.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,336 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }
5
+ ],
6
+ "stateMutability": "nonpayable",
7
+ "type": "constructor"
8
+ },
9
+ {
10
+ "inputs": [
11
+ { "internalType": "address", "name": "sender", "type": "address" },
12
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
13
+ { "internalType": "address", "name": "owner", "type": "address" }
14
+ ],
15
+ "name": "ERC721IncorrectOwner",
16
+ "type": "error"
17
+ },
18
+ {
19
+ "inputs": [
20
+ { "internalType": "address", "name": "operator", "type": "address" },
21
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
22
+ ],
23
+ "name": "ERC721InsufficientApproval",
24
+ "type": "error"
25
+ },
26
+ {
27
+ "inputs": [
28
+ { "internalType": "address", "name": "approver", "type": "address" }
29
+ ],
30
+ "name": "ERC721InvalidApprover",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ { "internalType": "address", "name": "operator", "type": "address" }
36
+ ],
37
+ "name": "ERC721InvalidOperator",
38
+ "type": "error"
39
+ },
40
+ {
41
+ "inputs": [
42
+ { "internalType": "address", "name": "owner", "type": "address" }
43
+ ],
44
+ "name": "ERC721InvalidOwner",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [
49
+ { "internalType": "address", "name": "receiver", "type": "address" }
50
+ ],
51
+ "name": "ERC721InvalidReceiver",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [
56
+ { "internalType": "address", "name": "sender", "type": "address" }
57
+ ],
58
+ "name": "ERC721InvalidSender",
59
+ "type": "error"
60
+ },
61
+ {
62
+ "inputs": [
63
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
64
+ ],
65
+ "name": "ERC721NonexistentToken",
66
+ "type": "error"
67
+ },
68
+ {
69
+ "inputs": [
70
+ { "internalType": "address", "name": "owner", "type": "address" }
71
+ ],
72
+ "name": "OwnableInvalidOwner",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ { "internalType": "address", "name": "account", "type": "address" }
78
+ ],
79
+ "name": "OwnableUnauthorizedAccount",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "anonymous": false,
84
+ "inputs": [
85
+ {
86
+ "indexed": true,
87
+ "internalType": "address",
88
+ "name": "owner",
89
+ "type": "address"
90
+ },
91
+ {
92
+ "indexed": true,
93
+ "internalType": "address",
94
+ "name": "approved",
95
+ "type": "address"
96
+ },
97
+ {
98
+ "indexed": true,
99
+ "internalType": "uint256",
100
+ "name": "tokenId",
101
+ "type": "uint256"
102
+ }
103
+ ],
104
+ "name": "Approval",
105
+ "type": "event"
106
+ },
107
+ {
108
+ "anonymous": false,
109
+ "inputs": [
110
+ {
111
+ "indexed": true,
112
+ "internalType": "address",
113
+ "name": "owner",
114
+ "type": "address"
115
+ },
116
+ {
117
+ "indexed": true,
118
+ "internalType": "address",
119
+ "name": "operator",
120
+ "type": "address"
121
+ },
122
+ {
123
+ "indexed": false,
124
+ "internalType": "bool",
125
+ "name": "approved",
126
+ "type": "bool"
127
+ }
128
+ ],
129
+ "name": "ApprovalForAll",
130
+ "type": "event"
131
+ },
132
+ {
133
+ "anonymous": false,
134
+ "inputs": [
135
+ {
136
+ "indexed": true,
137
+ "internalType": "address",
138
+ "name": "previousOwner",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "indexed": true,
143
+ "internalType": "address",
144
+ "name": "newOwner",
145
+ "type": "address"
146
+ }
147
+ ],
148
+ "name": "OwnershipTransferred",
149
+ "type": "event"
150
+ },
151
+ {
152
+ "anonymous": false,
153
+ "inputs": [
154
+ {
155
+ "indexed": true,
156
+ "internalType": "address",
157
+ "name": "from",
158
+ "type": "address"
159
+ },
160
+ {
161
+ "indexed": true,
162
+ "internalType": "address",
163
+ "name": "to",
164
+ "type": "address"
165
+ },
166
+ {
167
+ "indexed": true,
168
+ "internalType": "uint256",
169
+ "name": "tokenId",
170
+ "type": "uint256"
171
+ }
172
+ ],
173
+ "name": "Transfer",
174
+ "type": "event"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "MAX_SUPPLY",
179
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
180
+ "stateMutability": "view",
181
+ "type": "function"
182
+ },
183
+ {
184
+ "inputs": [
185
+ { "internalType": "address", "name": "to", "type": "address" },
186
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
187
+ ],
188
+ "name": "approve",
189
+ "outputs": [],
190
+ "stateMutability": "nonpayable",
191
+ "type": "function"
192
+ },
193
+ {
194
+ "inputs": [
195
+ { "internalType": "address", "name": "owner", "type": "address" }
196
+ ],
197
+ "name": "balanceOf",
198
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
199
+ "stateMutability": "view",
200
+ "type": "function"
201
+ },
202
+ {
203
+ "inputs": [
204
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
205
+ ],
206
+ "name": "getApproved",
207
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
208
+ "stateMutability": "view",
209
+ "type": "function"
210
+ },
211
+ {
212
+ "inputs": [
213
+ { "internalType": "address", "name": "owner", "type": "address" },
214
+ { "internalType": "address", "name": "operator", "type": "address" }
215
+ ],
216
+ "name": "isApprovedForAll",
217
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
218
+ "stateMutability": "view",
219
+ "type": "function"
220
+ },
221
+ {
222
+ "inputs": [],
223
+ "name": "name",
224
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
225
+ "stateMutability": "view",
226
+ "type": "function"
227
+ },
228
+ {
229
+ "inputs": [],
230
+ "name": "owner",
231
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
232
+ "stateMutability": "view",
233
+ "type": "function"
234
+ },
235
+ {
236
+ "inputs": [
237
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
238
+ ],
239
+ "name": "ownerOf",
240
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
241
+ "stateMutability": "view",
242
+ "type": "function"
243
+ },
244
+ {
245
+ "inputs": [],
246
+ "name": "renounceOwnership",
247
+ "outputs": [],
248
+ "stateMutability": "nonpayable",
249
+ "type": "function"
250
+ },
251
+ {
252
+ "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],
253
+ "name": "safeMint",
254
+ "outputs": [],
255
+ "stateMutability": "nonpayable",
256
+ "type": "function"
257
+ },
258
+ {
259
+ "inputs": [
260
+ { "internalType": "address", "name": "from", "type": "address" },
261
+ { "internalType": "address", "name": "to", "type": "address" },
262
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
263
+ ],
264
+ "name": "safeTransferFrom",
265
+ "outputs": [],
266
+ "stateMutability": "nonpayable",
267
+ "type": "function"
268
+ },
269
+ {
270
+ "inputs": [
271
+ { "internalType": "address", "name": "from", "type": "address" },
272
+ { "internalType": "address", "name": "to", "type": "address" },
273
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
274
+ { "internalType": "bytes", "name": "data", "type": "bytes" }
275
+ ],
276
+ "name": "safeTransferFrom",
277
+ "outputs": [],
278
+ "stateMutability": "nonpayable",
279
+ "type": "function"
280
+ },
281
+ {
282
+ "inputs": [
283
+ { "internalType": "address", "name": "operator", "type": "address" },
284
+ { "internalType": "bool", "name": "approved", "type": "bool" }
285
+ ],
286
+ "name": "setApprovalForAll",
287
+ "outputs": [],
288
+ "stateMutability": "nonpayable",
289
+ "type": "function"
290
+ },
291
+ {
292
+ "inputs": [
293
+ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }
294
+ ],
295
+ "name": "supportsInterface",
296
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
297
+ "stateMutability": "view",
298
+ "type": "function"
299
+ },
300
+ {
301
+ "inputs": [],
302
+ "name": "symbol",
303
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
304
+ "stateMutability": "view",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [
309
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
310
+ ],
311
+ "name": "tokenURI",
312
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
313
+ "stateMutability": "view",
314
+ "type": "function"
315
+ },
316
+ {
317
+ "inputs": [
318
+ { "internalType": "address", "name": "from", "type": "address" },
319
+ { "internalType": "address", "name": "to", "type": "address" },
320
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
321
+ ],
322
+ "name": "transferFrom",
323
+ "outputs": [],
324
+ "stateMutability": "nonpayable",
325
+ "type": "function"
326
+ },
327
+ {
328
+ "inputs": [
329
+ { "internalType": "address", "name": "newOwner", "type": "address" }
330
+ ],
331
+ "name": "transferOwnership",
332
+ "outputs": [],
333
+ "stateMutability": "nonpayable",
334
+ "type": "function"
335
+ }
336
+ ]
@@ -382,6 +382,67 @@ class ContractERC4626BaseClass(ContractERC20BaseClass):
382
382
  return self.convertToShares(amount, web3=web3)
383
383
 
384
384
 
385
+ class ContractOwnableERC721BaseClass(ContractBaseClass):
386
+ abi: ABI = abi_field_validator(
387
+ os.path.join(
388
+ os.path.dirname(os.path.realpath(__file__)),
389
+ "../abis/ownable_erc721.abi.json",
390
+ )
391
+ )
392
+
393
+ def safeMint(
394
+ self,
395
+ api_keys: APIKeys,
396
+ to_address: ChecksumAddress,
397
+ tx_params: t.Optional[TxParams] = None,
398
+ web3: Web3 | None = None,
399
+ ) -> TxReceipt:
400
+ return self.send(
401
+ api_keys=api_keys,
402
+ function_name="safeMint",
403
+ function_params=[to_address],
404
+ tx_params=tx_params,
405
+ web3=web3,
406
+ )
407
+
408
+ def balanceOf(self, owner: ChecksumAddress, web3: Web3 | None = None) -> int:
409
+ balance: int = self.call("balanceOf", [owner], web3=web3)
410
+ return balance
411
+
412
+ def ownerOf(self, tokenId: int, web3: Web3 | None = None) -> ChecksumAddress:
413
+ owner = Web3.to_checksum_address(self.call("ownerOf", [tokenId], web3=web3))
414
+ return owner
415
+
416
+ def name(self, web3: Web3 | None = None) -> str:
417
+ name: str = self.call("name", web3=web3)
418
+ return name
419
+
420
+ def symbol(self, web3: Web3 | None = None) -> str:
421
+ symbol: str = self.call("symbol", web3=web3)
422
+ return symbol
423
+
424
+ def tokenURI(self, tokenId: int, web3: Web3 | None = None) -> str:
425
+ uri: str = self.call("tokenURI", [tokenId], web3=web3)
426
+ return uri
427
+
428
+ def safeTransferFrom(
429
+ self,
430
+ api_keys: APIKeys,
431
+ from_address: ChecksumAddress,
432
+ to_address: ChecksumAddress,
433
+ tokenId: int,
434
+ tx_params: t.Optional[TxParams] = None,
435
+ web3: Web3 | None = None,
436
+ ) -> TxReceipt:
437
+ return self.send(
438
+ api_keys=api_keys,
439
+ function_name="safeTransferFrom",
440
+ function_params=[from_address, to_address, tokenId],
441
+ tx_params=tx_params,
442
+ web3=web3,
443
+ )
444
+
445
+
385
446
  class ContractOnGnosisChain(ContractBaseClass):
386
447
  """
387
448
  Contract base class with Gnosis Chain configuration.
@@ -403,6 +464,14 @@ class ContractERC20OnGnosisChain(ContractERC20BaseClass, ContractOnGnosisChain):
403
464
  """
404
465
 
405
466
 
467
+ class ContractOwnableERC721OnGnosisChain(
468
+ ContractOwnableERC721BaseClass, ContractOnGnosisChain
469
+ ):
470
+ """
471
+ Ownable ERC-721 standard base class with Gnosis Chain configuration.
472
+ """
473
+
474
+
406
475
  class ContractDepositableWrapperERC20OnGnosisChain(
407
476
  ContractDepositableWrapperERC20BaseClass, ContractERC20OnGnosisChain
408
477
  ):
@@ -28,6 +28,8 @@ class DBManager:
28
28
  return cls._instances[url_hash]
29
29
 
30
30
  def __init__(self, api_keys: APIKeys | None = None) -> None:
31
+ if hasattr(self, "_initialized"):
32
+ return
31
33
  sqlalchemy_db_url = (api_keys or APIKeys()).sqlalchemy_db_url
32
34
  self._engine = create_engine(
33
35
  sqlalchemy_db_url.get_secret_value(),
@@ -36,6 +38,7 @@ class DBManager:
36
38
  pool_size=2,
37
39
  )
38
40
  self.cache_table_initialized: dict[str, bool] = {}
41
+ self._initialized = True
39
42
 
40
43
  @contextmanager
41
44
  def get_session(self) -> Generator[Session, None, None]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prediction-market-agent-tooling
3
- Version: 0.57.5.dev217
3
+ Version: 0.57.6
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  Author: Gnosis
6
6
  Requires-Python: >=3.10,<3.12
@@ -11,6 +11,7 @@ prediction_market_agent_tooling/abis/omen_kleros.abi.json,sha256=QPMXrYA5UCo_wVU
11
11
  prediction_market_agent_tooling/abis/omen_oracle.abi.json,sha256=YPZ-FLvd4PA9pYd6d5mQI1TD11JnsE0LGxH4XcZZFCA,1775
12
12
  prediction_market_agent_tooling/abis/omen_realitio.abi.json,sha256=7HmFkBF_rq83UTaH2kRRsEfc_WZuf4n-qvkB4nhvweo,15953
13
13
  prediction_market_agent_tooling/abis/omen_thumbnailmapping.abi.json,sha256=u1-3B8FB3Ys9KVJCH-lw9ArkicdxbNMf34dV-VEGMMU,930
14
+ prediction_market_agent_tooling/abis/ownable_erc721.abi.json,sha256=9sxm588MAQmqCV_S0D3eYC7l9grbeALsd0Da_AHxdEI,8506
14
15
  prediction_market_agent_tooling/abis/proxy.abi.json,sha256=h24GXZ6Q0bSZlwh7zOv0EiDvbqUz_PHtWfKHTyPJ1w4,644
15
16
  prediction_market_agent_tooling/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
17
  prediction_market_agent_tooling/benchmark/agents.py,sha256=B1-uWdyeN4GGKMWGK_-CcAFJg1m9Y_XuaeIHPB29QR8,3971
@@ -75,11 +76,11 @@ prediction_market_agent_tooling/tools/betting_strategies/utils.py,sha256=kpIb-ci
75
76
  prediction_market_agent_tooling/tools/caches/db_cache.py,sha256=rkA7somZZo5G6OZVvNrCuCVc4kn7TUoPxmOq4J6BZ54,10391
76
77
  prediction_market_agent_tooling/tools/caches/inmemory_cache.py,sha256=ZW5iI5rmjqeAebu5T7ftRnlkxiL02IC-MxCfDB80x7w,1506
77
78
  prediction_market_agent_tooling/tools/caches/serializers.py,sha256=upSXN5__rmRlzJ6tv1h7FodKzJu9eCkFrN_zeuwroJM,2151
78
- prediction_market_agent_tooling/tools/contract.py,sha256=Um_nQlpYJRBy4MnNR1CPKESehVwx_w35LwYX6T6py_0,20837
79
+ prediction_market_agent_tooling/tools/contract.py,sha256=tJHwbDXRRRS7g-vIzqfYTOPQBcU5lqb9o_FF9OECZQ8,22941
79
80
  prediction_market_agent_tooling/tools/costs.py,sha256=EaAJ7v9laD4VEV3d8B44M4u3_oEO_H16jRVCdoZ93Uw,954
80
81
  prediction_market_agent_tooling/tools/custom_exceptions.py,sha256=Fh8z1fbwONvP4-j7AmV_PuEcoqb6-QXa9PJ9m7guMcM,93
81
82
  prediction_market_agent_tooling/tools/datetime_utc.py,sha256=2JSWF7AXQnv04_D_cu9Vmdkq0TWmGJ1QcK9AeqrA-U8,2765
82
- prediction_market_agent_tooling/tools/db/db_manager.py,sha256=D9UJuTKm2LsD6Kf3Q0Uar-x2jhTnzO2VbqGyBpuByrs,2908
83
+ prediction_market_agent_tooling/tools/db/db_manager.py,sha256=_d_oJe4GZ59Htq0iOosRz8yEps2c6MmfTNvNvMLpL8Y,3002
83
84
  prediction_market_agent_tooling/tools/google_utils.py,sha256=t3_UEEvKX3L0biSIQ560GdRbllQ6eprhK_upE243A-0,3185
84
85
  prediction_market_agent_tooling/tools/hexbytes_custom.py,sha256=Bp94qgPjvjWf1Vb4lNzGFDXRdThw1rJ91vL6r2PWq5E,2096
85
86
  prediction_market_agent_tooling/tools/httpx_cached_client.py,sha256=RxD-hwtZCMctnMwfzy8t51W9Z9gxFGtDYxBIMChazpc,406
@@ -103,8 +104,8 @@ prediction_market_agent_tooling/tools/tavily/tavily_search.py,sha256=Kw2mXNkMTYT
103
104
  prediction_market_agent_tooling/tools/transaction_cache.py,sha256=K5YKNL2_tR10Iw2TD9fuP-CTGpBbZtNdgbd0B_R7pjg,1814
104
105
  prediction_market_agent_tooling/tools/utils.py,sha256=WvuUCHgMCiMq8_wMm5PHNwvLhcdDk2zGKaAM8OUC-qY,6438
105
106
  prediction_market_agent_tooling/tools/web3_utils.py,sha256=wqUDCed3iNrn1Wao1iwGN6tzIrhpzrTRj319wlveJEo,12275
106
- prediction_market_agent_tooling-0.57.5.dev217.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
107
- prediction_market_agent_tooling-0.57.5.dev217.dist-info/METADATA,sha256=uZgA7XhDvNS_qUDT2c6Y2k5jGA14-l8c2IMSTJHaLjo,8195
108
- prediction_market_agent_tooling-0.57.5.dev217.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
109
- prediction_market_agent_tooling-0.57.5.dev217.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
110
- prediction_market_agent_tooling-0.57.5.dev217.dist-info/RECORD,,
107
+ prediction_market_agent_tooling-0.57.6.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
108
+ prediction_market_agent_tooling-0.57.6.dist-info/METADATA,sha256=VCWshrH1hcQnfq30Exw4IinOZLRsS0gS4AqtpO0vYhY,8188
109
+ prediction_market_agent_tooling-0.57.6.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
110
+ prediction_market_agent_tooling-0.57.6.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
111
+ prediction_market_agent_tooling-0.57.6.dist-info/RECORD,,