Skip to content

Commit

Permalink
New blind-sign ragger test
Browse files Browse the repository at this point in the history
  • Loading branch information
apaillier-ledger committed Mar 8, 2024
1 parent 6414890 commit 587eab7
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 4 deletions.
2 changes: 2 additions & 0 deletions tests/ragger/constants.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from pathlib import Path
import os

ROOT_SNAPSHOT_PATH = Path(__file__).parent
ABIS_FOLDER = "%s/abis" % (os.path.dirname(__file__))
55 changes: 55 additions & 0 deletions tests/ragger/test_blind_sign.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import json
from ragger.backend import BackendInterface
from ragger.firmware import Firmware
from ragger.navigator import Navigator, NavInsID
from ragger.error import ExceptionRAPDU
from ledger_app_clients.ethereum.client import EthAppClient
from web3 import Web3
from constants import ROOT_SNAPSHOT_PATH, ABIS_FOLDER


# Token approval, would require loading the "internal plugin" &
# providing the token metadata from the CAL
def test_blind_sign(firmware: Firmware,
backend: BackendInterface,
navigator: Navigator):
app_client = EthAppClient(backend)

with open("%s/erc20.json" % (ABIS_FOLDER)) as file:
contract = Web3().eth.contract(
abi=json.load(file),
address=None
)
data = contract.encodeABI("approve", [
# Uniswap Protocol: Permit2
bytes.fromhex("000000000022d473030f116ddee9f6b43ac78ba3"),
Web3.to_wei("2", "ether")
])
tx_params = {
"nonce": 235,
"maxFeePerGas": Web3.to_wei(100, "gwei"),
"maxPriorityFeePerGas": Web3.to_wei(10, "gwei"),
"gas": 44001,
# Maker: Dai Stablecoin
"to": bytes.fromhex("6b175474e89094c44da98b954eedeac495271d0f"),
"data": data,
"chainId": 1
}
try:
with app_client.sign("m/44'/60'/0'/0/0", tx_params):
pass
except ExceptionRAPDU:
pass
else:
assert False

moves = list()
if firmware.device.startswith("nano"):
if firmware.device == "nanos":
moves += [NavInsID.RIGHT_CLICK]
moves += [NavInsID.BOTH_CLICK]
else:
moves += [NavInsID.USE_CASE_CHOICE_CONFIRM]
navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH,
"blind-signed_approval",
moves)
5 changes: 1 addition & 4 deletions tests/ragger/test_nft.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,9 @@
from ledger_app_clients.ethereum.utils import get_selector_from_data, recover_transaction
from web3 import Web3
import json
import os
from constants import ROOT_SNAPSHOT_PATH
from constants import ROOT_SNAPSHOT_PATH, ABIS_FOLDER


ABIS_FOLDER = "%s/abis" % (os.path.dirname(__file__))

BIP32_PATH = "m/44'/60'/0'/0/0"
NONCE = 21
GAS_PRICE = 13
Expand Down

0 comments on commit 587eab7

Please sign in to comment.