eth-prototype 1.3.2__py3-none-any.whl → 1.3.3__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.
- {eth_prototype-1.3.2.dist-info → eth_prototype-1.3.3.dist-info}/METADATA +1 -1
- {eth_prototype-1.3.2.dist-info → eth_prototype-1.3.3.dist-info}/RECORD +7 -7
- {eth_prototype-1.3.2.dist-info → eth_prototype-1.3.3.dist-info}/WHEEL +1 -1
- ethproto/aa_bundler.py +15 -6
- {eth_prototype-1.3.2.dist-info → eth_prototype-1.3.3.dist-info}/licenses/AUTHORS.rst +0 -0
- {eth_prototype-1.3.2.dist-info → eth_prototype-1.3.3.dist-info}/licenses/LICENSE.txt +0 -0
- {eth_prototype-1.3.2.dist-info → eth_prototype-1.3.3.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
|
|
1
|
-
eth_prototype-1.3.
|
2
|
-
eth_prototype-1.3.
|
1
|
+
eth_prototype-1.3.3.dist-info/licenses/AUTHORS.rst,sha256=Ui-05yYXtDZxna6o1yNcfdm8Jt68UIDQ01osiLxlYlU,95
|
2
|
+
eth_prototype-1.3.3.dist-info/licenses/LICENSE.txt,sha256=U_Q6_nDYDwZPIuhttHi37hXZ2qU2-HlV2geo9hzHXFw,1087
|
3
3
|
ethproto/__init__.py,sha256=YWkAFysBp4tZjLWWB2FFmp5yG23pUYhQvgQW9b3soXs,579
|
4
|
-
ethproto/aa_bundler.py,sha256=
|
4
|
+
ethproto/aa_bundler.py,sha256=W47fIA_w7orUu7yczfHPaHpUJRFh5op0YZHPgW3Iwik,17420
|
5
5
|
ethproto/build_artifacts.py,sha256=whIXEqnh5f89UYu4Cb3KDigGV7juUCbDnfZkg-SYMKA,9878
|
6
6
|
ethproto/contracts.py,sha256=rNVbCK1hURy7lWKhzSdXgVWo3wx9O_Ghk-6PfgOsRNk,18662
|
7
7
|
ethproto/defender_relay.py,sha256=05A8TfRZwiBhCpo924Pf9CjfKSir2Wvgg1p_asFxJbw,1777
|
@@ -12,7 +12,7 @@ ethproto/test_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
12
12
|
ethproto/test_utils/factories.py,sha256=G8DnUDG_yThRxMTCkymzcjm9lR_ni0_ZmTsb3sEfIdI,1805
|
13
13
|
ethproto/test_utils/hardhat.py,sha256=HzTqIznu6zVd_-doL96ftFJ235ktDCQen1QDQbNuwfM,2361
|
14
14
|
ethproto/test_utils/vcr_utils.py,sha256=1FH2sgJlElSjWkJLuO3C7E2J-4HKyFvjAqkCnGRZJyk,797
|
15
|
-
eth_prototype-1.3.
|
16
|
-
eth_prototype-1.3.
|
17
|
-
eth_prototype-1.3.
|
18
|
-
eth_prototype-1.3.
|
15
|
+
eth_prototype-1.3.3.dist-info/METADATA,sha256=79aBgMQ-TmEM3SO0Lhl9lG9mJeD8PEsqRD4me1VSqhQ,2650
|
16
|
+
eth_prototype-1.3.3.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
17
|
+
eth_prototype-1.3.3.dist-info/top_level.txt,sha256=Dl0X7m6N1hxeo4JpGpSNqWC2gtsN0731g-DL1J0mpjc,9
|
18
|
+
eth_prototype-1.3.3.dist-info/RECORD,,
|
ethproto/aa_bundler.py
CHANGED
@@ -29,6 +29,7 @@ AA_BUNDLER_GAS_LIMIT_FACTOR = env.float("AA_BUNDLER_GAS_LIMIT_FACTOR", 1)
|
|
29
29
|
AA_BUNDLER_PRIORITY_GAS_PRICE_FACTOR = env.float("AA_BUNDLER_PRIORITY_GAS_PRICE_FACTOR", 1)
|
30
30
|
AA_BUNDLER_BASE_GAS_PRICE_FACTOR = env.float("AA_BUNDLER_BASE_GAS_PRICE_FACTOR", 1)
|
31
31
|
AA_BUNDLER_VERIFICATION_GAS_FACTOR = env.float("AA_BUNDLER_VERIFICATION_GAS_FACTOR", 1)
|
32
|
+
AA_BUNDLER_MAX_FEE_PER_GAS = env.int("AA_BUNDLER_MAX_FEE_PER_GAS", 200000000000) # 200 gwei
|
32
33
|
|
33
34
|
AA_BUNDLER_STATE_OVERRIDES = env.json("AA_BUNDLER_STATE_OVERRIDES", default={})
|
34
35
|
|
@@ -329,6 +330,7 @@ class Bundler:
|
|
329
330
|
gas_limit_factor: float = AA_BUNDLER_GAS_LIMIT_FACTOR,
|
330
331
|
priority_gas_price_factor: float = AA_BUNDLER_PRIORITY_GAS_PRICE_FACTOR,
|
331
332
|
base_gas_price_factor: float = AA_BUNDLER_BASE_GAS_PRICE_FACTOR,
|
333
|
+
max_fee_per_gas: int = AA_BUNDLER_MAX_FEE_PER_GAS,
|
332
334
|
executor_pk: HexBytes = AA_BUNDLER_EXECUTOR_PK,
|
333
335
|
overrides: StateOverride = AA_BUNDLER_STATE_OVERRIDES,
|
334
336
|
):
|
@@ -343,6 +345,7 @@ class Bundler:
|
|
343
345
|
self.priority_gas_price_factor = priority_gas_price_factor
|
344
346
|
self.base_gas_price_factor = base_gas_price_factor
|
345
347
|
self.executor_pk = executor_pk
|
348
|
+
self.max_fee_per_gas = max_fee_per_gas
|
346
349
|
|
347
350
|
# stateOverrideSet mapping to use when calling eth_estimateUserOperationGas
|
348
351
|
# https://docs.alchemy.com/reference/eth-estimateuseroperationgas
|
@@ -353,7 +356,7 @@ class Bundler:
|
|
353
356
|
f"Bundler(type={self.bundler_type}, entrypoint={self.entrypoint}, nonce_mode={self.nonce_mode}, "
|
354
357
|
f"fixed_nonce_key={self.fixed_nonce_key}, verification_gas_factor={self.verification_gas_factor}, "
|
355
358
|
f"gas_limit_factor={self.gas_limit_factor}, priority_gas_price_factor={self.priority_gas_price_factor}, "
|
356
|
-
f"base_gas_price_factor={self.base_gas_price_factor})"
|
359
|
+
f"base_gas_price_factor={self.base_gas_price_factor}, max_fee_per_gas={self.max_fee_per_gas})"
|
357
360
|
)
|
358
361
|
|
359
362
|
def get_nonce_and_key(self, tx: Tx, fetch=False):
|
@@ -406,10 +409,17 @@ class Bundler:
|
|
406
409
|
if "error" in resp:
|
407
410
|
raise BundlerRevertError(resp["error"]["message"], response=resp)
|
408
411
|
max_priority_fee_per_gas = int(int(resp["result"], 16) * self.priority_gas_price_factor)
|
409
|
-
max_fee_per_gas = max_priority_fee_per_gas + self.get_base_fee()
|
412
|
+
max_fee_per_gas = min(max_priority_fee_per_gas + self.get_base_fee(), self.max_fee_per_gas)
|
410
413
|
|
411
414
|
return GasPrice(max_priority_fee_per_gas=max_priority_fee_per_gas, max_fee_per_gas=max_fee_per_gas)
|
412
415
|
|
416
|
+
def generic_gas_price(self):
|
417
|
+
base_fee = self.get_base_fee()
|
418
|
+
priority_fee = self.w3.eth.max_priority_fee
|
419
|
+
max_priority_fee_per_gas = int(priority_fee * self.priority_gas_price_factor)
|
420
|
+
max_fee_per_gas = min(max_priority_fee_per_gas + base_fee, self.max_fee_per_gas)
|
421
|
+
return GasPrice(max_priority_fee_per_gas=max_priority_fee_per_gas, max_fee_per_gas=max_fee_per_gas)
|
422
|
+
|
413
423
|
def build_user_operation(self, tx: Tx, retry_nonce=None) -> UserOperation:
|
414
424
|
nonce_key, nonce = self.get_nonce_and_key(tx, fetch=retry_nonce is not None)
|
415
425
|
# Consume the nonce, even if the userop may fail later
|
@@ -422,16 +432,15 @@ class Bundler:
|
|
422
432
|
|
423
433
|
if self.bundler_type == "alchemy":
|
424
434
|
gas_price = self.alchemy_gas_price()
|
425
|
-
user_operation = user_operation.add_gas_price(gas_price)
|
426
435
|
|
427
436
|
elif self.bundler_type == "generic":
|
428
|
-
|
429
|
-
pass
|
437
|
+
gas_price = self.generic_gas_price()
|
430
438
|
|
431
439
|
else:
|
432
440
|
warn(f"Unknown bundler_type: {self.bundler_type}")
|
441
|
+
gas_price = GasPrice(0, 0)
|
433
442
|
|
434
|
-
return user_operation
|
443
|
+
return user_operation.add_gas_price(gas_price)
|
435
444
|
|
436
445
|
def send_transaction(self, tx: Tx, retry_nonce=None):
|
437
446
|
user_operation = self.build_user_operation(tx, retry_nonce).sign(
|
File without changes
|
File without changes
|
File without changes
|