Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
74eaf27
feat(cketh): balance-scan scheduling layer (block height + per-addres…
gregorydemay Jul 23, 2026
75a25bb
test(cketh): add new DepositAddressRegistration fields in integration…
gregorydemay Jul 23, 2026
2676d9b
docs(cketh): clarify hourly-tail cumulative-seconds comment
gregorydemay Jul 23, 2026
266ec82
Merge branch 'master' into ic_DEFI-2923_scan-scheduling
gregorydemay Jul 28, 2026
7453713
fix(cketh): only update latest block height when it increases
gregorydemay Jul 28, 2026
729ea7d
test(cketh): answer latest block height outcall in stop-during-scrapi…
gregorydemay Jul 28, 2026
36e946d
test(cketh): tick twice to process ckERC20 reimbursement
gregorydemay Jul 28, 2026
86d4442
feat(cketh): expose latest block height metric and test its monotonicity
gregorydemay Jul 28, 2026
2be13c1
refactor(cketh): compute elapsed scan time in seconds instead of Bloc…
gregorydemay Jul 28, 2026
7946ecc
refactor(cketh): make deposit registration scan_count non-optional
gregorydemay Jul 28, 2026
f877b45
test(cketh): simplify refresh helper in latest block height test
gregorydemay Jul 28, 2026
b93f99b
test(cketh): wait for the full request, not just the method, in the R…
gregorydemay Jul 28, 2026
734c423
test(cketh): group addresses_due_for_scan tests into their own module
gregorydemay Jul 28, 2026
dc4e1ca
feat(cketh): expose deposit-address scan fields via get_events
gregorydemay Jul 28, 2026
9b15baa
refactor(cketh): rename addresses_due_for_scan to addresses_to_scan_iter
gregorydemay Jul 28, 2026
4970c70
fix(cketh): fix typo in previous_latest_block_number
gregorydemay Jul 28, 2026
fa9a257
chore(cketh): re-trigger CI to apply CI_OVERRIDE_DIDC_CHECK
gregorydemay Jul 28, 2026
ffc83d7
feat(cketh): DEFI-2923 balance scan (filter 1)
gregorydemay Jul 23, 2026
5f82308
test(cketh): drop identity op in multicall3 golden vector
gregorydemay Jul 23, 2026
96d3373
fix(cketh): report live address count on empty-token balance scan
gregorydemay Jul 23, 2026
6834718
refactor(cketh): move multicall3.rs to multicall3/mod.rs
gregorydemay Jul 23, 2026
78eb2d7
refactor(cketh): replace Multicall3 balance scan with a deployless ba…
gregorydemay Jul 28, 2026
959d66c
feat(cketh): drive the balance scan from the block-based scan schedule
gregorydemay Jul 28, 2026
e259d29
feat(cketh): expose balance-scan progress in deposit_erc20 response
gregorydemay Jul 28, 2026
b4afdbe
test(cketh): end-to-end balance-scan test via deposit_erc20 scan prog…
gregorydemay Jul 28, 2026
0ba40d5
feat(cketh): per-token balance-scan minimums (~0.005 ETH each)
gregorydemay Jul 28, 2026
c05da48
fix(cketh): balance batcher fails loudly on a failed balanceOf sub-call
gregorydemay Jul 28, 2026
fdb26c7
fix(cketh): gate test-only BALANCE_OF_SELECTOR behind cfg(test)
gregorydemay Jul 29, 2026
08f97ce
refactor(cketh): round per-token balance-scan minimums to round amounts
gregorydemay Jul 29, 2026
fae3ae4
refactor(cketh): inline balance-scan selection with skip-reason logging
gregorydemay Jul 29, 2026
4e49d9b
test(cketh): unit-test the balance scan via a stubbed RPC runtime
gregorydemay Jul 29, 2026
27c4be8
test(cketh): table-drive the balance-scan skip test
gregorydemay Jul 29, 2026
850b93f
perf(cketh): raise balance-scan batch cap to 1000 with a documented r…
gregorydemay Jul 29, 2026
1df98b0
test(cketh): assert addresses are never split across balance-scan chunks
gregorydemay Jul 29, 2026
4afa4cd
refactor(cketh): extract plan_batches and test the non-split invarian…
gregorydemay Jul 29, 2026
9cbf4fb
Automatically fixing code for linting and formatting issues
Jul 29, 2026
4d5ad51
test(cketh): pin the balancer initcode to a readable assembly golden
gregorydemay Jul 29, 2026
618605a
test(cketh): verify the balance batcher bytecode on a local anvil node
gregorydemay Jul 29, 2026
da40da3
chore(cketh): note follow-up to queue scanned addresses with balance …
gregorydemay Jul 29, 2026
6948096
chore(cketh): fix typo in sweeping TODO comment
gregorydemay Jul 29, 2026
d672cc3
test(cketh): end-to-end balance scan against a live anvil node
gregorydemay Jul 29, 2026
a5db64b
Automatically fixing code for linting and formatting issues
Jul 29, 2026
105e154
test(cketh): register the deposit address as a user, not the orchestr…
gregorydemay Jul 29, 2026
7f8b257
Automatically fixing code for linting and formatting issues
Jul 29, 2026
702237f
test(cketh): wait on the balance scan via deposit_erc20, not metrics
gregorydemay Jul 29, 2026
56a5004
test(cketh): move the anvil client into test_utils and let the harnes…
gregorydemay Jul 29, 2026
8a32864
Automatically fixing code for linting and formatting issues
Jul 29, 2026
52c2437
test(cketh): make caller and fund methods instead of free functions
gregorydemay Jul 29, 2026
c13b9cc
chore(cketh): drop the unused edition attribute from the deposit_from…
gregorydemay Jul 29, 2026
87222d6
Automatically fixing code for linting and formatting issues
Jul 29, 2026
c41385f
test(cketh): split the anvil client into its own test_utils module
gregorydemay Jul 29, 2026
7c3bb5f
refactor(cketh): tidy the anvil/live-scan test modules
gregorydemay Jul 29, 2026
26ded96
Merge remote-tracking branch 'origin/master' into ic_DEFI-2923_balanc…
gregorydemay Jul 30, 2026
14eb493
test(cketh): cover the per-token minimum in the live balance scan
gregorydemay Jul 30, 2026
b0e768e
test(cketh): time-box the anvil JSON-RPC client and clarify outcall docs
gregorydemay Jul 30, 2026
b508bce
test(cketh): reuse one anvil RPC client and stop panicking on transpo…
gregorydemay Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 13 additions & 6 deletions rs/ethereum/cketh/minter/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -285,28 +285,35 @@ rust_test(
)

rust_test(
name = "deposit_from_cex_test",
size = "small",
name = "deposit_from_cex",
# The end-to-end balance-scan test runs a live PocketIC and waits (wall-clock) for the minter's
# periodic scan, so it needs a larger timeout than the pure-anvil tests.
size = "medium",
srcs = ["tests/deposit_from_cex.rs"],
data = [
"//:anvil",
"//:solc",
# Reuses the mock ERC-20 source compiled at test time by the vendored solc.
"tests/deposit_from_cex_demo/MockUSDT.sol",
# End-to-end balance scan on a live PocketIC + local anvil node.
":cketh_minter_debug.wasm.gz",
"//rs/pocket_ic_server:pocket-ic-server",
"@evm_rpc.wasm.gz//file",
],
env = {
"ANVIL_BIN": "$(rootpath //:anvil)",
"MOCKUSDT_SOL": "$(rootpath tests/deposit_from_cex_demo/MockUSDT.sol)",
"SOLC_BIN": "$(rootpath //:solc)",
"CARGO_MANIFEST_DIR": "rs/ethereum/cketh/minter",
"CKETH_MINTER_WASM_PATH": "$(rootpath :cketh_minter_debug.wasm.gz)",
"EVM_RPC_CANISTER_WASM_PATH": "$(rootpath @evm_rpc.wasm.gz//file)",
"POCKET_IC_BIN": "$(rootpath //rs/pocket_ic_server:pocket-ic-server)",
},
deps = [
# Keep sorted.
":minter",
"//packages/ic-ethereum-types",
"@crate_index//:ethers-core",
"@crate_index//:hex",
"@crate_index//:reqwest",
"@crate_index//:serde_json",
"//rs/ethereum/cketh/test_utils",
],
)

Expand Down
Loading
Loading