Skip to content

Commit

Permalink
Using json.dumps() instead of str() to ensure compatability with …
Browse files Browse the repository at this point in the history
…`JSON.stringify()`
  • Loading branch information
Dzeranov committed Aug 24, 2023
1 parent 6dbfc61 commit 28276f2
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 9 deletions.
6 changes: 4 additions & 2 deletions packages/examples/cvat/exchange-oracle/src/chain/web3.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import json

from web3 import Web3
from web3.middleware import construct_sign_and_send_raw_middleware
from web3.providers.rpc import HTTPProvider
Expand Down Expand Up @@ -55,15 +57,15 @@ def sign_message(chain_id: Networks, message) -> str:
raise ValueError(f"{chain_id} is not in available list of networks.")

signed_message = w3.eth.account.sign_message(
encode_defunct(text=str(message)), private_key
encode_defunct(text=json.dumps(message, separators=(",", ":"))), private_key
)

return signed_message.signature.hex()


def recover_signer(chain_id: Networks, message, signature: str) -> str:
w3 = get_web3(chain_id)
message_hash = encode_defunct(text=str(message))
message_hash = encode_defunct(text=json.dumps(message, separators=(",", ":")))
signer = w3.eth.account.recover_message(message_hash, signature=signature)

return signer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,5 +186,5 @@ def test_incoming_webhook_400(client: TestClient) -> None:
)
assert response.status_code == 400
assert response.json() == {
"message": "Webhook sender address doesn't match. Expected: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266, received: 0x44EA19Fbb88cF0884867F81BE0363A469cBEa9AE."
"message": "Webhook sender address doesn't match. Expected: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266, received: 0x0a2a7194105FeC656c2cB10F53aA75db504B7281."
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ def tearDown(self):

@patch("src.cvat.create_job.cvat_api")
def test_process_job_launcher_webhooks_successful(self, mock_cvat_api):

mock_cvat_api.create_cloudstorage.return_value.id = 1
mock_cvat_api.create_project.return_value.id = 1
mock_cvat_api.create_task.return_value.id = 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
DEFAULT_URL = "http://host.docker.internal:9000/manifests/manifest.json"
DEFAULT_HASH = "test"

SIGNATURE = "0x63fde9fec5d1924c8837bae8f19c632291725fb94bb03fb3e8d89bf6de17f52014e402e5769d27989a73e889c9aa35c7ace790d2b239d8e1d9d07046ae2d44f51c"
SIGNATURE = "0xa0c5626301e3c198cb91356e492890c0c28db8c37044846134939246911a693c4d7116d04aa4bc40a41077493868b8dd533d30980f6addb28d1b3610a84cb4091c"

WEBHOOK_MESSAGE = {
"escrow_address": "0x12E66A452f95bff49eD5a30b0d06Ebc37C5A94B6",
"chain_id": 80001,
}

WEBHOOK_MESSAGE_SIGNED = "0x4e96d32ae94b9cadeb0185ada4bb69ce1e3aafa2a19b5bbd85877e8ce98f890e398877652c251d372f17997d42d897c5a608b783d845b8563d2cbc61bbb1cd331b"
WEBHOOK_MESSAGE_SIGNED = "0x99819b33bcb0297ea2b59b84f3ab184360f5e7ad64c44df1f761d45242c32970605e9fe761b191504607e0070cd0d291e5d7aa04a2e4c362a698c2e2de3c81351c"
6 changes: 4 additions & 2 deletions packages/examples/cvat/recording-oracle/src/chain/web3.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import json

from web3 import Web3
from web3.middleware import construct_sign_and_send_raw_middleware
from web3.providers.rpc import HTTPProvider
Expand Down Expand Up @@ -55,15 +57,15 @@ def sign_message(chain_id: Networks, message) -> str:
raise ValueError(f"{chain_id} is not in available list of networks.")

signed_message = w3.eth.account.sign_message(
encode_defunct(text=str(message)), private_key
encode_defunct(text=json.dumps(message, separators=(",", ":"))), private_key
)

return signed_message.signature.hex()


def recover_signer(chain_id: Networks, message, signature: str) -> str:
w3 = get_web3(chain_id)
message_hash = encode_defunct(text=str(message))
message_hash = encode_defunct(text=json.dumps(message, separators=(",", ":")))
signer = w3.eth.account.recover_message(message_hash, signature=signature)

return signer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
DEFAULT_URL = "http://host.docker.internal:9000/manifests/manifest.json"
DEFAULT_HASH = "test"

SIGNATURE = "0x63fde9fec5d1924c8837bae8f19c632291725fb94bb03fb3e8d89bf6de17f52014e402e5769d27989a73e889c9aa35c7ace790d2b239d8e1d9d07046ae2d44f51c"
SIGNATURE = "0xa0c5626301e3c198cb91356e492890c0c28db8c37044846134939246911a693c4d7116d04aa4bc40a41077493868b8dd533d30980f6addb28d1b3610a84cb4091c"

WEBHOOK_MESSAGE = {
"escrow_address": "0xFE776895f6b00AA53969b20119a4777Ed920676a",
Expand Down

0 comments on commit 28276f2

Please sign in to comment.