Skip to content

YNU-859: feat: deploy sandbox to eth sepolia, linea sepolia, amoy, base sepolia#779

Open
nksazonov wants to merge 3 commits into
mainfrom
feat/sandbox-env
Open

YNU-859: feat: deploy sandbox to eth sepolia, linea sepolia, amoy, base sepolia#779
nksazonov wants to merge 3 commits into
mainfrom
feat/sandbox-env

Conversation

@nksazonov
Copy link
Copy Markdown
Contributor

@nksazonov nksazonov commented May 21, 2026

Summary by CodeRabbit

  • Chores
    • Deployed sandbox v1.3.0 environment across multiple blockchain networks (Ethereum Sepolia, Polygon Amoy, Linea Sepolia, Base Sepolia, XRPL EVM Testnet, and Cronos Testnet).
    • Added sandbox configuration including asset definitions, blockchain network settings, and action gateway rate-limiting parameters.
    • Recorded deployment metadata and transaction artifacts for core smart contracts across all supported chains.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

📝 Walkthrough

Walkthrough

This PR records deployment of ChannelHub, validator, and escrow engine contracts across five testnets; captures deployment metadata; and provides Helm/Kubernetes configuration for a sandbox v1.3.0 environment, including asset definitions, blockchain network setup, and clearnode service parameters.

Changes

Sandbox v1.3.0 Deployment and Configuration

