{"_id":"@amirshirif/auralis","_rev":"2-5131f4db67091cdabf1aedb78b5aa923","name":"@amirshirif/auralis","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.2":{"name":"@amirshirif/auralis","version":"1.0.2","keywords":["solidity","ethereum","foundry","defi","erc4626","erc7540","diamond-standard","smart-contracts"],"license":"MIT","_id":"@amirshirif/auralis@1.0.2","maintainers":[{"name":"amirshirif","email":"amshirif@gmail.com"}],"homepage":"https://github.com/amshirif/Auralis#readme","bugs":{"url":"https://github.com/amshirif/Auralis/issues"},"dist":{"shasum":"938087e0dcd2df0758a3877f3a8736cbd35ff88c","tarball":"https://registry.npmjs.org/@amirshirif/auralis/-/auralis-1.0.2.tgz","fileCount":137,"integrity":"sha512-fTaoLac9sCNowwaZ0nIkgwyj3LxvqfN3wGpqOiy52ezfPCqG8d1e8PbQmKNySHcca57QmbtJRe65Ir/k9Cw5Kw==","signatures":[{"sig":"MEYCIQDP7im5YXX1VpzaIpPDYjceSM3vzirAwEP2oA5MuLZZvgIhANbkFMYL2slxziYJrzendtDhV15YJ4ZIMXPle0FQC2ZJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":637508},"gitHead":"ff1740f71f19ca458f128b0308e64e6f7fb7522e","_npmUser":{"name":"amirshirif","email":"amshirif@gmail.com"},"repository":{"url":"git+https://github.com/amshirif/Auralis.git","type":"git"},"_npmVersion":"11.11.1","description":"Security-first Solidity protocol engineering portfolio contracts and validation artifacts.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/auralis_1.0.2_1777137711766_0.28288930254570244","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@amirshirif/auralis","version":"1.0.3","description":"Security-first Solidity protocol engineering portfolio contracts and validation artifacts.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/amshirif/Auralis.git"},"homepage":"https://github.com/amshirif/Auralis#readme","bugs":{"url":"https://github.com/amshirif/Auralis/issues"},"keywords":["solidity","ethereum","foundry","defi","erc4626","erc7540","diamond-standard","smart-contracts"],"publishConfig":{"access":"public"},"gitHead":"ff1740f71f19ca458f128b0308e64e6f7fb7522e","_id":"@amirshirif/auralis@1.0.3","_nodeVersion":"22.22.1","_npmVersion":"11.11.1","dist":{"integrity":"sha512-lkJBKGCcEC8bJtuSadV7IerXlBI3l2UBl2zgA16uCXEzU5sPF0DDHsr7CrDnmQ8mqFmCYZfT634vkKRpdpwL1A==","shasum":"bbbd19ae7196155a9572fe96fbaa9b6eba9b6c74","tarball":"https://registry.npmjs.org/@amirshirif/auralis/-/auralis-1.0.3.tgz","fileCount":137,"unpackedSize":637508,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCUZhSk9E4g7qWEQsoRG5JhwgrWGlcp2vvqqLObUNBoeAIgHbdL2BTENoE4rTk9fzwPY+VOINPQbNnGj/oTf5k/V9U="}]},"_npmUser":{"name":"amirshirif","email":"amshirif@gmail.com"},"directories":{},"maintainers":[{"name":"amirshirif","email":"amshirif@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/auralis_1.0.3_1777137992057_0.6377484345413247"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-25T17:21:51.572Z","modified":"2026-04-25T17:26:32.287Z","1.0.2":"2026-04-25T17:21:51.907Z","1.0.3":"2026-04-25T17:26:32.195Z"},"bugs":{"url":"https://github.com/amshirif/Auralis/issues"},"license":"MIT","homepage":"https://github.com/amshirif/Auralis#readme","keywords":["solidity","ethereum","foundry","defi","erc4626","erc7540","diamond-standard","smart-contracts"],"repository":{"type":"git","url":"git+https://github.com/amshirif/Auralis.git"},"description":"Security-first Solidity protocol engineering portfolio contracts and validation artifacts.","maintainers":[{"name":"amirshirif","email":"amshirif@gmail.com"}],"readme":"<div align=\"center\">\n  <img src=\"docs/assets/auralis-logo.png\" alt=\"Auralis logo\" width=\"286\" />\n\n  <h1 style=\"margin-top: -24px;\">Auralis</h1>\n\n  <p>\n    <img src=\"https://img.shields.io/badge/Solidity-0.8.34-363636?logo=solidity\" alt=\"Solidity 0.8.34\" />\n    <a href=\"https://github.com/amshirif/Auralis/actions/workflows/ci.yml\"><img src=\"https://github.com/amshirif/Auralis/actions/workflows/ci.yml/badge.svg\" alt=\"Foundry CI\" /></a>\n    <a href=\"https://github.com/amshirif/Auralis/actions/workflows/slither.yml\"><img src=\"https://github.com/amshirif/Auralis/actions/workflows/slither.yml/badge.svg\" alt=\"Slither\" /></a>\n    <a href=\"https://github.com/amshirif/Auralis/actions/workflows/system-hardening.yml\"><img src=\"https://github.com/amshirif/Auralis/actions/workflows/system-hardening.yml/badge.svg\" alt=\"System Hardening\" /></a>\n    <img src=\"https://img.shields.io/github/license/amshirif/Auralis\" alt=\"License\" />\n  </p>\n\n  <p><strong>Security-first Solidity systems.</strong></p>\n\n  <p>\n    Auralis is not a production deployment; it is a public portfolio and review\n    artifact for Solidity protocol-engineering work.\n  </p>\n</div>\n\n`Auralis` is a protocol-engineering portfolio repository focused on\nsecurity-first, upgrade-aware Solidity systems. It combines modular contract\ndesign, deployment-backed validation, local operator flows, hardening\ncoverage, and standalone smart-wallet execution so a reviewer can assess\narchitecture and evidence together rather than as isolated snippets.\n\n## Why This Repo Exists\n\nThis repo is meant to demonstrate more than isolated contract snippets. It\nshows how access control, guard rails, oracle safety, vault logic, diamond\nrouting, deployment scripts, rehearsal flows, and CI checks fit together as a\nreviewable engineering system.\n\n## Review In 5 Minutes\n\n- Architecture decisions: `docs/adr/README.md`\n- Canonical docs map: `docs/README.md`\n- AMM architecture: `docs/amm.md`\n- Hosted vault architecture: `docs/vault-facets.md`\n- Async vault requests: `docs/erc7540-vault.md`\n- Smart-wallet architecture: `docs/multisig-wallet.md`\n- Security assumptions: `docs/threat-model.md`\n- Validation and CI policy: `docs/security-checks.md`\n- Local workflow and deployment artifacts: `docs/auralis-local.md`\n\n## What This Repo Proves\n\n- Core architecture: diamond routing, selector ownership discipline, and\n  separate hosted token and vault deployment models plus standalone AMM and\n  smart-wallet tracks.\n- Safety posture: RBAC, timed permissions, pause semantics, reentrancy\n  protection, oracle validation, upgrade guardrails, and threshold-based wallet\n  execution.\n- Token hosts: ERC20 and ERC721 diamond deployments with role, pause, Permit,\n  metadata, and selector ownership coverage.\n- Vault platform: hosted ERC-4626 vaults with controls, strategy integration,\n  native-asset support, and an ERC-7540 async request track for ERC-20 hosts.\n- AMM track: standalone V2-style AMM with deterministic pair deployment,\n  wrapped-native routing, pricing math, and protocol-fee controls.\n- Wallet track: standalone multisig wallet with single-call, batch, and\n  self-managed configuration flows.\n- Operational maturity: local bootstrap, smoke validation, activity flows,\n  upgrade rehearsal, and matching CI/hardening gates.\n\n## Evidence\n\n### Architecture And Design\n\n- `docs/adr/README.md`: accepted architecture decisions and why the repo is\n  shaped this way.\n- `docs/diamond-core.md`: diamond routing, cut flow, selector ownership, and\n  storage discipline.\n- `docs/vault-facets.md`: hosted vault family, facet split, lifecycle, and\n  deployment model.\n- `docs/erc7540-vault.md`: async request lifecycle, settlement surface,\n  controller/operator semantics, and reviewer entrypoints.\n- `docs/amm.md`: standalone AMM deployment model, pair/router behavior, math,\n  and reviewer path.\n- `docs/multisig-wallet.md`: wallet deployment model, signature semantics,\n  replay protection, and self-managed configuration surface.\n- `docs/threat-model.md`: trust boundaries, threat assumptions, and residual\n  risks.\n\n### Validation\n\n- `test/DiamondSelectorIntegrityCore.t.sol`: selector routing and loupe\n  integrity regressions.\n- `test/DiamondVaultDeploymentIntegration.t.sol`: hosted vault deployment,\n  init, async selector ownership, settlement surface, and oracle wiring.\n- `test/DiamondVaultHostHardening.t.sol`: replace/remove/re-add hardening\n  across the hosted vault diamond path.\n- `test/DiamondVaultHostInvariant.t.sol`: diamond-routed hosted vault\n  invariants across deposits, withdrawals, strategy lifecycle, roles, and\n  pause state.\n- `test/DiamondNativeVaultHostHardening.t.sol`: native hosted vault\n  force-sent ETH, strategy, selector replacement, and persistence hardening.\n- `test/DiamondNativeVaultHostInvariant.t.sol`: native hosted vault invariants\n  for managed accounting, immediate liquidity, limits, strategy debt, and\n  force-sent surplus.\n- `test/ERC7540VaultFoundationCore.t.sol`: aggregate request model, selector\n  split, and operator bookkeeping coverage.\n- `test/ERC7540VaultDepositCore.t.sol`: async deposit request, settlement, and\n  claim coverage.\n- `test/ERC7540VaultRedeemCore.t.sol`: async redeem request, settlement, and\n  claim coverage.\n- `test/ERC7540VaultDepositFuzz.t.sol` and\n  `test/ERC7540VaultRedeemFuzz.t.sol`: async request property coverage for\n  deposit and redeem flows.\n- `test/ERC7540VaultRequestAccountingInvariant.t.sol`: async request\n  accounting invariants across pending, claimable, escrowed, and managed\n  buckets.\n- `test/ERC7540VaultRequestTime.t.sol`: async controller/operator and\n  settlement-scope time-window coverage.\n- `test/DiamondTokenDeploymentIntegration.t.sol`: ERC20 and ERC721 host\n  deployment and selector ownership.\n- `test/DiamondTokenHostHardening.t.sol`: token-host replace/remove/re-add,\n  role, pause, Permit, and metadata persistence coverage.\n- `test/DiamondErc20HostInvariant.t.sol` and\n  `test/DiamondErc721HostInvariant.t.sol`: diamond-routed token-host\n  invariants for ERC20 and ERC721 behavior.\n- `test/AMMFactoryRegistry.t.sol`: AMM factory registry behavior, sorted pair\n  lookups, and deterministic pair address coverage.\n- `test/AMMPairCore.t.sol`: pair mint/burn/swap accounting, fee switch, and\n  reserve update behavior.\n- `test/AMMRouterCore.t.sol`: router quoting, liquidity, wrapped-native, and\n  single-hop/multi-hop swap coverage.\n- `test/AMMRouterTime.t.sol`: cumulative price and reserve timestamp coverage.\n- `test/AMMPairFuzz.t.sol` and `test/AMMRouterFuzz.t.sol`: pair and router\n  property coverage.\n- `test/AMMInvariant.t.sol`: AMM reserve, balance, LP, and factory invariants.\n- `test/AMMHardening.t.sol`: malformed token, false/silent transfer,\n  reentrancy, protocol-fee, and router balance hardening coverage.\n- `test/SystemOracleFailureScenarios.t.sol`: stale-data, breaker, fallback, and\n  recovery behavior.\n- `test/SystemVaultStressInvariant.t.sol`: higher-signal system stress coverage\n  for vault behavior under adversarial sequences.\n- `test/MultisigWalletFoundationCore.t.sol`: initializer, owner-set, and clone\n  foundation checks.\n- `test/MultisigWalletCoreExecution.t.sol`: EIP-712 signing, nonce, ERC-1271,\n  and single-call execution behavior.\n- `test/MultisigWalletIntegration.t.sol`: batch execution and deterministic\n  factory deployment coverage.\n- `test/MultisigWalletManagement.t.sol`: self-managed owner and threshold\n  mutation coverage.\n- `test/MultisigWalletFuzz.t.sol`: signature, signer-ordering, batch, and\n  management fuzz coverage.\n- `test/MultisigWalletInvariant.t.sol`: owner uniqueness, threshold bounds, and\n  nonce progression invariants.\n\n### Deployment And Operator Evidence\n\n- `docs/security-checks.md`: current CI policy and local reproduction path.\n- `docs/ops/README.md`: operator runbooks and validation flows.\n- `docs/auralis-local.md`: local bootstrap, smoke, activity, reset, and\n  artifact layout.\n\n## Validation Path\n\nFoundry uses the Solidity compiler pinned in `foundry.toml` and will fetch that\ncompiler version on first build if it is not already installed locally.\n\nRun the full local validation path with:\n\n```shell\nforge fmt --check\nforge build --sizes --skip script\nforge test --offline\n```\n\nFor focused reviewer-facing validation, use the curated groups below. The fuller\nlocal command inventory lives in `docs/security-checks.md`.\n\nFor hosted diamond and vault behavior:\n\n```shell\nforge test --offline --match-path test/DiamondSelectorIntegrityCore.t.sol\nforge test --offline --match-path test/DiamondVaultDeploymentIntegration.t.sol\nforge test --offline --match-path test/DiamondVaultHostHardening.t.sol\nforge test --offline --match-path test/DiamondVaultHostInvariant.t.sol\nforge test --offline --match-path test/DiamondNativeVaultHostHardening.t.sol\nforge test --offline --match-path test/DiamondNativeVaultHostInvariant.t.sol\nforge test --offline --match-path test/ERC7540VaultFoundationCore.t.sol\nforge test --offline --match-path test/ERC7540VaultDepositCore.t.sol\nforge test --offline --match-path test/ERC7540VaultRedeemCore.t.sol\nforge test --offline --match-path test/ERC7540VaultDepositFuzz.t.sol\nforge test --offline --match-path test/ERC7540VaultRedeemFuzz.t.sol\nforge test --offline --match-path test/ERC7540VaultRequestAccountingInvariant.t.sol\nforge test --offline --match-path test/ERC7540VaultRequestTime.t.sol\nforge test --offline --match-path test/SystemOracleFailureScenarios.t.sol\nforge test --offline --match-path test/SystemVaultStressInvariant.t.sol\n```\n\nFor the token-host track:\n\n```shell\nforge test --offline --match-path test/DiamondTokenDeploymentIntegration.t.sol\nforge test --offline --match-path test/DiamondTokenHostHardening.t.sol\nforge test --offline --match-path test/DiamondErc20HostInvariant.t.sol\nforge test --offline --match-path test/DiamondErc721HostInvariant.t.sol\n```\n\nFor the wallet track:\n\n```shell\nforge test --offline --match-path test/MultisigWalletFoundationCore.t.sol\nforge test --offline --match-path test/MultisigWalletCoreExecution.t.sol\nforge test --offline --match-path test/MultisigWalletIntegration.t.sol\nforge test --offline --match-path test/MultisigWalletManagement.t.sol\nforge test --offline --match-path test/MultisigWalletFuzz.t.sol\nforge test --offline --match-path test/MultisigWalletInvariant.t.sol\n```\n\nFor the AMM track:\n\n```shell\nforge test --offline --match-path test/AMMFoundationCore.t.sol\nforge test --offline --match-path test/AMMFactoryRegistry.t.sol\nforge test --offline --match-path test/AMMPairCore.t.sol\nforge test --offline --match-path test/AMMRouterCore.t.sol\nforge test --offline --match-path test/AMMRouterTime.t.sol\nforge test --offline --match-path test/AMMPairFuzz.t.sol\nforge test --offline --match-path test/AMMRouterFuzz.t.sol\nFOUNDRY_INVARIANT_RUNS=64 FOUNDRY_INVARIANT_DEPTH=32 forge test --offline --match-path test/AMMInvariant.t.sol\nforge test --offline --match-path test/AMMHardening.t.sol\n```\n\nFor the local Auralis workflow:\n\n```shell\nbash scripts/auralis-up.sh\nbash scripts/auralis-smoke.sh\nbash scripts/auralis-reset.sh\n```\n\n## Documentation\n\nStart with `docs/README.md` for the canonical docs map.\n\nRecommended reviewer path:\n\n- Architecture decisions: `docs/adr/README.md`\n- Core architecture: `docs/diamond-core.md`, `docs/token-facets.md`,\n  `docs/vault-facets.md`, `docs/erc7540-vault.md`, `docs/amm.md`,\n  `docs/multisig-wallet.md`, `docs/oracle-adapter.md`\n- Security and validation: `docs/threat-model.md`, `docs/security-checks.md`\n- Operations and local workflow: `docs/ops/README.md`, `docs/auralis-local.md`\n\n## Tooling\n\nBuilt with Foundry. CI workflows live under `.github/workflows/`.\n\nFoundry docs: [book.getfoundry.sh](https://book.getfoundry.sh/)\n\n## Public Metadata\n\nThis is a personal portfolio repository. Contribution, security, changelog, and\nGitHub template guidance are provided for public review, while community\noperations files such as `CODE_OF_CONDUCT.md`, `SUPPORT.md`, and `FUNDING.yml`\nare intentionally omitted.\n\n## Provenance And AI Assistance\n\nAuralis incorporates and refines selected patterns, utilities, and implementation\nideas from earlier private portfolio projects.\n\nThe protocol architecture, implementation code, technical decisions, curation of\nprior work, and final review/integration of changes were directed and owned by\nme.\n\nAI assistance was used for tests, documentation, scripts, and planning support.\n","readmeFilename":"README.md"}