Skip to content

Commit c06970f

Browse files
committed
fix stuff
1 parent 1b1bd7a commit c06970f

File tree

9 files changed

+36
-11
lines changed

9 files changed

+36
-11
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from chainbench.user import EvmUser, WssJrpcUser
2+
from chainbench.user.protocol.ethereum import EthSubscribe
3+
4+
5+
class EthSubscriptions(WssJrpcUser, EvmUser):
6+
subscriptions = [
7+
EthSubscribe(["newHeads"]),
8+
# logs subscription for approve method signature
9+
EthSubscribe(["logs", {"topics": ["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"]}]),
10+
EthSubscribe(["newPendingTransactions"]),
11+
]
12+
13+
def get_notification_name(self, parsed_response: dict):
14+
return self.get_subscription(
15+
subscription_id=parsed_response["params"]["subscription"]
16+
).subscribe_rpc_call.params[0]

chainbench/test_data/blockchain.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class Block:
4747
block_number: BlockNumber
4848

4949
def to_json(self) -> str:
50-
return json.dumps(self.__dict__)
50+
return json.dumps(self.__dict__).decode("utf-8")
5151

5252

5353
@dataclass

chainbench/user/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from .common import get_subclass_tasks
55
from .http import HttpUser
6-
from .jsonrpc import JsonRpcUser
6+
from .jsonrpc import JrpcHttpUser
77
from .wss import WssJrpcUser
88

99
# importing plugins here as all profiles depend on it
@@ -15,7 +15,7 @@
1515
"EthBeaconUser",
1616
"EvmUser",
1717
"HttpUser",
18-
"JsonRpcUser",
18+
"JrpcHttpUser",
1919
"SolanaUser",
2020
"StarkNetUser",
2121
"WssJrpcUser",

chainbench/user/jsonrpc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
)
1313

1414

15-
class JsonRpcUser(HttpUser):
15+
class JrpcHttpUser(HttpUser):
1616
"""Extension of HttpUser to provide JsonRPC support."""
1717

1818
abstract = True

chainbench/user/protocol/ethereum.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from chainbench.test_data.ethereum import EthBeaconTestData
77
from chainbench.user.http import HttpUser
8+
from chainbench.user.wss import WSSubscription
89

910
logger = logging.getLogger(__name__)
1011

@@ -329,3 +330,8 @@ class TestEthMethod(EthBeaconUser):
329330
@task
330331
def run_task(self) -> None:
331332
self.method_to_task_function(self.environment.parsed_options.method)()
333+
334+
335+
class EthSubscribe(WSSubscription):
336+
def __init__(self, params: dict | list):
337+
super().__init__("eth_subscribe", params, "eth_unsubscribe")

chainbench/user/protocol/evm.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
Tx,
99
TxHash,
1010
)
11-
from chainbench.user.jsonrpc import JsonRpcUser
11+
from chainbench.user.jsonrpc import JrpcHttpUser
1212
from chainbench.user.tag import tag
1313
from chainbench.util.jsonrpc import RpcCall
1414
from chainbench.util.rng import RNG, RNGManager
1515

1616

17-
class EvmBaseUser:
17+
class EvmBaseUser(JrpcHttpUser):
1818
abstract = True
1919
test_data: EvmTestData = EvmTestData()
2020
rng = RNGManager()
@@ -396,7 +396,7 @@ def web3_sha3(self) -> RpcCall:
396396
return RpcCall(method="web3_sha3", params=[self.test_data.get_random_tx_hash(self.rng.get_rng())])
397397

398398

399-
class EvmUser(EvmRpcMethods, JsonRpcUser):
399+
class EvmUser(EvmRpcMethods):
400400
abstract = True
401401

402402
@staticmethod

chainbench/user/protocol/solana.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
from solders.message import Message
55

66
from chainbench.test_data import Account, BlockNumber, SolanaTestData, TxHash
7-
from chainbench.user.jsonrpc import JsonRpcUser
7+
from chainbench.user.jsonrpc import JrpcHttpUser
88
from chainbench.util.jsonrpc import RpcCall
99
from chainbench.util.rng import RNG, RNGManager
1010

1111

12-
class SolanaBaseUser(JsonRpcUser):
12+
class SolanaBaseUser(JrpcHttpUser):
1313
abstract = True
1414
test_data = SolanaTestData()
1515
rng = RNGManager()

chainbench/user/protocol/starknet.py

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

33
from chainbench.test_data import StarkNetTestData
44
from chainbench.test_data.blockchain import Account, TxHash
5-
from chainbench.user.jsonrpc import JsonRpcUser
5+
from chainbench.user.jsonrpc import JrpcHttpUser
66
from chainbench.util.rng import RNG
77

88

9-
class StarkNetUser(JsonRpcUser):
9+
class StarkNetUser(JrpcHttpUser):
1010
abstract = True
1111
test_data = StarkNetTestData()
1212

chainbench/user/wss.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ def __init__(self, environment: Environment):
5656
self._requests: dict[int, WSRequest] = {}
5757
self._running: bool = False
5858

59+
def get_subscription(self, subscription_id: str | int):
60+
return self.subscriptions[self.subscription_ids_to_index[subscription_id]]
61+
5962
@task
6063
def dummy_task(self):
6164
gevent.sleep(3600)

0 commit comments

Comments
 (0)