@lemmaoracle/x402 0.1.1
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/broadcast/DeployPaymentVerifier.s.sol/10143/run-1775996174982.json +34 -0
- package/broadcast/DeployPaymentVerifier.s.sol/10143/run-1775996423983.json +51 -0
- package/broadcast/DeployPaymentVerifier.s.sol/10143/run-1775996907850.json +51 -0
- package/broadcast/DeployPaymentVerifier.s.sol/10143/run-latest.json +51 -0
- package/cache/DeployPaymentVerifier.s.sol/10143/run-1775996174982.json +7 -0
- package/cache/DeployPaymentVerifier.s.sol/10143/run-1775996423983.json +7 -0
- package/cache/DeployPaymentVerifier.s.sol/10143/run-1775996907850.json +7 -0
- package/cache/DeployPaymentVerifier.s.sol/10143/run-latest.json +7 -0
- package/cache/solidity-files-cache.json +1 -0
- package/circuits/README.md +78 -0
- package/circuits/payment-comprehensive.test.mjs +272 -0
- package/circuits/payment.circom +89 -0
- package/circuits/payment.test.mjs +173 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/proof-generator.d.ts +26 -0
- package/dist/proof-generator.d.ts.map +1 -0
- package/dist/proof-generator.js +154 -0
- package/dist/proof-generator.js.map +1 -0
- package/dist/proof-generator.test.d.ts +7 -0
- package/dist/proof-generator.test.d.ts.map +1 -0
- package/dist/proof-generator.test.js +121 -0
- package/dist/proof-generator.test.js.map +1 -0
- package/dist/transaction-watcher.d.ts +42 -0
- package/dist/transaction-watcher.d.ts.map +1 -0
- package/dist/transaction-watcher.js +88 -0
- package/dist/transaction-watcher.js.map +1 -0
- package/dist/transaction-watcher.test.d.ts +7 -0
- package/dist/transaction-watcher.test.d.ts.map +1 -0
- package/dist/transaction-watcher.test.js +111 -0
- package/dist/transaction-watcher.test.js.map +1 -0
- package/dist/types.d.ts +76 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/foundry.lock +11 -0
- package/foundry.toml +16 -0
- package/lib/forge-std/.gitattributes +1 -0
- package/lib/forge-std/.github/CODEOWNERS +1 -0
- package/lib/forge-std/.github/dependabot.yml +6 -0
- package/lib/forge-std/.github/workflows/ci.yml +161 -0
- package/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/lib/forge-std/CONTRIBUTING.md +193 -0
- package/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/forge-std/README.md +314 -0
- package/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/lib/forge-std/foundry.toml +18 -0
- package/lib/forge-std/package.json +16 -0
- package/lib/forge-std/scripts/vm.py +636 -0
- package/lib/forge-std/src/Base.sol +48 -0
- package/lib/forge-std/src/Config.sol +60 -0
- package/lib/forge-std/src/LibVariable.sol +477 -0
- package/lib/forge-std/src/Script.sol +28 -0
- package/lib/forge-std/src/StdAssertions.sol +1300 -0
- package/lib/forge-std/src/StdChains.sol +303 -0
- package/lib/forge-std/src/StdCheats.sol +825 -0
- package/lib/forge-std/src/StdConfig.sol +632 -0
- package/lib/forge-std/src/StdConstants.sol +30 -0
- package/lib/forge-std/src/StdError.sol +15 -0
- package/lib/forge-std/src/StdInvariant.sol +161 -0
- package/lib/forge-std/src/StdJson.sol +275 -0
- package/lib/forge-std/src/StdMath.sol +47 -0
- package/lib/forge-std/src/StdStorage.sol +476 -0
- package/lib/forge-std/src/StdStyle.sol +333 -0
- package/lib/forge-std/src/StdToml.sol +275 -0
- package/lib/forge-std/src/StdUtils.sol +200 -0
- package/lib/forge-std/src/Test.sol +32 -0
- package/lib/forge-std/src/Vm.sol +2533 -0
- package/lib/forge-std/src/console.sol +1551 -0
- package/lib/forge-std/src/console2.sol +4 -0
- package/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
- package/lib/forge-std/src/interfaces/IERC165.sol +12 -0
- package/lib/forge-std/src/interfaces/IERC20.sol +43 -0
- package/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
- package/lib/forge-std/src/interfaces/IERC6909.sol +72 -0
- package/lib/forge-std/src/interfaces/IERC721.sol +164 -0
- package/lib/forge-std/src/interfaces/IERC7540.sol +145 -0
- package/lib/forge-std/src/interfaces/IERC7575.sol +241 -0
- package/lib/forge-std/src/interfaces/IMulticall3.sol +68 -0
- package/lib/forge-std/src/safeconsole.sol +13248 -0
- package/lib/forge-std/test/CommonBase.t.sol +44 -0
- package/lib/forge-std/test/Config.t.sol +381 -0
- package/lib/forge-std/test/LibVariable.t.sol +452 -0
- package/lib/forge-std/test/StdAssertions.t.sol +141 -0
- package/lib/forge-std/test/StdChains.t.sol +227 -0
- package/lib/forge-std/test/StdCheats.t.sol +638 -0
- package/lib/forge-std/test/StdConstants.t.sol +38 -0
- package/lib/forge-std/test/StdError.t.sol +119 -0
- package/lib/forge-std/test/StdJson.t.sol +49 -0
- package/lib/forge-std/test/StdMath.t.sol +202 -0
- package/lib/forge-std/test/StdStorage.t.sol +532 -0
- package/lib/forge-std/test/StdStyle.t.sol +110 -0
- package/lib/forge-std/test/StdToml.t.sol +49 -0
- package/lib/forge-std/test/StdUtils.t.sol +342 -0
- package/lib/forge-std/test/Vm.t.sol +18 -0
- package/lib/forge-std/test/compilation/CompilationScript.sol +8 -0
- package/lib/forge-std/test/compilation/CompilationScriptBase.sol +8 -0
- package/lib/forge-std/test/compilation/CompilationTest.sol +8 -0
- package/lib/forge-std/test/compilation/CompilationTestBase.sol +8 -0
- package/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
- package/lib/forge-std/test/fixtures/config.toml +81 -0
- package/lib/forge-std/test/fixtures/test.json +8 -0
- package/lib/forge-std/test/fixtures/test.toml +6 -0
- package/package.json +55 -0
- package/package.json.backup +55 -0
- package/scripts/DeployPaymentVerifier.s.sol +18 -0
- package/scripts/build.sh +61 -0
- package/scripts/deploy.sh +65 -0
- package/scripts/fix-verifier.mjs +64 -0
- package/scripts/register-circuit.ts +213 -0
- package/scripts/test-with-circuit.mjs +88 -0
- package/src/index.ts +115 -0
- package/src/proof-generator.test.ts +139 -0
- package/src/proof-generator.ts +220 -0
- package/src/transaction-watcher.test.ts +153 -0
- package/src/transaction-watcher.ts +154 -0
- package/src/types.ts +110 -0
- package/tsconfig.json +14 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/vitest.config.ts +18 -0
- package/workers/x402-facilitator/src/index.ts +582 -0
- package/workers/x402-facilitator/src/x402-env.d.ts +25 -0
- package/workers/x402-facilitator/wrangler.toml +19 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"transactions": [
|
|
3
|
+
{
|
|
4
|
+
"hash": null,
|
|
5
|
+
"transactionType": "CREATE",
|
|
6
|
+
"contractName": "Groth16Verifier",
|
|
7
|
+
"contractAddress": "0x95b52da4586b4d18f102881398ee4dd6f6c5180e",
|
|
8
|
+
"function": null,
|
|
9
|
+
"arguments": null,
|
|
10
|
+
"transaction": {
|
|
11
|
+
"from": "0x12e053712117e1f4718aea734f16affef899899b",
|
|
12
|
+
"gas": "0x7bbaa",
|
|
13
|
+
"value": "0x0",
|
|
14
|
+
"input": "0x6080604052348015600e575f5ffd5b506106028061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c806311479fea1461002d575b5f5ffd5b61004061003b36600461056a565b610054565b604051901515815260200160405180910390f35b5f61050c565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610089575f5f5260205ff35b50565b5f60405183815284602082015285604082015260408160608360076107d05a03fa9150816100bc575f5f5260205ff35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100eb575f5f5260205ff35b5050505050565b7f2bb813830379698fa5b225f1c6fb0204e6bf5e06fc3c4758439f09f42e8761da85527f102355293c5a9f04deaa5bb5328a5b63b6723d1ce49092d87099f1a9721a951f60208601525f608086018661018e87357f1f0ae8c62117987693367401edef1c2dd4bf3e4df2e4e0f009d969b3b41962fe7f09dbd752f93dbe8ebd564ed96ee036648ceea95c44ec10b5e2a557a34c8dc46d8461008c565b6101de60208801357f19abf6704eec4091d939dde3f2bbe5cccb94280dfd153f0cd8f043113519a2857f1800f9c5682654ce844ca5d769ea06c4016f21c67ca640e675ef683b43ef33de8461008c565b61022e60408801357f083a8138e5f89d7f520b5e30d698eef417b84f988d4e1e8e9bdefd1f9ec9473a7f2cfe39eac01d93e3cd277cab1633d07510efc3cb0f6c4f97d5b9696a6a44bb138461008c565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec86101608201525f87015161018082015260205f018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f1b854895f1ddccba397095e16f55a648af11f51c1366a5ab5c8628aee1a0a90f6102808201527f2f74c80fa4a140eb97ddbc9c1d76a54a19fdc4ec02e9569ade3db864a70b66e26102a08201527f106c014fe392bad0cb67358f1671120a13345a33b1e3d5c2c91aeaeed5dbeefa6102c08201527f14977a40edd4b00062c50e45ccd4a8605dbffa06ed28915b1a16ad86e08e887a6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526105235f84013561005a565b610530602084013561005a565b61053d604084013561005a565b61054a818486888a6100f2565b9050805f5260205ff35b8060408101831015610564575f5ffd5b92915050565b5f5f5f5f610160858703121561057e575f5ffd5b6105888686610554565b935060c085018681111561059a575f5ffd5b6040860193506105aa8782610554565b92505085610160860111156105bd575f5ffd5b5091949093509091610100019056fea26469706673582212203fd86d2b71873425cc598723dafea2488fcd613ebddf6d50317ef269341092f064736f6c634300081c0033",
|
|
15
|
+
"nonce": "0x154",
|
|
16
|
+
"chainId": "0x279f"
|
|
17
|
+
},
|
|
18
|
+
"additionalContracts": [],
|
|
19
|
+
"isFixedGasLimit": false
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"receipts": [],
|
|
23
|
+
"libraries": [],
|
|
24
|
+
"pending": [],
|
|
25
|
+
"returns": {
|
|
26
|
+
"0": {
|
|
27
|
+
"internal_type": "contract Groth16Verifier",
|
|
28
|
+
"value": "0x95B52dA4586b4D18f102881398Ee4dd6f6c5180E"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"timestamp": 1775996174982,
|
|
32
|
+
"chain": 10143,
|
|
33
|
+
"commit": "82d8eba"
|
|
34
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"transactions": [
|
|
3
|
+
{
|
|
4
|
+
"hash": "0x1bd2a111fd976b60030becbcfa6b8ceace5b920369a2507d97c02adc0c83e59d",
|
|
5
|
+
"transactionType": "CREATE",
|
|
6
|
+
"contractName": "Groth16Verifier",
|
|
7
|
+
"contractAddress": "0xf0e97a43bb10a7bf6f32eaea338ccaa4aca2db66",
|
|
8
|
+
"function": null,
|
|
9
|
+
"arguments": null,
|
|
10
|
+
"transaction": {
|
|
11
|
+
"from": "0x4d03fd23d12d167afe73411421a7b61ca061b9bd",
|
|
12
|
+
"gas": "0x7bbaa",
|
|
13
|
+
"value": "0x0",
|
|
14
|
+
"input": "0x6080604052348015600e575f5ffd5b506106028061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c806311479fea1461002d575b5f5ffd5b61004061003b36600461056a565b610054565b604051901515815260200160405180910390f35b5f61050c565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610089575f5f5260205ff35b50565b5f60405183815284602082015285604082015260408160608360076107d05a03fa9150816100bc575f5f5260205ff35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100eb575f5f5260205ff35b5050505050565b7f2bb813830379698fa5b225f1c6fb0204e6bf5e06fc3c4758439f09f42e8761da85527f102355293c5a9f04deaa5bb5328a5b63b6723d1ce49092d87099f1a9721a951f60208601525f608086018661018e87357f1f0ae8c62117987693367401edef1c2dd4bf3e4df2e4e0f009d969b3b41962fe7f09dbd752f93dbe8ebd564ed96ee036648ceea95c44ec10b5e2a557a34c8dc46d8461008c565b6101de60208801357f19abf6704eec4091d939dde3f2bbe5cccb94280dfd153f0cd8f043113519a2857f1800f9c5682654ce844ca5d769ea06c4016f21c67ca640e675ef683b43ef33de8461008c565b61022e60408801357f083a8138e5f89d7f520b5e30d698eef417b84f988d4e1e8e9bdefd1f9ec9473a7f2cfe39eac01d93e3cd277cab1633d07510efc3cb0f6c4f97d5b9696a6a44bb138461008c565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec86101608201525f87015161018082015260205f018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f1b854895f1ddccba397095e16f55a648af11f51c1366a5ab5c8628aee1a0a90f6102808201527f2f74c80fa4a140eb97ddbc9c1d76a54a19fdc4ec02e9569ade3db864a70b66e26102a08201527f106c014fe392bad0cb67358f1671120a13345a33b1e3d5c2c91aeaeed5dbeefa6102c08201527f14977a40edd4b00062c50e45ccd4a8605dbffa06ed28915b1a16ad86e08e887a6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526105235f84013561005a565b610530602084013561005a565b61053d604084013561005a565b61054a818486888a6100f2565b9050805f5260205ff35b8060408101831015610564575f5ffd5b92915050565b5f5f5f5f610160858703121561057e575f5ffd5b6105888686610554565b935060c085018681111561059a575f5ffd5b6040860193506105aa8782610554565b92505085610160860111156105bd575f5ffd5b5091949093509091610100019056fea26469706673582212203fd86d2b71873425cc598723dafea2488fcd613ebddf6d50317ef269341092f064736f6c634300081c0033",
|
|
15
|
+
"nonce": "0xf",
|
|
16
|
+
"chainId": "0x279f"
|
|
17
|
+
},
|
|
18
|
+
"additionalContracts": [],
|
|
19
|
+
"isFixedGasLimit": false
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"receipts": [
|
|
23
|
+
{
|
|
24
|
+
"status": "0x1",
|
|
25
|
+
"cumulativeGasUsed": "0xb2bc0",
|
|
26
|
+
"logs": [],
|
|
27
|
+
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
28
|
+
"type": "0x2",
|
|
29
|
+
"transactionHash": "0x1bd2a111fd976b60030becbcfa6b8ceace5b920369a2507d97c02adc0c83e59d",
|
|
30
|
+
"transactionIndex": "0x2",
|
|
31
|
+
"blockHash": "0xbe013b2746687da997392328c6fcd7eeb932847b58d861b2949f6204f7d439fc",
|
|
32
|
+
"blockNumber": "0x17cf251",
|
|
33
|
+
"gasUsed": "0x7bbaa",
|
|
34
|
+
"effectiveGasPrice": "0x17fb474601",
|
|
35
|
+
"from": "0x4d03fd23d12d167afe73411421a7b61ca061b9bd",
|
|
36
|
+
"to": null,
|
|
37
|
+
"contractAddress": "0xf0e97a43bb10a7bf6f32eaea338ccaa4aca2db66"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"libraries": [],
|
|
41
|
+
"pending": [],
|
|
42
|
+
"returns": {
|
|
43
|
+
"0": {
|
|
44
|
+
"internal_type": "contract Groth16Verifier",
|
|
45
|
+
"value": "0xF0e97A43BB10a7bF6f32eaEa338cCaA4AcA2DB66"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"timestamp": 1775996423983,
|
|
49
|
+
"chain": 10143,
|
|
50
|
+
"commit": "82d8eba"
|
|
51
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"transactions": [
|
|
3
|
+
{
|
|
4
|
+
"hash": "0x365504aa2131a5e3f046dbbd3f929ebae17d3f78a21cea9d52742252bd9b33c2",
|
|
5
|
+
"transactionType": "CREATE",
|
|
6
|
+
"contractName": "Groth16Verifier",
|
|
7
|
+
"contractAddress": "0x851b33e46fc1ded8f752d1f2f26a9c58afde8815",
|
|
8
|
+
"function": null,
|
|
9
|
+
"arguments": null,
|
|
10
|
+
"transaction": {
|
|
11
|
+
"from": "0x4d03fd23d12d167afe73411421a7b61ca061b9bd",
|
|
12
|
+
"gas": "0x7bbba",
|
|
13
|
+
"value": "0x0",
|
|
14
|
+
"input": "0x6080604052348015600e575f5ffd5b506106028061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c806311479fea1461002d575b5f5ffd5b61004061003b36600461056a565b610054565b604051901515815260200160405180910390f35b5f61050c565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610089575f5f5260205ff35b50565b5f60405183815284602082015285604082015260408160608360076107d05a03fa9150816100bc575f5f5260205ff35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100eb575f5f5260205ff35b5050505050565b7f2bb813830379698fa5b225f1c6fb0204e6bf5e06fc3c4758439f09f42e8761da85527f102355293c5a9f04deaa5bb5328a5b63b6723d1ce49092d87099f1a9721a951f60208601525f608086018661018e87357f1f0ae8c62117987693367401edef1c2dd4bf3e4df2e4e0f009d969b3b41962fe7f09dbd752f93dbe8ebd564ed96ee036648ceea95c44ec10b5e2a557a34c8dc46d8461008c565b6101de60208801357f19abf6704eec4091d939dde3f2bbe5cccb94280dfd153f0cd8f043113519a2857f1800f9c5682654ce844ca5d769ea06c4016f21c67ca640e675ef683b43ef33de8461008c565b61022e60408801357f083a8138e5f89d7f520b5e30d698eef417b84f988d4e1e8e9bdefd1f9ec9473a7f2cfe39eac01d93e3cd277cab1633d07510efc3cb0f6c4f97d5b9696a6a44bb138461008c565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec86101608201525f87015161018082015260205f018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f1d5256fcf34f8c3c517af9b4bfe952964a4d6f4083949536633af20530b6c3946102808201527f0ecea12a3e4f1ef43f17f98d681b1d015e57f5cbaea7d9b399e46aa2f2b416456102a08201527f2bae74cbae29b35aed943a5171deab74cb9f3b431926fe7d875b32e3f5cac73d6102c08201527f060763489fc94b371286fc1e3d37b055183671714bd6d30c099257cb60e140976102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526105235f84013561005a565b610530602084013561005a565b61053d604084013561005a565b61054a818486888a6100f2565b9050805f5260205ff35b8060408101831015610564575f5ffd5b92915050565b5f5f5f5f610160858703121561057e575f5ffd5b6105888686610554565b935060c085018681111561059a575f5ffd5b6040860193506105aa8782610554565b92505085610160860111156105bd575f5ffd5b5091949093509091610100019056fea2646970667358221220c5557ac8473db9027229cab514f83bce481146c9e36e478e420225d92e0ad02964736f6c634300081c0033",
|
|
15
|
+
"nonce": "0x10",
|
|
16
|
+
"chainId": "0x279f"
|
|
17
|
+
},
|
|
18
|
+
"additionalContracts": [],
|
|
19
|
+
"isFixedGasLimit": false
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"receipts": [
|
|
23
|
+
{
|
|
24
|
+
"status": "0x1",
|
|
25
|
+
"cumulativeGasUsed": "0x2e6334",
|
|
26
|
+
"logs": [],
|
|
27
|
+
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
28
|
+
"type": "0x2",
|
|
29
|
+
"transactionHash": "0x365504aa2131a5e3f046dbbd3f929ebae17d3f78a21cea9d52742252bd9b33c2",
|
|
30
|
+
"transactionIndex": "0x8",
|
|
31
|
+
"blockHash": "0x3ba96fc86524123de2026d35fc970bd67674335326b66b1405f0af71cda0c0b2",
|
|
32
|
+
"blockNumber": "0x17cf6e9",
|
|
33
|
+
"gasUsed": "0x7bbba",
|
|
34
|
+
"effectiveGasPrice": "0x17fb474601",
|
|
35
|
+
"from": "0x4d03fd23d12d167afe73411421a7b61ca061b9bd",
|
|
36
|
+
"to": null,
|
|
37
|
+
"contractAddress": "0x851b33e46fc1ded8f752d1f2f26a9c58afde8815"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"libraries": [],
|
|
41
|
+
"pending": [],
|
|
42
|
+
"returns": {
|
|
43
|
+
"0": {
|
|
44
|
+
"internal_type": "contract Groth16Verifier",
|
|
45
|
+
"value": "0x851B33e46fC1dEd8f752d1f2F26A9c58aFde8815"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"timestamp": 1775996907850,
|
|
49
|
+
"chain": 10143,
|
|
50
|
+
"commit": "82d8eba"
|
|
51
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"transactions": [
|
|
3
|
+
{
|
|
4
|
+
"hash": "0x365504aa2131a5e3f046dbbd3f929ebae17d3f78a21cea9d52742252bd9b33c2",
|
|
5
|
+
"transactionType": "CREATE",
|
|
6
|
+
"contractName": "Groth16Verifier",
|
|
7
|
+
"contractAddress": "0x851b33e46fc1ded8f752d1f2f26a9c58afde8815",
|
|
8
|
+
"function": null,
|
|
9
|
+
"arguments": null,
|
|
10
|
+
"transaction": {
|
|
11
|
+
"from": "0x4d03fd23d12d167afe73411421a7b61ca061b9bd",
|
|
12
|
+
"gas": "0x7bbba",
|
|
13
|
+
"value": "0x0",
|
|
14
|
+
"input": "0x6080604052348015600e575f5ffd5b506106028061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c806311479fea1461002d575b5f5ffd5b61004061003b36600461056a565b610054565b604051901515815260200160405180910390f35b5f61050c565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610089575f5f5260205ff35b50565b5f60405183815284602082015285604082015260408160608360076107d05a03fa9150816100bc575f5f5260205ff35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100eb575f5f5260205ff35b5050505050565b7f2bb813830379698fa5b225f1c6fb0204e6bf5e06fc3c4758439f09f42e8761da85527f102355293c5a9f04deaa5bb5328a5b63b6723d1ce49092d87099f1a9721a951f60208601525f608086018661018e87357f1f0ae8c62117987693367401edef1c2dd4bf3e4df2e4e0f009d969b3b41962fe7f09dbd752f93dbe8ebd564ed96ee036648ceea95c44ec10b5e2a557a34c8dc46d8461008c565b6101de60208801357f19abf6704eec4091d939dde3f2bbe5cccb94280dfd153f0cd8f043113519a2857f1800f9c5682654ce844ca5d769ea06c4016f21c67ca640e675ef683b43ef33de8461008c565b61022e60408801357f083a8138e5f89d7f520b5e30d698eef417b84f988d4e1e8e9bdefd1f9ec9473a7f2cfe39eac01d93e3cd277cab1633d07510efc3cb0f6c4f97d5b9696a6a44bb138461008c565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec86101608201525f87015161018082015260205f018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f1d5256fcf34f8c3c517af9b4bfe952964a4d6f4083949536633af20530b6c3946102808201527f0ecea12a3e4f1ef43f17f98d681b1d015e57f5cbaea7d9b399e46aa2f2b416456102a08201527f2bae74cbae29b35aed943a5171deab74cb9f3b431926fe7d875b32e3f5cac73d6102c08201527f060763489fc94b371286fc1e3d37b055183671714bd6d30c099257cb60e140976102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526105235f84013561005a565b610530602084013561005a565b61053d604084013561005a565b61054a818486888a6100f2565b9050805f5260205ff35b8060408101831015610564575f5ffd5b92915050565b5f5f5f5f610160858703121561057e575f5ffd5b6105888686610554565b935060c085018681111561059a575f5ffd5b6040860193506105aa8782610554565b92505085610160860111156105bd575f5ffd5b5091949093509091610100019056fea2646970667358221220c5557ac8473db9027229cab514f83bce481146c9e36e478e420225d92e0ad02964736f6c634300081c0033",
|
|
15
|
+
"nonce": "0x10",
|
|
16
|
+
"chainId": "0x279f"
|
|
17
|
+
},
|
|
18
|
+
"additionalContracts": [],
|
|
19
|
+
"isFixedGasLimit": false
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"receipts": [
|
|
23
|
+
{
|
|
24
|
+
"status": "0x1",
|
|
25
|
+
"cumulativeGasUsed": "0x2e6334",
|
|
26
|
+
"logs": [],
|
|
27
|
+
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
28
|
+
"type": "0x2",
|
|
29
|
+
"transactionHash": "0x365504aa2131a5e3f046dbbd3f929ebae17d3f78a21cea9d52742252bd9b33c2",
|
|
30
|
+
"transactionIndex": "0x8",
|
|
31
|
+
"blockHash": "0x3ba96fc86524123de2026d35fc970bd67674335326b66b1405f0af71cda0c0b2",
|
|
32
|
+
"blockNumber": "0x17cf6e9",
|
|
33
|
+
"gasUsed": "0x7bbba",
|
|
34
|
+
"effectiveGasPrice": "0x17fb474601",
|
|
35
|
+
"from": "0x4d03fd23d12d167afe73411421a7b61ca061b9bd",
|
|
36
|
+
"to": null,
|
|
37
|
+
"contractAddress": "0x851b33e46fc1ded8f752d1f2f26a9c58afde8815"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"libraries": [],
|
|
41
|
+
"pending": [],
|
|
42
|
+
"returns": {
|
|
43
|
+
"0": {
|
|
44
|
+
"internal_type": "contract Groth16Verifier",
|
|
45
|
+
"value": "0x851B33e46fC1dEd8f752d1f2F26A9c58aFde8815"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"timestamp": 1775996907850,
|
|
49
|
+
"chain": 10143,
|
|
50
|
+
"commit": "82d8eba"
|
|
51
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"_format":"","paths":{"artifacts":"out","build_infos":"out/build-info","sources":"build","tests":"test","scripts":"script","libraries":["build/libs","node_modules"]},"files":{"build/PaymentVerifier.sol":{"lastModificationDate":1775996890566,"contentHash":"f6822399ee6f7829","interfaceReprHash":null,"sourceName":"build/PaymentVerifier.sol","imports":[],"versionRequirement":">=0.7.0, <0.9.0","artifacts":{"Groth16Verifier":{"0.8.28":{"default":{"path":"PaymentVerifier.sol/Groth16Verifier.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/Base.sol":{"lastModificationDate":1774109577652,"contentHash":"057da15af4544b7a","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/Base.sol","imports":["build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/Vm.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"CommonBase":{"0.8.28":{"default":{"path":"Base.sol/CommonBase.json","build_id":"dd88e620fb29e300"}}},"ScriptBase":{"0.8.28":{"default":{"path":"Base.sol/ScriptBase.json","build_id":"dd88e620fb29e300"}}},"TestBase":{"0.8.28":{"default":{"path":"Base.sol/TestBase.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/Config.sol":{"lastModificationDate":1774109577652,"contentHash":"c199018562a8167e","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/Config.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/LibVariable.sol","build/libs/forge-std/src/StdConfig.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol"],"versionRequirement":"^0.8.13","artifacts":{"Config":{"0.8.28":{"default":{"path":"Config.sol/Config.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/LibVariable.sol":{"lastModificationDate":1774109577652,"contentHash":"65c81408477abb0c","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/LibVariable.sol","imports":[],"versionRequirement":"^0.8.13","artifacts":{"LibVariable":{"0.8.28":{"default":{"path":"LibVariable.sol/LibVariable.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/Script.sol":{"lastModificationDate":1774109577656,"contentHash":"f2808a0770d1b6a2","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/Script.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"Script":{"0.8.28":{"default":{"path":"Script.sol/Script.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdAssertions.sol":{"lastModificationDate":1774109577656,"contentHash":"7bf8f8dd736b7b28","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdAssertions.sol","imports":["build/libs/forge-std/src/Vm.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdAssertions":{"0.8.28":{"default":{"path":"StdAssertions.sol/StdAssertions.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdChains.sol":{"lastModificationDate":1774109577656,"contentHash":"cef85f092f883921","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdChains.sol","imports":["build/libs/forge-std/src/Vm.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdChains":{"0.8.28":{"default":{"path":"StdChains.sol/StdChains.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdCheats.sol":{"lastModificationDate":1774109577656,"contentHash":"906cd6276ed83364","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdCheats.sol","imports":["build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdCheats":{"0.8.28":{"default":{"path":"StdCheats.sol/StdCheats.json","build_id":"dd88e620fb29e300"}}},"StdCheatsSafe":{"0.8.28":{"default":{"path":"StdCheats.sol/StdCheatsSafe.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdConfig.sol":{"lastModificationDate":1774109577656,"contentHash":"6d24ac5c505df3f6","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdConfig.sol","imports":["build/libs/forge-std/src/LibVariable.sol","build/libs/forge-std/src/Vm.sol"],"versionRequirement":"^0.8.13","artifacts":{"StdConfig":{"0.8.28":{"default":{"path":"StdConfig.sol/StdConfig.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdConstants.sol":{"lastModificationDate":1774109577656,"contentHash":"6e64e3e0f1e270b1","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdConstants.sol","imports":["build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdConstants":{"0.8.28":{"default":{"path":"StdConstants.sol/StdConstants.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdError.sol":{"lastModificationDate":1774109577656,"contentHash":"aa3090ae1422ce31","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdError.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"stdError":{"0.8.28":{"default":{"path":"StdError.sol/stdError.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdInvariant.sol":{"lastModificationDate":1774109577656,"contentHash":"65ff1041945c2df0","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdInvariant.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdInvariant":{"0.8.28":{"default":{"path":"StdInvariant.sol/StdInvariant.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdJson.sol":{"lastModificationDate":1774109577656,"contentHash":"deb75521f38fb99f","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdJson.sol","imports":["build/libs/forge-std/src/Vm.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"stdJson":{"0.8.28":{"default":{"path":"StdJson.sol/stdJson.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdMath.sol":{"lastModificationDate":1774109577656,"contentHash":"393b2ec0becc479a","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdMath.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"stdMath":{"0.8.28":{"default":{"path":"StdMath.sol/stdMath.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdStorage.sol":{"lastModificationDate":1774109577667,"contentHash":"8b834c63078a7790","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdStorage.sol","imports":["build/libs/forge-std/src/Vm.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"stdStorage":{"0.8.28":{"default":{"path":"StdStorage.sol/stdStorage.json","build_id":"dd88e620fb29e300"}}},"stdStorageSafe":{"0.8.28":{"default":{"path":"StdStorage.sol/stdStorageSafe.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdStyle.sol":{"lastModificationDate":1774109577656,"contentHash":"dd683e581612d9d7","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdStyle.sol","imports":["build/libs/forge-std/src/Vm.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdStyle":{"0.8.28":{"default":{"path":"StdStyle.sol/StdStyle.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdToml.sol":{"lastModificationDate":1774109577656,"contentHash":"66561afcd2e48189","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdToml.sol","imports":["build/libs/forge-std/src/Vm.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"stdToml":{"0.8.28":{"default":{"path":"StdToml.sol/stdToml.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/StdUtils.sol":{"lastModificationDate":1774109577656,"contentHash":"476c1e8becd32967","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/StdUtils.sol","imports":["build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdUtils":{"0.8.28":{"default":{"path":"StdUtils.sol/StdUtils.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/Test.sol":{"lastModificationDate":1774109577656,"contentHash":"bd0e131f71fa5665","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/Test.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"Test":{"0.8.28":{"default":{"path":"Test.sol/Test.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/Vm.sol":{"lastModificationDate":1774109577656,"contentHash":"55e749aafb49ce93","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/Vm.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"Vm":{"0.8.28":{"default":{"path":"Vm.sol/Vm.json","build_id":"dd88e620fb29e300"}}},"VmSafe":{"0.8.28":{"default":{"path":"Vm.sol/VmSafe.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/console.sol":{"lastModificationDate":1774109577656,"contentHash":"c2f250cceea75093","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/console.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"console":{"0.8.28":{"default":{"path":"console.sol/console.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/console2.sol":{"lastModificationDate":1774109577656,"contentHash":"fb84555cebe27360","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/console2.sol","imports":["build/libs/forge-std/src/console.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IERC1155.sol":{"lastModificationDate":1774109577656,"contentHash":"6ae5aa0ad6ba5f27","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IERC1155.sol","imports":["build/libs/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IERC1155":{"0.8.28":{"default":{"path":"IERC1155.sol/IERC1155.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IERC165.sol":{"lastModificationDate":1774109577656,"contentHash":"2a62becd43031d2b","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IERC165.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IERC165":{"0.8.28":{"default":{"path":"IERC165.sol/IERC165.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IERC20.sol":{"lastModificationDate":1774109577656,"contentHash":"2ddaac16020da63a","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IERC20.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IERC20":{"0.8.28":{"default":{"path":"IERC20.sol/IERC20.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IERC4626.sol":{"lastModificationDate":1774109577667,"contentHash":"6211c8dd595013af","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IERC4626.sol","imports":["build/libs/forge-std/src/interfaces/IERC20.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IERC4626":{"0.8.28":{"default":{"path":"IERC4626.sol/IERC4626.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IERC6909.sol":{"lastModificationDate":1774109577656,"contentHash":"07b93abd88c3ba3d","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IERC6909.sol","imports":["build/libs/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IERC6909":{"0.8.28":{"default":{"path":"IERC6909.sol/IERC6909.json","build_id":"dd88e620fb29e300"}}},"IERC6909ContentURI":{"0.8.28":{"default":{"path":"IERC6909.sol/IERC6909ContentURI.json","build_id":"dd88e620fb29e300"}}},"IERC6909Metadata":{"0.8.28":{"default":{"path":"IERC6909.sol/IERC6909Metadata.json","build_id":"dd88e620fb29e300"}}},"IERC6909TokenSupply":{"0.8.28":{"default":{"path":"IERC6909.sol/IERC6909TokenSupply.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IERC721.sol":{"lastModificationDate":1774109577656,"contentHash":"2ff3e78e7eda1222","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IERC721.sol","imports":["build/libs/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IERC721":{"0.8.28":{"default":{"path":"IERC721.sol/IERC721.json","build_id":"dd88e620fb29e300"}}},"IERC721Enumerable":{"0.8.28":{"default":{"path":"IERC721.sol/IERC721Enumerable.json","build_id":"dd88e620fb29e300"}}},"IERC721Metadata":{"0.8.28":{"default":{"path":"IERC721.sol/IERC721Metadata.json","build_id":"dd88e620fb29e300"}}},"IERC721TokenReceiver":{"0.8.28":{"default":{"path":"IERC721.sol/IERC721TokenReceiver.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IERC7540.sol":{"lastModificationDate":1774109577667,"contentHash":"27be4839b9dedb2e","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IERC7540.sol","imports":["build/libs/forge-std/src/interfaces/IERC165.sol","build/libs/forge-std/src/interfaces/IERC7575.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IERC7540":{"0.8.28":{"default":{"path":"IERC7540.sol/IERC7540.json","build_id":"dd88e620fb29e300"}}},"IERC7540Deposit":{"0.8.28":{"default":{"path":"IERC7540.sol/IERC7540Deposit.json","build_id":"dd88e620fb29e300"}}},"IERC7540Operator":{"0.8.28":{"default":{"path":"IERC7540.sol/IERC7540Operator.json","build_id":"dd88e620fb29e300"}}},"IERC7540Redeem":{"0.8.28":{"default":{"path":"IERC7540.sol/IERC7540Redeem.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IERC7575.sol":{"lastModificationDate":1774109577667,"contentHash":"924a88aa9f18713b","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IERC7575.sol","imports":["build/libs/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IERC7575":{"0.8.28":{"default":{"path":"IERC7575.sol/IERC7575.json","build_id":"dd88e620fb29e300"}}},"IERC7575Share":{"0.8.28":{"default":{"path":"IERC7575.sol/IERC7575Share.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/interfaces/IMulticall3.sol":{"lastModificationDate":1774109577656,"contentHash":"731463c8fd01e759","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/interfaces/IMulticall3.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"IMulticall3":{"0.8.28":{"default":{"path":"IMulticall3.sol/IMulticall3.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/src/safeconsole.sol":{"lastModificationDate":1774109577656,"contentHash":"075ad54247fa474a","interfaceReprHash":null,"sourceName":"build/libs/forge-std/src/safeconsole.sol","imports":[],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"safeconsole":{"0.8.28":{"default":{"path":"safeconsole.sol/safeconsole.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/CommonBase.t.sol":{"lastModificationDate":1774109577656,"contentHash":"020eb4d82e3b0f48","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/CommonBase.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"CommonBaseTest":{"0.8.28":{"default":{"path":"CommonBase.t.sol/CommonBaseTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/Config.t.sol":{"lastModificationDate":1774109577656,"contentHash":"7e4d523ca25f3d1f","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/Config.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/Config.sol","build/libs/forge-std/src/LibVariable.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConfig.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":"^0.8.13","artifacts":{"ConfigTest":{"0.8.28":{"default":{"path":"Config.t.sol/ConfigTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/LibVariable.t.sol":{"lastModificationDate":1774109577656,"contentHash":"7583bf4b040876e1","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/LibVariable.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/LibVariable.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":"^0.8.13","artifacts":{"LibVariableHelper":{"0.8.28":{"default":{"path":"LibVariable.t.sol/LibVariableHelper.json","build_id":"dd88e620fb29e300"}}},"LibVariableTest":{"0.8.28":{"default":{"path":"LibVariable.t.sol/LibVariableTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdAssertions.t.sol":{"lastModificationDate":1774109577656,"contentHash":"0cafbdfb5ca44977","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdAssertions.t.sol","imports":["build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/Vm.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdAssertionsTest":{"0.8.28":{"default":{"path":"StdAssertions.t.sol/StdAssertionsTest.json","build_id":"dd88e620fb29e300"}}},"TestMockCall":{"0.8.28":{"default":{"path":"StdAssertions.t.sol/TestMockCall.json","build_id":"dd88e620fb29e300"}}},"VmInternal":{"0.8.28":{"default":{"path":"StdAssertions.t.sol/VmInternal.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdChains.t.sol":{"lastModificationDate":1774109577656,"contentHash":"e384aa193a5316fe","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdChains.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdChainsMock":{"0.8.28":{"default":{"path":"StdChains.t.sol/StdChainsMock.json","build_id":"dd88e620fb29e300"}}},"StdChainsTest":{"0.8.28":{"default":{"path":"StdChains.t.sol/StdChainsTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdCheats.t.sol":{"lastModificationDate":1774109577660,"contentHash":"cd4b2e8c89bf5b7b","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdCheats.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IERC20.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"Bar":{"0.8.28":{"default":{"path":"StdCheats.t.sol/Bar.json","build_id":"dd88e620fb29e300"}}},"BarERC1155":{"0.8.28":{"default":{"path":"StdCheats.t.sol/BarERC1155.json","build_id":"dd88e620fb29e300"}}},"BarERC721":{"0.8.28":{"default":{"path":"StdCheats.t.sol/BarERC721.json","build_id":"dd88e620fb29e300"}}},"MockContractPayable":{"0.8.28":{"default":{"path":"StdCheats.t.sol/MockContractPayable.json","build_id":"dd88e620fb29e300"}}},"MockContractWithConstructorArgs":{"0.8.28":{"default":{"path":"StdCheats.t.sol/MockContractWithConstructorArgs.json","build_id":"dd88e620fb29e300"}}},"MockUSDC":{"0.8.28":{"default":{"path":"StdCheats.t.sol/MockUSDC.json","build_id":"dd88e620fb29e300"}}},"MockUSDT":{"0.8.28":{"default":{"path":"StdCheats.t.sol/MockUSDT.json","build_id":"dd88e620fb29e300"}}},"RevertingContract":{"0.8.28":{"default":{"path":"StdCheats.t.sol/RevertingContract.json","build_id":"dd88e620fb29e300"}}},"StdCheatsForkTest":{"0.8.28":{"default":{"path":"StdCheats.t.sol/StdCheatsForkTest.json","build_id":"dd88e620fb29e300"}}},"StdCheatsMock":{"0.8.28":{"default":{"path":"StdCheats.t.sol/StdCheatsMock.json","build_id":"dd88e620fb29e300"}}},"StdCheatsTest":{"0.8.28":{"default":{"path":"StdCheats.t.sol/StdCheatsTest.json","build_id":"dd88e620fb29e300"}}},"USDCLike":{"0.8.28":{"default":{"path":"StdCheats.t.sol/USDCLike.json","build_id":"dd88e620fb29e300"}}},"USDTLike":{"0.8.28":{"default":{"path":"StdCheats.t.sol/USDTLike.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdConstants.t.sol":{"lastModificationDate":1774109577660,"contentHash":"45b5f73b628cf97d","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdConstants.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"Dummy":{"0.8.28":{"default":{"path":"StdConstants.t.sol/Dummy.json","build_id":"dd88e620fb29e300"}}},"StdConstantsTest":{"0.8.28":{"default":{"path":"StdConstants.t.sol/StdConstantsTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdError.t.sol":{"lastModificationDate":1774109577660,"contentHash":"b6679380c8f3fa89","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdError.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"ErrorsTest":{"0.8.28":{"default":{"path":"StdError.t.sol/ErrorsTest.json","build_id":"dd88e620fb29e300"}}},"StdErrorsTest":{"0.8.28":{"default":{"path":"StdError.t.sol/StdErrorsTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdJson.t.sol":{"lastModificationDate":1774109577660,"contentHash":"43992737cf1e220b","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdJson.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdJsonTest":{"0.8.28":{"default":{"path":"StdJson.t.sol/StdJsonTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdMath.t.sol":{"lastModificationDate":1774109577660,"contentHash":"2ec51be20fd320a3","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdMath.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdMathMock":{"0.8.28":{"default":{"path":"StdMath.t.sol/StdMathMock.json","build_id":"dd88e620fb29e300"}}},"StdMathTest":{"0.8.28":{"default":{"path":"StdMath.t.sol/StdMathTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdStorage.t.sol":{"lastModificationDate":1774109577667,"contentHash":"960fe5af2417a3a6","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdStorage.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdStorageTest":{"0.8.28":{"default":{"path":"StdStorage.t.sol/StdStorageTest.json","build_id":"dd88e620fb29e300"}}},"StorageTest":{"0.8.28":{"default":{"path":"StdStorage.t.sol/StorageTest.json","build_id":"dd88e620fb29e300"}}},"StorageTestTarget":{"0.8.28":{"default":{"path":"StdStorage.t.sol/StorageTestTarget.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdStyle.t.sol":{"lastModificationDate":1774109577660,"contentHash":"02ddba0a115ff273","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdStyle.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdStyleTest":{"0.8.28":{"default":{"path":"StdStyle.t.sol/StdStyleTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdToml.t.sol":{"lastModificationDate":1774109577660,"contentHash":"2f641a1b90c81f0d","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdToml.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdTomlTest":{"0.8.28":{"default":{"path":"StdToml.t.sol/StdTomlTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/StdUtils.t.sol":{"lastModificationDate":1774109577660,"contentHash":"d214825f40b214c3","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/StdUtils.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"StdUtilsForkTest":{"0.8.28":{"default":{"path":"StdUtils.t.sol/StdUtilsForkTest.json","build_id":"dd88e620fb29e300"}}},"StdUtilsMock":{"0.8.28":{"default":{"path":"StdUtils.t.sol/StdUtilsMock.json","build_id":"dd88e620fb29e300"}}},"StdUtilsTest":{"0.8.28":{"default":{"path":"StdUtils.t.sol/StdUtilsTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/Vm.t.sol":{"lastModificationDate":1774109577660,"contentHash":"196b29a024722e03","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/Vm.t.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"VmTest":{"0.8.28":{"default":{"path":"Vm.t.sol/VmTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/compilation/CompilationScript.sol":{"lastModificationDate":1774109577660,"contentHash":"937a9b7932218551","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/compilation/CompilationScript.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/Script.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"CompilationScript":{"0.8.28":{"default":{"path":"CompilationScript.sol/CompilationScript.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/compilation/CompilationScriptBase.sol":{"lastModificationDate":1774109577660,"contentHash":"3a6f50db485cf89c","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/compilation/CompilationScriptBase.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/Script.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"CompilationScriptBase":{"0.8.28":{"default":{"path":"CompilationScriptBase.sol/CompilationScriptBase.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/compilation/CompilationTest.sol":{"lastModificationDate":1774109577660,"contentHash":"6638e8b486014066","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/compilation/CompilationTest.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"CompilationTest":{"0.8.28":{"default":{"path":"CompilationTest.sol/CompilationTest.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"build/libs/forge-std/test/compilation/CompilationTestBase.sol":{"lastModificationDate":1774109577660,"contentHash":"9a5c7f67f6070d33","interfaceReprHash":null,"sourceName":"build/libs/forge-std/test/compilation/CompilationTestBase.sol","imports":["build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/StdAssertions.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdError.sol","build/libs/forge-std/src/StdInvariant.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdToml.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Test.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.8.13, <0.9.0","artifacts":{"CompilationTestBase":{"0.8.28":{"default":{"path":"CompilationTestBase.sol/CompilationTestBase.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true},"scripts/DeployPaymentVerifier.s.sol":{"lastModificationDate":1775996676036,"contentHash":"a41fc099ee33fdf2","interfaceReprHash":null,"sourceName":"scripts/DeployPaymentVerifier.s.sol","imports":["build/PaymentVerifier.sol","build/libs/forge-std/src/Base.sol","build/libs/forge-std/src/Script.sol","build/libs/forge-std/src/StdChains.sol","build/libs/forge-std/src/StdCheats.sol","build/libs/forge-std/src/StdConstants.sol","build/libs/forge-std/src/StdJson.sol","build/libs/forge-std/src/StdMath.sol","build/libs/forge-std/src/StdStorage.sol","build/libs/forge-std/src/StdStyle.sol","build/libs/forge-std/src/StdUtils.sol","build/libs/forge-std/src/Vm.sol","build/libs/forge-std/src/console.sol","build/libs/forge-std/src/console2.sol","build/libs/forge-std/src/interfaces/IMulticall3.sol","build/libs/forge-std/src/safeconsole.sol"],"versionRequirement":"^0.8.24","artifacts":{"DeployPaymentVerifier":{"0.8.28":{"default":{"path":"DeployPaymentVerifier.s.sol/DeployPaymentVerifier.json","build_id":"dd88e620fb29e300"}}}},"seenByCompiler":true}},"builds":["dd88e620fb29e300"],"profiles":{"default":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]}},"evmVersion":"prague","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"prague","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}}},"preprocessed":false,"mocks":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# X402 Payment Circuit
|
|
2
|
+
|
|
3
|
+
This directory contains the ZK-SNARK circuit for x402 payment verification.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
- `payment.circom` - Main circuit definition
|
|
8
|
+
- `payment.test.mjs` - Test script for proof generation and verification
|
|
9
|
+
|
|
10
|
+
## Building the Circuit
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm run build:circuit
|
|
14
|
+
# or
|
|
15
|
+
bash scripts/build.sh
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The build script will:
|
|
19
|
+
1. Compile the circuit to R1CS, WASM, and symbol files
|
|
20
|
+
2. Download the Powers of Tau file (14th power)
|
|
21
|
+
3. Perform Groth16 trusted setup (demo mode, not secure for production)
|
|
22
|
+
4. Generate verification key and Solidity verifier contract
|
|
23
|
+
|
|
24
|
+
## Testing
|
|
25
|
+
|
|
26
|
+
To test the circuit with sample inputs:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm run test:circuit
|
|
30
|
+
# or
|
|
31
|
+
node circuits/payment.test.mjs
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The test script:
|
|
35
|
+
- Generates a valid set of test inputs
|
|
36
|
+
- Computes the Poseidon commitment hash
|
|
37
|
+
- Generates a ZK proof using the compiled circuit
|
|
38
|
+
- Verifies the proof using the verification key
|
|
39
|
+
- Validates that the commitment matches the expected value
|
|
40
|
+
|
|
41
|
+
## Circuit Design
|
|
42
|
+
|
|
43
|
+
The X402Payment circuit verifies:
|
|
44
|
+
1. The transaction hash commitment exists
|
|
45
|
+
2. Payment was sent to the specified recipient
|
|
46
|
+
3. Payment amount meets or exceeds the required minimum
|
|
47
|
+
4. Transaction is recent enough (timestamp check)
|
|
48
|
+
|
|
49
|
+
### Inputs
|
|
50
|
+
|
|
51
|
+
**Private inputs:**
|
|
52
|
+
- `txHashPacked[2]` - Transaction hash (2x 128-bit fields = 256-bit total)
|
|
53
|
+
- `recipientLow` - Recipient address lower 128 bits
|
|
54
|
+
- `recipientHigh` - Recipient address higher 32 bits
|
|
55
|
+
- `amount` - Payment amount in USDC smallest unit (6 decimals)
|
|
56
|
+
- `timestamp` - Block timestamp of the transaction
|
|
57
|
+
- `minAmount` - Minimum required payment amount
|
|
58
|
+
|
|
59
|
+
**Public inputs:**
|
|
60
|
+
- `commitment` - Poseidon commitment to all private inputs
|
|
61
|
+
- `minAmountPublic` - Public minimum amount for verification
|
|
62
|
+
- `timestampMax` - Maximum allowed timestamp for the transaction
|
|
63
|
+
|
|
64
|
+
### Constraints
|
|
65
|
+
|
|
66
|
+
1. `minAmount === minAmountPublic` - Private min amount matches public
|
|
67
|
+
2. Commitment computed as `poseidon6(txHashPacked[0], txHashPacked[1], recipientLow, amount, timestamp, minAmount)`
|
|
68
|
+
|
|
69
|
+
## Integration with Lemma
|
|
70
|
+
|
|
71
|
+
The circuit is designed to work with Lemma's `disclosure.condition` API. Once a proof is generated, it can be used to gate access to selectively disclosed attributes behind payment verification.
|
|
72
|
+
|
|
73
|
+
## Next Steps
|
|
74
|
+
|
|
75
|
+
1. Upload the compiled circuit (WASM + zkey) to IPFS
|
|
76
|
+
2. Register the circuit with Lemma using `circuits.register()`
|
|
77
|
+
3. Integrate with the x402 proof generator service
|
|
78
|
+
4. Update the verification key and contract address in the production deployment
|