@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.
Files changed (126) hide show
  1. package/broadcast/DeployPaymentVerifier.s.sol/10143/run-1775996174982.json +34 -0
  2. package/broadcast/DeployPaymentVerifier.s.sol/10143/run-1775996423983.json +51 -0
  3. package/broadcast/DeployPaymentVerifier.s.sol/10143/run-1775996907850.json +51 -0
  4. package/broadcast/DeployPaymentVerifier.s.sol/10143/run-latest.json +51 -0
  5. package/cache/DeployPaymentVerifier.s.sol/10143/run-1775996174982.json +7 -0
  6. package/cache/DeployPaymentVerifier.s.sol/10143/run-1775996423983.json +7 -0
  7. package/cache/DeployPaymentVerifier.s.sol/10143/run-1775996907850.json +7 -0
  8. package/cache/DeployPaymentVerifier.s.sol/10143/run-latest.json +7 -0
  9. package/cache/solidity-files-cache.json +1 -0
  10. package/circuits/README.md +78 -0
  11. package/circuits/payment-comprehensive.test.mjs +272 -0
  12. package/circuits/payment.circom +89 -0
  13. package/circuits/payment.test.mjs +173 -0
  14. package/dist/index.d.ts +48 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +83 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/proof-generator.d.ts +26 -0
  19. package/dist/proof-generator.d.ts.map +1 -0
  20. package/dist/proof-generator.js +154 -0
  21. package/dist/proof-generator.js.map +1 -0
  22. package/dist/proof-generator.test.d.ts +7 -0
  23. package/dist/proof-generator.test.d.ts.map +1 -0
  24. package/dist/proof-generator.test.js +121 -0
  25. package/dist/proof-generator.test.js.map +1 -0
  26. package/dist/transaction-watcher.d.ts +42 -0
  27. package/dist/transaction-watcher.d.ts.map +1 -0
  28. package/dist/transaction-watcher.js +88 -0
  29. package/dist/transaction-watcher.js.map +1 -0
  30. package/dist/transaction-watcher.test.d.ts +7 -0
  31. package/dist/transaction-watcher.test.d.ts.map +1 -0
  32. package/dist/transaction-watcher.test.js +111 -0
  33. package/dist/transaction-watcher.test.js.map +1 -0
  34. package/dist/types.d.ts +76 -0
  35. package/dist/types.d.ts.map +1 -0
  36. package/dist/types.js +2 -0
  37. package/dist/types.js.map +1 -0
  38. package/foundry.lock +11 -0
  39. package/foundry.toml +16 -0
  40. package/lib/forge-std/.gitattributes +1 -0
  41. package/lib/forge-std/.github/CODEOWNERS +1 -0
  42. package/lib/forge-std/.github/dependabot.yml +6 -0
  43. package/lib/forge-std/.github/workflows/ci.yml +161 -0
  44. package/lib/forge-std/.github/workflows/sync.yml +36 -0
  45. package/lib/forge-std/CONTRIBUTING.md +193 -0
  46. package/lib/forge-std/LICENSE-APACHE +203 -0
  47. package/lib/forge-std/LICENSE-MIT +25 -0
  48. package/lib/forge-std/README.md +314 -0
  49. package/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
  50. package/lib/forge-std/foundry.toml +18 -0
  51. package/lib/forge-std/package.json +16 -0
  52. package/lib/forge-std/scripts/vm.py +636 -0
  53. package/lib/forge-std/src/Base.sol +48 -0
  54. package/lib/forge-std/src/Config.sol +60 -0
  55. package/lib/forge-std/src/LibVariable.sol +477 -0
  56. package/lib/forge-std/src/Script.sol +28 -0
  57. package/lib/forge-std/src/StdAssertions.sol +1300 -0
  58. package/lib/forge-std/src/StdChains.sol +303 -0
  59. package/lib/forge-std/src/StdCheats.sol +825 -0
  60. package/lib/forge-std/src/StdConfig.sol +632 -0
  61. package/lib/forge-std/src/StdConstants.sol +30 -0
  62. package/lib/forge-std/src/StdError.sol +15 -0
  63. package/lib/forge-std/src/StdInvariant.sol +161 -0
  64. package/lib/forge-std/src/StdJson.sol +275 -0
  65. package/lib/forge-std/src/StdMath.sol +47 -0
  66. package/lib/forge-std/src/StdStorage.sol +476 -0
  67. package/lib/forge-std/src/StdStyle.sol +333 -0
  68. package/lib/forge-std/src/StdToml.sol +275 -0
  69. package/lib/forge-std/src/StdUtils.sol +200 -0
  70. package/lib/forge-std/src/Test.sol +32 -0
  71. package/lib/forge-std/src/Vm.sol +2533 -0
  72. package/lib/forge-std/src/console.sol +1551 -0
  73. package/lib/forge-std/src/console2.sol +4 -0
  74. package/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
  75. package/lib/forge-std/src/interfaces/IERC165.sol +12 -0
  76. package/lib/forge-std/src/interfaces/IERC20.sol +43 -0
  77. package/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
  78. package/lib/forge-std/src/interfaces/IERC6909.sol +72 -0
  79. package/lib/forge-std/src/interfaces/IERC721.sol +164 -0
  80. package/lib/forge-std/src/interfaces/IERC7540.sol +145 -0
  81. package/lib/forge-std/src/interfaces/IERC7575.sol +241 -0
  82. package/lib/forge-std/src/interfaces/IMulticall3.sol +68 -0
  83. package/lib/forge-std/src/safeconsole.sol +13248 -0
  84. package/lib/forge-std/test/CommonBase.t.sol +44 -0
  85. package/lib/forge-std/test/Config.t.sol +381 -0
  86. package/lib/forge-std/test/LibVariable.t.sol +452 -0
  87. package/lib/forge-std/test/StdAssertions.t.sol +141 -0
  88. package/lib/forge-std/test/StdChains.t.sol +227 -0
  89. package/lib/forge-std/test/StdCheats.t.sol +638 -0
  90. package/lib/forge-std/test/StdConstants.t.sol +38 -0
  91. package/lib/forge-std/test/StdError.t.sol +119 -0
  92. package/lib/forge-std/test/StdJson.t.sol +49 -0
  93. package/lib/forge-std/test/StdMath.t.sol +202 -0
  94. package/lib/forge-std/test/StdStorage.t.sol +532 -0
  95. package/lib/forge-std/test/StdStyle.t.sol +110 -0
  96. package/lib/forge-std/test/StdToml.t.sol +49 -0
  97. package/lib/forge-std/test/StdUtils.t.sol +342 -0
  98. package/lib/forge-std/test/Vm.t.sol +18 -0
  99. package/lib/forge-std/test/compilation/CompilationScript.sol +8 -0
  100. package/lib/forge-std/test/compilation/CompilationScriptBase.sol +8 -0
  101. package/lib/forge-std/test/compilation/CompilationTest.sol +8 -0
  102. package/lib/forge-std/test/compilation/CompilationTestBase.sol +8 -0
  103. package/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
  104. package/lib/forge-std/test/fixtures/config.toml +81 -0
  105. package/lib/forge-std/test/fixtures/test.json +8 -0
  106. package/lib/forge-std/test/fixtures/test.toml +6 -0
  107. package/package.json +55 -0
  108. package/package.json.backup +55 -0
  109. package/scripts/DeployPaymentVerifier.s.sol +18 -0
  110. package/scripts/build.sh +61 -0
  111. package/scripts/deploy.sh +65 -0
  112. package/scripts/fix-verifier.mjs +64 -0
  113. package/scripts/register-circuit.ts +213 -0
  114. package/scripts/test-with-circuit.mjs +88 -0
  115. package/src/index.ts +115 -0
  116. package/src/proof-generator.test.ts +139 -0
  117. package/src/proof-generator.ts +220 -0
  118. package/src/transaction-watcher.test.ts +153 -0
  119. package/src/transaction-watcher.ts +154 -0
  120. package/src/types.ts +110 -0
  121. package/tsconfig.json +14 -0
  122. package/tsconfig.tsbuildinfo +1 -0
  123. package/vitest.config.ts +18 -0
  124. package/workers/x402-facilitator/src/index.ts +582 -0
  125. package/workers/x402-facilitator/src/x402-env.d.ts +25 -0
  126. 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,7 @@
1
+ {
2
+ "transactions": [
3
+ {
4
+ "rpc": "https://testnet-rpc.monad.xyz"
5
+ }
6
+ ]
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "transactions": [
3
+ {
4
+ "rpc": "https://testnet-rpc.monad.xyz"
5
+ }
6
+ ]
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "transactions": [
3
+ {
4
+ "rpc": "https://testnet-rpc.monad.xyz"
5
+ }
6
+ ]
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "transactions": [
3
+ {
4
+ "rpc": "https://testnet-rpc.monad.xyz"
5
+ }
6
+ ]
7
+ }
@@ -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