180 Commits

Author SHA1 Message Date
defiQUG
ee824cd1c8 Add GRU vault controls and OMNL operator links
Some checks failed
CI/CD Pipeline / Solidity Contracts (pull_request) Failing after 58s
CI/CD Pipeline / Security Scanning (pull_request) Successful in 2m30s
CI/CD Pipeline / Lint and Format (pull_request) Failing after 51s
CI/CD Pipeline / Terraform Validation (pull_request) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (pull_request) Successful in 34s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (pull_request) Failing after 22s
Validation / validate-genesis (pull_request) Successful in 37s
Validation / validate-terraform (pull_request) Failing after 28s
Validation / validate-kubernetes (pull_request) Failing after 21s
Validation / validate-smart-contracts (pull_request) Failing after 13s
Validation / validate-security (pull_request) Failing after 1m27s
Validation / validate-documentation (pull_request) Failing after 18s
2026-07-12 19:44:27 -07:00
defiQUG
6915d5b067 Refine OMNL portal and vault controls 2026-07-12 15:34:15 -07:00
defiQUG
7b43908585 merge(main): reconcile remote main into x402 verification branch
Some checks failed
CI/CD Pipeline / Solidity Contracts (pull_request) Failing after 54s
CI/CD Pipeline / Security Scanning (pull_request) Successful in 2m39s
CI/CD Pipeline / Lint and Format (pull_request) Failing after 50s
CI/CD Pipeline / Terraform Validation (pull_request) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (pull_request) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (pull_request) Failing after 24s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (pull_request) Failing after 24s
Validation / validate-genesis (pull_request) Successful in 33s
Validation / validate-terraform (pull_request) Failing after 33s
Validation / validate-kubernetes (pull_request) Failing after 12s
Validation / validate-smart-contracts (pull_request) Failing after 14s
Validation / validate-security (pull_request) Failing after 1m18s
Validation / validate-documentation (pull_request) Failing after 22s
2026-07-12 15:14:59 -07:00
defiQUG
df46ede3d8 chore(verification): add Chain 138 verification sources and audit output
Some checks failed
CI/CD Pipeline / Solidity Contracts (pull_request) Failing after 1m0s
CI/CD Pipeline / Security Scanning (pull_request) Successful in 2m32s
CI/CD Pipeline / Lint and Format (pull_request) Failing after 48s
CI/CD Pipeline / Terraform Validation (pull_request) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (pull_request) Successful in 38s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (pull_request) Failing after 42s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (pull_request) Failing after 34s
Validation / validate-genesis (pull_request) Successful in 31s
Validation / validate-terraform (pull_request) Failing after 28s
Validation / validate-kubernetes (pull_request) Failing after 12s
Validation / validate-smart-contracts (pull_request) Failing after 11s
Validation / validate-security (pull_request) Failing after 1m31s
Validation / validate-documentation (pull_request) Failing after 19s
2026-07-12 13:20:31 -07:00
defiQUG
c391dd02a1 feat(x402): add Cronos facilitator adapter and atomic purchase flow 2026-07-12 13:19:32 -07:00
defiQUG
9402317eb2 feat(atomic): add x402 intent bridge adapters
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 10:02:12 -07:00
defiQUG
869d61bcc7 fix(token-aggregation): enforce wallet-safe Chain 138 RPC URLs
Ensure MetaMask add-chain payloads never inherit LAN HTTP RPCs by routing Chain 138 wallet payloads through a public HTTPS-only resolver.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:58:44 -07:00
defiQUG
8abbdf997d chore(gru): retarget local contracts symlink
Point the GRU contracts link at the official monetary policy checkout used by the current operator workspace.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:57:36 -07:00
defiQUG
d249ee5d05 chore(deploy): harden scoped verification profiles
Capture targeted Foundry profile and deploy-script updates needed for the operator verification and PMM mesh workflows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:57:14 -07:00
defiQUG
c55fab257c feat(token-aggregation): add Chain 138 wallet routing surfaces
Add MetaMask Snap metadata, wallet image helpers, and n-hop planning surfaces so Chain 138 routing and wallet-add flows have consistent API coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:57:09 -07:00
defiQUG
6dcadc86a2 chore(omnl): consolidate portal and domain routing updates
Capture non-secret OMNL portal, journal, chain, and nginx routing updates from the operator cleanup session while leaving generated auth includes unstaged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:57:01 -07:00
61de708a4c fix(frontend): Z Ecosystem UI — nav, branding, and Online Bank polish
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m19s
CI/CD Pipeline / Security Scanning (push) Successful in 2m40s
CI/CD Pipeline / Lint and Format (push) Failing after 45s
CI/CD Pipeline / Terraform Validation (push) Failing after 23s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 24s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 27s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m20s
Validation / validate-documentation (push) Failing after 19s
Verify Deployment / Verify Deployment (push) Failing after 1m20s
Z mobile bottom nav, purple theme, correct boot splash/title on build:z,
Z-only routes in Online Bank, shared settlement state, liquidity panel,
and treasury branding without OMNL dead links.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:03:55 -07:00
1cce8ed08f fix(deploy): run Z API on port 3100 in production to avoid Gitea conflict
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m14s
CI/CD Pipeline / Security Scanning (push) Successful in 2m27s
CI/CD Pipeline / Lint and Format (push) Failing after 45s
CI/CD Pipeline / Terraform Validation (push) Failing after 22s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 37s
Validation / validate-genesis (push) Successful in 28s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m16s
Validation / validate-documentation (push) Failing after 18s
Verify Deployment / Verify Deployment (push) Failing after 55s
Production server binds Gitea on :3000, so token-aggregation now uses
:3100 with a dedicated production env profile and nginx upstream.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 07:41:20 -07:00
a2db92f3cb feat: split Z Ecosystem from OMNL/DBIS with separate builds and deploy
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m14s
CI/CD Pipeline / Security Scanning (push) Successful in 2m34s
CI/CD Pipeline / Lint and Format (push) Failing after 40s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 37s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 22s
Validation / validate-genesis (push) Successful in 24s
Validation / validate-terraform (push) Failing after 24s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m22s
Validation / validate-documentation (push) Failing after 17s
Verify Deployment / Verify Deployment (push) Failing after 47s
Add VITE_ECOSYSTEM build profiles, Z-only nginx vhosts, standalone Z production stack script, and remove Z Chain from OMNL registry.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 05:17:40 -07:00
eaca1ee6ca feat: separate Z Ecosystem onto zblockchainsystem.com
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m52s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 45s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 20s
Validation / validate-genesis (push) Successful in 32s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m35s
Validation / validate-documentation (push) Failing after 22s
Verify Deployment / Verify Deployment (push) Failing after 1m4s
Move Z Chain, wallet, bot, swap, and Z Bank UI off OMNL domains with dedicated nginx vhost and production DNS config.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 00:57:29 -07:00
e35ad9047c feat: add Z Chain 900002 ecosystem with wallet, Z Bot, and deploy scripts
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m13s
CI/CD Pipeline / Security Scanning (push) Successful in 2m30s
CI/CD Pipeline / Lint and Format (push) Failing after 45s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 39s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 21s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 16s
Validation / validate-security (push) Failing after 1m28s
Validation / validate-documentation (push) Failing after 19s
Verify Deployment / Verify Deployment (push) Failing after 53s
Ship Z Chain slot, International Z Wallet routes, in-app Z Bot APIs, Besu bootstrap, and local/production deployment tooling for digital.omdnl.org.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 05:25:10 -07:00
defiQUG
8ee8930b5b Harden OMNL dotenv layering and local health 2026-07-05 17:31:33 -07:00
defiQUG
abdd8881e2 Add Z Bank mainnet payment presets 2026-07-05 16:48:36 -07:00
ecd6120c22 fix(deploy): include workspace package.json in LXC portal bundle for npm install
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m17s
CI/CD Pipeline / Security Scanning (push) Successful in 3m20s
CI/CD Pipeline / Lint and Format (push) Failing after 48s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 30s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 53s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 23s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m54s
Validation / validate-documentation (push) Failing after 22s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 22s
Verify Deployment / Verify Deployment (push) Failing after 57s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 04:26:06 -07:00
6510f34667 fix(portal): npm install in LXC start when node_modules missing
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m32s
CI/CD Pipeline / Lint and Format (push) Failing after 50s
CI/CD Pipeline / Terraform Validation (push) Failing after 23s
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has started running
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 04:19:43 -07:00
214a868f04 fix(portal): kill listeners via ss when fuser missing in LXC
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m13s
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 04:14:53 -07:00
7ced6106aa fix(portal): restart LXC services on port bind; register gazette routes before API key gate
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 22s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 04:12:28 -07:00
1b1c106dc0 fix(omnl): match gazette public paths under /api/v1 prefix
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m12s
CI/CD Pipeline / Security Scanning (push) Successful in 2m13s
CI/CD Pipeline / Lint and Format (push) Failing after 48s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 30s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 23s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m22s
Validation / validate-documentation (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 04:03:10 -07:00
f13691c72f fix(omnl): expose GUOSMM gazette registry without API key in production
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m17s
CI/CD Pipeline / Security Scanning (push) Successful in 2m21s
CI/CD Pipeline / Lint and Format (push) Failing after 52s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 22s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m25s
Validation / validate-documentation (push) Failing after 23s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:24:59 -07:00
92d3916e70 chore(config): add OneX Shiva integration SSOT for zBank office 29
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m13s
CI/CD Pipeline / Security Scanning (push) Successful in 2m28s
CI/CD Pipeline / Lint and Format (push) Failing after 44s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:18:00 -07:00
af7c4e9476 chore(frontend): add dashboard styles and ecosystem hub modules for production build
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 25s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:15:55 -07:00
32a33c1282 chore(frontend): add sync-omnl-consoles script and operator console static assets
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Successful in 32s
Validation / validate-terraform (push) Failing after 31s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 14s
Validation / validate-security (push) Has started running
Validation / validate-documentation (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:14:10 -07:00
3611257ddb fix(deploy): NODE_ENV=development for npm install; tolerate swift-listener build skip
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Has started running
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
Verify Deployment / Verify Deployment (push) Failing after 55s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:11:34 -07:00
95a01c5953 fix(deploy): install devDependencies for TypeScript builds on production hosts
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m17s
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has started running
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Validation / validate-smart-contracts (push) Failing after 14s
Validation / validate-security (push) Failing after 1m19s
Validation / validate-documentation (push) Failing after 22s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:09:48 -07:00
46ab06d634 fix(swift-listener): use npx tsc for production build on PATH-less hosts
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Has started running
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:08:35 -07:00
c80c5364ca fix(settlement): add z-bank M0-M4 workflow source for production build
Some checks failed
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:07:02 -07:00
abb63b4336 fix(omnl): coerce gazette documentId param for TypeScript build
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 25s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:04:57 -07:00
14238dc81d feat(guosmm): deploy gazette notices across API, portal, and office configs
Some checks failed
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 45s
Verify Deployment / Verify Deployment (push) Failing after 58s
Register GUOSMM-B-2026-001 and C-2026-003/004/005 in SSOT, expose via
/api/v1/omnl/gazette/notices, hub and central-bank UI, offices 29-31,
compliance console, and production deploy sync script.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 02:03:38 -07:00
4919328162 feat(swift): production listener config, MT202/910 outbound, activate scripts
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m18s
CI/CD Pipeline / Security Scanning (push) Successful in 2m53s
CI/CD Pipeline / Lint and Format (push) Failing after 49s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 42s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 39s
Validation / validate-genesis (push) Successful in 33s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 13s
Validation / validate-security (push) Failing after 1m21s
Validation / validate-documentation (push) Failing after 22s
Verify Deployment / Verify Deployment (push) Failing after 1m0s
2026-07-03 00:36:21 -07:00
defiQUG
b5d4f268bf docs(portal): internal same-origin path map on /docs and hub links
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m23s
CI/CD Pipeline / Security Scanning (push) Successful in 2m41s
CI/CD Pipeline / Lint and Format (push) Failing after 51s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 32s
Validation / validate-genesis (push) Successful in 31s
Validation / validate-terraform (push) Failing after 32s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m24s
Validation / validate-documentation (push) Failing after 22s
Verify Deployment / Verify Deployment (push) Failing after 1m9s
Add omnlInternalPaths config, expand DocsPage with path-only API tables,
and switch QuickPortalLinks to relative routes instead of hardcoded FQDNs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 15:09:36 -07:00
defiQUG
2b72242eb6 refactor(omnl-portal): retire Ali naming in docs and LXC sync path
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m35s
CI/CD Pipeline / Security Scanning (push) Successful in 2m46s
CI/CD Pipeline / Lint and Format (push) Failing after 53s
CI/CD Pipeline / Terraform Validation (push) Failing after 31s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 30s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 50s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 36s
Validation / validate-genesis (push) Successful in 32s
Validation / validate-terraform (push) Failing after 31s
Validation / validate-kubernetes (push) Failing after 14s
Validation / validate-smart-contracts (push) Failing after 16s
Validation / validate-security (push) Failing after 1m38s
Validation / validate-documentation (push) Failing after 26s
Verify Deployment / Verify Deployment (push) Failing after 1m0s
Redirect legacy ALI_* docs to Zardasht canonical workflow, delegate sync-ali
to proxmox zardasht:banking-portal:sync, and align host config with
/srv/zardasht-portal deploy root.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 10:12:27 -07:00
defiQUG
d80ebe146a fix(omnl-portal): auth-source mapping for omdnl LXCs and LXC env fragments
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m35s
CI/CD Pipeline / Security Scanning (push) Successful in 2m27s
CI/CD Pipeline / Lint and Format (push) Failing after 55s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 27s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 46s
Validation / validate-genesis (push) Successful in 35s
Validation / validate-terraform (push) Failing after 27s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 13s
Validation / validate-security (push) Failing after 1m24s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Failing after 1m9s
Allow nginx auth snippets to use super-admin keys from paired d-bis.org VMIDs
(5820→5826 exchange, etc.), generate snippets for all 5820–5828 on deploy, and
add build-portal-lxc-env-fragment.sh for sync-time .env push with internal secret.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 02:16:25 -07:00
defiQUG
a748a504f5 feat(omnl-banking-portal): hub/bridge routes, hash anchors, and /omnl nginx proxy
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m22s
CI/CD Pipeline / Security Scanning (push) Successful in 2m40s
CI/CD Pipeline / Lint and Format (push) Failing after 50s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Validation / validate-genesis (push) Successful in 36s
Validation / validate-terraform (push) Failing after 36s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 13s
Validation / validate-security (push) Failing after 1m33s
Validation / validate-documentation (push) Failing after 24s
Add DBIS Hub landing page with /hub and /bridge routes, central-bank hash scroll targets,
nginx /omnl/ proxy to token-aggregation for local dev and production hosts, and a
public-url-zardasht tunnel URL template for operator handoff.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 01:41:42 -07:00
defiQUG
cad927816e fix(token-list): align cUSDC_V2/cUSDT_V2 logoURI with registry policy
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m20s
CI/CD Pipeline / Security Scanning (push) Successful in 2m48s
CI/CD Pipeline / Lint and Format (push) Failing after 47s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 30s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 44s
Validation / validate-genesis (push) Successful in 37s
Validation / validate-terraform (push) Failing after 42s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 16m44s
Validation / validate-security (push) Failing after 20s
Validation / validate-documentation (push) Failing after 19s
Verify Deployment / Verify Deployment (push) Failing after 1m21s
Use dedicated cusdc_v2/cusdt_v2 SVG paths so GRU token alignment validation passes.
2026-06-30 15:31:55 -07:00
886a373356 fix: Phase C IPSAS matrix (2100/2410 HO legs) and runtime double-entry guards
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m39s
CI/CD Pipeline / Lint and Format (push) Failing after 50s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 30s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 29s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 29s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m24s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Failing after 1m7s
Align interoffice HO allocations to 2100→2410 with branch 1410→2100 two-leg entries, registry v1.2.1, explicit same-GL rejection in validators, doc matrices, and validation tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 10:11:44 -07:00
9b3059beeb fix: IPSAS double-entry compliance matrix for M0-M4 journals
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m36s
CI/CD Pipeline / Security Scanning (push) Successful in 2m26s
CI/CD Pipeline / Lint and Format (push) Failing after 49s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 24s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 30s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 27s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m23s
Validation / validate-documentation (push) Failing after 19s
Replace invalid same-GL pairs (2000/2000) with proper Dr/Cr legs, add M2-M4 and inter-office entries (1410/2410), extend IPSAS registry accounts, and reject same-account pairs at validation load time.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 08:14:47 -07:00
771697563e fix: separate M4 near-money from interoffice GL 1410
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m13s
CI/CD Pipeline / Security Scanning (push) Successful in 2m22s
CI/CD Pipeline / Lint and Format (push) Failing after 41s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Validation / validate-genesis (push) Successful in 28s
Validation / validate-terraform (push) Failing after 29s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m18s
Validation / validate-documentation (push) Failing after 17s
M4 aggregate now sums GL 1000 suspense plus in-flight SWIFT only; GL 1410 stays under interoffice HO receivable. SWIFT/RTGS outbound journals route M2/M1 into M4 suspense via resolveM4OutboundJournal.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 07:26:34 -07:00
7aaf5ca086 fix(deploy): normalize CRLF in portal start script before LXC bundle
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m25s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 39s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 27s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m17s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Failing after 59s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 07:16:22 -07:00
81b1c2c75d fix(deploy): strip CRLF from portal shell scripts inside LXC
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m17s
CI/CD Pipeline / Security Scanning (push) Has started running
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 07:13:43 -07:00
b84ecbbb84 fix(deploy): LXC portal sync tolerates unset optional .env vars
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m14s
CI/CD Pipeline / Security Scanning (push) Has started running
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 07:10:52 -07:00
c377e93849 fix(token-aggregation): resolve mint tokenAddress without const reassignment
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m9s
CI/CD Pipeline / Security Scanning (push) Successful in 2m18s
CI/CD Pipeline / Lint and Format (push) Failing after 45s
CI/CD Pipeline / Terraform Validation (push) Failing after 23s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 24s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 27s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 27s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m10s
Validation / validate-documentation (push) Failing after 21s
Verify Deployment / Verify Deployment (push) Failing after 57s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 06:49:05 -07:00
5229c2d888 fix(omnl): production blockers for M0-M4 settlement stack
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m13s
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Exempt dashboard read APIs from anonymous rate limits, preserve nginx-injected auth, wire chain-mint and DB env through deploy/LXC scripts, resolve M3 token addresses from registry, and harden super-admin seeding.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 06:47:20 -07:00
5007e74532 chore(config): declare M3/M4 GL codes in Office 24 and production profiles
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m14s
CI/CD Pipeline / Security Scanning (push) Successful in 2m22s
CI/CD Pipeline / Lint and Format (push) Failing after 48s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 27s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m19s
Validation / validate-documentation (push) Failing after 19s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 06:34:59 -07:00
83305b8829 fix(deploy): tolerate unset optional vars when sourcing .env
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m23s
CI/CD Pipeline / Security Scanning (push) Successful in 2m20s
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 40s
Verify Deployment / Verify Deployment (push) Failing after 49s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 06:30:03 -07:00
fce988dceb feat(settlement): add M3 and M4 money layers for full M0-M4 production
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m11s
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 26s
Extend settlement-core with GL 2300 token liabilities (M3) and near-money aggregate (M4), wire middleware workflows and dashboards to expose all five layers end-to-end.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 06:27:23 -07:00
a5c16330ca feat: add credentials-only mode for super-admin seed
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m9s
CI/CD Pipeline / Security Scanning (push) Successful in 2m24s
CI/CD Pipeline / Lint and Format (push) Failing after 45s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 23s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 40s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 23s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m20s
Validation / validate-documentation (push) Failing after 18s
Verify Deployment / Verify Deployment (push) Failing after 56s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 05:46:01 -07:00
62c7005abe fix: bootstrap admin_users table in super-admin seed script
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m11s
CI/CD Pipeline / Security Scanning (push) Successful in 2m25s
CI/CD Pipeline / Lint and Format (push) Has started running
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Validation / validate-security (push) Failing after 1m21s
Validation / validate-documentation (push) Failing after 20s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 05:42:13 -07:00
604f493ff1 chore: assign four super-admin emails to portal operators
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m23s
CI/CD Pipeline / Lint and Format (push) Failing after 48s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 38s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 29s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m21s
Validation / validate-documentation (push) Failing after 19s
Verify Deployment / Verify Deployment (push) Failing after 56s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 05:29:10 -07:00
4ebca7d550 fix: ship nginx auth placeholder so LXC portals start before env push
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m22s
CI/CD Pipeline / Security Scanning (push) Successful in 2m31s
CI/CD Pipeline / Lint and Format (push) Failing after 47s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 27s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 44s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 05:20:58 -07:00
064239be13 feat: four super-admin keys and production customer API security
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m18s
CI/CD Pipeline / Security Scanning (push) Successful in 2m34s
CI/CD Pipeline / Lint and Format (push) Failing after 54s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 39s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 31s
Validation / validate-genesis (push) Successful in 28s
Validation / validate-terraform (push) Failing after 31s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m27s
Validation / validate-documentation (push) Failing after 21s
Verify Deployment / Verify Deployment (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 05:09:08 -07:00
84f12c7edc chore: skip single-leg seed when Office 24 funding already posted
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m20s
CI/CD Pipeline / Security Scanning (push) Successful in 2m37s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 29s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 36s
Validation / validate-genesis (push) Successful in 32s
Validation / validate-terraform (push) Failing after 27s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m17s
Validation / validate-documentation (push) Failing after 18s
Verify Deployment / Verify Deployment (push) Failing after 1m6s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 04:00:40 -07:00
458f3b420b feat: wire production settlement rails for M2 mint, transfers, and bank SWIFT
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m31s
CI/CD Pipeline / Security Scanning (push) Successful in 3m4s
CI/CD Pipeline / Lint and Format (push) Failing after 45s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 44s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 36s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m52s
Validation / validate-documentation (push) Failing after 18s
Verify Deployment / Verify Deployment (push) Failing after 57s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 02:54:53 -07:00
17e5cb3222 chore: sync Office 24 Zardasht identity and deploy paths
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m29s
CI/CD Pipeline / Security Scanning (push) Successful in 3m16s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 27s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 52s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 30s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m31s
Validation / validate-documentation (push) Failing after 19s
Verify Deployment / Verify Deployment (push) Failing after 59s
Align externalId, office name, and portal topology with live Fineract
(HOSPITALLERS-ZARDASHT-IRAQ-IRAN). Default LXC root to /srv/zardasht-portal
and SSH alias dev-bis-zardasht in host config.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 01:58:03 -07:00
abed3d9f8a fix: resilient dashboard loading when ledger API unavailable
Tolerate partial API failures and infer Fineract connected state from health.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 01:31:07 -07:00
156591d707 fix: add /health/ledger path for NPM-safe dashboard data
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m15s
CI/CD Pipeline / Security Scanning (push) Successful in 2m30s
CI/CD Pipeline / Lint and Format (push) Failing after 13m24s
CI/CD Pipeline / Terraform Validation (push) Failing after 56s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 33s
Validation / validate-genesis (push) Successful in 39s
Validation / validate-terraform (push) Has started running
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Query params may be stripped by reverse proxy; use dedicated path for ledger.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 01:17:52 -07:00
c10f6e7868 fix: dashboard ledger fallback via health?ledger=1
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m27s
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
NPM proxies block dedicated money-supply paths; embed public ledger snapshot
in /health when ledger=1 and fall back from dashboard hooks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 01:13:12 -07:00
32f06ecc56 fix: validate numeric office id on money-supply route
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m27s
CI/CD Pipeline / Lint and Format (push) Failing after 44s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 27s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m21s
Validation / validate-documentation (push) Failing after 17s
Avoid TypeScript express param regex; return 404 for non-numeric ids like public.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 01:00:15 -07:00
a2c088bed0 fix: public ledger endpoint for dashboard money-supply
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Add /public/money-supply route and restrict office param to numeric IDs so
NPM proxies no longer hit the authenticated /money-supply/:id handler.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 00:59:49 -07:00
a29b32f042 fix: dashboard API paths for nginx/NPM proxy routing
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m18s
CI/CD Pipeline / Security Scanning (push) Successful in 2m45s
CI/CD Pipeline / Lint and Format (push) Failing after 47s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Use short /settlement and /exchange paths in production so nginx maps them
to backend /api/v1/* without double-prefix 404s. Align all nginx configs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 00:53:46 -07:00
543482eddc fix: pct push env fragment into LXC before merge
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m39s
CI/CD Pipeline / Security Scanning (push) Successful in 2m40s
CI/CD Pipeline / Lint and Format (push) Failing after 54s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 39s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 27s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m12s
Validation / validate-documentation (push) Failing after 19s
Verify Deployment / Verify Deployment (push) Failing after 56s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 33s
SCP to PVE host alone left /tmp/omnl-portal-env.frag missing inside CTs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 20:14:53 -07:00
902e3bb57c fix: GL lookup for Office 24 journal seed and add production activation
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m18s
CI/CD Pipeline / Security Scanning (push) Successful in 2m25s
CI/CD Pipeline / Lint and Format (push) Failing after 54s
CI/CD Pipeline / Terraform Validation (push) Failing after 33s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 43s
Validation / validate-genesis (push) Successful in 36s
Validation / validate-terraform (push) Failing after 27s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m19s
Validation / validate-documentation (push) Failing after 21s
Verify Deployment / Verify Deployment (push) Failing after 1m2s
Resolve Fineract account IDs by GL code instead of parsing codes as IDs.
Add activate-omnl-production.sh and push-portal-env-to-lxc.sh for full deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 20:03:09 -07:00
d182a1d624 fix: nginx API proxy inside banking portal LXCs
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m20s
CI/CD Pipeline / Security Scanning (push) Successful in 2m35s
CI/CD Pipeline / Lint and Format (push) Failing after 53s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 42s
Validation / validate-genesis (push) Successful in 28s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m16s
Validation / validate-documentation (push) Failing after 23s
Verify Deployment / Verify Deployment (push) Failing after 57s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 19:48:00 -07:00
b17df7ef14 fix: resolve black-screen UI from stale CDN assets and API paths
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m23s
CI/CD Pipeline / Lint and Format (push) Failing after 44s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 39s
Validation / validate-genesis (push) Successful in 26s
Validation / validate-terraform (push) Failing after 24s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m28s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Failing after 54s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 19:31:33 -07:00
3c7abd5a01 fix: replace near-black NASA dashboard void with mission blue panels
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m15s
CI/CD Pipeline / Security Scanning (push) Successful in 2m33s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 22s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 24s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 29s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m37s
Validation / validate-documentation (push) Failing after 20s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 18:42:12 -07:00
5fc98ed803 fix: normalize CRLF in deploy .env and safe env merge helper
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m37s
CI/CD Pipeline / Security Scanning (push) Successful in 2m33s
CI/CD Pipeline / Lint and Format (push) Failing after 53s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 23s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 44s
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Failing after 1m3s
Prevent Fineract connection failures when .env is uploaded from Windows, and add merge-env-fragment.sh to update keys without wiping existing vars.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 18:35:00 -07:00
324bdc33fd fix: sync only running banking LXCs 5825-5828 on r630-03
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m21s
CI/CD Pipeline / Security Scanning (push) Successful in 2m31s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 31s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 45s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 40s
Validation / validate-genesis (push) Successful in 31s
Validation / validate-terraform (push) Failing after 26s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 13s
Validation / validate-security (push) Failing after 1m28s
Validation / validate-documentation (push) Failing after 25s
Verify Deployment / Verify Deployment (push) Failing after 1m3s
Load CTIDs from config, ensure containers are running before pct push, and skip missing legacy IDs instead of failing the whole sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 17:35:30 -07:00
3a7358b6b5 fix: PVE LXC sync via sudo SSH and single build pass
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m17s
CI/CD Pipeline / Security Scanning (push) Successful in 2m52s
CI/CD Pipeline / Lint and Format (push) Failing after 54s
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Use sudo ssh with ProxyJump=none from dev-bis-ali to Proxmox, build once before syncing all nine banking LXCs, and track deploy scripts as executable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 17:29:29 -07:00
cbd669c762 feat: NASA mission-control theme for all OMNL dashboards
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m41s
CI/CD Pipeline / Security Scanning (push) Successful in 2m32s
CI/CD Pipeline / Lint and Format (push) Failing after 51s
CI/CD Pipeline / Terraform Validation (push) Failing after 35s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 30s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 36s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m23s
Validation / validate-documentation (push) Failing after 21s
Replace Binance-style dashboard chrome with a shared telemetry UI, SVG icons, and mission headers across Central Bank, Office 24, trade, swap, and admin screens.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 17:10:24 -07:00
4e047b9429 feat: clarify Central Bank and Office 24 dashboard layout
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m21s
CI/CD Pipeline / Security Scanning (push) Successful in 2m42s
CI/CD Pipeline / Lint and Format (push) Failing after 52s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 44s
Validation / validate-genesis (push) Successful in 31s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m21s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Failing after 1m20s
Add status banners, grouped money-supply sections, public portal links, and shared dashboard components for clearer operator views.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 16:19:56 -07:00
b72b986a12 fix: Fineract GL balances via journal fallback when report missing
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m15s
CI/CD Pipeline / Security Scanning (push) Successful in 2m16s
CI/CD Pipeline / Lint and Format (push) Failing after 48s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 29s
Validation / validate-genesis (push) Successful in 32s
Validation / validate-terraform (push) Failing after 31s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m20s
Validation / validate-documentation (push) Failing after 21s
Use journalentry replay when General Ledger Report is unavailable, and expose fineractConnected on the public money-supply endpoint.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 15:55:15 -07:00
34d11d8f61 fix: kill stale process on port before OMNL service restart
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m16s
CI/CD Pipeline / Security Scanning (push) Successful in 2m39s
CI/CD Pipeline / Lint and Format (push) Failing after 48s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 29s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 42s
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Failing after 1m19s
Use fuser to free the listen port when pkill misses orphaned node processes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 15:46:48 -07:00
1fe57901e5 feat: wire live Fineract M1 to Central Bank UI and Office 24 journal seed
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m21s
CI/CD Pipeline / Security Scanning (push) Successful in 2m42s
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Add a read-only money-supply endpoint for Office 24 dashboards, pass Fineract env through deploy scripts, and provide a seed script for the opening Dr 1410 / Cr 2100 journal.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 15:41:23 -07:00
37e280f372 docs: two-repo Gitea workflow and LXC sync script for Ali operator
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m15s
CI/CD Pipeline / Security Scanning (push) Successful in 2m28s
CI/CD Pipeline / Lint and Format (push) Failing after 52s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 43s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 31s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m19s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Has been cancelled
Add FORGE_CANONICAL_REGISTRY, ALI_GITEA_TWO_REPO_WORKFLOW, and sync-ali-omnl-banking-portal-lxcs.sh for banking LXCs 5820-5828.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 15:30:24 -07:00
f7971b8164 docs: correct OMNL repo path to ~/smom-dbis-138 on dev-bis-ali
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m20s
CI/CD Pipeline / Security Scanning (push) Successful in 2m31s
CI/CD Pipeline / Lint and Format (push) Failing after 48s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 30s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-documentation (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 15:21:49 -07:00
33e93165f6 fix: normalize production configs, types, and cross-platform frontend build
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m29s
CI/CD Pipeline / Security Scanning (push) Successful in 2m40s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 13s
Validation / validate-security (push) Failing after 1m17s
Validation / validate-documentation (push) Failing after 18s
Repair double-spaced source files, align middleware/exchange types with production JSON, and fix vite build on Windows/Linux.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 14:45:38 -07:00
ab1c46787b feat: production exchange/settlement configs and M2 token integration
Some checks failed
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Update production middleware and exchange configs, expand settlement adapter for M2 load/transfer flows, and align frontend dex config with dynamic M2 token registry.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 14:42:10 -07:00
c947158ab7 feat: PCT banking portal deploy on Proxmox .13 (/srv/ali-portal)
Some checks failed
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 27s
Verify Deployment / Verify Deployment (push) Failing after 56s
Add operator onboarding doc, host topology manifest, and pct-based deploy scripts aligned with dev VM .59 and banking LXCs 5820-5828.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 14:40:55 -07:00
d68e5e5eca fix: office24.omnl.org -> office24.omdnl.org in domain manifest and nginx
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m31s
CI/CD Pipeline / Security Scanning (push) Successful in 3m58s
CI/CD Pipeline / Lint and Format (push) Failing after 52s
CI/CD Pipeline / Terraform Validation (push) Failing after 31s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 36s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 54s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 33s
Validation / validate-genesis (push) Successful in 37s
Validation / validate-terraform (push) Failing after 37s
Validation / validate-kubernetes (push) Failing after 14s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m58s
Validation / validate-documentation (push) Failing after 21s
Verify Deployment / Verify Deployment (push) Failing after 1m8s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 13:43:21 -07:00
f743a156a7 feat: nginx vhosts for OMNL production domains (omdnl.org + d-bis.org)
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m23s
CI/CD Pipeline / Security Scanning (push) Successful in 2m45s
CI/CD Pipeline / Lint and Format (push) Failing after 49s
CI/CD Pipeline / Terraform Validation (push) Failing after 36s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 30s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 1m1s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 33s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 35s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 14s
Validation / validate-security (push) Failing after 2m17s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Failing after 3m22s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 12:51:26 -07:00
835ec229c5 fix: pass config env vars when starting OMNL services
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m29s
CI/CD Pipeline / Security Scanning (push) Successful in 2m40s
CI/CD Pipeline / Lint and Format (push) Failing after 50s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 42s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 29s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m21s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Failing after 1m10s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 09:57:35 -07:00
471ce8f36d fix: use absolute config paths in server deploy script
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m22s
CI/CD Pipeline / Security Scanning (push) Successful in 2m45s
CI/CD Pipeline / Lint and Format (push) Failing after 47s
CI/CD Pipeline / Terraform Validation (push) Failing after 23s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 43s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 14s
Validation / validate-security (push) Has started running
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 09:48:00 -07:00
0dfbdfa557 fix: add missing PageShell component for production build
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m29s
CI/CD Pipeline / Security Scanning (push) Successful in 2m34s
CI/CD Pipeline / Lint and Format (push) Failing after 55s
CI/CD Pipeline / Terraform Validation (push) Failing after 29s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 33s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m20s
Validation / validate-documentation (push) Failing after 20s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 09:33:48 -07:00
5dd67e2b1d feat: OMNL Bank online production — 128 chains, Central Bank UI, settlement stack
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m22s
CI/CD Pipeline / Security Scanning (push) Successful in 2m30s
CI/CD Pipeline / Lint and Format (push) Failing after 44s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 31s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 56s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 29s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 39s
Validation / validate-kubernetes (push) Failing after 14s
Validation / validate-smart-contracts (push) Failing after 20s
Validation / validate-security (push) Failing after 1m19s
Validation / validate-documentation (push) Failing after 27s
Verify Deployment / Verify Deployment (push) Failing after 1m13s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 08:49:36 -07:00
defiQUG
2b1a3ba6af fix(token-aggregation): use live Chain 138 RPC and vacuous HO coverage
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m27s
CI/CD Pipeline / Security Scanning (push) Successful in 2m28s
CI/CD Pipeline / Lint and Format (push) Failing after 51s
CI/CD Pipeline / Terraform Validation (push) Failing after 29s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 29s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 29s
Validation / validate-kubernetes (push) Failing after 14s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m9s
Validation / validate-documentation (push) Failing after 20s
Verify Deployment / Verify Deployment (push) Failing after 1m2s
Point server-side RPC default at 192.168.11.235:8545 and treat zero
issued c* with funded reserves as sufficient for institutional smoke.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 21:11:12 -07:00
defiQUG
eaf2104b5a Default relay example RPC to live LAN Chain 138 endpoint (.235).
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m23s
CI/CD Pipeline / Security Scanning (push) Successful in 2m43s
CI/CD Pipeline / Lint and Format (push) Failing after 56s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 29s
Validation / validate-kubernetes (push) Failing after 15s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m20s
Validation / validate-documentation (push) Failing after 21s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:32:33 -07:00
defiQUG
304b3b4377 Align Chain 138 public RPC URLs for wallets and token-aggregation API.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m45s
CI/CD Pipeline / Security Scanning (push) Successful in 2m41s
CI/CD Pipeline / Lint and Format (push) Failing after 52s
CI/CD Pipeline / Terraform Validation (push) Failing after 30s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 32s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 31s
Validation / validate-kubernetes (push) Failing after 14s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m28s
Validation / validate-documentation (push) Failing after 20s
Use rpc.public-0138.defi-oracle.io as canonical MetaMask addEthereumChain RPC; expand tokenDetection tokenListUrls; update tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:13:03 -07:00
defiQUG
6cda9be1a0 Add IPSAS GL 12015 and 12424 for HO Office-1 BTC L1 custody accounts.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m28s
CI/CD Pipeline / Security Scanning (push) Successful in 2m23s
CI/CD Pipeline / Lint and Format (push) Failing after 50s
CI/CD Pipeline / Terraform Validation (push) Failing after 29s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 30s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 29s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 29s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m24s
Validation / validate-documentation (push) Failing after 18s
Verify Deployment / Verify Deployment (push) Failing after 11m58s
Extends omnl-ipsas-gl-registry with Bitcoin custodial asset and settlement rows
for multisig custody journal alignment.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 02:24:47 -07:00
defiQUG
0e5510fbdf Fix chaincode client identity resolution for mint and transfer.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m28s
CI/CD Pipeline / Security Scanning (push) Successful in 2m34s
CI/CD Pipeline / Lint and Format (push) Failing after 54s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 27s
Validation / validate-genesis (push) Successful in 31s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 13s
Validation / validate-security (push) Failing after 1m22s
Validation / validate-documentation (push) Failing after 20s
Use a shared getClientID helper so SolaceNet capability checks and transfer authorization handle identity errors consistently.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 02:09:06 -07:00
defiQUG
848a5e35ea Add Aave quote-push collateral supply and toggle hooks.
Some checks failed
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Extends AaveQuotePushFlashReceiver with before/after swap collateral steps, env-driven run scripts, forkproof parity, and scoped forge tests for supply/toggle callback ordering.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 02:07:30 -07:00
defiQUG
aa5790bb8b Embed cUSDC per-token sample and triple-state in ho-liquidity snapshot.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m22s
CI/CD Pipeline / Security Scanning (push) Successful in 2m36s
CI/CD Pipeline / Lint and Format (push) Failing after 52s
CI/CD Pipeline / Terraform Validation (push) Failing after 30s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 27s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 31s
Validation / validate-genesis (push) Successful in 35s
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Public ho-liquidity-snapshot now includes perTokenSamples.cUSDC (Blockscout supply vs 1.2× nostro) and tripleState reconcile summary for the explorer dashboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 01:59:11 -07:00
defiQUG
1158c616d8 Add HO liquidity scheduler, snapshot enrichments, and compliance console panel.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m27s
CI/CD Pipeline / Security Scanning (push) Successful in 2m37s
CI/CD Pipeline / Lint and Format (push) Failing after 53s
CI/CD Pipeline / Terraform Validation (push) Failing after 31s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 29s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 37s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 33s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m26s
Validation / validate-documentation (push) Failing after 19s
Refreshes ho-liquidity-snapshot every 30 minutes with aggregate supplyNostroMatch and reserve alerts; embeds nostro/reserve KPIs in the OMNL compliance console; includes payout journal routes needed for token-aggregation build.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 01:31:01 -07:00
defiQUG
73d785cdfc Add HO nostro cash-in-bank and reserve coverage to token-aggregation.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m59s
CI/CD Pipeline / Security Scanning (push) Successful in 2m54s
CI/CD Pipeline / Lint and Format (push) Failing after 45s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 31s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 26s
Validation / validate-kubernetes (push) Failing after 12s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 1m25s
Validation / validate-documentation (push) Failing after 19s
Verify Deployment / Verify Deployment (push) Failing after 1m30s
Expose Fineract GL 13010 nostro cash, aggregate c* reserve coverage, PMM cash liquidity, and a public ho-liquidity-snapshot API for the explorer three-line stack and 30-minute audit collector.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 01:24:38 -07:00
defiQUG
6ba33a4d3f Add mainnet cW market registry and align ops scripts with Stack A.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m18s
CI/CD Pipeline / Security Scanning (push) Successful in 2m27s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 28s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 29s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 1m0s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 29s
Validation / validate-genesis (push) Successful in 30s
Validation / validate-terraform (push) Failing after 32s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 13s
Validation / validate-security (push) Failing after 1m23s
Validation / validate-documentation (push) Failing after 22s
Verify Deployment / Verify Deployment (push) Failing after 11m53s
- CWTokenMarketRegistry + USD feeds for mainnet cW* market anchors
- HYBX cross-chain treasury line registry expansion
- PMM seed default → live DODOPMMIntegration (0x86ADA6Ef…)
- mint-xau-chain138: troy-ounce mint helper with multisig path
- relay: prefer CCIP_MAINNET_LINK138 relayer key on default profile

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 19:50:52 -07:00
defiQUG
5b827b7548 Sync token-aggregation dbis-138.tokenlist.json with proxmox source of truth.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m36s
CI/CD Pipeline / Security Scanning (push) Successful in 3m1s
CI/CD Pipeline / Lint and Format (push) Failing after 47s
CI/CD Pipeline / Terraform Validation (push) Failing after 32s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 34s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 33s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 39s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 11s
Validation / validate-security (push) Failing after 2m13s
Validation / validate-documentation (push) Failing after 18s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 19:06:22 -07:00
defiQUG
55912d1143 feat(chain138): ISO20022 gateway, swift-listener, and address inventory sync.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m14s
CI/CD Pipeline / Security Scanning (push) Successful in 2m20s
CI/CD Pipeline / Lint and Format (push) Failing after 44s
CI/CD Pipeline / Terraform Validation (push) Failing after 23s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 24s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 25s
Validation / validate-genesis (push) Successful in 26s
Validation / validate-terraform (push) Failing after 23s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m13s
Validation / validate-documentation (push) Failing after 17s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 28s
Verify Deployment / Verify Deployment (push) Failing after 1m18s
Update checkpoint-core ISO20022 types/hashes, swift-listener canonical mapping, and chain138 address inventory.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 16:17:18 -07:00
defiQUG
dc9ecd8963 feat(chain138): DBIS Rail post-deploy scripts and address inventory updates.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m21s
CI/CD Pipeline / Security Scanning (push) Successful in 2m33s
CI/CD Pipeline / Lint and Format (push) Failing after 38s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 24s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 37s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 27s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m13s
Validation / validate-documentation (push) Failing after 17s
Verify Deployment / Verify Deployment (push) Failing after 54s
WireDBISRailPostDeploy/Signers forge scripts, PMM pool registry, and explorer verify refresh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 07:55:50 -07:00
defiQUG
a8cd1b4667 chore(config): update chain138 PMM pool registry.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m13s
CI/CD Pipeline / Security Scanning (push) Successful in 2m48s
CI/CD Pipeline / Lint and Format (push) Failing after 41s
CI/CD Pipeline / Terraform Validation (push) Failing after 27s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
Validation / validate-genesis (push) Successful in 28s
Validation / validate-terraform (push) Failing after 32s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m15s
Validation / validate-documentation (push) Failing after 18s
Verify Deployment / Verify Deployment (push) Failing after 58s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 00:14:03 -07:00
defiQUG
11c97777d4 feat(chain138): Monad CCIP, token aggregation OMNL gates, HYBX client, and PMM deploy updates.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m11s
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 1m4s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 31s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 29s
Verify Deployment / Verify Deployment (push) Failing after 57s
Relay router, reserve system, oracle publisher, token-aggregation compliance middleware, and Monad deployment scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 00:11:33 -07:00
defiQUG
1ec308c3a0 Add Monad CCIP deploy scripts, relay hardening, and bridge contract updates.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m12s
CI/CD Pipeline / Security Scanning (push) Successful in 2m21s
CI/CD Pipeline / Lint and Format (push) Failing after 25s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m6s
Validation / validate-documentation (push) Failing after 16s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 23s
Verify Deployment / Verify Deployment (push) Failing after 13m52s
Includes Monad↔Chain138 CCIP proof/deploy/verify tooling, relay service guards,
bridge integration tweaks, and frontend ENS/network config follow-ups.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-13 12:52:49 -07:00
defiQUG
78edb86c3b Add mainnet cWBTC token-aggregation indexing, supply proof, and Etherscan verify scripts.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m25s
CI/CD Pipeline / Security Scanning (push) Successful in 3m28s
CI/CD Pipeline / Lint and Format (push) Failing after 43s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 28s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 45s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 29s
Validation / validate-genesis (push) Successful in 32s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m36s
Validation / validate-documentation (push) Failing after 17s
Verify Deployment / Verify Deployment (push) Failing after 48s
Wire live 0x2BBe3c… address into canonical tokens, pool catalog merge from mesh health, and bridge/cWBTC explorer verification helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-13 12:35:15 -07:00
defiQUG
ce441aee18 Point on-chain legal metadata at HOSPITALLERS/legal sibling repo paths.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m13s
CI/CD Pipeline / Security Scanning (push) Successful in 2m9s
CI/CD Pipeline / Lint and Format (push) Failing after 39s
CI/CD Pipeline / Terraform Validation (push) Failing after 21s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m8s
Validation / validate-documentation (push) Failing after 17s
Verify Deployment / Verify Deployment (push) Failing after 52s
Bump ECOSYSTEM_LEGAL_BASIS_VERSION to 1.13.0 after legal corpus migration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 10:21:28 -07:00
defiQUG
4e3e8e4dad Wire on-chain contracts to SMOM ecosystem legal basis registry.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m15s
CI/CD Pipeline / Security Scanning (push) Successful in 2m19s
CI/CD Pipeline / Lint and Format (push) Failing after 43s
CI/CD Pipeline / Terraform Validation (push) Failing after 23s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 43s
Validation / validate-genesis (push) Successful in 28s
Validation / validate-terraform (push) Failing after 22s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-documentation (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Expose ECOSYSTEM_LEGAL_BASIS_* and SOVEREIGN_AUTHORITY constants on LegallyCompliantBase V1/V2.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 10:13:01 -07:00
defiQUG
41ca3204d6 Register mainnet cW reverse router deploy script in forge scope.
Document mainnet-cw-reverse relay env profile for L1 burn → Chain 138 path.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 02:05:05 -07:00
defiQUG
18651b97f1 Add token-aggregation official-protocol reports and fix test drift.
Wire pool registry, LP positions, and official-protocol API routes; align
cBTC pricing tests with canonical address; mock getReferenceMarketData; use
d-bis.org logo URLs in MetaMask config tests; extend CW bridge forge tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 02:04:26 -07:00
defiQUG
e931c7d199 feat(logos): point network and gas-native tokens at d-bis.org marks
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m24s
CI/CD Pipeline / Security Scanning (push) Successful in 2m18s
CI/CD Pipeline / Lint and Format (push) Failing after 37s
CI/CD Pipeline / Terraform Validation (push) Failing after 19s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 23s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 25s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 21s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m16s
Validation / validate-documentation (push) Failing after 16s
Verify Deployment / Verify Deployment (push) Failing after 50s
Replace explorer API logo fallbacks for WETH, LINK, and gas-native c*
symbols with hosted d-bis.org SVG URLs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 10:46:35 -07:00
defiQUG
d54882cd0f feat(checkpoint): expose mainnet Etherscan links on Chain 138 tx attestation.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m12s
CI/CD Pipeline / Security Scanning (push) Successful in 2m38s
CI/CD Pipeline / Lint and Format (push) Failing after 40s
CI/CD Pipeline / Terraform Validation (push) Failing after 21s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 24s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 24s
Validation / validate-genesis (push) Successful in 26s
Validation / validate-terraform (push) Failing after 21s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m7s
Validation / validate-documentation (push) Failing after 15s
Resolve etherscanLinks from batch metadata and optional mainnet log scans; serve a fast local-batch attestation path for the explorer CT.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 08:13:59 -07:00
defiQUG
183f3cffc9 fix(canonical-tokens): align cBTC and Li* addresses with token list
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m10s
CI/CD Pipeline / Security Scanning (push) Successful in 2m9s
CI/CD Pipeline / Lint and Format (push) Failing after 37s
CI/CD Pipeline / Terraform Validation (push) Failing after 20s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 21s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 23s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 23s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m14s
Validation / validate-documentation (push) Failing after 16s
Use deployed cBTC and M00 Li* index addresses from dbis-138.tokenlist.json,
register LiPMG/LiBMG* in canonical specs, and refresh the service copy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 06:52:12 -07:00
defiQUG
378a9fb11d fix(registry): one-time setRegistry on GRUAssetRegistryFacet (GRU-005).
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Has been cancelled
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has started running
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Prevent post-init registry pointer swaps; add test_setRegistry_oneTimeOnly (8/8 GRUCompliantTokensRegistryTest).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 06:51:46 -07:00
defiQUG
cc787380f8 feat(token-aggregation): serve d-bis.org logos for Chain 138 token list
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m42s
CI/CD Pipeline / Security Scanning (push) Successful in 2m15s
CI/CD Pipeline / Lint and Format (push) Failing after 36s
CI/CD Pipeline / Terraform Validation (push) Failing after 21s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 26s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 26s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m17s
Validation / validate-documentation (push) Failing after 15s
Pass through https://d-bis.org logo URIs in report routes, prefer file-backed
dbis-138.tokenlist.json in production, and align canonical token logos with
the portal brand asset CDN.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 06:36:23 -07:00
defiQUG
4e04f7d6aa fix(test): use RWATaxonomy asset class Commodities in GruMonetaryPolicyGateTest
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m42s
CI/CD Pipeline / Security Scanning (push) Successful in 2m18s
CI/CD Pipeline / Lint and Format (push) Failing after 37s
CI/CD Pipeline / Terraform Validation (push) Failing after 21s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 21s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 23s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m12s
Validation / validate-documentation (push) Failing after 15s
Aligns LiXAU fixture with on-chain validateProduct() and unblocks GRU audit suite.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 05:43:06 -07:00
defiQUG
d717b504a6 feat(omnl): settlement terminal, compliance gates, and HYBX integration foundation
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m12s
CI/CD Pipeline / Security Scanning (push) Successful in 2m21s
CI/CD Pipeline / Lint and Format (push) Failing after 36s
CI/CD Pipeline / Terraform Validation (push) Failing after 22s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 23s
Validation / validate-genesis (push) Successful in 26s
Validation / validate-terraform (push) Failing after 21s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m15s
Validation / validate-documentation (push) Failing after 15s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 26s
Verify Deployment / Verify Deployment (push) Failing after 56s
Add operator settlement terminal UI/API, swift-listener service, compliance
idempotency gates, GRU reserve dashboards, and @dbis/integration-foundation
for typed HYBX/ISO adapter contracts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 21:51:32 -07:00
defiQUG
b6ddd236e2 fix(token-aggregation): emit Uniswap-schema token lists for mainnet cWUSDC
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m35s
CI/CD Pipeline / Security Scanning (push) Successful in 2m58s
CI/CD Pipeline / Lint and Format (push) Failing after 40s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 56s
Validation / validate-genesis (push) Successful in 32s
Validation / validate-terraform (push) Failing after 30s
Validation / validate-kubernetes (push) Failing after 10s
Validation / validate-smart-contracts (push) Failing after 10s
Validation / validate-security (push) Failing after 1m23s
Validation / validate-documentation (push) Failing after 17s
Verify Deployment / Verify Deployment (push) Failing after 51s
Normalize /report/token-list to checksummed addresses, version objects,
and extensions bag; add pinned static ethereum-mainnet list endpoint.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-06 10:54:12 -07:00
defiQUG
0d08d4e11f Document keeper dry-run verification and close wiring follow-up
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m4s
CI/CD Pipeline / Security Scanning (push) Successful in 2m9s
CI/CD Pipeline / Lint and Format (push) Failing after 35s
CI/CD Pipeline / Terraform Validation (push) Failing after 19s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 22s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 7s
Validation / validate-security (push) Failing after 1m7s
Validation / validate-documentation (push) Failing after 14s
Verify Deployment / Verify Deployment (push) Failing after 56s
2026-06-02 08:28:09 -07:00
defiQUG
9f8394ce18 Clarify BSC relay DEST_RPC_URL uses BSC_RPC_URL from root .env
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m34s
CI/CD Pipeline / Security Scanning (push) Successful in 2m16s
CI/CD Pipeline / Lint and Format (push) Failing after 36s
CI/CD Pipeline / Terraform Validation (push) Failing after 21s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 22s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m10s
Validation / validate-documentation (push) Failing after 15s
2026-06-02 07:46:27 -07:00
defiQUG
e254f81a83 Complete archive manual merge follow-ups and secure relay env handling
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m4s
CI/CD Pipeline / Security Scanning (push) Successful in 2m13s
CI/CD Pipeline / Lint and Format (push) Failing after 34s
CI/CD Pipeline / Terraform Validation (push) Failing after 21s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Validation / validate-genesis (push) Successful in 26s
Validation / validate-terraform (push) Failing after 24s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m10s
Validation / validate-documentation (push) Failing after 15s
Apply clean archive patches (WETH CREATE2 doc, DeployKeeper script),
restore emoney unit tests from .bak, add keeper npm scripts without
replacing the Hardhat package.json, untrack relay lane secret env files,
and document superseded patch hunks in SIBLING_WIP_IMPORT.md.
2026-06-02 06:40:12 -07:00
defiQUG
1f9fe09c5a Merge CCIP doc dedupe and keeper dry-run
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m4s
CI/CD Pipeline / Security Scanning (push) Successful in 2m12s
CI/CD Pipeline / Lint and Format (push) Failing after 33s
CI/CD Pipeline / Terraform Validation (push) Failing after 19s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 21s
Validation / validate-genesis (push) Successful in 24s
Validation / validate-terraform (push) Failing after 21s
Validation / validate-kubernetes (push) Failing after 7s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m10s
Validation / validate-documentation (push) Failing after 15s
2026-06-02 06:14:29 -07:00
defiQUG
51682d9769 Consolidate CCIP archive docs and add keeper deploy-all dry-run mode
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 06:13:35 -07:00
defiQUG
c94a209595 Consolidate CCIP archive docs and add keeper deploy-all dry-run mode
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 06:13:28 -07:00
defiQUG
99a817709c chore: drop UTF-8 BOM from scripts/reserve/deploy-all.sh
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m1s
CI/CD Pipeline / Security Scanning (push) Has started running
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 34s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 47s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 23s
Verify Deployment / Verify Deployment (push) Failing after 48s
2026-06-02 06:10:27 -07:00
defiQUG
aaf3403572 WIP: frontend-dapp network config updates 2026-06-02 06:09:57 -07:00
defiQUG
d31aad7d66 WIP: HYBX OMNL and deployment documentation updates 2026-06-02 06:09:56 -07:00
defiQUG
f04a7cb7c8 WIP: Chain138 deployment scripts, flash receivers, HYBX OMNL recovery 2026-06-02 06:09:44 -07:00
defiQUG
e1560a880b WIP: Zedxion bridge, GRU monetary policy gate, LiIndex flash vault, cw-settlement 2026-06-02 06:09:36 -07:00
defiQUG
db517eca80 WIP: OMNL compliance console, relay rpc pool, zedxion relay service 2026-06-02 06:09:16 -07:00
defiQUG
7c5b4f22aa Link ORACLE_AND_KEEPER doc to imported Chainlink/Gelato keeper stack
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m7s
CI/CD Pipeline / Security Scanning (push) Successful in 2m16s
CI/CD Pipeline / Lint and Format (push) Failing after 35s
CI/CD Pipeline / Terraform Validation (push) Failing after 22s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 23s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 35s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 49s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 24s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-documentation (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
2026-06-02 06:01:37 -07:00
defiQUG
1734d88989 Import sibling archive WIP: keeper stack, CCIP scripts, and CCIP docs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 05:59:06 -07:00
defiQUG
d3ccbb2145 Co-authored-by: 2026-06-01 22:26:06 -07:00
defiQUG
c67a4d9f35 Add RWA_TOKEN_REGISTRY and RWA_TOKEN_FACTORY to chain138 inventory.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m7s
CI/CD Pipeline / Security Scanning (push) Successful in 2m25s
CI/CD Pipeline / Lint and Format (push) Failing after 32s
CI/CD Pipeline / Terraform Validation (push) Failing after 19s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 21s
Validation / validate-genesis (push) Successful in 24s
Validation / validate-terraform (push) Failing after 22s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m3s
Validation / validate-documentation (push) Failing after 14s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 24s
Verify Deployment / Verify Deployment (push) Failing after 49s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-25 00:57:31 -07:00
defiQUG
c336809676 Add mainnet checkpoint stack: ISO attestation, participant Etherscan surface, and services.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m3s
CI/CD Pipeline / Security Scanning (push) Successful in 2m18s
CI/CD Pipeline / Lint and Format (push) Failing after 34s
CI/CD Pipeline / Terraform Validation (push) Failing after 20s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 40s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 49s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 21s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 21s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m11s
Validation / validate-documentation (push) Failing after 14s
Verify Deployment / Verify Deployment (push) Failing after 45s
Ship AddressActivityRegistry V1/V2, ISO20022IntakeGateway, Chain138ParticipantSurface,
checkpoint hub contracts, checkpoint-core package, aggregator/indexer/sdk services,
relay profile guards, M00 diamond bridge facet, and OMNL compliance contracts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-25 00:30:45 -07:00
defiQUG
9a83aa2034 Align default bridge routes with Wemix and config-ready CCIP receivers.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m2s
CI/CD Pipeline / Security Scanning (push) Successful in 2m36s
CI/CD Pipeline / Lint and Format (push) Failing after 33s
CI/CD Pipeline / Terraform Validation (push) Failing after 21s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 48s
Validation / validate-genesis (push) Successful in 26s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m36s
Validation / validate-documentation (push) Failing after 13s
Verify Deployment / Verify Deployment (push) Failing after 48s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 22s
Add the runtime JSON mirror and update token-aggregation fallbacks for Gnosis, Cronos, Celo, and Wemix (1111) lanes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-23 02:21:38 -07:00
defiQUG
6c0328b040 docs: point GRU transport Jest gate at loader design spec
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m8s
CI/CD Pipeline / Security Scanning (push) Successful in 2m17s
CI/CD Pipeline / Lint and Format (push) Failing after 34s
CI/CD Pipeline / Terraform Validation (push) Failing after 23s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 24s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 52s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 24s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m9s
Validation / validate-documentation (push) Failing after 16s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 22s
Verify Deployment / Verify Deployment (push) Failing after 43s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 00:00:43 -07:00
defiQUG
c3ef31d8f3 fix(token-aggregation): merge live Uniswap V2 catalog TVL into CMC pool rows
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m5s
CI/CD Pipeline / Security Scanning (push) Successful in 2m27s
CI/CD Pipeline / Lint and Format (push) Failing after 36s
CI/CD Pipeline / Terraform Validation (push) Failing after 22s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 50s
Validation / validate-genesis (push) Successful in 29s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m11s
Validation / validate-documentation (push) Failing after 16s
Verify Deployment / Verify Deployment (push) Failing after 53s
Resolve pool catalog from multiple monorepo cwd layouts; prefer catalog
totalLiquidityUsd over lower DB/repo-fallback TVL. Extend CMC report tests
for cWUSDC pair liquidity assertions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:26:14 -07:00
defiQUG
0f8476f493 fix(token-aggregation): gate GRU loader tests; add test:ci:gru script
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m4s
CI/CD Pipeline / Security Scanning (push) Has started running
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 1m2s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 25s
Verify Deployment / Verify Deployment (push) Failing after 51s
Default test:ci skips suites that require unpublished gru-transport-active
loader data; set RUN_GRU_TRANSPORT_LOADER_TESTS=1 to run them. Keeps CI
green while the monorepo loader gains GRU exports.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:08:02 -07:00
defiQUG
e279443e1c docs(ccip): document fund-ccip --cap-to-deployer for deployer-only LINK
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:12:14 -07:00
defiQUG
01e0779a3d feat(ccip): cap LINK funding to deployer balance per chain; fix Arbitrum gas
- parse_link_tags: add --cap-to-deployer for fund-ccip-bridges-with-link.sh
- fund-ccip: min(target, balance//bridges) per chain; reuse one wei for both
  bridges under cap so post-transfer balance does not undershoot the second send
- Arbitrum: append legacy --gas-price from RPC (3x) with floor to clear base fee

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:09:31 -07:00
defiQUG
0561d26bcd fix(deployment): parse cast send receipts and extend RPC timeouts for LINK ops
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m8s
CI/CD Pipeline / Lint and Format (push) Failing after 1m8s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 26s
CI/CD Pipeline / Security Scanning (push) Successful in 3m5s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 51s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 58s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 30s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-terraform (push) Failing after 44s
Validation / validate-documentation (push) Failing after 18s
Validation / validate-security (push) Failing after 2m14s
Verify Deployment / Verify Deployment (push) Failing after 51s
Cast can exit 0 on mined reverts; classify receipt output so operators see
failures. Add cast --timeout/--rpc-timeout on mainnet and L2 LINK transfers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 15:23:05 -07:00
defiQUG
21578e1a13 fix(token-aggregation): normalize inflated liquidityUsd; token-price report
- Apply decimal-aware liquidity normalization on /tokens and reports
- Add GET /report/token-price/:symbol compact evidence snapshot
- Extend route tests for normalization and token-price endpoint

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 12:55:10 -07:00
defiQUG
76143a8fe3 feat(token-aggregation): reports, PMM quotes, config; Engine X flash vaults
- Expand token-aggregation API (report routes), canonical tokens, pools
- Add flash vault contracts + tests (indexed, DODO cwUSDC, XAUT borrow)
- PMM pools JSON, deploy/export scripts, metamask verified list

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 12:56:30 -07:00
defiQUG
27f8e3a500 Add Engine X virtual batch canary vault
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m8s
CI/CD Pipeline / Security Scanning (push) Successful in 2m27s
CI/CD Pipeline / Lint and Format (push) Failing after 40s
CI/CD Pipeline / Terraform Validation (push) Failing after 21s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 23s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 22s
Validation / validate-kubernetes (push) Failing after 7s
Validation / validate-smart-contracts (push) Failing after 7s
Validation / validate-security (push) Failing after 1m19s
Validation / validate-documentation (push) Failing after 13s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 25s
Verify Deployment / Verify Deployment (push) Failing after 45s
2026-05-07 07:09:17 -07:00
defiQUG
bb64836886 Add Engine X proof vaults
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m31s
CI/CD Pipeline / Security Scanning (push) Successful in 3m56s
CI/CD Pipeline / Lint and Format (push) Failing after 35s
CI/CD Pipeline / Terraform Validation (push) Failing after 31s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 5m14s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 52s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 35s
Validation / validate-kubernetes (push) Failing after 7s
Validation / validate-smart-contracts (push) Failing after 7s
Validation / validate-security (push) Failing after 10m7s
Validation / validate-documentation (push) Failing after 16s
2026-05-07 05:25:53 -07:00
defiQUG
2ff84bd4ee Accept ONEINCH API key alias 2026-04-30 04:10:25 -07:00
defiQUG
c0173f3132 Add atomic DODO seeding helper
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m6s
CI/CD Pipeline / Security Scanning (push) Successful in 2m34s
CI/CD Pipeline / Lint and Format (push) Failing after 37s
CI/CD Pipeline / Terraform Validation (push) Failing after 22s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 21s
Validation / validate-genesis (push) Successful in 33s
Validation / validate-terraform (push) Failing after 29s
Validation / validate-kubernetes (push) Failing after 11s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 58s
Validation / validate-documentation (push) Failing after 19s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 23s
Verify Deployment / Verify Deployment (push) Failing after 49s
2026-04-30 03:06:42 -07:00
defiQUG
bbf1f6ba89 Update ALL Mainnet configuration status
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m10s
CI/CD Pipeline / Security Scanning (push) Successful in 3m19s
CI/CD Pipeline / Lint and Format (push) Failing after 41s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 27s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
Validation / validate-genesis (push) Successful in 34s
Validation / validate-terraform (push) Failing after 23s
Validation / validate-kubernetes (push) Failing after 16s
Validation / validate-smart-contracts (push) Failing after 13s
Validation / validate-security (push) Failing after 1m12s
Validation / validate-documentation (push) Failing after 18s
Verify Deployment / Verify Deployment (push) Failing after 50s
2026-04-29 23:50:57 -07:00
defiQUG
6aaa100bbc Add DODO-only EnhancedSwapRouterV2 routing helpers 2026-04-29 23:50:26 -07:00
defiQUG
1a14622b22 Stabilize Chain 138 PMM router helpers 2026-04-29 06:20:36 -07:00
defiQUG
68cd541265 Stabilize oracle and relay status helpers 2026-04-28 23:33:58 -07:00
defiQUG
4bf669b667 Add ALL Mainnet enhanced router deploy script 2026-04-28 22:36:55 -07:00
defiQUG
459b377c76 deployment(ccip): Step 0 allowlist Wemix/Gnosis/Cronos/Celo on Chain 138 CCIPRouter
Without supportedChains(selector)=true, bridge.calculateFee reverts CCIPRouter:
chain not supported. Registers selectors via addSupportedChain before addDestination.

Made-with: Cursor
2026-04-28 11:20:39 -07:00
defiQUG
68a245d5e4 docs(all-mainnet): align with canonical surface JSON; verification addendum
- ALL_MAINNET_CONFIGURATION: bridge_live vs swap inventory pending; CI script paths;
  remove stale sameChainSwapInventoryPublished:true claims
- ALL_MAINNET_VERIFICATION_COMPLETE: separate bridge verification from DEX inventory posture

Made-with: Cursor
2026-04-28 04:20:16 -07:00
defiQUG
12ba59a3f2 Add wallet metadata to MetaMask token list
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m14s
CI/CD Pipeline / Security Scanning (push) Successful in 2m58s
CI/CD Pipeline / Lint and Format (push) Failing after 41s
CI/CD Pipeline / Terraform Validation (push) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 46s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 25s
Validate Token List / validate (push) Failing after 25s
Validation / validate-genesis (push) Successful in 35s
Validation / validate-terraform (push) Failing after 29s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 14s
Validation / validate-security (push) Failing after 1m13s
Validation / validate-documentation (push) Failing after 16s
Verify Deployment / Verify Deployment (push) Failing after 51s
2026-04-28 02:34:33 -07:00
defiQUG
fcd55aa9c4 feat(token-aggregation): add historical pricing context, backfill, and indexer hardening
Some checks failed
CI/CD Pipeline / Solidity Contracts (pull_request) Failing after 1m6s
CI/CD Pipeline / Security Scanning (pull_request) Successful in 12m42s
CI/CD Pipeline / Lint and Format (pull_request) Failing after 42s
CI/CD Pipeline / Terraform Validation (pull_request) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (pull_request) Successful in 27s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (pull_request) Failing after 49s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (pull_request) Failing after 26s
Validation / validate-genesis (pull_request) Successful in 36s
Validation / validate-terraform (pull_request) Failing after 28s
Validation / validate-kubernetes (pull_request) Failing after 12s
Validation / validate-smart-contracts (pull_request) Failing after 13s
Validation / validate-security (pull_request) Failing after 1m39s
Validation / validate-documentation (pull_request) Failing after 18s
2026-04-25 23:45:07 -07:00
defiQUG
c3b1b2cebc config: add explicit chain138 sentry and alltra hybx classes 2026-04-25 08:14:07 -07:00
defiQUG
4540ec4480 feat: add universal resource policy profile registry 2026-04-24 22:06:26 -07:00
defiQUG
045a6a9245 docs: mark besu base templates as placeholder advertised hosts 2026-04-24 22:02:47 -07:00
defiQUG
f3d2961b97 feat: add hybx omnl stack and gas pmm tooling
Some checks failed
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 35s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 37s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 1m50s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 2m19s
Validation / validate-genesis (push) Successful in 51s
Validation / validate-terraform (push) Failing after 39s
Validation / validate-kubernetes (push) Failing after 10s
CI/CD Pipeline / Solidity Contracts (push) Failing after 12m56s
Validation / validate-smart-contracts (push) Failing after 12s
CI/CD Pipeline / Security Scanning (push) Failing after 15m52s
Validation / validate-security (push) Failing after 10m59s
Validation / validate-documentation (push) Failing after 17s
Validate Token List / validate (push) Failing after 30s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 26s
Verify Deployment / Verify Deployment (push) Failing after 56s
2026-04-24 12:56:40 -07:00
defiQUG
c3d4c786fa Standardize deployment env and deployer handling 2026-04-22 14:47:28 -07:00
defiQUG
768168de5e chore: .gitignore and README updates
Made-with: Cursor
2026-04-21 22:00:55 -07:00
defiQUG
843cdbf71c feat: expand non-evm relay and route planning support 2026-04-18 12:05:34 -07:00
defiQUG
da78073104 Deploy Chain 138 canonical non-gas PMM mesh 2026-04-15 16:31:45 -07:00
defiQUG
79750d92e6 Archive legacy status docs and canonicalize genesis entrypoints 2026-04-13 21:45:16 -07:00
defiQUG
7517869ea6 Add managed quote-push treasury workflows 2026-04-13 21:37:33 -07:00
defiQUG
2b52cc6e32 refactor(archive): move historical contracts and adapters to archive directory
- Archived multiple non-EVM adapters (Algorand, Hedera, Tron, TON, Cosmos, Solana) and compliance contracts (IndyVerifier) to `archive/solidity/contracts/`.
- Updated documentation to reflect the historical status of archived components.
- Adjusted `foundry.toml` and `README.md` for clarity on historical dependencies and configurations.
- Enhanced Makefile and package.json scripts for improved contract testing and building processes.
- Removed obsolete contracts (AlltraCustomBridge, CommodityCCIPBridge, ISO4217WCCIPBridge, VaultBridgeAdapter) from the main directory.
- Updated implementation reports to indicate archived status for various components.
2026-04-12 18:21:05 -07:00
defiQUG
8ec6af94d5 fix(relay): defer on inventory probe errors; optional retry without budget
- MessageQueue: resetRetryCount and retry({ increment: false }) for shedder/inventory paths
- RelayService: treat bridge_inventory_probe like other soft-failure scopes; wrap inventory check in try/catch
- Token aggregation: catch DB pool lookup errors and fall back to live DODO path
- Mainnet WETH profile: START_BLOCK=latest; extend RELAY_SKIP_MESSAGE_IDS for backlog hygiene
- Extend relay test.js for deferred requeue behavior

Made-with: Cursor
2026-04-12 11:35:18 -07:00
defiQUG
06c4bebcb7 fix(token-aggregation): restore Chain 138 cAUSDT fallback for report API
Aligns canonical-tokens FALLBACK_ADDRESSES with smart-contracts-master.json
so /api/v1/report/token-list includes cAUSDT when env overrides are absent.

Made-with: Cursor
2026-04-12 07:06:34 -07:00
defiQUG
f19c771760 refactor(bridge): trustless swap stack and fork test cleanups
Tighten EnhancedSwapRouter, InboxETH, SwapRouter, MerkleProofVerifier; align
DEXIntegration and ForkTests with updated behavior.

Made-with: Cursor
2026-04-12 06:44:20 -07:00
defiQUG
6817f53591 Flash unwinder contracts and scripts, relay lane tuning, trustless bridge and token-aggregation updates.
Made-with: Cursor
2026-04-12 06:33:54 -07:00
defiQUG
662b35ad69 config(besu): allowlist ops EOA 0xB2dE… for core/Thirdweb admin RPC deploy
Made-with: Cursor
2026-04-08 08:34:08 -07:00
defiQUG
76aa419320 feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault.
- Token-aggregation service routes, planner, chain config, relay env templates.
- Config snapshots and multi-chain deployment markdown updates.
- gitignore services/btc-intake/dist/ (tsc output); do not track dist.

Run forge build && forge test before deploy (large solc graph).

Made-with: Cursor
2026-04-07 23:40:52 -07:00
defiQUG
0fb7bba07b chore: gitignore Foundry artifacts/ and untrack build JSON
artifacts/ is regenerated by forge build; matches existing out/ and cache/ ignores.

Made-with: Cursor
2026-04-07 22:08:38 -07:00
defiQUG
7678218172 Require dual-jurisdiction approval for asset-scoped governance 2026-04-01 11:28:37 -07:00
defiQUG
4a641475cd Enforce asset-scoped governance metadata controls 2026-04-01 01:59:10 -07:00
defiQUG
162a7d5b03 fix(config): drop unsupported miner-coinbase from validators 2026-03-29 18:49:31 -07:00
defiQUG
a923d7b397 fix(env): load derived dotenv vars under nounset 2026-03-29 18:41:15 -07:00
defiQUG
59cdd5af60 fix(deployment): load env safely under nounset 2026-03-29 18:27:24 -07:00
defiQUG
089da29b9b fix(token-aggregation): tolerate missing market data tables 2026-03-29 18:25:54 -07:00
3891 changed files with 247224 additions and 103035 deletions

71
.github/workflows/hybx-omnl-ts.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
# TypeScript build + IPSAS/journal anchor (no Forge — keeps PR feedback fast).
name: HYBX OMNL TypeScript & anchor
on:
workflow_dispatch:
pull_request:
branches: [main, develop]
paths:
- 'contracts/hybx-omnl/**'
- 'services/token-aggregation/**'
- 'config/omnl-*.json'
- 'config/hybx-omnl-*.json'
- 'config/deployment-omnl.example.env'
- 'scripts/hybx-omnl/**'
- 'test/hybx-omnl/**'
- '.github/workflows/hybx-omnl-ts.yml'
- '.github/workflows/omnl-reconcile.yml'
push:
branches: [main, develop]
paths:
- 'contracts/hybx-omnl/**'
- 'services/token-aggregation/**'
- 'config/omnl-*.json'
- 'config/hybx-omnl-*.json'
- 'config/deployment-omnl.example.env'
- 'scripts/hybx-omnl/**'
- 'test/hybx-omnl/**'
- '.github/workflows/hybx-omnl-ts.yml'
- '.github/workflows/omnl-reconcile.yml'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
ts-and-anchor:
name: token-aggregation build + reconcile artifact
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate cross-chain OMNL config
run: node scripts/hybx-omnl/validate-cross-chain-config.mjs
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: npm
cache-dependency-path: services/token-aggregation/package-lock.json
- name: Install token-aggregation dependencies
working-directory: services/token-aggregation
run: npm ci
- name: OMNL reconcile artifact
run: bash scripts/hybx-omnl/omnl-reconcile-artifact.sh
- name: Build token-aggregation
working-directory: services/token-aggregation
run: npm run build
- name: Upload reconcile artifacts
uses: actions/upload-artifact@v4
with:
name: omnl-reconcile-pr-${{ github.run_id }}
path: artifacts/omnl-reconcile/
if-no-files-found: error
retention-days: 14

67
.github/workflows/omnl-reconcile.yml vendored Normal file
View File

@@ -0,0 +1,67 @@
name: OMNL reconcile anchor
on:
workflow_dispatch:
schedule:
# Weekly Monday 07:05 UTC — adjust as needed
- cron: '5 7 * * 1'
pull_request:
branches: [main, develop]
paths:
- 'config/omnl-ipsas-gl-registry.json'
- 'config/omnl-journal-matrix.json'
- 'config/deployment-omnl.example.env'
- 'services/token-aggregation/scripts/omnl-reconcile-report.mjs'
- 'services/token-aggregation/package.json'
- 'scripts/hybx-omnl/omnl-reconcile-artifact.sh'
- '.github/workflows/omnl-reconcile.yml'
- '.github/workflows/hybx-omnl-ts.yml'
push:
branches: [main, develop]
paths:
- 'config/omnl-ipsas-gl-registry.json'
- 'config/omnl-journal-matrix.json'
- 'config/deployment-omnl.example.env'
- 'services/token-aggregation/scripts/omnl-reconcile-report.mjs'
- 'services/token-aggregation/package.json'
- 'scripts/hybx-omnl/omnl-reconcile-artifact.sh'
- '.github/workflows/omnl-reconcile.yml'
- '.github/workflows/hybx-omnl-ts.yml'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
reconcile:
name: Run omnl:reconcile and upload artifacts
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Validate cross-chain OMNL config
run: node scripts/hybx-omnl/validate-cross-chain-config.mjs
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Generate reconcile artifacts
env:
GITHUB_SHA: ${{ github.sha }}
GITHUB_RUN_ID: ${{ github.run_id }}
GITHUB_REPOSITORY: ${{ github.repository }}
run: bash scripts/hybx-omnl/omnl-reconcile-artifact.sh
- name: Upload OMNL reconcile artifacts
uses: actions/upload-artifact@v4
with:
name: omnl-reconcile-${{ github.run_id }}
path: artifacts/omnl-reconcile/
if-no-files-found: error
retention-days: 90

23
.gitignore vendored
View File

@@ -10,6 +10,13 @@ terraform.tfvars
kubeconfig
*.kubeconfig
# Python virtualenvs
.venv/
# OMNL terminal connection secrets / CIS source PDFs
config/omnl-terminal-connections/**/source/
config/omnl-terminal-connections/**/.env
# Keys and Secrets
*.key
*.pem
@@ -28,6 +35,8 @@ datadir/
# Foundry
out/
artifacts/
.omnl-poller-state.json
cache/
broadcast/
.cronos-verify/
@@ -56,6 +65,9 @@ temp/
# Node modules (if any)
node_modules/
# TypeScript service emit (build in-tree)
services/btc-intake/dist/
# Python
__pycache__/
*.pyc
@@ -83,3 +95,14 @@ assets/azure-icons/*.zip
assets/**/*.tmp
assets/**/.*.swp
# Relay lane secrets (examples stay tracked)
services/relay/.env.*
!services/relay/.env.*.example
!services/relay/.env.local.example
# Local DODO vendor trees (use lib/dodo-contractV2 submodule)
lib/dodo-gassaving-pool/
lib/dodo-limit-order/
lib/dodo-v3/
lib/deploy-starter.txt

View File

@@ -36,7 +36,7 @@ help:
@echo " make clean - Clean up temporary files"
@echo " make genesis - Generate genesis file"
@echo " make keys - Generate validator and oracle keys"
@echo " make contracts - Compile and test contracts"
@echo " make contracts - Compile and test contracts (optional: SCOPE=treasury, SCOPE=bridge/trustless, ...)"
@echo " make monitoring - Deploy monitoring stack"
@echo " make assets - Setup and download Azure icons (see Makefile.assets)"
@@ -204,10 +204,11 @@ azure-login:
test:
@echo "Running tests (parallel)..."
@if [ -n "$(SCOPE)" ]; then echo "Forge scope: $(SCOPE)"; else echo "Forge scope: full"; fi
@if [ -f .env ]; then \
source .env && forge test --fork-url "$$RPC_URL" -j $$(nproc) || forge test -j $$(nproc); \
source .env && FORGE_SCOPE="$(SCOPE)" bash scripts/forge/scope.sh test --fork-url "$$RPC_URL" -j $$(nproc) || FORGE_SCOPE="$(SCOPE)" bash scripts/forge/scope.sh test -j $$(nproc); \
else \
forge test -j $$(nproc); \
FORGE_SCOPE="$(SCOPE)" bash scripts/forge/scope.sh test -j $$(nproc); \
fi
@./tests/health-check.sh &
@HEALTH_PID=$$!; \
@@ -224,7 +225,8 @@ clean:
genesis:
@echo "Generating genesis file..."
./scripts/generate-genesis.sh
./scripts/generate-genesis-proper.sh 4
./scripts/validation/validate-genesis.sh
keys:
@echo "Generating keys..."
@@ -233,15 +235,15 @@ keys:
contracts:
@echo "Compiling contracts..."
forge build
@if [ -n "$(SCOPE)" ]; then echo "Forge scope: $(SCOPE)"; else echo "Forge scope: full"; fi
FORGE_SCOPE="$(SCOPE)" bash scripts/forge/scope.sh build
@echo "Running contract tests (parallel)..."
@if [ -f .env ]; then \
source .env && forge test --fork-url "$$RPC_URL" -j $$(nproc) || forge test -j $$(nproc); \
source .env && FORGE_SCOPE="$(SCOPE)" bash scripts/forge/scope.sh test --fork-url "$$RPC_URL" -j $$(nproc) || FORGE_SCOPE="$(SCOPE)" bash scripts/forge/scope.sh test -j $$(nproc); \
else \
forge test -j $$(nproc); \
FORGE_SCOPE="$(SCOPE)" bash scripts/forge/scope.sh test -j $$(nproc); \
fi
monitoring:
@echo "Deploying monitoring stack..."
kubectl apply -f monitoring/k8s/prometheus.yaml

View File

@@ -1,15 +1,15 @@
<div align="center">
# 🌐 DeFi Oracle Meta Mainnet
## ChainID 138 | Production-Ready Blockchain Network
## ChainID 138 | Operator-Focused Blockchain Workspace
[![Status](https://img.shields.io/badge/Status-Production--Ready-brightgreen)](https://github.com/Defi-Oracle-Tooling/smom-dbis-138)
[![Status](https://img.shields.io/badge/Status-Active-blue)](https://github.com/Defi-Oracle-Tooling/smom-dbis-138)
[![ChainID](https://img.shields.io/badge/ChainID-138-blue)](https://explorer.d-bis.org)
[![Consensus](https://img.shields.io/badge/Consensus-QBFT-orange)](docs/architecture/ARCHITECTURE.md)
[![License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)
[![Documentation](https://img.shields.io/badge/Documentation-Complete-success)](docs/)
**Production-ready** Hyperledger Besu network with QBFT consensus, deployed on Azure Kubernetes Service (AKS). Complete with CCIP cross-chain oracle support, comprehensive security scanning, full observability, MetaMask integration, and extensive testing infrastructure.
Hyperledger Besu workspace for ChainID 138 with QBFT consensus, deployment automation, CCIP and tokenization integrations, security tooling, and a cleaned active-vs-historical documentation surface.
[🚀 Quick Start](#-quick-start) • [📚 Documentation](#-documentation) • [🏗️ Architecture](#-architecture) • [🔒 Security](#-security) • [📊 Features](#-features) • [🤝 Contributing](#-contributing)
@@ -32,11 +32,11 @@
| **WETH9/WETH10 with CCIP** | ✅ Complete | Cross-chain ready |
| **OpenZeppelin Dependencies** | ✅ Hybrid Approach | OpenZeppelin v4.9.6 installed |
**🎉 Status**: ✅ **PRODUCTION-READY WITH ALL ENHANCEMENTS**
**Status**: ✅ Core implementation complete, with ongoing operator cleanup and deployment-hygiene work.
> **Note**: 30 deployment and integration tasks remain (operational procedures, external submissions). All code tasks are 100% complete. See [Next Steps](docs/operations/tasks/NEXT_STEPS_LIST.md) for deployment tasks.
>
> **Dependency Status**: Hybrid approach implemented - OpenZeppelin v4.9.6 installed (compatible with Solidity 0.8.19). New WETH contracts (WETH10, CCIPWETH9Bridge, CCIPWETH10Bridge) are independent and don't require OpenZeppelin. Existing contracts (CCIPSender, CCIPRouter, CCIPRouterOptimized, MultiSig, Voting) use OpenZeppelin. All contracts compile successfully. See [Hybrid Approach Implementation](docs/guides/HYBRID_APPROACH_IMPLEMENTATION.md) and [Dependencies Guide](docs/guides/DEPENDENCIES.md) for details.
> **Dependency Status**: Hybrid approach implemented - OpenZeppelin v4.9.6 installed (compatible with Solidity 0.8.19). New WETH contracts (WETH10, CCIPWETH9Bridge, CCIPWETH10Bridge) are independent and don't require OpenZeppelin. Active OpenZeppelin-dependent contracts include CCIPSender, CCIPRouter, MultiSig, and Voting; the historical `CCIPRouterOptimized` source now lives under `archive/solidity/contracts/ccip/`. See [Hybrid Approach Implementation](docs/guides/HYBRID_APPROACH_IMPLEMENTATION.md) and [Dependencies Guide](docs/guides/DEPENDENCIES.md) for details.
---
@@ -358,7 +358,7 @@ curl -X POST https://rpc.d-bis.org \
### 📋 Deployment Checklist
See [Deployment Checklist](docs/DEPLOYMENT_CHECKLIST.md) for complete step-by-step instructions.
See [Deployment Checklist](docs/deployment/DEPLOYMENT_CHECKLIST.md) for complete step-by-step instructions.
---
@@ -387,9 +387,9 @@ See [Deployment Checklist](docs/DEPLOYMENT_CHECKLIST.md) for complete step-by-st
### Security Documentation
- [Security Guide](docs/SECURITY.md) - Comprehensive security documentation
- [Security Guide](docs/security/SECURITY.md) - Comprehensive security documentation
- [Security Scanning Guide](docs/security/SECURITY_SCANNING_GUIDE.md) - Security scanning process
- [Security Compliance](docs/SECURITY_COMPLIANCE.md) - Compliance documentation
- [Security Compliance](docs/security/SECURITY_COMPLIANCE.md) - Compliance documentation
- [Security Scores](docs/security/SECURITY_SCORES.md) - Interpreting security scores
---
@@ -509,7 +509,7 @@ await addOrSwitchNetwork();
2. Go to Settings → Networks → Add Network
3. Enter the network details from above
See [MetaMask Integration Guide](docs/METAMASK_INTEGRATION.md) for complete instructions.
See [MetaMask Integration Guide](docs/operations/integrations/METAMASK_INTEGRATION.md) for complete instructions.
---
@@ -551,40 +551,41 @@ See [ALL Mainnet Master Documentation](../docs/MASTER_INDEX.md) for complete int
- [Quick Start Guide](docs/guides/QUICKSTART.md) - Get started in 5 minutes
- [Deployment Guide](docs/deployment/DEPLOYMENT.md) - Complete deployment instructions
- [Next Steps List](docs/NEXT_STEPS_LIST.md) - **Complete checklist of all next steps (30 tasks)**
- [Deployment Checklist](docs/DEPLOYMENT_CHECKLIST.md) - Step-by-step deployment checklist
- [Next Steps List](docs/operations/tasks/NEXT_STEPS_LIST.md) - **Complete checklist of all next steps (30 tasks)**
- [Deployment Checklist](docs/deployment/DEPLOYMENT_CHECKLIST.md) - Step-by-step deployment checklist
- [Deployment Scripts](scripts/deployment/README.md) - Deployment automation scripts
### 🏗️ Architecture & Design
- [Architecture Documentation](docs/architecture/ARCHITECTURE.md) - Complete architecture overview
- [Network Configuration](docs/NETWORK.md) - Network setup and configuration
- [Azure Well-Architected Framework](docs/AZURE_WELL_ARCHITECTED_IMPLEMENTATION.md) - Best practices implementation
- [Deployment Comparison](docs/DEPLOYMENT_COMPARISON.md) - AKS vs VM deployment
- [Network Configuration](docs/architecture/NETWORK.md) - Network setup and configuration
- [Azure Well-Architected Framework](docs/azure/AZURE_WELL_ARCHITECTED_IMPLEMENTATION.md) - Best practices implementation
- [Deployment Comparison](docs/deployment/DEPLOYMENT_COMPARISON.md) - AKS vs VM deployment
### 🔒 Security & Compliance
- [Security Guide](docs/SECURITY.md) - Comprehensive security documentation
- [Security Guide](docs/security/SECURITY.md) - Comprehensive security documentation
- [Security Scanning Guide](docs/security/SECURITY_SCANNING_GUIDE.md) - Security scanning process
- [Security Compliance](docs/SECURITY_COMPLIANCE.md) - Compliance documentation
- [Governance Framework](docs/GOVERNANCE.md) - Governance and proposal process
- [Security Compliance](docs/security/SECURITY_COMPLIANCE.md) - Compliance documentation
- [Governance Framework](docs/governance/GOVERNANCE.md) - Governance and proposal process
### 🔗 Integration Guides
- [MetaMask Integration](docs/METAMASK_INTEGRATION.md) - Complete MetaMask integration guide
- [MetaMask Developer Guide](docs/METAMASK_DEVELOPER_GUIDE.md) - Developer integration guide
- [CCIP Integration Guide](docs/CCIP_INTEGRATION.md) - CCIP setup and usage
- [Tatum SDK Integration](docs/TATUM_SDK.md) - SDK integration guide
- [Financial Tokenization](docs/FINANCIAL_TOKENIZATION.md) - ISO-20022 and SWIFT FIN tokenization
- [MetaMask Integration](docs/operations/integrations/METAMASK_INTEGRATION.md) - Complete MetaMask integration guide
- [MetaMask Developer Guide](docs/operations/integrations/METAMASK_DEVELOPER_GUIDE.md) - Developer integration guide
- [CCIP Integration Guide](docs/operations/integrations/CCIP_INTEGRATION.md) - CCIP setup and usage
- [Tatum SDK Integration](docs/api/TATUM_SDK.md) - SDK integration guide
- [Financial Tokenization (Archived)](docs/archive/status-reports/operations-legacy/FINANCIAL_TOKENIZATION.md) - Historical ISO-20022 and SWIFT FIN tokenization notes
- [ALL Mainnet Integration](../docs/MASTER_INDEX.md) - Complete ALL Mainnet (651940) integration guide
- [Multi-Chain Deployment](docs/deployment/MULTI_CHAIN_DEPLOYMENT_GUIDE.md) - Multi-chain deployment guide
- [HYBX OMNL (reserves, compliance, CCIP mirror)](docs/hybx-omnl/README.md) - Policy, deployment, IPSAS anchor, token-aggregation routes
### 📊 Operations & Runbooks
- [Operations Runbooks](runbooks/) - Complete operations runbooks
- [Troubleshooting Guide](docs/guides/TROUBLESHOOTING.md) - Common issues and solutions
- [Validation Guide](docs/guides/VALIDATION_GUIDE.md) - Deployment validation
- [API Documentation](docs/API.md) - JSON-RPC API reference
- [API Documentation](docs/api/API.md) - JSON-RPC API reference
### 📈 Monitoring & Observability
@@ -595,10 +596,10 @@ See [ALL Mainnet Master Documentation](../docs/MASTER_INDEX.md) for complete int
### 🎯 Project Management
- [Project Review](docs/COMPLETE_PROJECT_REVIEW.md) - Comprehensive project review
- [Recommendations](docs/RECOMMENDATIONS.md) - Next steps and enhancements
- [TODO List](docs/TODO.md) - Complete task tracking
- [Completion Report](docs/COMPLETION_REPORT_FINAL.md) - Final completion status
- [Project Review (Archived)](docs/archive/status-reports/docs-root-legacy/COMPLETE_PROJECT_REVIEW.md) - Historical comprehensive project review
- [Documentation Recommendations](docs/DOCUMENTATION_REVIEW_AND_RECOMMENDATIONS.md) - Documentation review and next-step recommendations
- [TODO List](docs/operations/tasks/TODO.md) - Active task tracking
- [Current Deployment Status](docs/DEPLOYMENT_STATUS_AND_NEXT_STEPS.md) - Active deployment and follow-up status
---
@@ -858,7 +859,7 @@ terraform apply -var-file=terraform.tfvars.vm -var="vm_deployment_enabled=true"
- ✅ Simpler setup
- ✅ Cost-effective
See [VM Deployment Guide](docs/VM_DEPLOYMENT.md) for detailed instructions.
See [VM Deployment Guide](docs/deployment/VM_DEPLOYMENT.md) for detailed instructions.
---
@@ -903,7 +904,7 @@ See [Configuration Guide](docs/configuration/AZURE_CLOUDFLARE_ENV_SETUP.md) for
## 🤝 Contributing
We welcome contributions! Please see our [Contributing Guide](docs/CONTRIBUTING.md) for details.
We welcome contributions! Please see our [Contributing Guide](docs/governance/CONTRIBUTING.md) for details.
### Contribution Process
@@ -918,7 +919,7 @@ We welcome contributions! Please see our [Contributing Guide](docs/CONTRIBUTING.
### Development Guidelines
- ✅ Follow [Security Guidelines](docs/SECURITY.md)
- ✅ Follow [Security Guidelines](docs/security/SECURITY.md)
- ✅ Run security scans before submitting PRs
- ✅ Follow [Code Style Guide](docs/configuration/AZURE_CLOUDFLARE_ENV_SETUP.md)
- ✅ Add tests for new features
@@ -928,7 +929,7 @@ We welcome contributions! Please see our [Contributing Guide](docs/CONTRIBUTING.
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Licensing details are not currently published in a top-level `LICENSE` file in this repository. Confirm redistribution terms with the maintainers before reuse.
---
@@ -957,7 +958,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
- [Quick Start Guide](docs/guides/QUICKSTART.md) - Get started quickly
- [Troubleshooting Guide](docs/guides/TROUBLESHOOTING.md) - Common issues and solutions
- [API Documentation](docs/API.md) - API reference
- [API Documentation](docs/api/API.md) - API reference
- [Runbooks](runbooks/) - Operations runbooks
---
@@ -1020,7 +1021,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
### 📊 Complete Checklist
See [Next Steps List](docs/NEXT_STEPS_LIST.md) for complete checklist of all 30 tasks:
See [Next Steps List](docs/operations/tasks/NEXT_STEPS_LIST.md) for complete checklist of all 30 tasks:
- ✅ 15 Deployment tasks
- ✅ 10 Integration tasks
- ✅ 5 Pre-production tasks

View File

@@ -0,0 +1,27 @@
# Archived Solidity
This directory holds Solidity files intentionally moved out of `contracts/` so
they are excluded from the default full-repo Foundry compile graph.
Rules:
- Only archive files after confirming they are unreachable from the repo's
current Solidity tests and scripts.
- Move files here in small batches and re-run the affected scoped Forge build
and test commands after each batch.
- Treat archive status as "kept for reference", not "safe to delete".
Current archived batches in this repo include:
- legacy bridge atomic settlement interfaces and adapters
- unused non-EVM bridge adapter implementations that are no longer referenced by
the active Solidity test and deployment graph
- historical bridge implementations such as `AlltraCustomBridge`,
`ISO4217WCCIPBridge`, `CommodityCCIPBridge`, `VaultBridgeAdapter`, and
`BridgeModuleRegistry`
- historical registry, vault, configuration, NFT, and proxy helper contracts
that are no longer reachable from the active Solidity deployment/test graph
- historical CCIP, compliance, liquidity, plugin, registry-interface, and vault
helper contracts such as `CCIPTxReporter`, `CCIPRouterOptimized`,
`IndyVerifier`, `PoolManager`, `PluginRegistry`, `IAssetTypeHandler`, and
`XAUTriangulation`

View File

@@ -0,0 +1,140 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "../../interfaces/IChainAdapter.sol";
contract SolanaAdapter is IChainAdapter, AccessControl, ReentrancyGuard {
using SafeERC20 for IERC20;
bytes32 public constant BRIDGE_OPERATOR_ROLE = keccak256("BRIDGE_OPERATOR_ROLE");
bytes32 public constant ORACLE_ROLE = keccak256("ORACLE_ROLE");
bool public isActive;
mapping(bytes32 => BridgeRequest) public bridgeRequests;
mapping(bytes32 => string) public txHashes;
mapping(address => uint256) public nonces;
event SolanaBridgeInitiated(
bytes32 indexed requestId,
address indexed sender,
address indexed token,
uint256 amount,
string destination
);
event SolanaBridgeConfirmed(
bytes32 indexed requestId,
string indexed txHash
);
constructor(address admin) {
_grantRole(DEFAULT_ADMIN_ROLE, admin);
_grantRole(BRIDGE_OPERATOR_ROLE, admin);
_grantRole(ORACLE_ROLE, admin);
isActive = true;
}
function getChainType() external pure override returns (string memory) {
return "Solana";
}
function getChainIdentifier() external pure override returns (uint256 chainId, string memory identifier) {
return (0, "Solana-Mainnet");
}
function validateDestination(bytes calldata destination) external pure override returns (bool) {
return destination.length > 0;
}
function bridge(
address token,
uint256 amount,
bytes calldata destination,
bytes calldata recipient
) external payable override nonReentrant returns (bytes32 requestId) {
require(isActive, "Adapter inactive");
require(amount > 0, "Zero amount");
string memory dest = string(destination);
requestId = keccak256(abi.encodePacked(
msg.sender,
token,
amount,
dest,
nonces[msg.sender]++,
block.timestamp
));
if (token == address(0)) {
require(msg.value >= amount, "Insufficient ETH");
} else {
IERC20(token).safeTransferFrom(msg.sender, address(this), amount);
}
bridgeRequests[requestId] = BridgeRequest({
sender: msg.sender,
token: token,
amount: amount,
destinationData: destination,
requestId: requestId,
status: BridgeStatus.Locked,
createdAt: block.timestamp,
completedAt: 0
});
emit SolanaBridgeInitiated(requestId, msg.sender, token, amount, dest);
return requestId;
}
function confirmTransaction(
bytes32 requestId,
string calldata txHash
) external onlyRole(ORACLE_ROLE) {
BridgeRequest storage request = bridgeRequests[requestId];
require(request.status == BridgeStatus.Locked, "Invalid status");
request.status = BridgeStatus.Confirmed;
request.completedAt = block.timestamp;
txHashes[requestId] = txHash;
emit SolanaBridgeConfirmed(requestId, txHash);
}
function getBridgeStatus(bytes32 requestId)
external view override returns (BridgeRequest memory) {
return bridgeRequests[requestId];
}
function cancelBridge(bytes32 requestId) external override returns (bool) {
BridgeRequest storage request = bridgeRequests[requestId];
require(request.status == BridgeStatus.Pending || request.status == BridgeStatus.Locked, "Cannot cancel");
require(msg.sender == request.sender, "Not request sender");
if (request.token == address(0)) {
payable(request.sender).transfer(request.amount);
} else {
IERC20(request.token).safeTransfer(request.sender, request.amount);
}
request.status = BridgeStatus.Cancelled;
return true;
}
function estimateFee(
address token,
uint256 amount,
bytes calldata destination
) external view override returns (uint256 fee) {
return 1000000000000000;
}
function setIsActive(bool _isActive) external onlyRole(DEFAULT_ADMIN_ROLE) {
isActive = _isActive;
}
}

View File

@@ -0,0 +1,140 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "../../interfaces/IChainAdapter.sol";
contract TronAdapter is IChainAdapter, AccessControl, ReentrancyGuard {
using SafeERC20 for IERC20;
bytes32 public constant BRIDGE_OPERATOR_ROLE = keccak256("BRIDGE_OPERATOR_ROLE");
bytes32 public constant ORACLE_ROLE = keccak256("ORACLE_ROLE");
bool public isActive;
mapping(bytes32 => BridgeRequest) public bridgeRequests;
mapping(bytes32 => string) public txHashes;
mapping(address => uint256) public nonces;
event TronBridgeInitiated(
bytes32 indexed requestId,
address indexed sender,
address indexed token,
uint256 amount,
string destination
);
event TronBridgeConfirmed(
bytes32 indexed requestId,
string indexed txHash
);
constructor(address admin) {
_grantRole(DEFAULT_ADMIN_ROLE, admin);
_grantRole(BRIDGE_OPERATOR_ROLE, admin);
_grantRole(ORACLE_ROLE, admin);
isActive = true;
}
function getChainType() external pure override returns (string memory) {
return "Tron";
}
function getChainIdentifier() external pure override returns (uint256 chainId, string memory identifier) {
return (0, "Tron-Mainnet");
}
function validateDestination(bytes calldata destination) external pure override returns (bool) {
return destination.length > 0;
}
function bridge(
address token,
uint256 amount,
bytes calldata destination,
bytes calldata recipient
) external payable override nonReentrant returns (bytes32 requestId) {
require(isActive, "Adapter inactive");
require(amount > 0, "Zero amount");
string memory dest = string(destination);
requestId = keccak256(abi.encodePacked(
msg.sender,
token,
amount,
dest,
nonces[msg.sender]++,
block.timestamp
));
if (token == address(0)) {
require(msg.value >= amount, "Insufficient ETH");
} else {
IERC20(token).safeTransferFrom(msg.sender, address(this), amount);
}
bridgeRequests[requestId] = BridgeRequest({
sender: msg.sender,
token: token,
amount: amount,
destinationData: destination,
requestId: requestId,
status: BridgeStatus.Locked,
createdAt: block.timestamp,
completedAt: 0
});
emit TronBridgeInitiated(requestId, msg.sender, token, amount, dest);
return requestId;
}
function confirmTransaction(
bytes32 requestId,
string calldata txHash
) external onlyRole(ORACLE_ROLE) {
BridgeRequest storage request = bridgeRequests[requestId];
require(request.status == BridgeStatus.Locked, "Invalid status");
request.status = BridgeStatus.Confirmed;
request.completedAt = block.timestamp;
txHashes[requestId] = txHash;
emit TronBridgeConfirmed(requestId, txHash);
}
function getBridgeStatus(bytes32 requestId)
external view override returns (BridgeRequest memory) {
return bridgeRequests[requestId];
}
function cancelBridge(bytes32 requestId) external override returns (bool) {
BridgeRequest storage request = bridgeRequests[requestId];
require(request.status == BridgeStatus.Pending || request.status == BridgeStatus.Locked, "Cannot cancel");
require(msg.sender == request.sender, "Not request sender");
if (request.token == address(0)) {
payable(request.sender).transfer(request.amount);
} else {
IERC20(request.token).safeTransfer(request.sender, request.amount);
}
request.status = BridgeStatus.Cancelled;
return true;
}
function estimateFee(
address token,
uint256 amount,
bytes calldata destination
) external view override returns (uint256 fee) {
return 1000000000000000;
}
function setIsActive(bool _isActive) external onlyRole(DEFAULT_ADMIN_ROLE) {
isActive = _isActive;
}
}

View File

@@ -0,0 +1,74 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {IAtomicSettlementAdapter} from "../interfaces/IAtomicSettlementAdapter.sol";
import {UniversalCCIPBridge} from "../../UniversalCCIPBridge.sol";
contract UniversalCcipAtomicSettlementAdapter is AccessControl, IAtomicSettlementAdapter {
using SafeERC20 for IERC20;
bytes32 public constant ROUTER_ROLE = keccak256("ROUTER_ROLE");
UniversalCCIPBridge public immutable universalBridge;
struct SettlementParams {
uint64 destinationChain;
address destinationRecipient;
bytes32 assetType;
bool usePMM;
bool useVault;
bytes complianceProof;
bytes vaultInstructions;
}
event AtomicSettlementBridged(
bytes32 indexed obligationId,
bytes32 indexed messageId,
address indexed token,
uint256 amount,
uint64 destinationChain,
address recipient
);
constructor(address universalBridge_, address admin) {
universalBridge = UniversalCCIPBridge(payable(universalBridge_));
_grantRole(DEFAULT_ADMIN_ROLE, admin);
}
function executeSettlement(
bytes32 obligationId,
address token,
uint256 amount,
address recipient,
bytes calldata data
) external payable onlyRole(ROUTER_ROLE) returns (bytes32 settlementId) {
SettlementParams memory params = abi.decode(data, (SettlementParams));
address finalRecipient = params.destinationRecipient == address(0) ? recipient : params.destinationRecipient;
IERC20(token).forceApprove(address(universalBridge), amount);
settlementId = universalBridge.bridge{value: msg.value}(
UniversalCCIPBridge.BridgeOperation({
token: token,
amount: amount,
destinationChain: params.destinationChain,
recipient: finalRecipient,
assetType: params.assetType,
usePMM: params.usePMM,
useVault: params.useVault,
complianceProof: params.complianceProof,
vaultInstructions: params.vaultInstructions
})
);
IERC20(token).forceApprove(address(universalBridge), 0);
emit AtomicSettlementBridged(
obligationId,
settlementId,
token,
amount,
params.destinationChain,
finalRecipient
);
}
}

View File

@@ -0,0 +1,13 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IAtomicUnwindAdapter {
function executeUnwind(
address tokenIn,
address tokenOut,
uint256 amountIn,
uint256 minAmountOut,
address recipient,
bytes calldata data
) external returns (uint256 amountOut);
}

View File

@@ -0,0 +1,227 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import "../../vendor/openzeppelin/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
/**
* @title BridgeModuleRegistry
* @notice Registry for bridge modules (hooks, validators, fee calculators)
* @dev Enables extending bridge functionality without modifying core contracts
*/
contract BridgeModuleRegistry is
Initializable,
AccessControlUpgradeable,
UUPSUpgradeable
{
bytes32 public constant MODULE_ADMIN_ROLE = keccak256("MODULE_ADMIN_ROLE");
bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE");
enum ModuleType {
PreBridgeHook, // Execute before bridge (e.g., compliance check)
PostBridgeHook, // Execute after bridge (e.g., notification)
FeeCalculator, // Custom fee calculation
RateLimiter, // Rate limiting logic
Validator // Custom validation
}
struct Module {
address implementation;
bool active;
uint256 priority;
uint256 registeredAt;
}
// Storage
mapping(ModuleType => address[]) public modules;
mapping(ModuleType => mapping(address => Module)) public moduleInfo;
mapping(ModuleType => uint256) public moduleCount;
event ModuleRegistered(
ModuleType indexed moduleType,
address indexed module,
uint256 priority
);
event ModuleUnregistered(
ModuleType indexed moduleType,
address indexed module
);
event ModuleExecuted(
ModuleType indexed moduleType,
address indexed module,
bool success
);
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
_disableInitializers();
}
function initialize(address admin) external initializer {
__AccessControl_init();
__UUPSUpgradeable_init();
_grantRole(DEFAULT_ADMIN_ROLE, admin);
_grantRole(MODULE_ADMIN_ROLE, admin);
_grantRole(UPGRADER_ROLE, admin);
}
function _authorizeUpgrade(address newImplementation)
internal override onlyRole(UPGRADER_ROLE) {}
/**
* @notice Register module
*/
function registerModule(
ModuleType moduleType,
address module,
uint256 priority
) external onlyRole(MODULE_ADMIN_ROLE) {
require(module != address(0), "Zero address");
require(module.code.length > 0, "Not a contract");
require(moduleInfo[moduleType][module].implementation == address(0), "Already registered");
modules[moduleType].push(module);
moduleInfo[moduleType][module] = Module({
implementation: module,
active: true,
priority: priority,
registeredAt: block.timestamp
});
moduleCount[moduleType]++;
emit ModuleRegistered(moduleType, module, priority);
}
/**
* @notice Unregister module
*/
function unregisterModule(
ModuleType moduleType,
address module
) external onlyRole(MODULE_ADMIN_ROLE) {
require(moduleInfo[moduleType][module].implementation != address(0), "Not registered");
moduleInfo[moduleType][module].active = false;
moduleCount[moduleType]--;
emit ModuleUnregistered(moduleType, module);
}
/**
* @notice Execute all modules of a type
*/
function executeModules(
ModuleType moduleType,
bytes calldata data
) external returns (bytes[] memory results) {
address[] memory activeModules = modules[moduleType];
uint256 activeCount = 0;
// Count active modules
for (uint256 i = 0; i < activeModules.length; i++) {
if (moduleInfo[moduleType][activeModules[i]].active) {
activeCount++;
}
}
results = new bytes[](activeCount);
uint256 resultIndex = 0;
// Execute each active module
for (uint256 i = 0; i < activeModules.length; i++) {
address module = activeModules[i];
if (!moduleInfo[moduleType][module].active) continue;
(bool success, bytes memory result) = module.call(data);
emit ModuleExecuted(moduleType, module, success);
if (success) {
results[resultIndex] = result;
resultIndex++;
}
}
return results;
}
/**
* @notice Execute single module
*/
function executeModule(
ModuleType moduleType,
address module,
bytes calldata data
) external returns (bytes memory result) {
require(moduleInfo[moduleType][module].active, "Module not active");
(bool success, bytes memory returnData) = module.call(data);
emit ModuleExecuted(moduleType, module, success);
require(success, "Module execution failed");
return returnData;
}
/**
* @notice Set module priority
*/
function setModulePriority(
ModuleType moduleType,
address module,
uint256 priority
) external onlyRole(MODULE_ADMIN_ROLE) {
require(moduleInfo[moduleType][module].implementation != address(0), "Not registered");
moduleInfo[moduleType][module].priority = priority;
}
// View functions
function getModules(ModuleType moduleType) external view returns (address[] memory) {
return modules[moduleType];
}
function getActiveModules(ModuleType moduleType) external view returns (address[] memory) {
address[] memory allModules = modules[moduleType];
uint256 activeCount = 0;
for (uint256 i = 0; i < allModules.length; i++) {
if (moduleInfo[moduleType][allModules[i]].active) {
activeCount++;
}
}
address[] memory activeModules = new address[](activeCount);
uint256 index = 0;
for (uint256 i = 0; i < allModules.length; i++) {
if (moduleInfo[moduleType][allModules[i]].active) {
activeModules[index] = allModules[i];
index++;
}
}
return activeModules;
}
function getModuleInfo(ModuleType moduleType, address module)
external view returns (Module memory) {
return moduleInfo[moduleType][module];
}
function getModuleCount(ModuleType moduleType) external view returns (uint256) {
return moduleCount[moduleType];
}
function isModuleActive(ModuleType moduleType, address module) external view returns (bool) {
return moduleInfo[moduleType][module].active;
}
}

View File

@@ -0,0 +1,71 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import "../vendor/openzeppelin/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
/**
* @title ConfigurationRegistry
* @notice Centralized configuration without hardcoding
* @dev Eliminates hardcoded addresses, enables runtime configuration
*/
contract ConfigurationRegistry is
Initializable,
AccessControlUpgradeable,
UUPSUpgradeable
{
bytes32 public constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE");
bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE");
mapping(address => mapping(bytes32 => bytes)) private configs;
mapping(address => bytes32[]) private configKeys;
event ConfigSet(address indexed contractAddr, bytes32 indexed key, bytes value);
event ConfigDeleted(address indexed contractAddr, bytes32 indexed key);
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
_disableInitializers();
}
function initialize(address admin) external initializer {
__AccessControl_init();
__UUPSUpgradeable_init();
_grantRole(DEFAULT_ADMIN_ROLE, admin);
_grantRole(CONFIG_ADMIN_ROLE, admin);
_grantRole(UPGRADER_ROLE, admin);
}
function _authorizeUpgrade(address newImplementation)
internal override onlyRole(UPGRADER_ROLE) {}
function set(address contractAddr, bytes32 key, bytes calldata value) external onlyRole(CONFIG_ADMIN_ROLE) {
require(contractAddr != address(0), "Zero address");
require(key != bytes32(0), "Zero key");
if (configs[contractAddr][key].length == 0) {
configKeys[contractAddr].push(key);
}
configs[contractAddr][key] = value;
emit ConfigSet(contractAddr, key, value);
}
function get(address contractAddr, bytes32 key) external view returns (bytes memory) {
return configs[contractAddr][key];
}
function getAddress(address contractAddr, bytes32 key) external view returns (address) {
bytes memory data = configs[contractAddr][key];
require(data.length == 32, "Invalid data");
return abi.decode(data, (address));
}
function getUint256(address contractAddr, bytes32 key) external view returns (uint256) {
bytes memory data = configs[contractAddr][key];
require(data.length == 32, "Invalid data");
return abi.decode(data, (uint256));
}
}

View File

@@ -0,0 +1,234 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import "../vendor/openzeppelin/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "../registry/UniversalAssetRegistry.sol";
/**
* @title PoolManager
* @notice Manages pool creation, configuration, and lifecycle
* @dev Auto-creates pools when new assets are registered
*/
contract PoolManager is
Initializable,
AccessControlUpgradeable,
UUPSUpgradeable
{
bytes32 public constant POOL_ADMIN_ROLE = keccak256("POOL_ADMIN_ROLE");
bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE");
struct PoolInfo {
address pool;
address provider; // DODO, Uniswap, etc.
address tokenA;
address tokenB;
uint256 liquidityUSD;
uint256 volume24h;
uint256 createdAt;
uint256 lastUpdateTime;
bool isActive;
}
// Storage
UniversalAssetRegistry public assetRegistry;
mapping(address => PoolInfo[]) public tokenPools; // token => pools
mapping(address => PoolInfo) public poolRegistry; // pool address => info
address[] public allPools;
// Provider addresses
address public dodoProvider;
address public uniswapV3Provider;
address public curveProvider;
event PoolCreated(
address indexed pool,
address indexed token,
address provider,
UniversalAssetRegistry.AssetType assetType
);
event PoolHealthChecked(
address indexed pool,
bool isHealthy,
string reason
);
event PoolLiquidityUpdated(
address indexed pool,
uint256 newLiquidityUSD
);
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
_disableInitializers();
}
function initialize(
address _assetRegistry,
address admin
) external initializer {
__AccessControl_init();
__UUPSUpgradeable_init();
require(_assetRegistry != address(0), "Zero registry");
assetRegistry = UniversalAssetRegistry(_assetRegistry);
_grantRole(DEFAULT_ADMIN_ROLE, admin);
_grantRole(POOL_ADMIN_ROLE, admin);
_grantRole(UPGRADER_ROLE, admin);
}
function _authorizeUpgrade(address newImplementation)
internal override onlyRole(UPGRADER_ROLE) {}
/**
* @notice Auto-create pool when new asset registered
*/
function onAssetRegistered(
address token,
UniversalAssetRegistry.AssetType assetType
) external onlyRole(POOL_ADMIN_ROLE) returns (address pool) {
// Determine optimal pool type based on asset type
if (assetType == UniversalAssetRegistry.AssetType.Stablecoin ||
assetType == UniversalAssetRegistry.AssetType.ISO4217W ||
assetType == UniversalAssetRegistry.AssetType.GRU) {
// Create DODO PMM pool (optimal for stable / GRU c* pairs)
pool = _createDODOPool(token);
} else if (assetType == UniversalAssetRegistry.AssetType.ERC20Standard ||
assetType == UniversalAssetRegistry.AssetType.GovernanceToken) {
// Create Uniswap V3 pool (optimal for volatile pairs)
pool = _createUniswapV3Pool(token);
} else {
// For other types (Security, Commodity), manual pool creation
return address(0);
}
emit PoolCreated(pool, token, dodoProvider, assetType);
return pool;
}
/**
* @notice Create DODO PMM pool
*/
function _createDODOPool(address token) internal returns (address) {
// In production, this would call DODOPMMIntegration to create actual pool
// For now, placeholder
return address(0);
}
/**
* @notice Create Uniswap V3 pool
*/
function _createUniswapV3Pool(address token) internal returns (address) {
// In production, this would deploy Uniswap V3 pool
// For now, placeholder
return address(0);
}
/**
* @notice Register existing pool
*/
function registerPool(
address pool,
address provider,
address tokenA,
address tokenB,
uint256 liquidityUSD
) external onlyRole(POOL_ADMIN_ROLE) {
require(pool != address(0), "Zero address");
require(!poolRegistry[pool].isActive, "Already registered");
PoolInfo memory info = PoolInfo({
pool: pool,
provider: provider,
tokenA: tokenA,
tokenB: tokenB,
liquidityUSD: liquidityUSD,
volume24h: 0,
createdAt: block.timestamp,
lastUpdateTime: block.timestamp,
isActive: true
});
poolRegistry[pool] = info;
tokenPools[tokenA].push(info);
if (tokenB != tokenA) {
tokenPools[tokenB].push(info);
}
allPools.push(pool);
}
/**
* @notice Check pool health
*/
function checkPoolHealth(address pool) external view returns (
bool isHealthy,
string memory reason
) {
PoolInfo memory info = poolRegistry[pool];
if (!info.isActive) {
return (false, "Pool inactive");
}
if (info.liquidityUSD < 1000e18) {
return (false, "Insufficient liquidity");
}
if (block.timestamp - info.lastUpdateTime > 7 days) {
return (false, "Stale data");
}
return (true, "Healthy");
}
/**
* @notice Update pool liquidity
*/
function updatePoolLiquidity(
address pool,
uint256 liquidityUSD
) external onlyRole(POOL_ADMIN_ROLE) {
require(poolRegistry[pool].isActive, "Pool not registered");
poolRegistry[pool].liquidityUSD = liquidityUSD;
poolRegistry[pool].lastUpdateTime = block.timestamp;
emit PoolLiquidityUpdated(pool, liquidityUSD);
}
/**
* @notice Set provider addresses
*/
function setProviders(
address _dodoProvider,
address _uniswapV3Provider,
address _curveProvider
) external onlyRole(DEFAULT_ADMIN_ROLE) {
dodoProvider = _dodoProvider;
uniswapV3Provider = _uniswapV3Provider;
curveProvider = _curveProvider;
}
// View functions
function getPoolsForToken(address token) external view returns (PoolInfo[] memory) {
return tokenPools[token];
}
function getPoolInfo(address pool) external view returns (PoolInfo memory) {
return poolRegistry[pool];
}
function getAllPools() external view returns (address[] memory) {
return allPools;
}
function getPoolCount() external view returns (uint256) {
return allPools.length;
}
}

View File

@@ -0,0 +1,192 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import "../vendor/openzeppelin/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
/**
* @title PluginRegistry
* @notice Central registry for all pluggable components
* @dev Enables adding new asset types, liquidity providers, compliance modules without redeployment
*/
contract PluginRegistry is
Initializable,
AccessControlUpgradeable,
UUPSUpgradeable
{
bytes32 public constant PLUGIN_ADMIN_ROLE = keccak256("PLUGIN_ADMIN_ROLE");
bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE");
enum PluginType {
AssetTypeHandler,
LiquidityProvider,
ComplianceModule,
OracleProvider,
VaultStrategy
}
struct Plugin {
address implementation;
string version;
bool active;
uint256 registeredAt;
string description;
}
// Storage
mapping(PluginType => mapping(bytes32 => Plugin)) public plugins;
mapping(PluginType => bytes32[]) public pluginsByType;
// Plugin metadata
mapping(address => bool) public isRegisteredPlugin;
mapping(PluginType => uint256) public pluginCount;
event PluginRegistered(
PluginType indexed pluginType,
bytes32 indexed identifier,
address implementation,
string version
);
event PluginActivated(PluginType indexed pluginType, bytes32 indexed identifier);
event PluginDeactivated(PluginType indexed pluginType, bytes32 indexed identifier);
event PluginUpgraded(
PluginType indexed pluginType,
bytes32 indexed identifier,
address oldImplementation,
address newImplementation
);
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
_disableInitializers();
}
function initialize(address admin) external initializer {
__AccessControl_init();
__UUPSUpgradeable_init();
_grantRole(DEFAULT_ADMIN_ROLE, admin);
_grantRole(PLUGIN_ADMIN_ROLE, admin);
_grantRole(UPGRADER_ROLE, admin);
}
function _authorizeUpgrade(address newImplementation)
internal override onlyRole(UPGRADER_ROLE) {}
/**
* @notice Register new plugin
*/
function registerPlugin(
PluginType pluginType,
bytes32 identifier,
address implementation,
string calldata version,
string calldata description
) external onlyRole(PLUGIN_ADMIN_ROLE) {
require(implementation != address(0), "Zero address");
require(implementation.code.length > 0, "Not a contract");
require(plugins[pluginType][identifier].implementation == address(0), "Already registered");
plugins[pluginType][identifier] = Plugin({
implementation: implementation,
version: version,
active: true,
registeredAt: block.timestamp,
description: description
});
pluginsByType[pluginType].push(identifier);
isRegisteredPlugin[implementation] = true;
pluginCount[pluginType]++;
emit PluginRegistered(pluginType, identifier, implementation, version);
}
/**
* @notice Upgrade plugin to new implementation
*/
function upgradePlugin(
PluginType pluginType,
bytes32 identifier,
address newImplementation,
string calldata newVersion
) external onlyRole(PLUGIN_ADMIN_ROLE) {
require(newImplementation != address(0), "Zero address");
require(newImplementation.code.length > 0, "Not a contract");
Plugin storage plugin = plugins[pluginType][identifier];
require(plugin.implementation != address(0), "Plugin not found");
address oldImplementation = plugin.implementation;
plugin.implementation = newImplementation;
plugin.version = newVersion;
isRegisteredPlugin[newImplementation] = true;
emit PluginUpgraded(pluginType, identifier, oldImplementation, newImplementation);
}
/**
* @notice Activate plugin
*/
function activatePlugin(
PluginType pluginType,
bytes32 identifier
) external onlyRole(PLUGIN_ADMIN_ROLE) {
Plugin storage plugin = plugins[pluginType][identifier];
require(plugin.implementation != address(0), "Plugin not found");
plugin.active = true;
emit PluginActivated(pluginType, identifier);
}
/**
* @notice Deactivate plugin
*/
function deactivatePlugin(
PluginType pluginType,
bytes32 identifier
) external onlyRole(PLUGIN_ADMIN_ROLE) {
Plugin storage plugin = plugins[pluginType][identifier];
require(plugin.implementation != address(0), "Plugin not found");
plugin.active = false;
emit PluginDeactivated(pluginType, identifier);
}
// View functions
function getPlugin(
PluginType pluginType,
bytes32 identifier
) external view returns (address implementation) {
Plugin memory plugin = plugins[pluginType][identifier];
require(plugin.active, "Plugin not active");
return plugin.implementation;
}
function getPluginInfo(
PluginType pluginType,
bytes32 identifier
) external view returns (Plugin memory) {
return plugins[pluginType][identifier];
}
function getAllPlugins(PluginType pluginType) external view returns (bytes32[] memory) {
return pluginsByType[pluginType];
}
function getPluginCount(PluginType pluginType) external view returns (uint256) {
return pluginCount[pluginType];
}
function isPluginActive(
PluginType pluginType,
bytes32 identifier
) external view returns (bool) {
return plugins[pluginType][identifier].active;
}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,259 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "AccessControlUpgradeable",
"sourceName": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol",
"abi": [
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,34 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "Initializable",
"sourceName": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
"abi": [
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,139 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "UUPSUpgradeable",
"sourceName": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"inputs": [],
"name": "UUPSUnauthorizedCallContext",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "slot",
"type": "bytes32"
}
],
"name": "UUPSUnsupportedProxiableUUID",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"inputs": [],
"name": "UPGRADE_INTERFACE_VERSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,342 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC20Upgradeable",
"sourceName": "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,34 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ContextUpgradeable",
"sourceName": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
"abi": [
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,39 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ReentrancyGuardUpgradeable",
"sourceName": "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol",
"abi": [
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,53 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC165Upgradeable",
"sourceName": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol",
"abi": [
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,236 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "AccessControl",
"sourceName": "@openzeppelin/contracts/access/AccessControl.sol",
"abi": [
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,204 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IAccessControl",
"sourceName": "@openzeppelin/contracts/access/IAccessControl.sol",
"abi": [
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,85 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "Ownable",
"sourceName": "@openzeppelin/contracts/access/Ownable.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,328 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC4906",
"sourceName": "@openzeppelin/contracts/interfaces/IERC4906.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "_fromTokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_toTokenId",
"type": "uint256"
}
],
"name": "BatchMetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "MetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,60 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC5267",
"sourceName": "@openzeppelin/contracts/interfaces/IERC5267.sol",
"abi": [
{
"anonymous": false,
"inputs": [],
"name": "EIP712DomainChanged",
"type": "event"
},
{
"inputs": [],
"name": "eip712Domain",
"outputs": [
{
"internalType": "bytes1",
"name": "fields",
"type": "bytes1"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "version",
"type": "string"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "verifyingContract",
"type": "address"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256[]",
"name": "extensions",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,24 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC1822Proxiable",
"sourceName": "@openzeppelin/contracts/interfaces/draft-IERC1822.sol",
"abi": [
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,113 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC1155Errors",
"sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ERC1155InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC1155InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idsLength",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "valuesLength",
"type": "uint256"
}
],
"name": "ERC1155InvalidArrayLength",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "ERC1155InvalidOperator",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC1155InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC1155InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "ERC1155MissingApprovalForAll",
"type": "error"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,97 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC20Errors",
"sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,114 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC721Errors",
"sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "ERC721IncorrectOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ERC721InsufficientApproval",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC721InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "ERC721InvalidOperator",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "ERC721InvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC721InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC721InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ERC721NonexistentToken",
"type": "error"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,76 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC1967Proxy",
"sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
}
],
"bytecode": "0x60806040526102d38038038061001481610194565b92833981019060408183031261018f5780516001600160a01b03811680820361018f5760208381015190936001600160401b03821161018f570184601f8201121561018f5780519061006d610068836101cf565b610194565b9582875285838301011161018f57849060005b83811061017b57505060009186010152813b15610163577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28351156101455750600080848461012c96519101845af4903d1561013c573d61011c610068826101cf565b908152600081943d92013e6101ea565b505b6040516085908161024e8239f35b606092506101ea565b9250505034610154575061012e565b63b398979f60e01b8152600490fd5b60249060405190634c9c8ce360e01b82526004820152fd5b818101830151888201840152869201610080565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101b957604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101b957601f01601f191660200190565b9061021157508051156101ff57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610244575b610222575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561021a56fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54600090819081906001600160a01b0316368280378136915af43d82803e15604b573d90f35b3d90fdfea26469706673582212206a4b026448cb134b4a6b58a87bec82036df2a76f2d05bc80fe8765d80c24bc2164736f6c63430008160033",
"deployedBytecode": "0x60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54600090819081906001600160a01b0316368280378136915af43d82803e15604b573d90f35b3d90fdfea26469706673582212206a4b026448cb134b4a6b58a87bec82036df2a76f2d05bc80fe8765d80c24bc2164736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,94 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC1967Utils",
"sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "ERC1967InvalidAdmin",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "ERC1967InvalidBeacon",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "BeaconUpgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
}
],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122005955f440b5be71a2131ffb5c8f48783bb258a30328293bf76ab0ff92a9686ea64736f6c63430008160033",
"deployedBytecode": "0x600080fdfea264697066735822122005955f440b5be71a2131ffb5c8f48783bb258a30328293bf76ab0ff92a9686ea64736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,15 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "Proxy",
"sourceName": "@openzeppelin/contracts/proxy/Proxy.sol",
"abi": [
{
"stateMutability": "payable",
"type": "fallback"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,87 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "BeaconProxy",
"sourceName": "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "beacon",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "ERC1967InvalidBeacon",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "BeaconUpgraded",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
}
],
"bytecode": "0x60a06040908082526104a8803803809161001982856102ae565b8339810182828203126101e95761002f826102e7565b60208084015191939091906001600160401b0382116101e9570182601f820112156101e957805190610060826102fb565b9361006d875195866102ae565b8285528383830101116101e957829060005b83811061029a57505060009184010152823b1561027a577fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b038581169182179092558551635c60da1b60e01b8082529194928482600481895afa91821561026f57600092610238575b50813b1561021f5750508551847f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e600080a282511561020057508290600487518096819382525afa9283156101f5576000936101b3575b5091600080848461019096519101845af4903d156101aa573d610174816102fb565b90610181885192836102ae565b8152600081943d92013e610316565b505b6080525161012e908161037a82396080518160180152f35b60609250610316565b92508183813d83116101ee575b6101ca81836102ae565b810103126101e9576000806101e1610190956102e7565b945050610152565b600080fd5b503d6101c0565b85513d6000823e3d90fd5b9350505050346102105750610192565b63b398979f60e01b8152600490fd5b8751634c9c8ce360e01b81529116600482015260249150fd5b9091508481813d8311610268575b61025081836102ae565b810103126101e957610261906102e7565b90386100fb565b503d610246565b88513d6000823e3d90fd5b8351631933b43b60e21b81526001600160a01b0384166004820152602490fd5b81810183015186820184015284920161007f565b601f909101601f19168101906001600160401b038211908210176102d157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101e957565b6001600160401b0381116102d157601f01601f191660200190565b9061033d575080511561032b57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610370575b61034e575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561034656fe60806040819052635c60da1b60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811560a9576000916054575b5060da565b905060203d60201160a3575b601f8101601f191682019167ffffffffffffffff831181841017608d576088926040520160b5565b38604f565b634e487b7160e01b600052604160045260246000fd5b503d6060565b6040513d6000823e3d90fd5b602090607f19011260d5576080516001600160a01b038116810360d55790565b600080fd5b6000808092368280378136915af43d82803e1560f4573d90f35b3d90fdfea2646970667358221220022f3bb92a05e9d23fbafb077cf86afa919df8e4559dd93cf6e930d4e7cd05c664736f6c63430008160033",
"deployedBytecode": "0x60806040819052635c60da1b60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811560a9576000916054575b5060da565b905060203d60201160a3575b601f8101601f191682019167ffffffffffffffff831181841017608d576088926040520160b5565b38604f565b634e487b7160e01b600052604160045260246000fd5b503d6060565b6040513d6000823e3d90fd5b602090607f19011260d5576080516001600160a01b038116810360d55790565b600080fd5b6000808092368280378136915af43d82803e1560f4573d90f35b3d90fdfea2646970667358221220022f3bb92a05e9d23fbafb077cf86afa919df8e4559dd93cf6e930d4e7cd05c664736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,24 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IBeacon",
"sourceName": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol",
"abi": [
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,151 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "UpgradeableBeacon",
"sourceName": "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "implementation_",
"type": "address"
},
{
"internalType": "address",
"name": "initialOwner",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "BeaconInvalidImplementation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
}
],
"name": "upgradeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60803461012057601f6103c438819003918201601f19168301916001600160401b038311848410176101255780849260409485528339810103126101205760206100488261013b565b916001600160a01b0391829161005e910161013b565b1690811561010757600080546001600160a01b0319808216851783556040519295909490929184167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08780a3813b156100f0575016809160015416176001557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b6040519280a261027490816101508239f35b63211eb15960e21b81529082166004820152602490fd5b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101205756fe6080604052600436101561001257600080fd5b6000803560e01c80633659cfe61461018c5780635c60da1b14610163578063715018a6146101095780638da5cb5b146100e25763f2fde38b1461005457600080fd5b346100df5760203660031901126100df576004356001600160a01b03818116918290036100db57610083610212565b81156100c25782546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b604051631e4fbdf760e01b815260048101849052602490fd5b8280fd5b80fd5b50346100df57806003193601126100df57546040516001600160a01b039091168152602090f35b50346100df57806003193601126100df57610122610212565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346100df57806003193601126100df576001546040516001600160a01b039091168152602090f35b50346100df5760203660031901126100df576004356001600160a01b038116908181036100db576101bb610212565b3b156101fa57600180546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b6024906040519063211eb15960e21b82526004820152fd5b6000546001600160a01b0316330361022657565b60405163118cdaa760e01b8152336004820152602490fdfea2646970667358221220f1118b550c4f798f997903e32358e0e4770a4585ef8d5a4752c9afa6605b690564736f6c63430008160033",
"deployedBytecode": "0x6080604052600436101561001257600080fd5b6000803560e01c80633659cfe61461018c5780635c60da1b14610163578063715018a6146101095780638da5cb5b146100e25763f2fde38b1461005457600080fd5b346100df5760203660031901126100df576004356001600160a01b03818116918290036100db57610083610212565b81156100c25782546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b604051631e4fbdf760e01b815260048101849052602490fd5b8280fd5b80fd5b50346100df57806003193601126100df57546040516001600160a01b039091168152602090f35b50346100df57806003193601126100df57610122610212565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346100df57806003193601126100df576001546040516001600160a01b039091168152602090f35b50346100df5760203660031901126100df576004356001600160a01b038116908181036100db576101bb610212565b3b156101fa57600180546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b6024906040519063211eb15960e21b82526004820152fd5b6000546001600160a01b0316330361022657565b60405163118cdaa760e01b8152336004820152602490fdfea2646970667358221220f1118b550c4f798f997903e32358e0e4770a4585ef8d5a4752c9afa6605b690564736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,319 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC20",
"sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,194 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC20",
"sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,350 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC20Burnable",
"sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "burnFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,233 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC20Metadata",
"sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,86 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "IERC20Permit",
"sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
"abi": [
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "permit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

View File

@@ -1,43 +0,0 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "SafeERC20",
"sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "currentAllowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestedDecrease",
"type": "uint256"
}
],
"name": "SafeERC20FailedDecreaseAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "SafeERC20FailedOperation",
"type": "error"
}
],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212208c133190dfc3bb31c9677fc84e9a8b4e643a879c13082009cbc016ba563812bd64736f6c63430008160033",
"deployedBytecode": "0x600080fdfea26469706673582212208c133190dfc3bb31c9677fc84e9a8b4e643a879c13082009cbc016ba563812bd64736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}

View File

@@ -1,4 +0,0 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f28b9c3a99e57d746df74b03e4ef45aa.json"
}

Some files were not shown because too many files have changed in this diff Show More