@agenticprimitives/contracts 1.0.0-alpha.6 → 1.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUDIT.md +21 -1
- package/README.md +36 -12
- package/deployments-base-sepolia.json +32 -1
- package/deployments-registries-base-sepolia.json +1 -0
- package/dist/abi/AgentAccount.json +23 -0
- package/dist/abi/AgentAccountFactory.json +5 -0
- package/dist/abi/AgentNameRegistry.json +5 -0
- package/dist/abi/AgenticGovernance.json +32 -0
- package/dist/abi/AgreementRegistry.json +0 -5
- package/dist/abi/CustodyPolicy.json +11 -0
- package/dist/abi/QuorumEnforcer.json +16 -0
- package/dist/abi/SmartAgentPaymaster.json +209 -0
- package/dist/deployments/base-sepolia.js +28 -28
- package/dist/deployments/index.d.ts +2 -1
- package/dist/deployments/index.js +3 -0
- package/dist/deployments/registries-base-sepolia.d.ts +9 -0
- package/dist/deployments/registries-base-sepolia.js +7 -0
- package/package.json +3 -1
- package/src/AgentAccount.sol +61 -2
- package/src/AgentAccountFactory.sol +32 -7
- package/src/SmartAgentPaymaster.sol +149 -12
- package/src/agency/DelegationManager.sol +17 -2
- package/src/agency/IDelegationManager.sol +3 -0
- package/src/agreement/AgreementRegistry.sol +46 -21
- package/src/attestation/AttestationRegistry.sol +86 -22
- package/src/custody/CustodyPolicy.sol +59 -6
- package/src/enforcers/QuorumEnforcer.sol +12 -0
- package/src/governance/AgenticGovernance.sol +26 -4
- package/src/libraries/SignatureSlotRecovery.sol +8 -3
- package/src/libraries/WebAuthnLib.sol +13 -0
- package/src/naming/AgentNameRegistry.sol +27 -2
package/AUDIT.md
CHANGED
|
@@ -239,7 +239,27 @@ The `dist/deployments/` subpath (R7.3) exposes per-network contract addresses to
|
|
|
239
239
|
|
|
240
240
|
## 7. Known findings (cross-reference)
|
|
241
241
|
|
|
242
|
-
|
|
242
|
+
Canonical cross-cutting status: [`docs/audits/findings.yaml`](../../docs/audits/findings.yaml) (CI-enforced).
|
|
243
|
+
Historical detail: [`docs/audits/archive/2026-05/2026-05-packages-contracts-production-readiness.md`](../../docs/audits/archive/2026-05/2026-05-packages-contracts-production-readiness.md) § 3–4.
|
|
244
|
+
|
|
245
|
+
**Closed (2026-06-09 independent contracts audit — SC-1..SC-5):**
|
|
246
|
+
|
|
247
|
+
- **SC-1** (critical) — agreement issuer signature now bound to contents: `AgreementRegistry.register()` recomputes the digest over `agreementCommitment, schemaHash, issuer, chainId, address(this)` (`AGREEMENT_ISSUER_TYPEHASH`).
|
|
248
|
+
- **SC-2** (high) — attestation subject-spoofing closed: `assertAssociation()` binds `subject, issuer, schemaId, credentialType, credentialHash, chainId, address(this)` (`ASSOCIATION_ATTESTATION_TYPEHASH`); joint path requires both party co-signatures.
|
|
249
|
+
- **SC-3** (medium) — `DelegationManager.verifyAuthorizationForCall()` returns `(false,"no-code-enforcer")` instead of failing open on a no-code enforcer.
|
|
250
|
+
- **SC-4** (medium) — `.impact` TLD root handed to `roles.namingRootOwner` (governance) at deploy, with a post-deploy assertion.
|
|
251
|
+
- **SC-5** (medium) — paymaster deploy `require`-rejects deployer-as-governance/owner in production mode.
|
|
252
|
+
|
|
253
|
+
**Open — contract deep audit 2026-06-10** (full detail: [`docs/audits/2026-06-10-contract-by-contract-audit.md`](../../docs/audits/2026-06-10-contract-by-contract-audit.md); status in `findings.yaml`):
|
|
254
|
+
|
|
255
|
+
| Finding | Severity | One-line |
|
|
256
|
+
|---|---|---|
|
|
257
|
+
| **CA-F1** | High | Factory counterfactual address omits mode/trustees/timelocks → pre-deploy custody hijack of the canonical identity. **Mainnet blocker.** |
|
|
258
|
+
| **CP-1** | High | Custody tier thresholds default to 1-of-n → one custodian key can rotate the set / upgrade impl. **Mainnet blocker.** |
|
|
259
|
+
| **AN-1-ONCHAIN** | High | On-chain name registry enforces no label normalization (the SDK fix is bypassable by direct callers). |
|
|
260
|
+
| **SUB-1 / SUB-2** | High | Subregistry name front-running (no commit-reveal) + sybil/homoglyph mass-squatting. |
|
|
261
|
+
| **ATT-1** | High | `assertJointAgreement` issuer signature over a bare `credentialHash` (the SC-2 bug class, issuer side). |
|
|
262
|
+
| **AGR-1, ATT-2, CA-1, CA-2, CP-2, DM-1/2, EN-11/13/22, PM-1/2, GOV-1, WA-1/2, AN-2, RES-1, ONT-4/7** | Medium | See the report + `findings.yaml`. |
|
|
243
263
|
|
|
244
264
|
**Open at 2026-06-01:**
|
|
245
265
|
|
package/README.md
CHANGED
|
@@ -1,26 +1,35 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @agenticprimitives/contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Contracts and SDK are one artifact.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
This is the on-chain enforcement layer of the agenticprimitives substrate — 42 Solidity sources, all present and audited under `src/`, none of them stubs. ERC-4337 v0.7 Smart Agent core, ERC-7710-style delegation manager with caveat enforcers, an ERC-7579 modular CustodyPolicy, a three-mode paymaster, `.agent` TLD naming with hierarchical subregistries, ontology and profile resolvers, identity facets, and an ERC-6492-aware UniversalSignatureValidator. The package publishes ABI subpaths, per-network deployment JSON, flattened sources, and the Solidity itself — so a TypeScript consumer pulls addresses and ABIs from the same artifact the auditors read.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
"One artifact" is CI-enforced, not aspirational: TypeScript typehashes are locked to the Solidity constants (`pnpm check:eip712-typehash-equality`), ABIs are sync-gated, and storage layouts are snapshot-gated (`pnpm check:storage-layouts`). You cannot drift the client from the chain.
|
|
8
|
+
|
|
9
|
+
> Part of [agenticprimitives](../../README.md) — the trust substrate for the agent economy: one canonical Smart Agent identity with custody, delegation, naming, credentials, and audit evidence designed as one system.
|
|
10
|
+
|
|
11
|
+
## What's in `src/`
|
|
12
|
+
|
|
13
|
+
- `AgentAccount.sol` — UUPSUpgradeable + ERC-7579 + ERC-1271 + WebAuthn-supporting Smart Agent; a thin modular core where custody, threshold, and session machinery are modules, not inlined features
|
|
9
14
|
- `AgentAccountFactory.sol` — CREATE2 deterministic deploys; salt from auth methods + scope (NEVER from a name)
|
|
10
15
|
- `SmartAgentPaymaster.sol` — verifying-paymaster + allowlist + devMode (testnet only) modes
|
|
11
|
-
- `agency/DelegationManager.sol` + `enforcers/{AllowedMethods,AllowedTargets,Timestamp,Value,Quorum}Enforcer.sol`
|
|
16
|
+
- `agency/DelegationManager.sol` + `enforcers/{AllowedMethods,AllowedTargets,Timestamp,Value,Quorum,CallDataHash}Enforcer.sol` — scoped delegation with on-chain caveat enforcement
|
|
12
17
|
- `custody/CustodyPolicy.sol` — 16-action ERC-7579 module, T4/T5/T6 quorum tiers + 24h default T5 timelock
|
|
13
18
|
- `naming/{AgentNameRegistry,AgentNameUniversalResolver,AgentNameAttributeResolver,PermissionlessSubregistry}.sol`
|
|
14
19
|
- `identity/AgentProfileResolver.sol` + `ontology/{OntologyTermRegistry,ShapeRegistry,AttributeStorage}.sol`
|
|
15
|
-
- `relationships/{AgentRelationship,RelationshipTypeRegistry}.sol` (⚠ Privacy Fork — see AUDIT.md § 3.9)
|
|
20
|
+
- `relationships/{AgentRelationship,RelationshipTypeRegistry}.sol` (⚠ Privacy Fork — experimental surface; see AUDIT.md § 3.9)
|
|
16
21
|
- `governance/{AgenticGovernance,GovernanceManaged}.sol` — system pause + governance base
|
|
17
|
-
- `libraries/{WebAuthnLib,P256Verifier,SignatureSlotRecovery,MultiSendCallOnly}.sol`
|
|
22
|
+
- `libraries/{WebAuthnLib,P256Verifier,SignatureSlotRecovery,MultiSendCallOnly}.sol` — security-critical primitives
|
|
18
23
|
- `UniversalSignatureValidator.sol` — single signature entrypoint (ERC-6492 + ERC-1271 + raw ECDSA fanout per spec 214 SB-4)
|
|
19
24
|
- `ApprovedHashRegistry.sol` — v=1 pre-approved hash signature path
|
|
20
25
|
|
|
21
|
-
|
|
26
|
+
Behind it: 774 Foundry tests including invariant suites, plus Halmos symbolic proofs, Echidna and Medusa fuzzing campaigns, and PR-blocking static analysis (Slither, Aderyn, CodeQL, Solhint).
|
|
22
27
|
|
|
23
|
-
|
|
28
|
+
Deployed addresses (Base Sepolia testnet): [`deployments-base-sepolia.json`](./deployments-base-sepolia.json) — committed, public, and surfaced to TypeScript consumers via the generated `@agenticprimitives/contracts/deployments/base-sepolia` subpath.
|
|
29
|
+
|
|
30
|
+
## How it's different
|
|
31
|
+
|
|
32
|
+
Compared to Safe, ZeroDev, or Alchemy's contract stacks, the difference is scope and coupling. Those projects ship an account (and ship it well); the rest of the trust chain — who the account is, what it may delegate, how custody recovers it — is left to integrations with other vendors' contracts. Here the account, delegation manager, caveat enforcers, custody module, naming registry, and signature validator are designed and audited as one system, sharing one identity anchor. There is no third-party multi-sig dependency: custody quorums are our own ERC-7579 module, with Safe-style signature packing ported as a pattern rather than inherited as a runtime dependency. And the consumption model is different — most contract suites hand you addresses and a block explorer link; this package hands you versioned ABIs, deployments, and flattened sources as npm subpaths, CI-locked to the TypeScript SDK that consumes them.
|
|
24
33
|
|
|
25
34
|
## Setup
|
|
26
35
|
|
|
@@ -43,7 +52,7 @@ anvil
|
|
|
43
52
|
pnpm deploy:anvil
|
|
44
53
|
```
|
|
45
54
|
|
|
46
|
-
Writes deployed addresses to `deployments-anvil.json`. The
|
|
55
|
+
Writes deployed addresses to `deployments-anvil.json`. The demo apps (`apps/demo-web`, `apps/demo-a2a`, `apps/demo-mcp`) read this file on startup.
|
|
47
56
|
|
|
48
57
|
## Deploy to Base Sepolia
|
|
49
58
|
|
|
@@ -53,4 +62,19 @@ export PRIVATE_KEY=0x... # funded deployer
|
|
|
53
62
|
pnpm deploy:base-sepolia
|
|
54
63
|
```
|
|
55
64
|
|
|
56
|
-
Writes to `deployments-base-sepolia.json`.
|
|
65
|
+
Writes to `deployments-base-sepolia.json`. CI and hosted deploys read this. Demo idle cost: ~$0.
|
|
66
|
+
|
|
67
|
+
## Audit posture
|
|
68
|
+
|
|
69
|
+
Trust infrastructure should be the most transparent code you depend on, so the audit trail is public by default:
|
|
70
|
+
|
|
71
|
+
- [`AUDIT.md`](./AUDIT.md) — the security and invariant dossier for every contract under `src/`, including the production key-rotation runbook (§ 4.1).
|
|
72
|
+
- [`docs/audits/findings.yaml`](../../docs/audits/findings.yaml) — the live, CI-gated findings ledger; a "closed" finding must anchor to real source or the build fails.
|
|
73
|
+
- [`docs/audits/2026-05-packages-contracts-production-readiness.md`](../../docs/audits/2026-05-packages-contracts-production-readiness.md) — the per-contract findings dossier.
|
|
74
|
+
- [`CLAUDE.md`](./CLAUDE.md) — architecture rationale and per-file roles.
|
|
75
|
+
|
|
76
|
+
## Status
|
|
77
|
+
|
|
78
|
+
Testnet/pilot-ready. Production launch is gated on the public checklist in the root README — including third-party contract audit and governance key rotation. Track every security finding live in [`docs/audits/findings.yaml`](../../docs/audits/findings.yaml).
|
|
79
|
+
|
|
80
|
+
**Production deployment is deliberately deferred:** the testnet uses a publicly disclosed deployer EOA on purpose (it keeps the demo reproducible). The production rotation runbook is [`AUDIT.md` § 4.1](./AUDIT.md#41-the-production-gate-open-audit-item-n1).
|
|
@@ -1 +1,32 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"agentAccountFactory": "0x3E68B72B45e7C9d35B210E4Ab06e5Cece85cEbE4",
|
|
3
|
+
"agentAccountImplementation": "0x338318ABf9C8b28E7e77ed96a91857cCE1Db1328",
|
|
4
|
+
"agentNameRegistry": "0x15F7ed064A230C011b0244A14fD9653f011d609B",
|
|
5
|
+
"agentNameResolver": "0xcC9855A23C7a4D4592E68Fe47E195C2f9D832473",
|
|
6
|
+
"agentNameUniversalResolver": "0x7d777d2d0bbc1806B9Cc779121C27fbaAaFDb60b",
|
|
7
|
+
"agentProfileResolver": "0xc448EB159B2a35F07f6E1814CC8d125244d7384B",
|
|
8
|
+
"agentRelationship": "0xE6B8F6C7F1c9857013dA356DF08D0384334A9607",
|
|
9
|
+
"agreementRegistry": "0x7f4d6A74eda1D6ce251D371566f1c6639F9B0DDa",
|
|
10
|
+
"allowedMethodsEnforcer": "0xf77cf06aCd8b9e2f3204fe4bE16449B3594c9633",
|
|
11
|
+
"allowedTargetsEnforcer": "0xe3909FdEfD8b74B7D006E045DCd678e97D469Bfd",
|
|
12
|
+
"approvedHashRegistry": "0x90735B5281434D1746926E2AA722Cc6DbF3EFEe6",
|
|
13
|
+
"attestationRegistry": "0xaE3861fd299c74D96F6FCA25f19c7ACf8b9020ed",
|
|
14
|
+
"callDataHashEnforcer": "0x9F12932F1b85A1F96c1Cb1c5A0645e3F0Ab478Dd",
|
|
15
|
+
"chainId": 84532,
|
|
16
|
+
"custodyPolicy": "0xDeD6542A55476745846370562d1c75D15DDf2572",
|
|
17
|
+
"delegationManager": "0x3a8E2cE74564f699b135db6f266ccDb563979C05",
|
|
18
|
+
"deployer": "0x31ed17fb99e82E02085Ab4B3cbdaB05489098b44",
|
|
19
|
+
"entryPoint": "0x9B33De9d9597de82Eb56b5B26C478Dc0a6955388",
|
|
20
|
+
"geoFeatureRegistry": "0x78FdCae0aC9B0CD9943996282b8F39D77bec5b1c",
|
|
21
|
+
"ontologyTermRegistry": "0xf486Ba6e9FD2d687e68a1a7A77D0FA27bb1E66c3",
|
|
22
|
+
"permissionlessSubregistry": "0x1B8ED8693738e1A9DD653FEE5430d49e00202Bb7",
|
|
23
|
+
"permissionlessSubregistryDemoAgent": "0xc76b1cdB4340398f59fD9C5d6Cb65fCdC606B33b",
|
|
24
|
+
"quorumEnforcer": "0x76fb494aE991d1fe1603a91384BA4c1F890442a8",
|
|
25
|
+
"relationshipTypeRegistry": "0x526fBF5900b18B1D06201493bcE470b416FB71C3",
|
|
26
|
+
"shapeRegistry": "0x03AbD67A910abB2c5026f1973A05502e0473e316",
|
|
27
|
+
"skillDefinitionRegistry": "0x5ae94aba46D7daA1Ca9eaE0051043Ad05bcc392B",
|
|
28
|
+
"smartAgentPaymaster": "0x8eF92B9D62826052D8F7e6dcaB630dC3890bF540",
|
|
29
|
+
"timestampEnforcer": "0x7c452434314A5bf2048f9263aeCd0cC20Fa07965",
|
|
30
|
+
"universalSignatureValidator": "0xe8F3e531429F44D77dC3A331C18032bfa1550D84",
|
|
31
|
+
"valueEnforcer": "0x7c4533e0A9fB0B1cb5aa70327b222a80d72d52db"
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"agreementRegistry":"0x9f2A085f0bd2d8Afb69490C0C98D88592093906A","attestationRegistry":"0x4a156CAaE69E894E3C5e6F3064fE028F138b6847"}
|
|
@@ -737,6 +737,19 @@
|
|
|
737
737
|
"outputs": [],
|
|
738
738
|
"stateMutability": "nonpayable"
|
|
739
739
|
},
|
|
740
|
+
{
|
|
741
|
+
"type": "function",
|
|
742
|
+
"name": "scheduleUpgrade",
|
|
743
|
+
"inputs": [
|
|
744
|
+
{
|
|
745
|
+
"name": "newImplementation",
|
|
746
|
+
"type": "address",
|
|
747
|
+
"internalType": "address"
|
|
748
|
+
}
|
|
749
|
+
],
|
|
750
|
+
"outputs": [],
|
|
751
|
+
"stateMutability": "nonpayable"
|
|
752
|
+
},
|
|
740
753
|
{
|
|
741
754
|
"type": "function",
|
|
742
755
|
"name": "sessionIssuer",
|
|
@@ -1297,6 +1310,11 @@
|
|
|
1297
1310
|
}
|
|
1298
1311
|
]
|
|
1299
1312
|
},
|
|
1313
|
+
{
|
|
1314
|
+
"type": "error",
|
|
1315
|
+
"name": "DirectUpgradeBlocked",
|
|
1316
|
+
"inputs": []
|
|
1317
|
+
},
|
|
1300
1318
|
{
|
|
1301
1319
|
"type": "error",
|
|
1302
1320
|
"name": "ERC1967InvalidImplementation",
|
|
@@ -1618,6 +1636,11 @@
|
|
|
1618
1636
|
"name": "UpgradePending",
|
|
1619
1637
|
"inputs": []
|
|
1620
1638
|
},
|
|
1639
|
+
{
|
|
1640
|
+
"type": "error",
|
|
1641
|
+
"name": "UpgradeTimelockNotSet",
|
|
1642
|
+
"inputs": []
|
|
1643
|
+
},
|
|
1621
1644
|
{
|
|
1622
1645
|
"type": "error",
|
|
1623
1646
|
"name": "UpgradeTimelockTooLong",
|
|
@@ -105,6 +105,19 @@
|
|
|
105
105
|
"outputs": [],
|
|
106
106
|
"stateMutability": "nonpayable"
|
|
107
107
|
},
|
|
108
|
+
{
|
|
109
|
+
"type": "function",
|
|
110
|
+
"name": "setGuardian",
|
|
111
|
+
"inputs": [
|
|
112
|
+
{
|
|
113
|
+
"name": "newGuardian",
|
|
114
|
+
"type": "address",
|
|
115
|
+
"internalType": "address"
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"outputs": [],
|
|
119
|
+
"stateMutability": "nonpayable"
|
|
120
|
+
},
|
|
108
121
|
{
|
|
109
122
|
"type": "function",
|
|
110
123
|
"name": "setSigner",
|
|
@@ -168,6 +181,25 @@
|
|
|
168
181
|
],
|
|
169
182
|
"anonymous": false
|
|
170
183
|
},
|
|
184
|
+
{
|
|
185
|
+
"type": "event",
|
|
186
|
+
"name": "GuardianRotated",
|
|
187
|
+
"inputs": [
|
|
188
|
+
{
|
|
189
|
+
"name": "oldGuardian",
|
|
190
|
+
"type": "address",
|
|
191
|
+
"indexed": true,
|
|
192
|
+
"internalType": "address"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "newGuardian",
|
|
196
|
+
"type": "address",
|
|
197
|
+
"indexed": true,
|
|
198
|
+
"internalType": "address"
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
"anonymous": false
|
|
202
|
+
},
|
|
171
203
|
{
|
|
172
204
|
"type": "event",
|
|
173
205
|
"name": "Paused",
|
|
@@ -1103,6 +1103,17 @@
|
|
|
1103
1103
|
}
|
|
1104
1104
|
]
|
|
1105
1105
|
},
|
|
1106
|
+
{
|
|
1107
|
+
"type": "error",
|
|
1108
|
+
"name": "UnconfiguredTier",
|
|
1109
|
+
"inputs": [
|
|
1110
|
+
{
|
|
1111
|
+
"name": "tier",
|
|
1112
|
+
"type": "uint8",
|
|
1113
|
+
"internalType": "uint8"
|
|
1114
|
+
}
|
|
1115
|
+
]
|
|
1116
|
+
},
|
|
1106
1117
|
{
|
|
1107
1118
|
"type": "error",
|
|
1108
1119
|
"name": "ZeroAddress",
|
|
@@ -212,6 +212,22 @@
|
|
|
212
212
|
}
|
|
213
213
|
]
|
|
214
214
|
},
|
|
215
|
+
{
|
|
216
|
+
"type": "error",
|
|
217
|
+
"name": "InvalidThreshold",
|
|
218
|
+
"inputs": [
|
|
219
|
+
{
|
|
220
|
+
"name": "threshold",
|
|
221
|
+
"type": "uint8",
|
|
222
|
+
"internalType": "uint8"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"name": "signerSetSize",
|
|
226
|
+
"type": "uint256",
|
|
227
|
+
"internalType": "uint256"
|
|
228
|
+
}
|
|
229
|
+
]
|
|
230
|
+
},
|
|
215
231
|
{
|
|
216
232
|
"type": "error",
|
|
217
233
|
"name": "PasskeyPubKeyMismatch",
|
|
@@ -30,6 +30,19 @@
|
|
|
30
30
|
],
|
|
31
31
|
"stateMutability": "nonpayable"
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
"type": "function",
|
|
35
|
+
"name": "DEPOSIT_WITHDRAWAL_TIMELOCK",
|
|
36
|
+
"inputs": [],
|
|
37
|
+
"outputs": [
|
|
38
|
+
{
|
|
39
|
+
"name": "",
|
|
40
|
+
"type": "uint64",
|
|
41
|
+
"internalType": "uint64"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"stateMutability": "view"
|
|
45
|
+
},
|
|
33
46
|
{
|
|
34
47
|
"type": "function",
|
|
35
48
|
"name": "acceptOwnership",
|
|
@@ -50,6 +63,13 @@
|
|
|
50
63
|
"outputs": [],
|
|
51
64
|
"stateMutability": "payable"
|
|
52
65
|
},
|
|
66
|
+
{
|
|
67
|
+
"type": "function",
|
|
68
|
+
"name": "cancelDepositWithdrawal",
|
|
69
|
+
"inputs": [],
|
|
70
|
+
"outputs": [],
|
|
71
|
+
"stateMutability": "nonpayable"
|
|
72
|
+
},
|
|
53
73
|
{
|
|
54
74
|
"type": "function",
|
|
55
75
|
"name": "deposit",
|
|
@@ -83,6 +103,13 @@
|
|
|
83
103
|
],
|
|
84
104
|
"stateMutability": "view"
|
|
85
105
|
},
|
|
106
|
+
{
|
|
107
|
+
"type": "function",
|
|
108
|
+
"name": "executeDepositWithdrawal",
|
|
109
|
+
"inputs": [],
|
|
110
|
+
"outputs": [],
|
|
111
|
+
"stateMutability": "nonpayable"
|
|
112
|
+
},
|
|
86
113
|
{
|
|
87
114
|
"type": "function",
|
|
88
115
|
"name": "getDeposit",
|
|
@@ -217,6 +244,19 @@
|
|
|
217
244
|
],
|
|
218
245
|
"stateMutability": "view"
|
|
219
246
|
},
|
|
247
|
+
{
|
|
248
|
+
"type": "function",
|
|
249
|
+
"name": "paused",
|
|
250
|
+
"inputs": [],
|
|
251
|
+
"outputs": [
|
|
252
|
+
{
|
|
253
|
+
"name": "",
|
|
254
|
+
"type": "bool",
|
|
255
|
+
"internalType": "bool"
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
"stateMutability": "view"
|
|
259
|
+
},
|
|
220
260
|
{
|
|
221
261
|
"type": "function",
|
|
222
262
|
"name": "pendingOwner",
|
|
@@ -230,6 +270,29 @@
|
|
|
230
270
|
],
|
|
231
271
|
"stateMutability": "view"
|
|
232
272
|
},
|
|
273
|
+
{
|
|
274
|
+
"type": "function",
|
|
275
|
+
"name": "pendingWithdrawal",
|
|
276
|
+
"inputs": [],
|
|
277
|
+
"outputs": [
|
|
278
|
+
{
|
|
279
|
+
"name": "to",
|
|
280
|
+
"type": "address",
|
|
281
|
+
"internalType": "address"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"name": "amount",
|
|
285
|
+
"type": "uint256",
|
|
286
|
+
"internalType": "uint256"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"name": "eta",
|
|
290
|
+
"type": "uint64",
|
|
291
|
+
"internalType": "uint64"
|
|
292
|
+
}
|
|
293
|
+
],
|
|
294
|
+
"stateMutability": "view"
|
|
295
|
+
},
|
|
233
296
|
{
|
|
234
297
|
"type": "function",
|
|
235
298
|
"name": "postOp",
|
|
@@ -265,6 +328,24 @@
|
|
|
265
328
|
"outputs": [],
|
|
266
329
|
"stateMutability": "nonpayable"
|
|
267
330
|
},
|
|
331
|
+
{
|
|
332
|
+
"type": "function",
|
|
333
|
+
"name": "scheduleDepositWithdrawal",
|
|
334
|
+
"inputs": [
|
|
335
|
+
{
|
|
336
|
+
"name": "to",
|
|
337
|
+
"type": "address",
|
|
338
|
+
"internalType": "address payable"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"name": "amount",
|
|
342
|
+
"type": "uint256",
|
|
343
|
+
"internalType": "uint256"
|
|
344
|
+
}
|
|
345
|
+
],
|
|
346
|
+
"outputs": [],
|
|
347
|
+
"stateMutability": "nonpayable"
|
|
348
|
+
},
|
|
268
349
|
{
|
|
269
350
|
"type": "function",
|
|
270
351
|
"name": "setAccepted",
|
|
@@ -314,6 +395,19 @@
|
|
|
314
395
|
"outputs": [],
|
|
315
396
|
"stateMutability": "nonpayable"
|
|
316
397
|
},
|
|
398
|
+
{
|
|
399
|
+
"type": "function",
|
|
400
|
+
"name": "setPauseMirror",
|
|
401
|
+
"inputs": [
|
|
402
|
+
{
|
|
403
|
+
"name": "paused_",
|
|
404
|
+
"type": "bool",
|
|
405
|
+
"internalType": "bool"
|
|
406
|
+
}
|
|
407
|
+
],
|
|
408
|
+
"outputs": [],
|
|
409
|
+
"stateMutability": "nonpayable"
|
|
410
|
+
},
|
|
317
411
|
{
|
|
318
412
|
"type": "function",
|
|
319
413
|
"name": "setVerifyingSigner",
|
|
@@ -327,6 +421,13 @@
|
|
|
327
421
|
"outputs": [],
|
|
328
422
|
"stateMutability": "nonpayable"
|
|
329
423
|
},
|
|
424
|
+
{
|
|
425
|
+
"type": "function",
|
|
426
|
+
"name": "syncPauseFromGovernance",
|
|
427
|
+
"inputs": [],
|
|
428
|
+
"outputs": [],
|
|
429
|
+
"stateMutability": "nonpayable"
|
|
430
|
+
},
|
|
330
431
|
{
|
|
331
432
|
"type": "function",
|
|
332
433
|
"name": "transferOwnership",
|
|
@@ -472,6 +573,69 @@
|
|
|
472
573
|
"outputs": [],
|
|
473
574
|
"stateMutability": "nonpayable"
|
|
474
575
|
},
|
|
576
|
+
{
|
|
577
|
+
"type": "event",
|
|
578
|
+
"name": "DepositWithdrawalCancelled",
|
|
579
|
+
"inputs": [
|
|
580
|
+
{
|
|
581
|
+
"name": "to",
|
|
582
|
+
"type": "address",
|
|
583
|
+
"indexed": true,
|
|
584
|
+
"internalType": "address"
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"name": "amount",
|
|
588
|
+
"type": "uint256",
|
|
589
|
+
"indexed": false,
|
|
590
|
+
"internalType": "uint256"
|
|
591
|
+
}
|
|
592
|
+
],
|
|
593
|
+
"anonymous": false
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"type": "event",
|
|
597
|
+
"name": "DepositWithdrawalExecuted",
|
|
598
|
+
"inputs": [
|
|
599
|
+
{
|
|
600
|
+
"name": "to",
|
|
601
|
+
"type": "address",
|
|
602
|
+
"indexed": true,
|
|
603
|
+
"internalType": "address"
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
"name": "amount",
|
|
607
|
+
"type": "uint256",
|
|
608
|
+
"indexed": false,
|
|
609
|
+
"internalType": "uint256"
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
"anonymous": false
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
"type": "event",
|
|
616
|
+
"name": "DepositWithdrawalScheduled",
|
|
617
|
+
"inputs": [
|
|
618
|
+
{
|
|
619
|
+
"name": "to",
|
|
620
|
+
"type": "address",
|
|
621
|
+
"indexed": true,
|
|
622
|
+
"internalType": "address"
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"name": "amount",
|
|
626
|
+
"type": "uint256",
|
|
627
|
+
"indexed": false,
|
|
628
|
+
"internalType": "uint256"
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"name": "eta",
|
|
632
|
+
"type": "uint64",
|
|
633
|
+
"indexed": false,
|
|
634
|
+
"internalType": "uint64"
|
|
635
|
+
}
|
|
636
|
+
],
|
|
637
|
+
"anonymous": false
|
|
638
|
+
},
|
|
475
639
|
{
|
|
476
640
|
"type": "event",
|
|
477
641
|
"name": "DevModeSet",
|
|
@@ -523,6 +687,25 @@
|
|
|
523
687
|
],
|
|
524
688
|
"anonymous": false
|
|
525
689
|
},
|
|
690
|
+
{
|
|
691
|
+
"type": "event",
|
|
692
|
+
"name": "PauseMirrorSynced",
|
|
693
|
+
"inputs": [
|
|
694
|
+
{
|
|
695
|
+
"name": "paused",
|
|
696
|
+
"type": "bool",
|
|
697
|
+
"indexed": false,
|
|
698
|
+
"internalType": "bool"
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"name": "by",
|
|
702
|
+
"type": "address",
|
|
703
|
+
"indexed": true,
|
|
704
|
+
"internalType": "address"
|
|
705
|
+
}
|
|
706
|
+
],
|
|
707
|
+
"anonymous": false
|
|
708
|
+
},
|
|
526
709
|
{
|
|
527
710
|
"type": "event",
|
|
528
711
|
"name": "SenderAcceptedSet",
|
|
@@ -582,6 +765,11 @@
|
|
|
582
765
|
"name": "MustOverride",
|
|
583
766
|
"inputs": []
|
|
584
767
|
},
|
|
768
|
+
{
|
|
769
|
+
"type": "error",
|
|
770
|
+
"name": "NoPendingWithdrawal",
|
|
771
|
+
"inputs": []
|
|
772
|
+
},
|
|
585
773
|
{
|
|
586
774
|
"type": "error",
|
|
587
775
|
"name": "NotFromEntryPoint",
|
|
@@ -656,6 +844,27 @@
|
|
|
656
844
|
"name": "SystemPaused",
|
|
657
845
|
"inputs": []
|
|
658
846
|
},
|
|
847
|
+
{
|
|
848
|
+
"type": "error",
|
|
849
|
+
"name": "WithdrawalAmountZero",
|
|
850
|
+
"inputs": []
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"type": "error",
|
|
854
|
+
"name": "WithdrawalNotReady",
|
|
855
|
+
"inputs": [
|
|
856
|
+
{
|
|
857
|
+
"name": "eta",
|
|
858
|
+
"type": "uint64",
|
|
859
|
+
"internalType": "uint64"
|
|
860
|
+
}
|
|
861
|
+
]
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
"type": "error",
|
|
865
|
+
"name": "WithdrawalToZero",
|
|
866
|
+
"inputs": []
|
|
867
|
+
},
|
|
659
868
|
{
|
|
660
869
|
"type": "error",
|
|
661
870
|
"name": "ZeroGovernance",
|