Skip to content

Commit bc0d13a

Browse files
🔖 (release) [NO-ISSUE]: Release Signer HyperLiquid 1.0.1 (#1368)
2 parents 9cac792 + 506a324 commit bc0d13a

34 files changed

Lines changed: 1784 additions & 49 deletions

.changeset/heavy-pied-write.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.github/workflows/erc7730_nightly.yml

Lines changed: 108 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ jobs:
3333

3434
- uses: LedgerHQ/device-sdk-ts/.github/actions/setup-with-build-cache-composite@develop
3535

36-
erc7730-tests:
37-
name: ERC7730 Tests (${{ matrix.device }} - ${{ matrix.include_dapp.dapp }})
36+
erc7730-calldata-tests:
37+
name: ERC7730 Calldata Tests (${{ matrix.device }} - ${{ matrix.include_dapp.dapp }})
3838
needs: [build-libraries]
3939
runs-on: ledgerhq-device-sdk
4040
strategy:
@@ -95,7 +95,7 @@ jobs:
9595
- name: Pull Speculos Docker image
9696
run: docker pull ghcr.io/ledgerhq/speculos
9797

98-
- name: Run ERC7730 Test
98+
- name: Run ERC7730 Calldata Test
9999
id: erc7730-test
100100
env:
101101
FORCE_COLOR: "0"
@@ -115,7 +115,7 @@ jobs:
115115
- name: Write job summary
116116
if: always()
117117
run: |
118-
echo "## 🧪 ERC7730 Test Results (${{ matrix.device }} - ${{ matrix.include_dapp.dapp }})" >> $GITHUB_STEP_SUMMARY
118+
echo "## ERC7730 Calldata Test Results (${{ matrix.device }} - ${{ matrix.include_dapp.dapp }})" >> $GITHUB_STEP_SUMMARY
119119
echo "" >> $GITHUB_STEP_SUMMARY
120120
if [ -f /tmp/cs-tester-output.log ]; then
121121
echo '```' >> $GITHUB_STEP_SUMMARY
@@ -124,13 +124,115 @@ jobs:
124124
sed -n '/📊/,/^└/p' /tmp/cs-tester-output.log >> $GITHUB_STEP_SUMMARY
125125
echo '```' >> $GITHUB_STEP_SUMMARY
126126
else
127-
echo "⚠️ No test output available" >> $GITHUB_STEP_SUMMARY
127+
echo "No test output available" >> $GITHUB_STEP_SUMMARY
128128
fi
129129
130130
- name: Upload logs
131131
if: always()
132132
uses: actions/upload-artifact@v6
133133
with:
134-
name: erc7730-logs-${{ matrix.device }}-${{ matrix.include_dapp.dapp }}
134+
name: erc7730-calldata-logs-${{ matrix.device }}-${{ matrix.include_dapp.dapp }}
135+
path: /tmp/logs/
136+
retention-days: 7
137+
138+
erc7730-eip712-tests:
139+
name: ERC7730 EIP712 Tests (${{ matrix.device }} - ${{ matrix.include_dapp.dapp }})
140+
needs: [build-libraries]
141+
runs-on: ledgerhq-device-sdk
142+
strategy:
143+
fail-fast: false
144+
matrix:
145+
device:
146+
- stax
147+
- nanox
148+
- flex
149+
include_dapp:
150+
- dapp: "1inch"
151+
chain: ""
152+
- dapp: "degate"
153+
chain: ""
154+
- dapp: "ledgerquest"
155+
chain: ""
156+
- dapp: "lens"
157+
chain: ""
158+
- dapp: "lombard"
159+
chain: ""
160+
- dapp: "opensea"
161+
chain: ""
162+
- dapp: "permit"
163+
chain: ""
164+
- dapp: "smartcredit"
165+
chain: ""
166+
- dapp: "tally"
167+
chain: ""
168+
- dapp: "uniswap"
169+
chain: ""
170+
- dapp: "velora"
171+
chain: ""
172+
steps:
173+
- uses: actions/checkout@v6
174+
175+
- uses: LedgerHQ/device-sdk-ts/.github/actions/setup-with-build-cache-composite@develop
176+
177+
- name: Generate token
178+
id: generate-token
179+
uses: actions/create-github-app-token@v2
180+
with:
181+
app-id: ${{ secrets.GH_BOT_APP_ID }}
182+
private-key: ${{ secrets.GH_BOT_PRIVATE_KEY }}
183+
owner: LedgerHQ
184+
repositories: coin-apps
185+
186+
- name: Retrieving coin apps
187+
uses: actions/checkout@v6
188+
with:
189+
ref: master
190+
repository: LedgerHQ/coin-apps
191+
token: ${{ steps.generate-token.outputs.token }}
192+
path: coin-apps
193+
sparse-checkout: |
194+
${{ matrix.device }}/*/Ethereum/*.elf
195+
sparse-checkout-cone-mode: false
196+
197+
- name: Pull Speculos Docker image
198+
run: docker pull ghcr.io/ledgerhq/speculos
199+
200+
- name: Run ERC7730 EIP712 Test
201+
id: erc7730-eip712-test
202+
env:
203+
FORCE_COLOR: "0"
204+
GATING_TOKEN: ${{ secrets.GATING_TOKEN }}
205+
COIN_APPS_PATH: "${{ github.workspace }}/coin-apps"
206+
run: |
207+
set -o pipefail
208+
mkdir -p /tmp/logs/screenshots
209+
pnpm cs-tester test:erc7730:typed-data ${{ matrix.include_dapp.dapp }} ${{ matrix.include_dapp.chain }} \
210+
--device ${{ matrix.device }} \
211+
--log-level error \
212+
--log-file "/tmp/logs/erc7730-eip712-${{ matrix.include_dapp.dapp }}.log" \
213+
--file-log-level debug \
214+
--screenshot-folder-path "/tmp/logs/screenshots" \
215+
2>&1 | tee /tmp/cs-tester-output.log
216+
217+
- name: Write job summary
218+
if: always()
219+
run: |
220+
echo "## ERC7730 EIP712 Test Results (${{ matrix.device }} - ${{ matrix.include_dapp.dapp }})" >> $GITHUB_STEP_SUMMARY
221+
echo "" >> $GITHUB_STEP_SUMMARY
222+
if [ -f /tmp/cs-tester-output.log ]; then
223+
echo '```' >> $GITHUB_STEP_SUMMARY
224+
sed -n '/📋/,/^└/p' /tmp/cs-tester-output.log >> $GITHUB_STEP_SUMMARY
225+
echo "" >> $GITHUB_STEP_SUMMARY
226+
sed -n '/📊/,/^└/p' /tmp/cs-tester-output.log >> $GITHUB_STEP_SUMMARY
227+
echo '```' >> $GITHUB_STEP_SUMMARY
228+
else
229+
echo "No test output available" >> $GITHUB_STEP_SUMMARY
230+
fi
231+
232+
- name: Upload logs
233+
if: always()
234+
uses: actions/upload-artifact@v6
235+
with:
236+
name: erc7730-eip712-logs-${{ matrix.device }}-${{ matrix.include_dapp.dapp }}
135237
path: /tmp/logs/
136238
retention-days: 7

apps/clear-signing-tester/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
"test:raw:complete": "pnpm cli raw-file ./ressources/core/raw-complete.json",
2323
"test:raw:multisig": "pnpm cli raw-file ./ressources/core/raw-multisig.json",
2424
"test:typed-data:multisig": "pnpm cli typed-data-file ./ressources/core/typed-data-multisig.json",
25-
"test:erc7730": "./scripts/test-erc7730.sh"
25+
"test:erc7730": "./scripts/test-erc7730-calldata.sh",
26+
"test:erc7730:typed-data": "./scripts/test-erc7730-typed-data.sh"
2627
},
2728
"dependencies": {
2829
"@ledgerhq/cal-interceptor": "workspace:^",
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
[
2+
{
3+
"data": {
4+
"domain": {
5+
"name": "Permit2",
6+
"version": "1",
7+
"chainId": 1,
8+
"verifyingContract": "0x119c71d3bbac22029622cbaec24854d3d32d2828"
9+
},
10+
"primaryType": "OrderStructure",
11+
"types": {
12+
"EIP712Domain": [
13+
{ "name": "name", "type": "string" },
14+
{ "name": "version", "type": "string" },
15+
{ "name": "chainId", "type": "uint256" },
16+
{ "name": "verifyingContract", "type": "address" }
17+
],
18+
"OrderStructure": [
19+
{ "name": "salt", "type": "uint256" },
20+
{ "name": "maker", "type": "address" },
21+
{ "name": "receiver", "type": "address" },
22+
{ "name": "makerAsset", "type": "address" },
23+
{ "name": "takerAsset", "type": "address" },
24+
{ "name": "makingAmount", "type": "uint256" },
25+
{ "name": "takingAmount", "type": "uint256" },
26+
{ "name": "makerTraits", "type": "uint256" }
27+
]
28+
},
29+
"message": {
30+
"salt": "1000001",
31+
"maker": "0x6cbcd73cd8e8a42844662f0a0e76d7f79afd933d",
32+
"receiver": "0x1111111254eeb25477b68fb85ed929f73a960582",
33+
"makerAsset": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
34+
"takerAsset": "0xdac17f958d2ee523a2206206994597c13d831ec7",
35+
"makingAmount": "1000000000",
36+
"takingAmount": "999000000",
37+
"makerTraits": "0"
38+
}
39+
},
40+
"description": "1inch Limit Order: OrderStructure (v4)"
41+
},
42+
{
43+
"data": {
44+
"domain": {
45+
"name": "Permit2",
46+
"version": "1",
47+
"chainId": 1,
48+
"verifyingContract": "0x111111125421cA6dc452d289314280a0f8842A65"
49+
},
50+
"primaryType": "Order",
51+
"types": {
52+
"EIP712Domain": [
53+
{ "name": "name", "type": "string" },
54+
{ "name": "version", "type": "string" },
55+
{ "name": "chainId", "type": "uint256" },
56+
{ "name": "verifyingContract", "type": "address" }
57+
],
58+
"Order": [
59+
{ "name": "salt", "type": "uint256" },
60+
{ "name": "maker", "type": "address" },
61+
{ "name": "receiver", "type": "address" },
62+
{ "name": "makerAsset", "type": "address" },
63+
{ "name": "takerAsset", "type": "address" },
64+
{ "name": "makingAmount", "type": "uint256" },
65+
{ "name": "takingAmount", "type": "uint256" },
66+
{ "name": "makerTraits", "type": "uint256" }
67+
]
68+
},
69+
"message": {
70+
"salt": "2000002",
71+
"maker": "0x6cbcd73cd8e8a42844662f0a0e76d7f79afd933d",
72+
"receiver": "0x1111111254eeb25477b68fb85ed929f73a960582",
73+
"makerAsset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
74+
"takerAsset": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
75+
"makingAmount": "500000000000000000",
76+
"takingAmount": "1250000000",
77+
"makerTraits": "0"
78+
}
79+
},
80+
"description": "1inch AggregationRouterV6: Order"
81+
}
82+
]
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
[
2+
{
3+
"data": {
4+
"domain": {
5+
"name": "DeGate",
6+
"version": "1",
7+
"chainId": 1,
8+
"verifyingContract": "0xe63602a9b3dfe983187525ac985fec4f57b24ed5"
9+
},
10+
"primaryType": "AccountUpdate",
11+
"types": {
12+
"EIP712Domain": [
13+
{ "name": "name", "type": "string" },
14+
{ "name": "version", "type": "string" },
15+
{ "name": "chainId", "type": "uint256" },
16+
{ "name": "verifyingContract", "type": "address" }
17+
],
18+
"AccountUpdate": [
19+
{ "name": "owner", "type": "address" },
20+
{ "name": "accountID", "type": "uint32" },
21+
{ "name": "feeTokenID", "type": "uint32" },
22+
{ "name": "maxFee", "type": "uint96" },
23+
{ "name": "publicKey", "type": "uint256" },
24+
{ "name": "validUntil", "type": "uint32" },
25+
{ "name": "nonce", "type": "uint32" }
26+
]
27+
},
28+
"message": {
29+
"owner": "0x6cbcd73cd8e8a42844662f0a0e76d7f79afd933d",
30+
"accountID": 12345,
31+
"feeTokenID": 0,
32+
"maxFee": "100000000000000",
33+
"publicKey": "1234567890123456789012345678901234567890",
34+
"validUntil": 1735689600,
35+
"nonce": 1
36+
}
37+
},
38+
"description": "DeGate: AccountUpdate"
39+
},
40+
{
41+
"data": {
42+
"domain": {
43+
"name": "DeGate",
44+
"version": "1",
45+
"chainId": 1,
46+
"verifyingContract": "0xe63602a9b3dfe983187525ac985fec4f57b24ed5"
47+
},
48+
"primaryType": "Withdrawal",
49+
"types": {
50+
"EIP712Domain": [
51+
{ "name": "name", "type": "string" },
52+
{ "name": "version", "type": "string" },
53+
{ "name": "chainId", "type": "uint256" },
54+
{ "name": "verifyingContract", "type": "address" }
55+
],
56+
"Withdrawal": [
57+
{ "name": "owner", "type": "address" },
58+
{ "name": "accountID", "type": "uint32" },
59+
{ "name": "tokenID", "type": "uint32" },
60+
{ "name": "amount", "type": "uint248" },
61+
{ "name": "feeTokenID", "type": "uint32" },
62+
{ "name": "maxFee", "type": "uint96" },
63+
{ "name": "to", "type": "address" },
64+
{ "name": "minGas", "type": "uint248" },
65+
{ "name": "validUntil", "type": "uint32" },
66+
{ "name": "storageID", "type": "uint32" }
67+
]
68+
},
69+
"message": {
70+
"owner": "0x6cbcd73cd8e8a42844662f0a0e76d7f79afd933d",
71+
"accountID": 12345,
72+
"tokenID": 1,
73+
"amount": "5000000000000000000",
74+
"feeTokenID": 0,
75+
"maxFee": "50000000000000",
76+
"to": "0x6cbcd73cd8e8a42844662f0a0e76d7f79afd933d",
77+
"minGas": "100000",
78+
"validUntil": 1735689600,
79+
"storageID": 42
80+
}
81+
},
82+
"description": "DeGate: Withdrawal"
83+
},
84+
{
85+
"data": {
86+
"domain": {
87+
"name": "DeGate",
88+
"version": "1",
89+
"chainId": 1,
90+
"verifyingContract": "0xe63602a9b3dfe983187525ac985fec4f57b24ed5"
91+
},
92+
"primaryType": "Transfer",
93+
"types": {
94+
"EIP712Domain": [
95+
{ "name": "name", "type": "string" },
96+
{ "name": "version", "type": "string" },
97+
{ "name": "chainId", "type": "uint256" },
98+
{ "name": "verifyingContract", "type": "address" }
99+
],
100+
"Transfer": [
101+
{ "name": "owner", "type": "address" },
102+
{ "name": "accountID", "type": "uint32" },
103+
{ "name": "tokenID", "type": "uint32" },
104+
{ "name": "amount", "type": "uint248" },
105+
{ "name": "feeTokenID", "type": "uint32" },
106+
{ "name": "maxFee", "type": "uint96" },
107+
{ "name": "to", "type": "address" },
108+
{ "name": "validUntil", "type": "uint32" },
109+
{ "name": "storageID", "type": "uint32" }
110+
]
111+
},
112+
"message": {
113+
"owner": "0x6cbcd73cd8e8a42844662f0a0e76d7f79afd933d",
114+
"accountID": 12345,
115+
"tokenID": 0,
116+
"amount": "1000000000000000000",
117+
"feeTokenID": 0,
118+
"maxFee": "30000000000000",
119+
"to": "0x1111111254eeb25477b68fb85ed929f73a960582",
120+
"validUntil": 1735689600,
121+
"storageID": 43
122+
}
123+
},
124+
"description": "DeGate: Transfer"
125+
}
126+
]

0 commit comments

Comments
 (0)