Layer / File(s) Summary
Deployment broadcast records across testnets
contracts/broadcast/DeployChannelHub.s.sol/*/run-*.json
Forge script broadcast artifacts recording on-chain deployments of ChannelHub, ECDSAValidator, and escrow engines across chains 11155111, 59141, 80002, 84532, and 1449000, including transaction hashes, receipts, gas usage, library addresses, and deployment timestamps.
Contract deployment metadata for sandbox v1.3.0
contracts/deployments/*/.../*.json
Deployment metadata JSON files recording ChannelHub, ECDSAValidator, ChannelEngine, EscrowDepositEngine, EscrowWithdrawalEngine, PremintERC20, and SessionKeyValidator addresses and deployment details for each testnet; updates dev-mode annotations to reflect sandbox integration; adds library address bindings for ChannelHub deployments.
Sandbox v1.3.0 runtime and node configuration
nitronode/chart/config/sandbox-v1/*.yaml, nitronode/chart/config/sandbox-v1/clearnode.yaml.gotmpl
Helm configuration defining action gateway token operation settings, five sandbox tokens (YUSD, BNB, ETH, POL, YELLOW) with blockchain-specific addresses and decimals, blockchain/chain hub configurations for five testnets with validator addresses, and clearnode Kubernetes template with GCP KMS signer configuration, Postgres connection, and service parameters.
Asset configuration migration for sandbox
nitronode/chart/config/old/sandbox-v1/assets.yaml
Updates to sandbox asset configuration with new Ether and Yellow USD token mappings across multiple blockchains (59141, 80002, 84532, 1449000, 11155111); adds XRP asset; adjusts per-chain decimals and placeholder addresses to reflect sandbox token configurations.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • layer-3/nitrolite#630: Adds clearnode/helmfile.yaml.gotmpl that loads chart/config/<env>/clearnode.yaml configurations from the same directory structure that this PR is populating for sandbox-v1.
  • layer-3/nitrolite#610: Modifies nitronode/chart/config/sandbox-v1 files including action_gateway.yaml, assets.yaml, and blockchains.yaml that are being added/updated in this PR.
  • layer-3/nitrolite#608: Updates broadcast artifacts in contracts/broadcast/DeployChannelHub.s.sol/11155111/ for the same deployment script and chains.

Suggested reviewers

  • philanton
  • ihsraham
  • dimast-x

Poem

🐰 Across five testnets hopped the contracts so grand,
With validators, escrow, and hubs close at hand,
A sandbox to play in, with tokens so bright,
Configuration wired, the system's just right! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the main change: deploying a sandbox environment to multiple blockchain networks (Ethereum Sepolia, Linea Sepolia, Polygon Amoy, and Base Sepolia), which is confirmed by the extensive addition of deployment metadata files and configuration across these chains.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/sandbox-env

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (2)
contracts/deployments/59141/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json (1)

5-5: ⚡ Quick win

Normalize commit hash format across deployment manifests.

commit here is a short SHA (76cc8d2c), while another manifest in this PR uses a full 40-char SHA. Please standardize this field (prefer full SHA) so traceability and any schema consumers remain deterministic.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@contracts/deployments/59141/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json`
at line 5, The manifest's "commit" field uses a short SHA ("76cc8d2c"); replace
it with the full 40-character commit hash to match other manifests and ensure
deterministic traceability—locate the "commit" field in the JSON (symbol:
"commit") and update its value to the repository's full SHA for that commit (or
retrieve the full SHA from git for 76cc8d2c), then verify any schema/validation
that expects a 40-char SHA and update other deployment manifests in this PR to
the same full-SHA format for consistency.
contracts/deployments/80002/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-32-52.json (1)

5-5: ⚡ Quick win

Normalize commit field format across sandbox deployment manifests.

This file uses a full 40-char commit hash, while sibling sandbox-v1_3_0 manifests in this cohort use the short SHA format. Keeping one format across artifacts improves provenance tooling and avoids parser edge cases.

Proposed change
-  "commit": "5922d1707a10340148adb41414f956184c0c5c34",
+  "commit": "5922d170",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@contracts/deployments/80002/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-32-52.json`
at line 5, The manifest's "commit" field currently stores a full 40-character
SHA; replace it with the short SHA format used by sibling sandbox manifests to
normalize provenance (update the "commit" value in the JSON entry named
sandbox-v1_3_0-2026-05-21T09-32-52.json to the short/7-character SHA used
elsewhere). Ensure only the "commit" value is changed (no other fields or
structure), and verify the shortened SHA exactly matches the prefix used across
the cohort.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@contracts/broadcast/DeployChannelHub.s.sol/11155111/run-1779353692222.json`:
- Around line 23-53: The ChannelHub deployment entry has a null "hash" and no
matching entry in the "pending" array (the ChannelHub CREATE record with
contractName "ChannelHub"), making the broadcast artifact non-auditable;
regenerate the broadcast so that the ChannelHub CREATE transaction is either
finalized (populate its "hash" and corresponding receipt(s) in "receipts") or
explicitly left pending (include its tx hash in the "pending" list and keep
receipts empty), then replace the artifact with the regenerated output so every
transaction record is either fully hashed/receipted or explicitly pending.

In `@contracts/broadcast/DeployChannelHub.s.sol/59141/run-1779363212273.json`:
- Around line 22-52: The artifact has mismatched transaction metadata vs
receipts for EscrowWithdrawalEngine.channelhub and
EscrowDepositEngine.channelhub: ensure the transactions array entries
(contractName, hash, nonce) and the receipts entries (transactionHash,
transactionIndex) are consistent by regenerating the JSON so that
EscrowWithdrawalEngine.channelhub (hash 0x8a14...) with nonce 0x1 maps to the
matching receipt with the same transactionHash and the correct transactionIndex,
and EscrowDepositEngine.channelhub (hash 0x8590...) with nonce 0x2 maps to its
matching receipt; verify and correct all occurrences in the transactions and
receipts sections so hashes, nonces and transactionIndex values align before
committing the regenerated artifact.

In `@contracts/broadcast/DeployChannelHub.s.sol/80002/run-1779355867097.json`:
- Around line 40-53: The receipts for the CREATE2 deployments are
mis-attributed: transaction hash
0x01f9e653982796b7b022ed0d475745c76904848e9de7dada1c2aa232974697a5
(EscrowDepositEngine.channelhub, nonce 0x2) and 0x0494... (ECDSAValidator, nonce
0x3) have swapped transactionIndex and contractAddress entries in the artifact;
regenerate the JSON so each transactions[] entry (match by hash and nonce) has a
corresponding receipts[] entry with the same transactionIndex and correct
contractAddress (CREATE2 deploys get the new contractAddress, non-creation txs
have null), and verify ordering/indices for both EscrowDepositEngine.channelhub
and ECDSAValidator entries are consistent.

In
`@contracts/deployments/11155111/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T08-54-52.json`:
- Line 4: The JSON metadata currently sets the transactionHash field to the
string literal "null"; update the transactionHash entry so it is a proper JSON
null (transactionHash: null) or replace it with the real transaction hash
string, ensuring the value is a true null value rather than the string "null" in
the sandbox-v1_3_0-2026-05-21T08-54-52.json payload.

In
`@contracts/deployments/11155111/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-23-36.json`:
- Line 8: The deployment metadata uses a non-canonical relative path for the
contractPath field; update the contractPath value for SessionKeyValidator so it
matches the rest of manifests by removing the leading "./" (i.e., use
src/sigValidators/SessionKeyValidator.sol:SessionKeyValidator), ensuring any
path-based lookup of contractPath matches other deployment entries.

---

Nitpick comments:
In
`@contracts/deployments/59141/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json`:
- Line 5: The manifest's "commit" field uses a short SHA ("76cc8d2c"); replace
it with the full 40-character commit hash to match other manifests and ensure
deterministic traceability—locate the "commit" field in the JSON (symbol:
"commit") and update its value to the repository's full SHA for that commit (or
retrieve the full SHA from git for 76cc8d2c), then verify any schema/validation
that expects a 40-char SHA and update other deployment manifests in this PR to
the same full-SHA format for consistency.

In
`@contracts/deployments/80002/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-32-52.json`:
- Line 5: The manifest's "commit" field currently stores a full 40-character
SHA; replace it with the short SHA format used by sibling sandbox manifests to
normalize provenance (update the "commit" value in the JSON entry named
sandbox-v1_3_0-2026-05-21T09-32-52.json to the short/7-character SHA used
elsewhere). Ensure only the "commit" value is changed (no other fields or
structure), and verify the shortened SHA exactly matches the prefix used across
the cohort.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6b983641-955f-42b7-bd44-12271f35613d

📥 Commits

Reviewing files that changed from the base of the PR and between e07ad9c and a5cb25e.

📒 Files selected for processing (36)
  • contracts/broadcast/DeployChannelHub.s.sol/11155111/run-1779353692222.json
  • contracts/broadcast/DeployChannelHub.s.sol/11155111/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/59141/run-1779363212273.json
  • contracts/broadcast/DeployChannelHub.s.sol/59141/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/80002/run-1779355867097.json
  • contracts/broadcast/DeployChannelHub.s.sol/80002/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/84532/run-1779355068769.json
  • contracts/broadcast/DeployChannelHub.s.sol/84532/run-latest.json
  • contracts/deployments/11155111/ChannelEngine.sol_ChannelEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/11155111/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T08-54-52.json
  • contracts/deployments/11155111/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T08-54-52.json
  • contracts/deployments/11155111/EscrowDepositEngine.sol_EscrowDepositEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/11155111/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/11155111/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-23-36.json
  • contracts/deployments/59141/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/EscrowDepositEngine.sol_EscrowDepositEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T11-36-15.json
  • contracts/deployments/80002/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/EscrowDepositEngine.sol_EscrowDepositEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-32-52.json
  • contracts/deployments/84532/ChannelEngine.sol_ChannelEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/84532/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T09-17-48.json
  • contracts/deployments/84532/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T09-17-48.json
  • contracts/deployments/84532/EscrowDepositEngine.sol_EscrowDepositEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/84532/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/84532/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-20-38.json
  • nitronode/chart/config/sandbox-v1/action_gateway.yaml
  • nitronode/chart/config/sandbox-v1/assets.yaml
  • nitronode/chart/config/sandbox-v1/blockchains.yaml
  • nitronode/chart/config/sandbox-v1/clearnode.yaml.gotmpl
💤 Files with no reviewable changes (2)
  • contracts/broadcast/DeployChannelHub.s.sol/84532/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/11155111/run-latest.json

Comment on lines +23 to +53
"hash": null,
"transactionType": "CREATE",
"contractName": "ChannelHub",
"contractAddress": "0x6c333ac983749b9404704915ee6859bf1942a091",
"function": null,
"arguments": [
"0xAc00326E2D0C33253d77E22034291F4c2b6F3681",
"0xc76632D91D45Ec88304ab2a983451d9EDf908C0d"
],
"transaction": {
"from": "0xbab179854ba39cfcfb2d1d98a05fcfa113cf4ac1",
"to": null,
"gas": "0x686f87",
"value": "0x0",
"input": "0x60c03461010b57601f615ee238819003918201601f19168301916001600160401b0383118484101761010f57808492604094855283398101031261010b5780516001600160a01b0381169182820361010b5760200151916001600160a01b0383169081840361010b5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055156100fc57156100fc5760805260a052604051615dbe908161012482396080518181816111910152613ed3015260a051818181610c5c01528181610d790152818161145001528181611a3e0152818161207d0152818161361d015281816140800152818161464901526147510152f35b63e6c4247b60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806307f241ce1461027f57806316b390b11461027a578063187576d8146102755780633115f6301461027057806338a66be21461026b5780633c684f921461026657806341b660ef1461026157806347de477a1461025c57806351bfcdbd1461025757806353269198146102525780635a0745b41461024d5780635ae2accc146102485780635b9acbf9146102435780635dc46a741461023e5780636840dbd2146102395780636898234b1461023457806371a471411461022f578063735181f01461022a57806382d3e15d146102255780638d0b12a5146102205780638e31c7351461021b57806394191051146102115780639691b46814610216578063a459463114610211578063a5c826801461020c578063b25a1d3814610207578063b65b78d114610202578063b9f4420d146101fd578063c74a2d10146101f8578063c9408398146101f3578063d888ccae146101ee578063d91a1283146101e9578063dc23f29e146101e4578063dd73d494146101df578063e617208c146101da578063f4ac51f5146101d5578063f766f8d6146101d0578063ff5bc09e146101cb5763ffa1ad74146101c6575f80fd5b6126ae565b612697565b612578565b6124fd565b61245f565b6122e5565b61212e565b612012565b611f09565b611c7a565b611bfa565b611bdd565b611aee565b611770565b611611565b6114e7565b611504565b611384565b61123d565b611220565b6111da565b611172565b611093565b61107c565b611031565b610ffb565b610fe0565b610fc4565b610dcc565b610d5a565b610b96565b610870565b6107ad565b610772565b61057b565b6104f5565b610351565b610299565b6001600160a01b0381160361029557565b5f80fd5b34610295576020366003190112610295576001600160a01b036004356102be81610284565b165f526006602052602060405f2054604051908152f35b9181601f84011215610295578235916001600160401b038311610295576020838186019501011161029557565b60643590600282101561029557565b9060606003198301126102955760043591602435906001600160401b03821161029557610340916004016102d5565b909160443560028110156102955790565b34610295576103b36103ed61036536610311565b9294916103c8610380879693965f52600260205260405f2090565b9485549261038f8415156126c9565b600187015460059060081c6001600160a01b031696879260028a01549a8b91613eb2565b9192909901986103c28a6128e3565b87613fe3565b60c06103d3876140d5565b604051809481926301999b9360e61b835260048301612a53565b038173dccc09e335b87fb506c40a972e76fc7a225e0bf95af480156104a9577fba075bd445233f7cad862c72f0343b3503aad9c8e704a2295f122b82abf8e80195610461946080945f93610476575b5082610453939461044c896128e3565b908b614149565b01516001600160401b031690565b9061047160405192839283612b8e565b0390a2005b610453935061049c9060c03d60c0116104a2575b610494818361275f565b810190612991565b9261043c565b503d61048a565b612a64565b90602080835192838152019201905f5b8181106104cb5750505090565b82518452602093840193909201916001016104be565b9060206104f29281815201906104ae565b90565b34610295576020366003190112610295576001600160a01b0360043561051a81610284565b165f52600160205260405f206040519081602082549182815201915f5260205f20905f5b81811061056557610561856105558187038261275f565b604051918291826104e1565b0390f35b825484526020909301926001928301920161053e565b3461029557602036600319011261029557600354600480545f92918390358284111561076c576105ab838561332c565b8082101561075e57506105c28195949392956132ed565b925b80831080610755575b15610748576105e86105de84613145565b90549060031b1c90565b6106036105fd825f52600260205260405f2090565b966139b6565b9561060d81615559565b6107335761061a81615589565b156106e3576001600160a01b036106cb6105fd600198999a6106ab955f866106ba610661600c5f516020615d695f395f51905f529a01546001600160a01b039060401c1690565b9d8e9261067f846001600160a01b03165f52600660205260405f2090565b5493610691600483019586549061331f565b9c8d916001600160a01b03165f52600660205260405f2090565b5501805460ff19166003179055565b556106c5828d613339565b526139b6565b604051938452961691602090a25b94939291946105c4565b505050506106f391939250600455565b806106fa57005b81817f8fac6141d748dc9c9bc16cc25f636385597618190a44c03d33be5656e01b3642935261072e60405192839283614462565b0390a1005b505092939491610742906139b6565b926106d9565b50506004559190506106f3565b508185106105cd565b6105c29095949392956132ed565b5f6105ab565b34610295575f366003190112610295576020604051620186a08152f35b6004359060ff8216820361029557565b359060ff8216820361029557565b346102955760203660031901126102955760ff6107c861078f565b165f52600760205260405f2060405160408101918183106001600160401b03841117610826576040928352546001600160a01b03811680835260a09190911c6001600160401b03166020928301819052835191825291810191909152f35b6126de565b90816102609103126102955790565b90600319820160e081126102955760c0136102955760049160c435906001600160401b038211610295576104f29160040161082b565b6108793661083a565b60208101600261088882612bbf565b61089181611d68565b148015610b7b575b8015610b5d575b6108a990612bc9565b60026108b482612bbf565b6108bd81611d68565b03610b4e575b6109a36109016108d33686612c0e565b60c090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790565b9261092f610920610919865f525f60205260405f2090565b5460ff1690565b610929816123bb565b15612c82565b61093b60208601612c98565b906109458661460e565b610955608087013583838861470f565b60a08161098861098161096a60808401612c98565b6001600160a01b03165f52600660205260405f2090565b5488614776565b604051632a2d120f60e21b8152958692839260048401612ec0565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af49081156104a9577fb0d099feaab5034d04a1c610e86b8832343f2127b3c667b705834dafdf96e9e494610a18610a99936001600160a01b03965f91610b1f575b50610a07368b612c0e565b610a113686612fc4565b908a6148c2565b610a3c87610a37866001600160a01b03165f52600160205260405f2090565b61598d565b506002610a4882612bbf565b610a5181611d68565b03610a9e5750857f6085f5128b19e0d3cc37524413de47259383f0f75265d5d66f4177869620669660405180610a878582613070565b0390a25b604051938493169683613081565b0390a3005b610aa9600391612bbf565b610ab281611d68565b03610aef57857f188e0ade7d115cc397426774adb960ae3e8c83e72f0a6cad4b7085e1d60bf98660405180610ae78582613070565b0390a2610a8b565b857f567044ba1cdd4671ac3979c114241e1e3b56c9e9051f63f2f234f7a2795019cc60405180610ae78582613070565b610b41915060a03d60a011610b47575b610b39818361275f565b810190612ca2565b5f6109fc565b503d610b2f565b610b583415612bdf565b6108c3565b506108a9610b6a82612bbf565b610b7381611d68565b1590506108a0565b506003610b8782612bbf565b610b9081611d68565b14610899565b610b9f3661083a565b90610bc06004610bb160208501612bbf565b610bba81611d68565b14612bc9565b610bc98161460e565b610bd66108d33683612c0e565b916080610be560208401612c98565b92013591610bf58382848761470f565b610c19610c0183613110565b85906001600160401b03915f521660205260405f2090565b92610c23856149d5565b15610ca3575050610a997f471c4ebe4e57d25ef7117e141caac31c6b98f067b8098a7a7bbd38f637c2f98091610c836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633146131e2565b610c8d3415612bdf565b610c978186614a31565b60405191829182613070565b9091610ccf60c082610cb4876140d5565b604051632ef10bcd60e21b815293849283926004840161311a565b038173dccc09e335b87fb506c40a972e76fc7a225e0bf95af49283156104a9577fede7867afa7cdb9c443667efd8244d98bf9df1dce68e60dc94dca6605125ca7694610a9994610d32935f91610d3b575b50610d2b3686612fc4565b8989614149565b610c9784613194565b610d54915060c03d60c0116104a257610494818361275f565b5f610d20565b34610295575f3660031901126102955760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9060406003198301126102955760043591602435906001600160401b038211610295576104f29160040161082b565b3461029557610dda36610d9d565b610deb6009610bb160208401612bbf565b610e076001610e01845f525f60205260405f2090565b016131f8565b610ea2610e1e60208301516001600160a01b031690565b91610e2f608082015184868861470f565b610e393685612fc4565b61014085019386610e4986613110565b6001600160401b031646149586610f5c575b50505060a081610e87610e8061096a60206060850151016001600160a01b0390511690565b5489614776565b604051632a2d120f60e21b8152958692839260048401613282565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af49182156104a957610ed4935f93610f3b575b50866148c2565b15610f0a576104717f9a6f675cc94b83b55f1ecc0876affd4332a30c92e6faa2aca0199b1b6df922c39160405191829182613070565b6104717f7b20773c41402791c5f18914dbbeacad38b1ebcc4c55d8eb3bfe0a4cde26c8269160405191829182613070565b610f5591935060a03d60a011610b4757610b39818361275f565b915f610ecd565b610fbb92610f6e610fb6923690612ee5565b6060860152610f803660608b01612ee5565b6080860152610f8d61326e565b60a0860152610f9a61326e565b60c08601526001600160a01b03165f52600160205260405f2090565b615a37565b505f8681610e5b565b34610295575f366003190112610295576020604051612a308152f35b34610295575f36600319011261029557602060405160408152f35b346102955760403660031901126102955761056161101d60243560043561334d565b6040519182916020835260208301906104ae565b346102955761104861104236610d9d565b90613406565b005b6060600319820112610295576004359160243591604435906001600160401b038211610295576104f29160040161082b565b346102955761104861108d3661104a565b91613756565b34610295576020366003190112610295576001600160a01b036004356110b881610284565b165f5260016020526110cc60405f20615901565b5f905f5b815181101561115f576110f76109196110e98385613339565b515f525f60205260405f2090565b611100816123bb565b6003811415908161114a575b5061111a575b6001016110d0565b9161112d818460019310611135576139b6565b929050611112565b61113f8585613339565b516106c58286613339565b60059150611157816123bb565b14155f61110c565b50610561918152604051918291826104e1565b34610295575f3660031901126102955760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b6040906003190112610295576004356111cd81610284565b906024356104f281610284565b346102955760206112176001600160a01b036111f5366111b5565b91165f526008835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b34610295575f366003190112610295576020600454604051908152f35b346102955761124b36610311565b611297611263859493945f52600560205260405f2090565b918254946112728615156126c9565b60a061127d88614c71565b604051809581926312031f5d60e11b8352600483016139c4565b038173dca4ab495188b545cfa919c0cb0a7e2280f2f4075af49081156104a9577fb8568a1f475f3c76759a620e08a653d28348c5c09e2e0bc91d533339801fefd8966103c296610461966060965f95611341575b50916113318596610453969385600561131560016113259901546001600160a01b039060081c1690565b97889360028401549a8b91613eb2565b92909193019e8f6128e3565b61133a896128e3565b908b614d2b565b6104539550611325939192966113716113319260a03d60a01161137d575b611369818361275f565b8101906136a5565b965096929193506112eb565b503d61135f565b346102955760603660031901126102955761139d61078f565b6024356113a981610284565b6044356001600160401b038111610295576114bc916113cf6114c19236906004016102d5565b93909461148261147d60ff8316966113e88815156139d5565b6001600160a01b038616986113fe8a15156139eb565b61143f8561143961142d61142d6114208460ff165f52600760205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b15613a01565b61147761144d8b8730614e62565b917f0000000000000000000000000000000000000000000000000000000000000000933691612f73565b90614e9a565b613a1f565b61149c61148d612780565b6001600160a01b039094168452565b426001600160401b0316602084015260ff165f52600760205260405f2090565b613a35565b7f9ee792368f12db92ad66335fa19df35feaec025c86445fea202ab5412a180e055f80a3005b34610295575f366003190112610295576020604051620151808152f35b346102955761158d61151536610d9d565b61153661152760208395949501612bbf565b61153081611d68565b15612bc9565b61154c6001610e01855f525f60205260405f2090565b9061157161156460208401516001600160a01b031690565b608084015190838761470f565b60a08161098861158661096a60808401612c98565b5487614776565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af49283156104a9577f567044ba1cdd4671ac3979c114241e1e3b56c9e9051f63f2f234f7a2795019cc9361047193610c97925f926115f0575b506115e93685612fc4565b90876148c2565b61160a91925060a03d60a011610b4757610b39818361275f565b905f6115de565b346102955761161f3661083a565b906116316006610bb160208501612bbf565b61163a8161460e565b6116476108d33683612c0e565b91608061165660208401612c98565b920135916116668382848761470f565b611672610c0183613110565b9261167c856149d5565b156116b2575050610a9981610c977f587faad1bcd589ce902468251883e1976a645af8563c773eed7356d78433210c9386614a31565b90916116ee60a0826116d46116cd61096a6101608401612c98565b5488614cce565b60405162ea54e760e01b815293849283926004840161373f565b038173dca4ab495188b545cfa919c0cb0a7e2280f2f4075af49283156104a9577f17eb0a6bd5a0de45d1029ce3444941070e149df35b22176fc439f930f73c09f794610a9994610c97935f91611751575b5061174a3686612fc4565b8989614d2b565b61176a915060a03d60a01161137d57611369818361275f565b5f61173f565b6080366003190112610295576004356024356001600160401b0381116102955761179e90369060040161082b565b6044356001600160401b038111610295576117bd9036906004016102d5565b90916117c7610302565b926117d9855f525f60205260405f2090565b6117e5600182016131f8565b936117f1825460ff1690565b906117fb826123bb565b6001821495868015611adb575b61181190612c82565b61181d600585016128e3565b9261185b61182a88613110565b6001600160401b0361185261184688516001600160401b031690565b6001600160401b031690565b91161015613aa3565b60208201516001600160a01b0316978a6080840151956001600160401b036118966118466118888d613110565b93516001600160401b031690565b91161115611a8d57506118eb61192d9493926004926118d660208c01926118d160016118c186612bbf565b6118ca81611d68565b1415612bc9565b6123bb565b80611a6d575b6118e69015612bc9565b612bbf565b6118f481611d68565b1480611a3a575b61190590156131e2565b6119118489898d61470f565b60a08761098861192661096a60808401612c98565b548d614776565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af49182156104a9577f07b9206d5a6026d3bd2a8f9a9b79f6fa4bfbd6a016975829fbaf07488019f28a996014996119bb8d8b6119af6119ee9a6119c197611a0c9e6119aa6119d69c6119df9e5f91611a1b575b506119a33688612fc4565b8d896152c4565b613eb2565b93919490923690612fc4565b90613fe3565b845460ff191660021785555163ffffffff1690565b63ffffffff1690565b6001600160401b034216613ad9565b9301805467ffffffffffffffff19166001600160401b038516179055565b61047160405192839283613af9565b611a34915060a03d60a011610b4757610b39818361275f565b5f611998565b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156118fb565b506118e66009611a7c83612bbf565b611a8581611d68565b1490506118dc565b6119d69392506119c19150996014996119bb7f07b9206d5a6026d3bd2a8f9a9b79f6fa4bfbd6a016975829fbaf07488019f28a9c8b6119af6119ee9a6119df9a611a0c9e6119aa3415612bdf565b50611ae5836123bb565b60048314611808565b604036600319011261029557600435611b0681610284565b6001600160a01b0360243591611b1d831515613b19565b611b25615604565b611b30838233615498565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00551690815f52600660205260405f205490808201809211611bd8575f516020615d695f395f51905f5291837f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4611bc561047194835f5260066020528460405f2055604051918291829190602083019252565b0390a26040519081529081906020820190565b6132a7565b34610295575f36600319011261029557602060405162093a808152f35b3461029557611c1f611c0b36610d9d565b6115366003610bb160208496959601612bbf565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af49283156104a9577f188e0ade7d115cc397426774adb960ae3e8c83e72f0a6cad4b7085e1d60bf9869361047193610c97925f926115f057506115e93685612fc4565b34610295575f36600319011261029557600354600454905f805b82841015611d3c577fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8401545f90815260026020526040902091611cd783615559565b611d2a57611ce483615589565b15611d1357611d0a916004611cfb611d04936139b6565b9401549061331f565b936139b6565b915b9192611c94565b92509250505b604080519182526020820192909252f35b915092611d36906139b6565b91611d0c565b92509050611d19565b634e487b7160e01b5f52602160045260245ffd5b60041115611d6357565b611d45565b600a1115611d6357565b90600a821015611d635752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6104f2916001600160401b038251168152611dc660208301516020830190611d72565b60408201516040820152611e336060830151606083019060c080916001600160401b0381511684526001600160a01b03602082015116602085015260ff6040820151166040850152606081015160608501526080810151608085015260a081015160a08501520151910152565b60808281015180516001600160401b031661014084015260208101516001600160a01b0316610160840152604081015160ff1661018084015260608101516101a0840152908101516101c083015260a08101516101e083015260c0015161020082015260c0611eb460a0840151610260610220850152610260840190611d7f565b92015190610240818403910152611d7f565b92936001600160401b0360c0956104f298979482948752611ee681611d59565b602087015216604085015216606083015260808201528160a08201520190611da3565b3461029557602036600319011261029557600435611f25613b65565b505f52600260205260405f2060405190611f3e826126f2565b80548252610561600182015491611f89611f79611f5b8560ff1690565b94611f6a602088019687613ba9565b60081c6001600160a01b031690565b6001600160a01b03166040860152565b6002810154606085015260038101546001600160401b0380821660808701908152959160401c166001600160401b031660a0820190815291612001611888611fdf600560048501549460c08701958652016128e3565b9360e0810194855251965197611ff489611d59565b516001600160401b031690565b905191519260405196879687611ec6565b346102955760603660031901126102955760043561202f81610284565b5f516020615d695f395f51905f526104716024359261204d84610284565b604435936120656001600160a01b03831615156139eb565b612070851515613b19565b6120a46001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633146131e2565b7f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5611bc58661211e6001600160a01b038516988995865f5260066020526120fb8260405f20546120f682821015613bb5565b61332c565b9788612118836001600160a01b03165f52600660205260405f2090565b556155b8565b6040519081529081906020820190565b346102955761213c3661083a565b61214d6008610bb160208401612bbf565b61215a6108d33684612c0e565b916121bb61216a60208301612c98565b9161217b608082013584868861470f565b6121853685612fc4565b61218e866149d5565b93868515612284575b505060a081610e87610e8061096a60206060850151016001600160a01b0390511690565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af49182156104a9576121f8935f9361225f575b506121f2903690612c0e565b866148c2565b1561222e576104717f3142fb397e715d80415dff7b527bf1c451def4675da6e1199ee1b4588e3f630a9160405191829182613070565b6104717f26afbcb9eb52c21f42eb9cfe8f263718ffb65afbf84abe8ad8cce2acfb2242b89160405191829182613070565b6121f291935061227d9060a03d60a011610b4757610b39818361275f565b92906121e6565b610a376122a2926122948661460e565b610f6e366101408b01612ee5565b505f86612197565b9160a0936001600160401b03916104f297969385526122c881611d59565b602085015216604083015260608201528160808201520190611da3565b3461029557602036600319011261029557600435612301613b65565b505f52600560205260405f206040519061231a8261270e565b80548252610561600182015491612351611f7960ff851694602087019561234081611d59565b865260081c6001600160a01b031690565b6002810154606085015260038101546001600160401b03166001600160401b031660808501908152936123aa612395600560048501549460a08501958652016128e3565b9160c0810192835251945195611ff487611d59565b9151905191604051958695866122aa565b60061115611d6357565b906006821015611d635752565b919260a0610120946123eb85612454959a99989a6123c5565b63ffffffff81511660208601526001600160a01b0360208201511660408601526001600160a01b0360408201511660608601526001600160401b036060820151166080860152608081015182860152015160c084015261014060e0840152610140830190611da3565b946101008201520152565b34610295576020366003190112610295576004355f60a060405161248281612729565b82815282602082015282604082015282606082015282608082015201526124a7613b65565b505f525f6020526124ba60405f20613bd7565b80516124c5816123bb565b61056160208301519260408101519060606124ed61184660808401516001600160401b031690565b91015191604051958695866123d2565b61251d61250936610d9d565b6115366002610bb160208496959601612bbf565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af49283156104a9577f6085f5128b19e0d3cc37524413de47259383f0f75265d5d66f417786962066969361047193610c97925f926115f057506115e93685612fc4565b3461029557612586366111b5565b61258e615604565b6001600160a01b038116916125a48315156139eb565b6001600160a01b036125e1826125cb336001600160a01b03165f52600860205260405f2090565b906001600160a01b03165f5260205260405f2090565b54916125ee831515613b19565b5f61260e826125cb336001600160a01b03165f52600860205260405f2090565b551691818361268857612631915f808080858a5af161262b613c34565b50613c63565b60405190815233907f7b8d70738154be94a9a068a6d2f5dd8cfc65c52855859dc8f47de1ff185f8b5590602090a461104860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6126929184615662565b612631565b34610295576110486126a83661104a565b91613c8b565b34610295575f36600319011261029557602060405160018152f35b156126d057565b6287a33760e41b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b61010081019081106001600160401b0382111761082657604052565b60e081019081106001600160401b0382111761082657604052565b60c081019081106001600160401b0382111761082657604052565b60a081019081106001600160401b0382111761082657604052565b90601f801991011681019081106001600160401b0382111761082657604052565b6040519061278f60408361275f565b565b6040519061278f60e08361275f565b906040516127ad8161270e565b60c0600482946127ea60ff82546001600160401b03811687526001600160a01b03808260401c1616602088015260e01c16604086019060ff169052565b6001810154606085015260028101546080850152600381015460a08501520154910152565b90600182811c9216801561283d575b602083101461282957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161281e565b5f92918154916128568361280f565b80835292600181169081156128ab575060011461287257505050565b5f9081526020812093945091925b838310612891575060209250010190565b600181602092949394548385870101520191019190612880565b915050602093945060ff929192191683830152151560051b010190565b9061278f6128dc9260405193848092612847565b038361275f565b906040516128f08161270e565b809260ff81546001600160401b038116845260401c1690600a821015611d6357600d6129619160c093602086015260018101546040860152612934600282016127a0565b6060860152612945600782016127a0565b6080860152612956600c82016128c8565b60a0860152016128c8565b910152565b5190600482101561029557565b6001600160401b0381160361029557565b5190811515820361029557565b908160c0910312610295576129f960a0604051926129ae84612729565b80518452602081015160208501526129c860408201612966565b604085015260608101516129db81612973565b606085015260808101516129ee81612973565b608085015201612984565b60a082015290565b908151612a0d81611d59565b815260806001600160401b0381612a33602086015160a0602087015260a0860190611da3565b946040810151604086015282606082015116606086015201511691015290565b9060206104f2928181520190612a01565b6040513d5f823e3d90fd5b90600d6104f292612a9781546001600160401b038116855260ff602086019160401c16611d72565b60018101546040840152612b036060840160028301600460c09160ff8082546001600160401b03811687526001600160a01b038160401c16602088015260e01c161660408501526001810154606085015260028101546080850152600381015460a08501520154910152565b60078101546001600160401b038116610140850152604081901c6001600160a01b031661016085015260e01c60ff1661018084015260088101546101a084015260098101546101c0840152600a8101546101e0840152600b810154610200840152610260610220840152612b7e6102608401600c8301612847565b9261024081850391015201612847565b906001600160401b03612bae602092959495604085526040850190612a6f565b9416910152565b600a111561029557565b356104f281612bb5565b15612bd057565b633226144f60e21b5f5260045ffd5b15612be657565b636956f2ab60e11b5f5260045ffd5b63ffffffff81160361029557565b359061278f82612973565b91908260c091031261029557604051612c2681612729565b60a08082948035612c3681612bf5565b84526020810135612c4681610284565b60208501526040810135612c5981610284565b60408501526060810135612c6c81612973565b6060850152608081013560808501520135910152565b15612c8957565b631e40ad6360e31b5f5260045ffd5b356104f281610284565b908160a09103126102955760405190612cba82612744565b80518252602081015160208301526040810151600681101561029557612cfb9160809160408501526060810151612cf081612973565b606085015201612984565b608082015290565b90612d0f8183516123c5565b60806001600160401b0381612d33602086015160a0602087015260a0860190611da3565b94604081015160408601526060810151606086015201511691015290565b359061278f82612bb5565b60c080916001600160401b038135612d7381612973565b1684526001600160a01b036020820135612d8c81610284565b16602085015260ff612da06040830161079f565b166040850152606081013560608501526080810135608085015260a081013560a08501520135910152565b9035601e19823603018112156102955701602081359101916001600160401b03821161029557813603831361029557565b908060209392818452848401375f828201840152601f01601f1916010190565b6104f2916001600160401b038235612e3381612973565b168152612e516020830135612e4781612bb5565b6020830190611d72565b60408201356040820152612e6b6060820160608401612d5c565b612e7d61014082016101408401612d5c565b612eb1612ea5612e91610220850185612dcb565b610260610220860152610260850191612dfc565b92610240810190612dcb565b91610240818503910152612dfc565b9091612ed76104f293604084526040840190612d03565b916020818403910152612e1c565b91908260e091031261029557604051612efd8161270e565b60c08082948035612f0d81612973565b84526020810135612f1d81610284565b6020850152612f2e6040820161079f565b6040850152606081013560608501526080810135608085015260a081013560a08501520135910152565b6001600160401b03811161082657601f01601f191660200190565b929192612f7f82612f58565b91612f8d604051938461275f565b829481845281830111610295578281602093845f960137010152565b9080601f83011215610295578160206104f293359101612f73565b9190916102608184031261029557612fda612791565b92612fe482612c03565b8452612ff260208301612d51565b60208501526040820135604085015261300e8160608401612ee5565b6060850152613021816101408401612ee5565b60808501526102208201356001600160401b0381116102955781613046918401612fa9565b60a08501526102408201356001600160401b038111610295576130699201612fa9565b60c0830152565b9060206104f2928181520190612e1c565b60e09060a06104f2949363ffffffff813561309b81612bf5565b1683526001600160a01b0360208201356130b481610284565b1660208401526001600160a01b0360408201356130d081610284565b1660408401526001600160401b0360608201356130ec81612973565b16606084015260808101356080840152013560a08201528160c08201520190612e1c565b356104f281612973565b9091612ed76104f293604084526040840190612a01565b634e487b7160e01b5f52603260045260245ffd5b60035481101561315d5760035f5260205f2001905f90565b613131565b805482101561315d575f5260205f2001905f90565b916131909183549060031b91821b915f19901b19161790565b9055565b60035468010000000000000000811015610826576001810160035560035481101561315d5760035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0155565b156131e957565b6370a8bfcd60e11b5f5260045ffd5b9060405161320581612729565b60a0600382946001600160a01b03815463ffffffff8116865260201c16602085015261325d6001600160401b0360018301546001600160a01b03808216166040880152851c1660608601906001600160401b03169052565b600281015460808501520154910152565b6040519061327d60208361275f565b5f8252565b90916132996104f293604084526040840190612d03565b916020818403910152611da3565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381116108265760051b60200190565b604051906132e160208361275f565b5f808352366020840137565b906132f7826132bb565b613304604051918261275f565b8281528092613315601f19916132bb565b0190602036910137565b91908201809211611bd857565b91908203918211611bd857565b805182101561315d5760209160051b010190565b91906003549080840293808504821490151715611bd857818410156133d157830190818411611bd8578082116133c9575b5061339161338c848361332c565b6132ed565b92805b8281106133a057505050565b806133af6105de600193613145565b6133c26133bc858461332c565b88613339565b5201613394565b90505f61337e565b505090506104f26132d2565b906006811015611d635760ff80198354169116179055565b9060206104f2928181520190611da3565b90613418825f525f60205260405f2090565b613424600182016131f8565b91613430825460ff1690565b918461343e600583016128e3565b91600261345560208801516001600160a01b031690565b9561345f816123bb565b148061364e575b6135755750505061347e6001610bb160208401612bbf565b61348e608084015183838761470f565b6134c160a0826134a661098161096a60808401612c98565b604051632a2d120f60e21b8152938492839260048401612ec0565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af480156104a957610fb661354f9461352b88937f04cd8c68bf83e7bc531ca5a5d75c34e36513c2acf81e07e6470ba79e29da13a898613542965f92613554575b506135243689612fc4565b90866148c2565b6001600160a01b03165f52600160205260405f2090565b5060405191829182613070565b0390a2565b61356e91925060a03d60a011610b4757610b39818361275f565b905f613519565b7f04cd8c68bf83e7bc531ca5a5d75c34e36513c2acf81e07e6470ba79e29da13a8955061364192935061354f946135d46014836135bc610fb695600360ff19825416179055565b5f601382015501805467ffffffffffffffff19169055565b61352b60608601613600815160606135f660208301516001600160a01b031690565b9101519085614ae5565b5160a061361760208301516001600160a01b031690565b910151907f0000000000000000000000000000000000000000000000000000000000000000614ae5565b50604051918291826133f5565b506014810154426001600160401b0390911610613466565b1561366d57565b6336c7a86b60e21b5f5260045ffd5b9061368681611d59565b60ff80198354169116179055565b9060206104f2928181520190612a6f565b908160a091031261029557612cfb6080604051926136c284612744565b80518452602081015160208501526136dc60408201612966565b60408501526060810151612cf081612973565b9081516136fb81611d59565b8152608080613719602085015160a0602086015260a0850190611da3565b93604081015160408501526001600160401b036060820151166060850152015191015290565b9091612ed76104f2936040845260408401906136ef565b916137618284614c4f565b61394d57613777825f52600560205260405f2090565b9061378484835414613666565b600182018054929060026137a7600886901c6001600160a01b03165b9560ff1690565b6137b081611d59565b1480613935575b61384e57506002906137d06007610bb160208601612bbf565b0154906137df8284838861470f565b6137ee60a0826116d487614c71565b038173dca4ab495188b545cfa919c0cb0a7e2280f2f4075af49283156104a9577f2fdac1380dbe23ae259b6871582b7f33e34461547f400bdd20d74991250317d19461384994610c97935f91611751575061174a3686612fc4565b0390a3565b805460ff191660031790557f2fdac1380dbe23ae259b6871582b7f33e34461547f400bdd20d74991250317d1925060059150600481015f815491556138a0600383016001600160401b03198154169055565b5f516020615d695f395f51905f526001600160a01b036138f36138d1600c8601546001600160a01b039060401c1690565b936138ed856001600160a01b03165f52600660205260405f2090565b5461331f565b9283613910826001600160a01b03165f52600660205260405f2090565b556040519384521691602090a261392561447e565b6138496040519283920182613694565b506003820154426001600160401b03909116106137b7565b613849816139836007610bb160207f6d0cf3d243d63f08f50db493a8af34b27d4e3bc9ec4098e82700abfeffe2d4989601612bbf565b610c8d613997865f525f60205260405f2090565b600181015460039060201c6001600160a01b031691015490838861470f565b5f198114611bd85760010190565b9060206104f29281815201906136ef565b156139dc57565b6306ee4dcd60e01b5f5260045ffd5b156139f257565b63e6c4247b60e01b5f5260045ffd5b15613a095750565b60ff906357470ffd60e01b5f521660045260245ffd5b15613a2657565b63c1606c2f60e01b5f5260045ffd5b6001600160401b03602061278f93613a7a6001600160a01b0382511685906001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19825416179055565b0151825467ffffffffffffffff60a01b1916911660a01b67ffffffffffffffff60a01b16179055565b15613aaa57565b637d95736160e01b5f5260045ffd5b6001600160401b0362015180911601906001600160401b038211611bd857565b906001600160401b03809116911601906001600160401b038211611bd857565b906001600160401b03612bae602092959495604085526040850190612e1c565b15613b2057565b6334b2073960e11b5f5260045ffd5b60405190613b3c8261270e565b5f60c0838281528260208201528260408201528260608201528260808201528260a08201520152565b60405190613b728261270e565b606060c0835f81525f60208201525f6040820152613b8e613b2f565b83820152613b9a613b2f565b60808201528260a08201520152565b613bb282611d59565b52565b15613bbc57565b631e9acf1760e31b5f5260045ffd5b6006821015611d635752565b90604051613be481612744565b60806001600160401b0360148395613c0060ff82541686613bcb565b613c0c600182016131f8565b6020860152613c1d600582016128e3565b604086015260138101546060860152015416910152565b3d15613c5e573d90613c4582612f58565b91613c53604051938461275f565b82523d5f602084013e565b606090565b15613c6c575050565b6001600160a01b039063296c17bb60e21b5f521660045260245260445ffd5b91613c9682846156bb565b613e1c57613cac825f52600260205260405f2090565b90613cb984835414613666565b60018201805492906002613cd9600886901c6001600160a01b03166137a0565b613ce281611d59565b1480613df9575b613d7b5750600290613d026005610bb160208601612bbf565b015490613d118284838861470f565b613d2060c082610cb4876140d5565b038173dccc09e335b87fb506c40a972e76fc7a225e0bf95af49283156104a9577f1b92e8ef67d8a7c0d29c99efcd180a5e0d98d60ac41d52abbbb5950882c78e4e9461384994610c97935f91610d3b5750610d2b3686612fc4565b805460ff191660031790557f1b92e8ef67d8a7c0d29c99efcd180a5e0d98d60ac41d52abbbb5950882c78e4e9260059250613df19060048301905f82549255613dda600385016fffffffffffffffff0000000000000000198154169055565b600c84015460401c6001600160a01b031690614ae5565b61392561447e565b50600382015460401c6001600160401b03166001600160401b0342911610613ce9565b613849816139836005610bb160207f32e24720f56fd5a7f4cb219d7ff3278ae95196e79c85b5801395894a6f53466c9601612bbf565b15613e5957565b6306a41ced60e21b5f5260045ffd5b15613e705750565b60ff9063399eb60560e01b5f521660045260245ffd5b15613e8f575050565b9060ff6001600160401b039263975133f360e01b5f52166004521660245260445ffd5b9291908015613f8c57801561315d57613f0191843560f81c9081613f0557507f000000000000000000000000000000000000000000000000000000000000000094600101925f19909201919050565b9091565b600180613f1884613f1f949060ff161c90565b1614613e52565b613f7f613f378260ff165f52600760205260405f2090565b546001600160a01b0381169290613f6c90613f6790613f5884871515613e68565b60a01c6001600160401b031690565b613ab9565b906001600160401b038216421015613e86565b93600101915f1990910190565b63ac241e1160e01b5f5260045ffd5b90816020910312610295575190565b9392606093613fd56001600160a01b0394612bae949998998852608060208901526080880190611d7f565b918683036040880152612dfc565b9193929590613ff1906156d3565b916002821015611d63576020956001600160a01b039261407a5761402d905b604051635850a09b60e11b81529889978896879560048701613faa565b0392165afa80156104a95761278f915f9161404b575b501515613a1f565b61406d915060203d602011614073575b614065818361275f565b810190613f9b565b5f614043565b503d61405b565b5061402d7f0000000000000000000000000000000000000000000000000000000000000000614010565b604051906140b182612744565b5f6080838281526140c0613b65565b60208201528260408201528260608201520152565b6140dd6140a4565b905f5260026020526001600160401b0380600360405f2060ff60018201541661410581611d59565b8552614113600582016128e3565b6020860152600481015460408601520154818116606085015260401c1616608082015290565b600160ff1b8114611bd8575f0390565b936141b694602094939682614166835f52600260205260405f2090565b9860a08701956141768751151590565b156144495760808201518901516001600160a01b0316998a975b60408a018d81516141a081611d59565b6141a981611d59565b61442b575b505051151590565b614418575b50505050506141d460608401516001600160401b031690565b6001600160401b0381166143ef575b5060038601805460808501516001600160401b039081169160401c168190036143b8575b50505f8351135f1461436b576142299061422184516158e5565b92839161548a565b6142386004860191825461331f565b90555b0180515f8113156142d057505f516020615d695f395f51905f52916142686001600160a01b0392516158e5565b6142b960046142928361428c866001600160a01b03165f52600660205260405f2090565b5461332c565b96876142af866001600160a01b03165f52600660205260405f2090565b550191825461331f565b90556040519384521691602090a25b61278f61447e565b90505f81126142e2575b5050506142c8565b5f516020615d695f395f51905f529161430a6143056001600160a01b0393614139565b6158e5565b614355600461432e836138ed866001600160a01b03165f52600660205260405f2090565b968761434b866001600160a01b03165f52600660205260405f2090565b550191825461332c565b90556040519384521691602090a25f80806142da565b6143753415612bdf565b8251905f8212614388575b50505061423b565b61439761430561439f93614139565b928391614ae5565b6143ae6004860191825461332c565b9055825f80614380565b81546fffffffffffffffff0000000000000000191660409190911b6fffffffffffffffff0000000000000000161790555f80614207565b6144129060038801906001600160401b03166001600160401b0319825416179055565b5f6141e3565b614421946157eb565b5f808281806141bb565b600161444292519161443c83611d59565b0161367c565b5f8d6141ae565b600c8b015460401c6001600160a01b0316998a97614190565b9291906144796020916040865260408601906104ae565b930152565b6003546004545f928390828411156145e85761449a838561332c565b806040105f146145da57506144b4604095949392956132ed565b925b808310806145d0575b156145c2576144d06105de84613145565b6144e56105fd825f52600260205260405f2090565b956144ef81615559565b6145ad576144fc81615589565b1561455b576001600160a01b036145436105fd600198999a6106ab955f866106ba610661600c5f516020615d695f395f51905f529a01546001600160a01b039060401c1690565b604051938452961691602090a25b94939291946144b6565b5050509391925061456b90600455565b80614574575050565b81817f8fac6141d748dc9c9bc16cc25f636385597618190a44c03d33be5656e01b364293526145a860405192839283614462565b0390a1565b5050929394916145bc906139b6565b92614551565b509391925061456b90600455565b50604085106144bf565b6144b49095949392956132ed565b5f61449a565b356104f281612bf5565b156145ff57565b630596b15b60e01b5f5260045ffd5b6001600160a01b03602082013561462481610284565b166146308115156139eb565b6001600160a01b03604083013561464681610284565b817f00000000000000000000000000000000000000000000000000000000000000001691829116036146ce5781146146bc5750806201518063ffffffff61468f61278f946145ee565b161015908161469f575b506145f8565b62093a8091506146b363ffffffff916145ee565b1611155f614699565b63abfa558d60e01b5f5260045260245ffd5b6308ad910960e21b5f5260045ffd5b903590601e198136030182121561029557018035906001600160401b0382116102955760200191813603831361029557565b909161278f9361473f61474d926147348361472e6102208901896146dd565b90613eb2565b908888949394615949565b61472e6102408501856146dd565b91937f000000000000000000000000000000000000000000000000000000000000000093615949565b9060146001600160401b039161478a6140a4565b935f525f60205260405f20906147a460ff83541686613bcb565b6147b0600583016128e3565b6020860152601382015460408601526060850152015416608082015290565b9060a060039163ffffffff81511663ffffffff198554161784556001600160a01b036020820151167fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff0000000086549260201b1691161784556148b16001850161488461485b60408501516001600160a01b031690565b82906001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19825416179055565b6060830151815467ffffffffffffffff60a01b191660a09190911b67ffffffffffffffff60a01b16179055565b608081015160028501550151910155565b926148fe8161494d946080946148df885f525f60205260405f2090565b976148eb895460ff1690565b6148f4816123bb565b156149c3576152c4565b60408101805161490d816123bb565b614916816123bb565b151580614998575b61497e575b5060148401805460608301516001600160401b03908116911681900361495c575b50500151151590565b6149545750565b60135f910155565b815467ffffffffffffffff19166001600160401b039091161790555f80614944565b614992905161498c816123bb565b856133dd565b5f614923565b50845460ff168151906149aa826123bb565b6149b3826123bb565b6149bc816123bb565b141561491e565b6149d08260018b016147cf565b6152c4565b805f525f60205260ff60405f2054166006811015611d63578015908115614a1d575b50614a18575f525f6020526001600160401b03600760405f20015416461490565b505f90565b60059150614a2a816123bb565b145f6149f7565b90614a8391805f525f602052614a4c600160405f20016131f8565b60a083614a68614a6161096a60808401612c98565b5485614776565b604051632a2d120f60e21b8152968792839260048401612ec0565b03817389b81857a46cf290f23f6ff9b24e1031aad652045af49283156104a95761278f945f94614ac0575b50614aba903690612fc4565b916148c2565b614aba919450614ade9060a03d60a011610b4757610b39818361275f565b9390614aae565b90614af89291614af3615604565b614b1e565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b9190918115614c4a576001600160a01b0383169283614bc2576001600160a01b038216925f8080808488620186a0f1614b55613c34565b5015614b62575050505050565b614ba5613849926125cb7fbf182be802245e8ed88e4b8d3e4344c0863dd2a70334f089fd07265389306fcf956001600160a01b03165f52600860205260405f2090565b614bb082825461331f565b90556040519081529081906020820190565b614bd4614bd0848484615add565b1590565b614bdf575b50505050565b81614c286001600160a01b03926125cb7fbf182be802245e8ed88e4b8d3e4344c0863dd2a70334f089fd07265389306fcf956001600160a01b03165f52600860205260405f2090565b614c3385825461331f565b90556040519384521691602090a35f808080614bd9565b505050565b905f52600560205260405f2054159081614c67575090565b6104f291506149d5565b614c796140a4565b905f5260056020526001600160401b03600360405f2060ff600182015416614ca081611d59565b8452614cae600582016128e3565b60208501526004810154604085015201541660608201525f608082015290565b90614cd76140a4565b915f5260056020526001600160401b03600360405f2060ff600182015416614cfe81611d59565b8552614d0c600582016128e3565b6020860152600481015460408601520154166060830152608082015290565b6020939291614db691614d46815f52600560205260405f2090565b97604086018051614d5681611d59565b614d5f81611d59565b614e45575b5087856080880194614d768651151590565b614e32575b505050505060038701614d9581546001600160401b031690565b60608601516001600160401b039081169116819003614e1057505051151590565b15614df757608001518201516001600160a01b031680935b8251905f821315614de857614229915061422184516158e5565b5f82126143885750505061423b565b50600c84015460401c6001600160a01b03168093614dce565b815467ffffffffffffffff19166001600160401b039091161790555f806141ae565b614e3b94615b4a565b5f80878582614d7b565b614e5c9051614e5381611d59565b60018b0161367c565b5f614d64565b9160ff6001600160a01b03928360405195466020880152166040860152166060840152166080820152608081526104f260a08261275f565b805192835f947a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000821015615036575b806d04ee2d6d415b85acef8100000000600a92101561501a575b662386f26fc10000811015615005575b6305f5e100811015614ff3575b612710811015614fe3575b6064811015614fd4575b1015614fc9575b614f606021614f2860018801615c08565b968701015b5f1901917f3031323334353637383961626364656600000000000000000000000000000000600a82061a8353600a900490565b908115614f7057614f6090614f2d565b50506001600160a01b03614f9584614f89858498615b9c565b60208151910120615bf2565b911693168314614fc157614fb39181602061142d9351910120615bf2565b14614fbc575f90565b600190565b505050600190565b600190940193614f17565b60029060649004960195614f10565b6004906127109004960195614f06565b6008906305f5e1009004960195614efb565b601090662386f26fc100009004960195614eee565b6020906d04ee2d6d415b85acef81000000009004960195614ede565b50604094507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008104614ec4565b90600a811015611d635768ff000000000000000082549160401b169068ff00000000000000001916179055565b8151815460208401516040808601516001600160401b039094167fffffff000000000000000000000000000000000000000000000000000000000090931692909217911b7bffffffffffffffffffffffffffffffffffffffff0000000000000000161760e09190911b60ff60e01b16178155606082015160018201556080820151600282015560a0820151600382015560c090910151600490910155565b601f821161513657505050565b5f5260205f20906020601f840160051c8301931061516e575b601f0160051c01905b818110615163575050565b5f8155600101615158565b909150819061514f565b91909182516001600160401b0381116108265761519f81615199845461280f565b84615129565b6020601f82116001146151da5781906131909394955f926151cf575b50508160011b915f199060031b1c19161790565b015190505f806151bb565b601f198216906151ed845f5260205f2090565b915f5b8181106152275750958360019596971061520f575b505050811b019055565b01515f1960f88460031b161c191690555f8080615205565b9192602060018192868b0151815501940192016151f0565b8151815467ffffffffffffffff19166001600160401b0391909116178155602082015191600a831015611d635760c0600d9161527e61278f958561505e565b6040810151600185015561529960608201516002860161508b565b6152aa60808201516007860161508b565b6152bb60a0820151600c8601615178565b01519101615178565b9161531360206152e1615305959694965f525f60205260405f2090565b956152f982606086015101516001600160a01b031690565b9586946005890161523f565b01516001600160a01b031690565b5f8351135f1461547b5761532783516158e5565b61533281848461548a565b6153416013870191825461331f565b90555b602083019283515f81136153fa575b5051905f82126153d2575b505050515f8112615375575b50505061278f61447e565b5f516020615d695f395f51905f52916153986143056001600160a01b0393614139565b6153bc601361432e836138ed866001600160a01b03165f52600660205260405f2090565b90556040519384521691602090a25f808061536a565b6143976143056153e193614139565b6153f06013850191825461332c565b9055815f8061535e565b615403906158e5565b6154228161428c866001600160a01b03165f52600660205260405f2090565b908161543f866001600160a01b03165f52600660205260405f2090565b5561544f6013890191825461331f565b90556040519081526001600160a01b038416905f516020615d695f395f51905f5290602090a25f615353565b6154853415612bdf565b615344565b90614af89291615498615604565b908215614c4a576001600160a01b0316918215801561554a576154bc823414612bdf565b156154c657505050565b6001600160a01b03604051926323b872dd60e01b5f52166004523060245260445260205f60648180865af160015f511481161561552b575b6040919091525f606052156155105750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516615541573d15833b151516166154fe565b503d5f823e3d90fd5b6155543415612bdf565b6154bc565b6001015460ff1661556981611d59565b60038114908115615578575090565b6002915061558581611d59565b1490565b6001600160401b0360038201541642101590816155a4575090565b600180925060ff9101541661558581611d59565b90614af892916155c6615604565b91908115614c4a576001600160a01b031691826155fb5761278f92505f808080856001600160a01b0386165af161262b613c34565b61278f92615662565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054146156535760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b633ee5aeb560e01b5f5260045ffd5b916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f51148116156156a5575b604091909152156155105750565b6001811516615541573d15833b15151616615697565b905f52600260205260405f2054159081614c67575090565b6001600160401b03815116906020810151600a811015611d635761577a8260406157da94015161571a60806060840151930151946040519760208901526040880190611d72565b6060860152608085019060c080916001600160401b0381511684526001600160a01b03602082015116602085015260ff6040820151166040850152606081015160608501526080810151608085015260a081015160a08501520151910152565b80516001600160401b031661016084015260208101516001600160a01b0316610180840152604081015160ff166101a084015260608101516101c084015260808101516101e084015260a081015161020084015260c00151610220830152565b61022081526104f26102408261275f565b9190915f52600260205260405f20918255600582019261582b6001600160401b0383511685906001600160401b03166001600160401b0319825416179055565b602082015193600a851015611d635760c06158e19361584f6002976158979461505e565b6040810151600687015561586a60608201516007880161508b565b61587b6080820151600c880161508b565b61588c60a082015160118801615178565b015160128501615178565b60018301907fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0083549260081b169116179055565b0155565b5f81126158ef5790565b635467221960e11b5f5260045260245ffd5b90604051918281549182825260208201905f5260205f20925f5b81811061593057505061278f9250038361275f565b845483526001948501948794506020909301920161591b565b6001600160a01b039061402d61596f61596a60209895999697993690612fc4565b6156d3565b936040519889978896879563600109bb60e01b875260048701613faa565b6001810190825f528160205260405f2054155f146159f557805468010000000000000000811015610826576159e26159cc826001879401855584613162565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b5050505f90565b80548015615a23575f190190615a128282613162565b8154905f199060031b1b1916905555565b634e487b7160e01b5f52603160045260245ffd5b6001810191805f528260205260405f2054928315155f14615ad5575f198401848111611bd85783545f19810194908511611bd8575f958583615a9297615a859503615a98575b5050506159fc565b905f5260205260405f2090565b55600190565b615abe615ab891615aaf6105de615acc9588613162565b92839187613162565b90613177565b85905f5260205260405f2090565b555f8080615a7d565b505050505f90565b60405163a9059cbb60e01b60208281019182526001600160a01b03909416602483015260448083019590955293815290925f91615b1b60648261275f565b51908285620186a0f15f51913d91156159f5578115615b415750602011614a1857151590565b9150503b151590565b9190915f52600560205260405f20918255600582019261582b6001600160401b0383511685906001600160401b03166001600160401b0319825416179055565b805191908290602001825e015f815290565b61278f90615be4615bde94936040519586937f19457468657265756d205369676e6564204d6573736167653a0a0000000000006020860152603a850190615b8a565b90615b8a565b03601f19810184528361275f565b6104f291615bff91615c30565b90929192615c6a565b90615c1282612f58565b615c1f604051918261275f565b8281528092613315601f1991612f58565b8151919060418303615c6057615c599250602082015190606060408401519301515f1a90615ce6565b9192909190565b50505f9160029190565b615c7381611d59565b80615c7c575050565b615c8581611d59565b60018103615c9c5763f645eedf60e01b5f5260045ffd5b615ca581611d59565b60028103615cc0575063fce698f760e01b5f5260045260245ffd5b80615ccc600392611d59565b14615cd45750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615d5d579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156104a9575f516001600160a01b03811615615d5357905f905f90565b505f906001905f90565b5050505f916003919056fe05f47829691a1f710b0620aedd52749bb09d8abe4bb530d306db920a71b0d7cea26469706673582212209ca9c46147c1489a82a869c349b42f4d493d4ac3ebf3c0ac4fa5a93e0113024c64736f6c634300081e0033000000000000000000000000ac00326e2d0c33253d77e22034291f4c2b6f3681000000000000000000000000c76632d91d45ec88304ab2a983451d9edf908c0d",
"nonce": "0x1",
"chainId": "0xaa36a7"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [],
"libraries": [
"src/ChannelEngine.sol:ChannelEngine:0x89B81857A46cf290F23f6ff9B24e1031aAd65204",
"src/EscrowDepositEngine.sol:EscrowDepositEngine:0xDccc09e335B87FB506C40A972e76fC7a225E0bf9",
"src/EscrowWithdrawalEngine.sol:EscrowWithdrawalEngine:0xDcA4Ab495188b545cFa919C0CB0A7e2280F2F407"
],
"pending": [
"0xf80e9796a40d5b976366430516408e7240f211b769159a65fcb9aed030bfd75f"
],
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Missing transaction trace for ChannelHub deployment.

Line 23 sets hash to null for the ChannelHub deployment, but this tx is also not present in pending (Lines 51-53). That leaves this deployment record non-auditable from this artifact alone.

Please regenerate this broadcast artifact so each transaction is either fully hashed/receipted or explicitly pending.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@contracts/broadcast/DeployChannelHub.s.sol/11155111/run-1779353692222.json`
around lines 23 - 53, The ChannelHub deployment entry has a null "hash" and no
matching entry in the "pending" array (the ChannelHub CREATE record with
contractName "ChannelHub"), making the broadcast artifact non-auditable;
regenerate the broadcast so that the ChannelHub CREATE transaction is either
finalized (populate its "hash" and corresponding receipt(s) in "receipts") or
explicitly left pending (include its tx hash in the "pending" list and keep
receipts empty), then replace the artifact with the regenerated output so every
transaction record is either fully hashed/receipted or explicitly pending.

Comment on lines +22 to +52
"hash": "0x8a149aaf4be2aa8f0d2ebae69ab29ede62e20494891a5a287e6fa7c86397f079",
"transactionType": "CREATE2",
"contractName": "EscrowWithdrawalEngine.channelhub",
"contractAddress": "0xdca4ab495188b545cfa919c0cb0a7e2280f2f407",
"function": null,
"arguments": null,
"transaction": {
"from": "0xbab179854ba39cfcfb2d1d98a05fcfa113cf4ac1",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"gas": "0xf5e93",
"input": "0x000000000000000000000000000000000000000000000000000000000000000060808060405234601957610c31908161001e823930815050f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8062ea54e7146100ff576324063eba1461002e575f80fd5b60203660031901126100fb5760043567ffffffffffffffff81116100fb5761005a9036906004016109ec565b610062610aac565b905160048110156100e7575f19016100d857600260408201526201518067ffffffffffffffff4216019067ffffffffffffffff82116100c45767ffffffffffffffff6100c0921660608201525f608082015260405191829182610a61565b0390f35b634e487b7160e01b5f52601160045260245ffd5b630725d7e560e31b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b5f80fd5b60403660031901126100fb5760043567ffffffffffffffff81116100fb5761012b9036906004016109ec565b60243567ffffffffffffffff81116100fb5761014b903690600401610935565b610153610aac565b50815160048110156100e7576003146107d05767ffffffffffffffff461660608201908067ffffffffffffffff83515116146107c157608083019067ffffffffffffffff82515116036107b25767ffffffffffffffff835116156106785780516040810190601260ff835116116107a3574667ffffffffffffffff825116146106de575b5050805160a0606082015191015181018091116100c457610203825160c0608082015191015190610ad6565b5f81126106cf5761021390610b01565b036106c057835160048110156100e75760021461069b575b610233610aac565b5060208301928351600a8110156100e75760068103610448575050610256610aac565b91845160048110156100e7576104395760608251015161042a5760808251015161041b5781519160c060a084015193015161029084610b1d565b0361040c576102bd60ff60406102b28551838360608301519201511690610b7b565b935101511684610b7b565b116103fd575160a001516103ee576102d490610b1d565b60208201526001604082015260016080820152915b8251158015906103e1575b156103d25782519161030c6020850193845190610ad6565b908051600a8110156100e757600603610369575082510361035a5760806103369101519151610b01565b1161034c576100c0905b60405191829182610a61565b62b8ec7b60e61b5f5260045ffd5b638041118f60e01b5f5260045ffd5b9091925051600a8110156100e75760071461038a575b50506100c090610340565b8251036103c35760406103a56103a08451610af1565b610b01565b910151036103b457818061037f565b631b22645160e31b5f5260045ffd5b6322e0e03d60e21b5f5260045ffd5b630bde39a760e11b5f5260045ffd5b50602083015115156102f4565b63a5eabfa560e01b5f5260045ffd5b63e19f88d560e01b5f5260045ffd5b63035a66d760e11b5f5260045ffd5b634c66f95560e01b5f5260045ffd5b631605013b60e11b5f5260045ffd5b63ed77877960e01b5f5260045ffd5b90929060070361065a5761045a610aac565b92855160048110156100e7576001148015610687575b156100d85767ffffffffffffffff9051166020860190600167ffffffffffffffff835151160167ffffffffffffffff81116100c45767ffffffffffffffff1603610678576001600160a01b03602084510151166001600160a01b0360206080845101510151160361066957602081510151600a8110156100e7576005190161065a5760a060808251015101519260608151015161042a5760808151015161051e61051986610b1d565b610af1565b0361041b5760a0815101516103ee575160c0015161053b84610b1d565b0361062d57606082510151606080835101510151111561064b5760608082510151015160608351015181039081116100c4576105809060ff6040855101511690610b7b565b61059660ff604060808551015101511685610b7b565b0361063c5760c08251015160c06060835101510151905f82820392128183128116918313901516176100c4575f81121561062d57604060806105f66105f06106039660ff856105e58298610af1565b925101511690610bb8565b96610b1d565b9351015101511690610bb8565b0361040c576106186105196040850151610b1d565b8152600360408201525f6080820152916102e9565b630c18740d60e01b5f5260045ffd5b63ffda345d60e01b5f5260045ffd5b6304bc7c3760e31b5f5260045ffd5b633226144f60e21b5f5260045ffd5b630486bbc360e51b5f5260045ffd5b6307646e4960e01b5f5260045ffd5b50855160048110156100e757600214610470565b67ffffffffffffffff60608501511642111561022b5763f06506c560e01b5f5260045ffd5b6392ad5c7560e01b5f5260045ffd5b630e6af40760e41b5f5260045ffd5b602001516001600160a01b031680610714575060ff601291511603610705575b84806101d7565b635a8dbaed60e01b5f5260045ffd5b9060206004926040519384809263313ce56760e01b82525afa5f9281610765575b5061074957636afa2af960e01b5f5260045ffd5b60ff809151169116146106fe57635a8dbaed60e01b5f5260045ffd5b9092506020813d60201161079b575b816107816020938361082b565b810103126100fb575160ff811681036100fb579187610735565b3d9150610774565b632c05b0fd60e21b5f5260045ffd5b639ba78e5560e01b5f5260045ffd5b6321e65f6560e01b5f5260045ffd5b636915564560e01b5f5260045ffd5b60e0810190811067ffffffffffffffff8211176107fb57604052565b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff8211176107fb57604052565b90601f8019910116810190811067ffffffffffffffff8211176107fb57604052565b359067ffffffffffffffff821682036100fb57565b91908260e09103126100fb5760405161087a816107df565b80926108858161084d565b825260208101356001600160a01b03811681036100fb576020830152604081013560ff811681036100fb5760c09182916040850152606081013560608501526080810135608085015260a081013560a08501520135910152565b81601f820112156100fb5780359067ffffffffffffffff82116107fb5760405192610914601f8401601f19166020018561082b565b828452602083830101116100fb57815f926020809301838601378301015290565b9190610260838203126100fb576040519061094f826107df565b819361095a8161084d565b83526020810135600a8110156100fb576020840152604081013560408401526109868260608301610862565b6060840152610999826101408301610862565b608084015261022081013567ffffffffffffffff81116100fb57826109bf9183016108df565b60a08401526102408101359167ffffffffffffffff83116100fb5760c0926109e792016108df565b910152565b91909160a0818403126100fb5760405190610a068261080f565b8193813560048110156100fb57835260208201359167ffffffffffffffff83116100fb57610a3a6080939284938301610935565b602085015260408101356040850152610a556060820161084d565b60608501520135910152565b91909160a08101928051825260208101516020830152604081015160048110156100e7576080918291604085015267ffffffffffffffff606082015116606085015201511515910152565b60405190610ab98261080f565b5f6080838281528260208201528260408201528260608201520152565b9190915f83820193841291129080158216911516176100c457565b600160ff1b81146100c4575f0390565b5f8112610b0b5790565b635467221960e11b5f5260045260245ffd5b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8111610b475790565b63123baf0360e11b5f5260045260245ffd5b60ff166012039060ff82116100c457565b60ff16604d81116100c457600a0a90565b9060ff8116601281116107a357601214610bb457610b9b610ba091610b59565b610b6a565b908181029181830414901517156100c45790565b5090565b9060ff8116601281116107a357601214610bb457610b9b610bd891610b59565b81810291905f8212600160ff1b8214166100c45781830514901517156100c4579056fea26469706673582212206962417e2cd8eb647234f143f2014cfb5f1a06887319a0bcf2a01e09331d57de64736f6c634300081e0033",
"nonce": "0x1",
"chainId": "0xe705"
},
"additionalContracts": [],
"isFixedGasLimit": false
},
{
"hash": "0x8590922c6571c3e212736e1c88cd82d2a38a13c4026fa71ecd331ffd288dd295",
"transactionType": "CREATE2",
"contractName": "EscrowDepositEngine.channelhub",
"contractAddress": "0xdccc09e335b87fb506c40a972e76fc7a225e0bf9",
"function": null,
"arguments": null,
"transaction": {
"from": "0xbab179854ba39cfcfb2d1d98a05fcfa113cf4ac1",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"gas": "0xfc763",
"input": "0x000000000000000000000000000000000000000000000000000000000000000060808060405234601957610bc8908161001e823930815050f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80636666e4c0146106f95763bbc42f341461002f575f80fd5b60403660031901126106b15760043567ffffffffffffffff81116106b15761005b9036906004016109a1565b60243567ffffffffffffffff81116106b15761007b9036906004016108ea565b610083610a89565b508151600481101561030b576003146106ea5767ffffffffffffffff46169060608101918067ffffffffffffffff84515116146106db57608082019067ffffffffffffffff82515116036106cc5767ffffffffffffffff8251161561057f5780516040810190601260ff835116116106bd574667ffffffffffffffff825116146105f4575b5050805160a06060820151910151810180911161033b57610134825160c0608082015191015190610aca565b5f81126105e55761014490610af5565b036105d6578351600481101561030b576002146105b1575b610164610a89565b5060208201928351600a81101561030b576004810361039a5750909150610189610a89565b918451600481101561030b5761038b57805191608060608401519301516101af84610b11565b0361037c5760a08251015161036d5760c08251015161035e5760ff60406101e56101f09351838360a08301519201511690610b4d565b935101511683610b4d565b0361034f576101fe90610b11565b815260016040820152612a3067ffffffffffffffff42160167ffffffffffffffff811161033b5767ffffffffffffffff166060820152600160a0820152915b82511580159061032e575b1561031f57825161025f6020850191825190610aca565b928051600a81101561030b576004036102a0575050508151036102915761028d905b60405191829182610a2a565b0390f35b638041118f60e01b5f5260045ffd5b9290919251600a81101561030b576005146102c2575b50505061028d90610281565b8151036102fc576102dd6102d860409251610ae5565b610af5565b910151036102ed575f80806102b6565b63b09443e760e01b5f5260045ffd5b6322e0e03d60e21b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b630bde39a760e11b5f5260045ffd5b5060208301511515610248565b634e487b7160e01b5f52601160045260245ffd5b63e19f88d560e01b5f5260045ffd5b630c18740d60e01b5f5260045ffd5b63a5eabfa560e01b5f5260045ffd5b633b5613e560e11b5f5260045ffd5b63ed77877960e01b5f5260045ffd5b600503610561576103a9610a89565b928551600481101561030b57600114801561059d575b1561058e5767ffffffffffffffff905116916020860192600167ffffffffffffffff855151160167ffffffffffffffff811161033b5767ffffffffffffffff160361057f576001600160a01b03602082510151166001600160a01b0360206080865101510151160361057057602083510151600a81101561030b576003190161056157606060808451015101519060808151015161045c83610b11565b0361037c5760c08151015161047861047384610b11565b610ae5565b0361035e57606081510151610552575160a0015161036d57606082510151606080855101510151810390811161033b576104be6104d29160ff6040865101511690610b4d565b9160ff604060808751015101511690610b4d565b036105435760a08151015161036d57606060808092510151925101510151908181035f831282808312821692139015161761033b57036105345761051c6104736040850151610b11565b6020820152600360408201525f60a08201529161023d565b631180da8f60e01b5f5260045ffd5b630ff0edb360e41b5f5260045ffd5b631605013b60e11b5f5260045ffd5b633226144f60e21b5f5260045ffd5b630486bbc360e51b5f5260045ffd5b6307646e4960e01b5f5260045ffd5b630725d7e560e31b5f5260045ffd5b508551600481101561030b576002146103bf565b67ffffffffffffffff60808501511642111561015c5763f06506c560e01b5f5260045ffd5b6392ad5c7560e01b5f5260045ffd5b630e6af40760e41b5f5260045ffd5b602001516001600160a01b03168061062a575060ff60129151160361061b575b5f80610108565b635a8dbaed60e01b5f5260045ffd5b9060206004926040519384809263313ce56760e01b82525afa5f928161067b575b5061065f57636afa2af960e01b5f5260045ffd5b60ff8091511691161461061457635a8dbaed60e01b5f5260045ffd5b9092506020813d6020116106b5575b81610697602093836107e0565b810103126106b1575160ff811681036106b157915f61064b565b5f80fd5b3d915061068a565b632c05b0fd60e21b5f5260045ffd5b639ba78e5560e01b5f5260045ffd5b6321e65f6560e01b5f5260045ffd5b636915564560e01b5f5260045ffd5b60203660031901126106b15760043567ffffffffffffffff81116106b1576107259036906004016109a1565b61072d610a89565b908051600481101561030b575f190161058e576060015167ffffffffffffffff164210156107a157600260408201526201518067ffffffffffffffff4216019067ffffffffffffffff821161033b5767ffffffffffffffff61028d921660808201525f60a082015260405191829182610a2a565b63159ce82160e11b5f5260045ffd5b60e0810190811067ffffffffffffffff8211176107cc57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176107cc57604052565b359067ffffffffffffffff821682036106b157565b91908260e09103126106b15760405161082f816107b0565b809261083a81610802565b825260208101356001600160a01b03811681036106b1576020830152604081013560ff811681036106b15760c09182916040850152606081013560608501526080810135608085015260a081013560a08501520135910152565b81601f820112156106b15780359067ffffffffffffffff82116107cc57604051926108c9601f8401601f1916602001856107e0565b828452602083830101116106b157815f926020809301838601378301015290565b9190610260838203126106b15760405190610904826107b0565b819361090f81610802565b83526020810135600a8110156106b15760208401526040810135604084015261093b8260608301610817565b606084015261094e826101408301610817565b608084015261022081013567ffffffffffffffff81116106b15782610974918301610894565b60a08401526102408101359167ffffffffffffffff83116106b15760c09261099c9201610894565b910152565b91909160a0818403126106b1576040519060a0820182811067ffffffffffffffff8211176107cc576040528193813560048110156106b157835260208201359067ffffffffffffffff82116106b15782610a046080949261099c948694016108ea565b602086015260408101356040860152610a1f60608201610802565b606086015201610802565b91909160c081019280518252602081015160208301526040810151600481101561030b5760a0918291604085015267ffffffffffffffff606082015116606085015267ffffffffffffffff608082015116608085015201511515910152565b6040519060c0820182811067ffffffffffffffff8211176107cc576040525f60a0838281528260208201528260408201528260608201528260808201520152565b9190915f838201938412911290801582169115161761033b57565b600160ff1b811461033b575f0390565b5f8112610aff5790565b635467221960e11b5f5260045260245ffd5b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8111610b3b5790565b63123baf0360e11b5f5260045260245ffd5b9060ff16601281116106bd5760128114610b8e5760120360ff811161033b5760ff16604d811161033b57600a0a9081810291818304149015171561033b5790565b509056fea26469706673582212207eb21c0d1619a3248a4b3fe08eef8df6e3a6e3feca56e1a09ecf8241267f767564736f6c634300081e0033",
"nonce": "0x2",
"chainId": "0xe705"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Receipt hash/index mapping is inconsistent with transaction metadata.

transactions shows EscrowWithdrawalEngine.channelhub as hash 0x8a14... with nonce 0x1 (Lines 22-33), and EscrowDepositEngine.channelhub as hash 0x8590... with nonce 0x2 (Lines 40-51).
But receipts report 0x8590... at transactionIndex: 0x1 (Lines 122-124) and 0x8a14... at transactionIndex: 0x2 (Lines 138-140).

Please regenerate the artifact so transaction hash/nonce metadata and receipt index/hash metadata are internally consistent.

Also applies to: 116-147

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@contracts/broadcast/DeployChannelHub.s.sol/59141/run-1779363212273.json`
around lines 22 - 52, The artifact has mismatched transaction metadata vs
receipts for EscrowWithdrawalEngine.channelhub and
EscrowDepositEngine.channelhub: ensure the transactions array entries
(contractName, hash, nonce) and the receipts entries (transactionHash,
transactionIndex) are consistent by regenerating the JSON so that
EscrowWithdrawalEngine.channelhub (hash 0x8a14...) with nonce 0x1 maps to the
matching receipt with the same transactionHash and the correct transactionIndex,
and EscrowDepositEngine.channelhub (hash 0x8590...) with nonce 0x2 maps to its
matching receipt; verify and correct all occurrences in the transactions and
receipts sections so hashes, nonces and transactionIndex values align before
committing the regenerated artifact.

{
"deployer": "0xbab179854ba39cfcfb2d1d98a05fcfa113cf4ac1",
"deployedTo": "0x6c333ac983749b9404704915ee6859bf1942a091",
"transactionHash": "null",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Use JSON null instead of string "null" for transactionHash.

On Line 4, storing "null" as a string is brittle for metadata parsers that validate hash/null types. Use null (JSON null) or the actual hash.

Proposed fix
-  "transactionHash": "null",
+  "transactionHash": null,
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"transactionHash": "null",
"transactionHash": null,
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@contracts/deployments/11155111/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T08-54-52.json`
at line 4, The JSON metadata currently sets the transactionHash field to the
string literal "null"; update the transactionHash entry so it is a proper JSON
null (transactionHash: null) or replace it with the real transaction hash
string, ensuring the value is a true null value rather than the string "null" in
the sandbox-v1_3_0-2026-05-21T08-54-52.json payload.

"commit": "5922d1707a10340148adb41414f956184c0c5c34",
"timestamp": 1779355416,
"chainId": 11155111,
"contractPath": "./src/sigValidators/SessionKeyValidator.sol:SessionKeyValidator",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Normalize contractPath format to match deployment metadata conventions.

Line 8 uses ./src/... while the rest of the deployment manifests use src/.... Keep one canonical format to avoid path-based lookup mismatches.

Proposed fix
-  "contractPath": "./src/sigValidators/SessionKeyValidator.sol:SessionKeyValidator",
+  "contractPath": "src/sigValidators/SessionKeyValidator.sol:SessionKeyValidator",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"contractPath": "./src/sigValidators/SessionKeyValidator.sol:SessionKeyValidator",
"contractPath": "src/sigValidators/SessionKeyValidator.sol:SessionKeyValidator",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@contracts/deployments/11155111/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-23-36.json`
at line 8, The deployment metadata uses a non-canonical relative path for the
contractPath field; update the contractPath value for SessionKeyValidator so it
matches the rest of manifests by removing the leading "./" (i.e., use
src/sigValidators/SessionKeyValidator.sol:SessionKeyValidator), ensuring any
path-based lookup of contractPath matches other deployment entries.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@nitronode/chart/config/old/sandbox-v1/assets.yaml`:
- Around line 7-12: The ETH asset entries currently using address
"0x0000000000000000000000000000000000000000" (blockchain_id: 59141 and
blockchain_id: 84532) must follow the same native-token sentinel used elsewhere
(e.g., "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"); update those address
fields to that sentinel (or alternatively update the other native entry to
zero-address if you intentionally prefer zero-address) and ensure the change is
applied consistently across all native ETH entries to avoid parsing ambiguity.
- Around line 40-59: The "Yellow USD" asset definitions have inconsistent
per-chain decimals and repeated placeholder address usage; inspect the sandbox
v1.3.0 PremintERC20 deployment metadata for YUSD and update the "Yellow USD"
asset (name "Yellow USD", symbol "yusd", top-level decimals and each tokens[]
entry) so each tokens[].address matches the real per-chain deployed address and
each tokens[].decimals matches the on-chain ERC-20 decimals() value for that
address (e.g., fix the 59141/84532/1449000/11155111 entries that reuse
0x67a5F0... and the 80002 entry with decimals: 8), and reconcile or remove the
top-level decimals if per-token decimals must differ.

In `@nitronode/chart/config/sandbox-v1/clearnode.yaml.gotmpl`:
- Around line 26-29: Update the image tag for the clearnode chart to the sandbox
v1.3.0 release by changing the image.tag value from "v1.2.0" to "v1.3.0" in the
clearnode Helm template (look for the image: repository:
ghcr.io/layer-3/nitrolite/clearnode and the image.tag field in
clearnode.yaml.gotmpl) so the deployed artifact matches the v1.3.0 rollout and
avoids compatibility drift.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3b6767b2-9e69-4e20-ba33-031ccebdbe7f

📥 Commits

Reviewing files that changed from the base of the PR and between a5cb25e and 2aa1ce9.

📒 Files selected for processing (51)
  • contracts/broadcast/DeployChannelHub.s.sol/11155111/run-1779353692222.json
  • contracts/broadcast/DeployChannelHub.s.sol/11155111/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/1449000/run-1779364442629.json
  • contracts/broadcast/DeployChannelHub.s.sol/59141/run-1779363212273.json
  • contracts/broadcast/DeployChannelHub.s.sol/59141/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/80002/run-1779355867097.json
  • contracts/broadcast/DeployChannelHub.s.sol/80002/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/84532/run-1779355068769.json
  • contracts/broadcast/DeployChannelHub.s.sol/84532/run-latest.json
  • contracts/deployments/11155111/ChannelEngine.sol_ChannelEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/11155111/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T13-07-26.json
  • contracts/deployments/11155111/ChannelHub.sol_ChannelHub/stress-v1_3_0-2026-05-20T14-12-01.json
  • contracts/deployments/11155111/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T09-23-00.json
  • contracts/deployments/11155111/EscrowDepositEngine.sol_EscrowDepositEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/11155111/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/11155111/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T15-00-01.json
  • contracts/deployments/11155111/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-23-36.json
  • contracts/deployments/1449000/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T11-54-02.json
  • contracts/deployments/1449000/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T11-54-52.json
  • contracts/deployments/1449000/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T11-54-52.json
  • contracts/deployments/1449000/EscrowDepositEngine.sol_EscrowDepositEngine/sandbox-v1_3_0-2026-05-21T11-54-02.json
  • contracts/deployments/1449000/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/sandbox-v1_3_0-2026-05-21T11-54-02.json
  • contracts/deployments/1449000/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T14-57-16.json
  • contracts/deployments/1449000/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T11-56-56.json
  • contracts/deployments/59141/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/EscrowDepositEngine.sol_EscrowDepositEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/59141/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T14-58-01.json
  • contracts/deployments/59141/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T11-36-15.json
  • contracts/deployments/80002/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/EscrowDepositEngine.sol_EscrowDepositEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T15-00-37.json
  • contracts/deployments/80002/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-32-52.json
  • contracts/deployments/84532/ChannelEngine.sol_ChannelEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/84532/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T09-17-48.json
  • contracts/deployments/84532/ChannelHub.sol_ChannelHub/stress-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/84532/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T09-17-48.json
  • contracts/deployments/84532/EscrowDepositEngine.sol_EscrowDepositEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/84532/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/84532/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T14-59-43.json
  • contracts/deployments/84532/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-20-38.json
  • nitronode/chart/config/old/sandbox-v1/assets.yaml
  • nitronode/chart/config/sandbox-v1/action_gateway.yaml
  • nitronode/chart/config/sandbox-v1/assets.yaml
  • nitronode/chart/config/sandbox-v1/blockchains.yaml
  • nitronode/chart/config/sandbox-v1/clearnode.yaml.gotmpl
💤 Files with no reviewable changes (2)
  • contracts/broadcast/DeployChannelHub.s.sol/11155111/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/84532/run-latest.json
✅ Files skipped from review due to trivial changes (44)
  • contracts/deployments/84532/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/59141/EscrowDepositEngine.sol_EscrowDepositEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/84532/ChannelEngine.sol_ChannelEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/84532/EscrowDepositEngine.sol_EscrowDepositEngine/dev-v1_3_0-2026-05-20T12-05-28.json
  • contracts/deployments/11155111/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T09-23-00.json
  • contracts/deployments/11155111/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/59141/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/11155111/EscrowDepositEngine.sol_EscrowDepositEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/80002/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • nitronode/chart/config/sandbox-v1/assets.yaml
  • contracts/deployments/1449000/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T11-54-02.json
  • contracts/deployments/11155111/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-23-36.json
  • contracts/deployments/1449000/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T11-54-52.json
  • contracts/deployments/11155111/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T15-00-01.json
  • contracts/deployments/1449000/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T11-54-52.json
  • contracts/deployments/1449000/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T11-56-56.json
  • contracts/broadcast/DeployChannelHub.s.sol/1449000/run-1779364442629.json
  • contracts/deployments/59141/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T11-36-15.json
  • contracts/deployments/80002/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/80002/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T15-00-37.json
  • contracts/deployments/84532/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T09-17-48.json
  • contracts/deployments/59141/ECDSAValidator.sol_ECDSAValidator/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/80002/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/1449000/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T14-57-16.json
  • contracts/deployments/11155111/ChannelEngine.sol_ChannelEngine/dev-v1_3_0-2026-05-20T12-00-01.json
  • contracts/deployments/1449000/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/sandbox-v1_3_0-2026-05-21T11-54-02.json
  • nitronode/chart/config/sandbox-v1/action_gateway.yaml
  • contracts/deployments/84532/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T09-17-48.json
  • contracts/deployments/59141/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • contracts/deployments/11155111/ChannelHub.sol_ChannelHub/sandbox-v1_3_0-2026-05-21T13-07-26.json
  • contracts/deployments/59141/ChannelEngine.sol_ChannelEngine/sandbox-v1_3_0-2026-05-21T11-33-32.json
  • nitronode/chart/config/sandbox-v1/blockchains.yaml
  • contracts/deployments/80002/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-32-52.json
  • contracts/broadcast/DeployChannelHub.s.sol/11155111/run-1779353692222.json
  • contracts/deployments/80002/EscrowWithdrawalEngine.sol_EscrowWithdrawalEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/deployments/84532/PremintERC20.sol_PremintERC20/sandbox-v1_3_0-2026-05-21T14-59-43.json
  • contracts/deployments/84532/SessionKeyValidator.sol_SessionKeyValidator/sandbox-v1_3_0-2026-05-21T09-20-38.json
  • contracts/deployments/80002/EscrowDepositEngine.sol_EscrowDepositEngine/sandbox-v1_3_0-2026-05-21T09-31-07.json
  • contracts/broadcast/DeployChannelHub.s.sol/80002/run-1779355867097.json
  • contracts/broadcast/DeployChannelHub.s.sol/80002/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/59141/run-latest.json
  • contracts/broadcast/DeployChannelHub.s.sol/59141/run-1779363212273.json
  • contracts/deployments/1449000/EscrowDepositEngine.sol_EscrowDepositEngine/sandbox-v1_3_0-2026-05-21T11-54-02.json
  • contracts/broadcast/DeployChannelHub.s.sol/84532/run-1779355068769.json

Comment on lines +7 to +12
- blockchain_id: 59141
address: "0x0000000000000000000000000000000000000000"
decimals: 18
- blockchain_id: 84532
address: "0x0000000000000000000000000000000000000000"
decimals: 18
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Ether token entries use zero-address — confirm native ETH placeholder convention.

Other configurations in this stack (e.g., the XRP entry on line 30) use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE as the native-token sentinel, while ETH tokens here use 0x0000...0000. If both are intended to represent the native gas token, the convention should be consistent across assets in the same file to avoid downstream parsing ambiguity.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@nitronode/chart/config/old/sandbox-v1/assets.yaml` around lines 7 - 12, The
ETH asset entries currently using address
"0x0000000000000000000000000000000000000000" (blockchain_id: 59141 and
blockchain_id: 84532) must follow the same native-token sentinel used elsewhere
(e.g., "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"); update those address
fields to that sentinel (or alternatively update the other native entry to
zero-address if you intentionally prefer zero-address) and ensure the change is
applied consistently across all native ETH entries to avoid parsing ambiguity.

Comment on lines +40 to +59
- name: "Yellow USD"
symbol: "yusd"
decimals: 6
suggested_blockchain_id: 11155111
tokens:
- blockchain_id: 59141
address: "0x67a5F0B0553E22689A539b80cBE4A1Cd126E2Bde"
decimals: 18
- blockchain_id: 80002
address: "0x1b66e510B845a746334B866b62C64746bEbfF857"
decimals: 8
- blockchain_id: 84532
address: "0x67a5F0B0553E22689A539b80cBE4A1Cd126E2Bde"
decimals: 6
- blockchain_id: 1449000
address: "0x67a5F0B0553E22689A539b80cBE4A1Cd126E2Bde"
decimals: 18
- blockchain_id: 11155111
address: "0x67a5F0B0553E22689A539b80cBE4A1Cd126E2Bde"
decimals: 6
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Inconsistent decimals for YUSD across chains (likely misconfiguration).

The same placeholder address 0x67a5F0B0553E22689A539b80cBE4A1Cd126E2Bde is reused on chains 59141, 84532, 1449000, and 11155111 but with differing decimals (18, 6, 18, 6 respectively). A stablecoin like YUSD is typically deployed with the same decimals across chains, and an ERC-20 at a given address has exactly one decimals() value — so either the addresses are placeholders that still need to be replaced with real per-chain deployments, or the decimals values are wrong. Additionally, chain 80002 uses a different address with decimals: 8, which also looks off for a USD stablecoin.

Please verify against the actual deployed PremintERC20 YUSD addresses/decimals from the sandbox v1.3.0 deployment metadata and align values accordingly. Also note the top-level decimals: 6 for the asset conflicts with several per-token entries.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@nitronode/chart/config/old/sandbox-v1/assets.yaml` around lines 40 - 59, The
"Yellow USD" asset definitions have inconsistent per-chain decimals and repeated
placeholder address usage; inspect the sandbox v1.3.0 PremintERC20 deployment
metadata for YUSD and update the "Yellow USD" asset (name "Yellow USD", symbol
"yusd", top-level decimals and each tokens[] entry) so each tokens[].address
matches the real per-chain deployed address and each tokens[].decimals matches
the on-chain ERC-20 decimals() value for that address (e.g., fix the
59141/84532/1449000/11155111 entries that reuse 0x67a5F0... and the 80002 entry
with decimals: 8), and reconcile or remove the top-level decimals if per-token
decimals must differ.

Comment on lines +26 to +29
image:
repository: ghcr.io/layer-3/nitrolite/clearnode
tag: v1.2.0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Update clearnode image tag to the sandbox v1.3.0 release.

Line 28 uses v1.2.0, which is inconsistent with this v1.3.0 sandbox rollout and can cause runtime/contract compatibility drift.

Proposed fix
 image:
   repository: ghcr.io/layer-3/nitrolite/clearnode
-  tag: v1.2.0
+  tag: v1.3.0
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
image:
repository: ghcr.io/layer-3/nitrolite/clearnode
tag: v1.2.0
image:
repository: ghcr.io/layer-3/nitrolite/clearnode
tag: v1.3.0
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@nitronode/chart/config/sandbox-v1/clearnode.yaml.gotmpl` around lines 26 -
29, Update the image tag for the clearnode chart to the sandbox v1.3.0 release
by changing the image.tag value from "v1.2.0" to "v1.3.0" in the clearnode Helm
template (look for the image: repository: ghcr.io/layer-3/nitrolite/clearnode
and the image.tag field in clearnode.yaml.gotmpl) so the deployed artifact
matches the v1.3.0 rollout and avoids compatibility drift.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant