mirror of
https://github.com/luxfi/mcp.git
synced 2026-09-24 00:25:04 +00:00
The missing "LLM of node operator" half of on-chain AI governance: a read-only MCP server a node exposes so an operator-LLM can query its own chain mid-thought before signing an AIGovernor verdict — chain_state, param_history, receipt_lookup, quorum_status, etc. Read-only by construction (AST gate, no state-mutating verb), bounded calls + per-call timeout, every read at a pinned block. EthCaller is the read-only EVM seam; quorum tally mirrors AIGovernor.settle so the LLM sees the same canonical view the chain will. cmd/aivm-gov-mcp serves it over stdio (drop-in for hanzo-dev / Claude Desktop mcp-servers, like gym.distributed.mcp). Verified: go test ./governance/ = ok (SDKROOT set; CGO secp256k1/gopsutil need the macOS SDK path). Pairs with luxfi/standard ai/governance (AIGovernor/AIApproval/ AIExecute). Future: decomplect transport+evmread to module root as a Surface once a 2nd surface (mining/treasury) lands — held per YAGNI.
1 line
43 KiB
JSON
1 line
43 KiB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"admin_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"computeReceiptId","inputs":[{"name":"modelId","type":"bytes32","internalType":"bytes32"},{"name":"promptHash","type":"bytes32","internalType":"bytes32"},{"name":"outputHash","type":"bytes32","internalType":"bytes32"},{"name":"paymentHash","type":"bytes32","internalType":"bytes32"},{"name":"payer","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"exists","inputs":[{"name":"receiptId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getReceipt","inputs":[{"name":"receiptId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAIThoughtRegistry.ThoughtReceipt","components":[{"name":"modelId","type":"bytes32","internalType":"bytes32"},{"name":"promptHash","type":"bytes32","internalType":"bytes32"},{"name":"outputHash","type":"bytes32","internalType":"bytes32"},{"name":"paymentHash","type":"bytes32","internalType":"bytes32"},{"name":"quorumProof","type":"bytes32","internalType":"bytes32"},{"name":"payer","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"},{"name":"cost","type":"uint96","internalType":"uint96"},{"name":"registeredAt","type":"uint64","internalType":"uint64"},{"name":"blockNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"isRecorder","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"receiptAt","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"receiptCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"modelId","type":"bytes32","internalType":"bytes32"},{"name":"promptHash","type":"bytes32","internalType":"bytes32"},{"name":"outputHash","type":"bytes32","internalType":"bytes32"},{"name":"paymentHash","type":"bytes32","internalType":"bytes32"},{"name":"quorumProof","type":"bytes32","internalType":"bytes32"},{"name":"payer","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"},{"name":"cost","type":"uint96","internalType":"uint96"}],"outputs":[{"name":"receiptId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"setRecorder","inputs":[{"name":"recorder","type":"address","internalType":"address"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferAdmin","inputs":[{"name":"admin_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdminTransferred","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RecorderSet","inputs":[{"name":"recorder","type":"address","indexed":true,"internalType":"address"},{"name":"allowed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ThoughtRegistered","inputs":[{"name":"receiptId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"modelId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"payer","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":false,"internalType":"address"},{"name":"promptHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"paymentHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"quorumProof","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"cost","type":"uint96","indexed":false,"internalType":"uint96"}],"anonymous":false},{"type":"error","name":"NotAdmin","inputs":[]},{"type":"error","name":"NotRecorder","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"ReceiptAlreadyExists","inputs":[{"name":"receiptId","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownReceipt","inputs":[{"name":"receiptId","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroModelId","inputs":[]},{"type":"error","name":"ZeroPayer","inputs":[]},{"type":"error","name":"ZeroPaymentHash","inputs":[]}],"bytecode":{"object":"0x608034608557601f6108e938819003918201601f19168301916001600160401b03831184841017608957808492602094604052833981010312608557516001600160a01b03811680820360855760815750335b600380546001600160a01b0319166001600160a01b039290921691909117905560405161084b908161009e8239f35b6052565b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80630aa6e1631461046157806338a699a414610432578063646ce049146103f55780636b39349f1461036757806375829def146102d45780637f038f3c146102b75780638f18191b1461028a578063cf0933f21461023e578063f851a440146102165763fcecbb6114610087575f80fd5b34610212576020366003190112610212576004355f6101206040516100ab8161076f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152805f52600160205260ff60405f20541615610200575f525f60205261014060405f2067ffffffffffffffff6101208160405161011c8161076f565b6001600160601b03855495868352600181015490602084019182526002810154604085019081526003820154606086019081526004830154906080870191825260018060a01b036005850154169260a0880193845260068501549589600760c08b019760018060a01b038a16895260e08c019960a01c8a5201549b8a826101008f9d019c168c52019b60401c168b526040519c8d525160208d01525160408c01525160608b01525160808a015260018060a01b0390511660a089015260018060a01b0390511660c0880152511660e086015251166101008401525116610120820152f35b63123e9aab60e21b5f5260045260245ffd5b5f80fd5b34610212575f366003190112610212576003546040516001600160a01b039091168152602090f35b346102125760c0366003190112610212576084356001600160a01b038116810361021257610282602091610270610743565b906064356044356024356004356107b8565b604051908152f35b346102125760203660031901126102125760206102a860043561078c565b90549060031b1c604051908152f35b34610212575f366003190112610212576020600254604051908152f35b34610212576020366003190112610212576102ed610759565b6003546001600160a01b0381169133839003610358576001600160a01b03169182156103495782907ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec65f80a36001600160a01b03191617600355005b63d92e233d60e01b5f5260045ffd5b637bfa4b9f60e01b5f5260045ffd5b3461021257604036600319011261021257610380610759565b60243590811515809203610212576003546001600160a01b03163303610358576001600160a01b03169081156103495760207ff36785c4cc49b452cea097975e887a69971f39688674af50cb3b1cb7e18c348291835f526004825260405f2060ff1981541660ff8316179055604051908152a2005b34610212576020366003190112610212576001600160a01b03610416610759565b165f526004602052602060ff60405f2054166040519015158152f35b34610212576020366003190112610212576004355f526001602052602060ff60405f2054166040519015158152f35b34610212576101003660031901126102125760643560243560843560043560443561048a610743565b9360c435936001600160a01b0385168086036102125760e435966001600160601b03881680980361021257335f52600460205260ff60405f20541615610730578515610721578815610712576001600160a01b038116968715610703576104f4918a87878a6107b8565b96875f52600160205260ff60405f2054166106f057875f52600160205260405f20600160ff1982541617905560405161052c8161076f565b8681528867ffffffffffffffff600760208401938885528d604082018b8152606083019182528d608084018b815260a0850191825260c08501938b855260e08601938b855261010087019a8942168c5261012088019a8a43168c525f525f60205260405f209751885551600188015551600287015551600386015551600485015560018060a01b03905116600584019060018060a01b03166001600160601b0360a01b825416179055600683019160018060a01b039060018060a01b03905116166001600160601b0360a01b835416178255518154906001600160601b0360a01b9060a01b169060018060a01b0316179055019251166fffffffffffffffff00000000000000008354925160401b16916fffffffffffffffffffffffffffffffff19161717905560025492680100000000000000008410156106dc5760209989967f125149b7d95fd7630f059a419273a9274d049279bfb9fa461313839786463cc5966106a187600160c0990160025561078c565b81549060031b908b821b915f19901b19161790556040519586528c86015260408501526060840152608083015260a0820152a4604051908152f35b634e487b7160e01b5f52604160045260245ffd5b87634878f58160e11b5f5260045260245ffd5b63a26bef6960e01b5f5260045ffd5b63f6b72f0b60e01b5f5260045ffd5b6342b95c6560e11b5f5260045ffd5b6348d9097960e11b5f523360045260245ffd5b60a435906001600160a01b038216820361021257565b600435906001600160a01b038216820361021257565b610140810190811067ffffffffffffffff8211176106dc57604052565b6002548110156107a45760025f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b9492909391604051946020860196875260408601526060850152608084015260018060a01b031660a083015260018060a01b031660c082015260c0815260e0810181811067ffffffffffffffff8211176106dc576040525190209056fea2646970667358221220e793de9cee8d01b4bc36425d6b30142dac60d59a874b680d5c7ace4ddd43996364736f6c634300081f0033","sourceMap":"1305:5339:16:-:0;;;;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;2726:10;;2703:42;2695:50;1305:5339;;-1:-1:-1;;;;;;1305:5339:16;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;;;;;;;;;;2703:42;;;1305:5339;-1:-1:-1;1305:5339:16;;;;;;-1:-1:-1;1305:5339:16;;;;;-1:-1:-1;1305:5339:16","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80630aa6e1631461046157806338a699a414610432578063646ce049146103f55780636b39349f1461036757806375829def146102d45780637f038f3c146102b75780638f18191b1461028a578063cf0933f21461023e578063f851a440146102165763fcecbb6114610087575f80fd5b34610212576020366003190112610212576004355f6101206040516100ab8161076f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152805f52600160205260ff60405f20541615610200575f525f60205261014060405f2067ffffffffffffffff6101208160405161011c8161076f565b6001600160601b03855495868352600181015490602084019182526002810154604085019081526003820154606086019081526004830154906080870191825260018060a01b036005850154169260a0880193845260068501549589600760c08b019760018060a01b038a16895260e08c019960a01c8a5201549b8a826101008f9d019c168c52019b60401c168b526040519c8d525160208d01525160408c01525160608b01525160808a015260018060a01b0390511660a089015260018060a01b0390511660c0880152511660e086015251166101008401525116610120820152f35b63123e9aab60e21b5f5260045260245ffd5b5f80fd5b34610212575f366003190112610212576003546040516001600160a01b039091168152602090f35b346102125760c0366003190112610212576084356001600160a01b038116810361021257610282602091610270610743565b906064356044356024356004356107b8565b604051908152f35b346102125760203660031901126102125760206102a860043561078c565b90549060031b1c604051908152f35b34610212575f366003190112610212576020600254604051908152f35b34610212576020366003190112610212576102ed610759565b6003546001600160a01b0381169133839003610358576001600160a01b03169182156103495782907ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec65f80a36001600160a01b03191617600355005b63d92e233d60e01b5f5260045ffd5b637bfa4b9f60e01b5f5260045ffd5b3461021257604036600319011261021257610380610759565b60243590811515809203610212576003546001600160a01b03163303610358576001600160a01b03169081156103495760207ff36785c4cc49b452cea097975e887a69971f39688674af50cb3b1cb7e18c348291835f526004825260405f2060ff1981541660ff8316179055604051908152a2005b34610212576020366003190112610212576001600160a01b03610416610759565b165f526004602052602060ff60405f2054166040519015158152f35b34610212576020366003190112610212576004355f526001602052602060ff60405f2054166040519015158152f35b34610212576101003660031901126102125760643560243560843560043560443561048a610743565b9360c435936001600160a01b0385168086036102125760e435966001600160601b03881680980361021257335f52600460205260ff60405f20541615610730578515610721578815610712576001600160a01b038116968715610703576104f4918a87878a6107b8565b96875f52600160205260ff60405f2054166106f057875f52600160205260405f20600160ff1982541617905560405161052c8161076f565b8681528867ffffffffffffffff600760208401938885528d604082018b8152606083019182528d608084018b815260a0850191825260c08501938b855260e08601938b855261010087019a8942168c5261012088019a8a43168c525f525f60205260405f209751885551600188015551600287015551600386015551600485015560018060a01b03905116600584019060018060a01b03166001600160601b0360a01b825416179055600683019160018060a01b039060018060a01b03905116166001600160601b0360a01b835416178255518154906001600160601b0360a01b9060a01b169060018060a01b0316179055019251166fffffffffffffffff00000000000000008354925160401b16916fffffffffffffffffffffffffffffffff19161717905560025492680100000000000000008410156106dc5760209989967f125149b7d95fd7630f059a419273a9274d049279bfb9fa461313839786463cc5966106a187600160c0990160025561078c565b81549060031b908b821b915f19901b19161790556040519586528c86015260408501526060840152608083015260a0820152a4604051908152f35b634e487b7160e01b5f52604160045260245ffd5b87634878f58160e11b5f5260045260245ffd5b63a26bef6960e01b5f5260045ffd5b63f6b72f0b60e01b5f5260045ffd5b6342b95c6560e11b5f5260045ffd5b6348d9097960e11b5f523360045260245ffd5b60a435906001600160a01b038216820361021257565b600435906001600160a01b038216820361021257565b610140810190811067ffffffffffffffff8211176106dc57604052565b6002548110156107a45760025f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b9492909391604051946020860196875260408601526060850152608084015260018060a01b031660a083015260018060a01b031660c082015260c0815260e0810181811067ffffffffffffffff8211176106dc576040525190209056fea2646970667358221220e793de9cee8d01b4bc36425d6b30142dac60d59a874b680d5c7ace4ddd43996364736f6c634300081f0033","sourceMap":"1305:5339:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6112:19;6108:57;;1305:5339;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6108:57;6140:25;;;1305:5339;6140:25;1305:5339;;;;6140:25;1305:5339;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;1734:20;1305:5339;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;;6624:11;1305:5339;;6624:11;:::i;:::-;1305:5339;;;;;;;;;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;;6478:4;1305:5339;;;;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;;;:::i;:::-;3287:5;1305:5339;-1:-1:-1;;;;;1305:5339:16;;;3273:10;:19;;;3269:42;;-1:-1:-1;;;;;1305:5339:16;;3325:20;;3321:46;;3382:31;;;1305:5339;3382:31;;-1:-1:-1;;;;;;1305:5339:16;;3287:5;1305:5339;;3321:46;3100:13;;;1305:5339;3354:13;1305:5339;;3354:13;3269:42;3045:10;;;1305:5339;3301:10;1305:5339;;3301:10;1305:5339;;;;;;-1:-1:-1;;1305:5339:16;;;;;;:::i;:::-;;;;;;;;;;;;3031:5;1305:5339;-1:-1:-1;;;;;1305:5339:16;3017:10;:19;3013:42;;-1:-1:-1;;;;;1305:5339:16;;3069:22;;3065:48;;1305:5339;3168:30;1305:5339;;;;;;;;;;;;;;;;;;;;;;;;;;3168:30;1305:5339;;;;;;;-1:-1:-1;;1305:5339:16;;;;-1:-1:-1;;;;;1305:5339:16;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1305:5339:16;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;4112:10;1305:5339;;;;;;;;;;;4100:23;4096:59;;4451:21;;4447:47;;4508:25;;4504:55;;-1:-1:-1;;;;;1305:5339:16;;;4573:19;;4569:43;;4635:79;;;;;;;:::i;:::-;1305:5339;;;;;;;;;;;;;4724:62;;1305:5339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4855:384;1305:5339;;;4855:384;;1305:5339;;;;4855:384;1305:5339;4855:384;;1305:5339;;;;4855:384;;1305:5339;;;4855:384;1305:5339;4855:384;;1305:5339;;;;4855:384;;1305:5339;;;;4855:384;;1305:5339;;;;;4855:384;;1305:5339;;;;;4855:384;;5165:15;;;1305:5339;;;4855:384;;;5215:12;;;1305:5339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5285:132;1305:5339;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5285:132;1305:5339;;;;;;;;;;;;;;;;;;4724:62;4755:31;;;;1305:5339;4755:31;1305:5339;;;;4755:31;4569:43;4601:11;;;1305:5339;4601:11;1305:5339;;4601:11;4504:55;4542:17;;;1305:5339;4542:17;1305:5339;;4542:17;4447:47;4481:13;;;1305:5339;4481:13;1305:5339;;4481:13;4096:59;4132:23;;;1305:5339;4132:23;4112:10;1305:5339;;;;4132:23;1305:5339;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1305:5339:16;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1305:5339:16;;-1:-1:-1;1305:5339:16;;;-1:-1:-1;1305:5339:16;:::o;:::-;;;;;;;;;;;;5639:329;;;;;;1305:5339;;5887:73;;;;1305:5339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5887:73;;;1305:5339;;;;;;;;;;;;;;5877:84;;5639:329;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","computeReceiptId(bytes32,bytes32,bytes32,bytes32,address,address)":"cf0933f2","exists(bytes32)":"38a699a4","getReceipt(bytes32)":"fcecbb61","isRecorder(address)":"646ce049","receiptAt(uint256)":"8f18191b","receiptCount()":"7f038f3c","register(bytes32,bytes32,bytes32,bytes32,bytes32,address,address,uint96)":"0aa6e163","setRecorder(address,bool)":"6b39349f","transferAdmin(address)":"75829def"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.31+commit.fd3a2265\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NotAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"NotRecorder\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiptId\",\"type\":\"bytes32\"}],\"name\":\"ReceiptAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiptId\",\"type\":\"bytes32\"}],\"name\":\"UnknownReceipt\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroModelId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroPayer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroPaymentHash\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"AdminTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recorder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"RecorderSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"receiptId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"promptHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"outputHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"paymentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"quorumProof\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"cost\",\"type\":\"uint96\"}],\"name\":\"ThoughtRegistered\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"promptHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"outputHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paymentHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"computeReceiptId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiptId\",\"type\":\"bytes32\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiptId\",\"type\":\"bytes32\"}],\"name\":\"getReceipt\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"promptHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"outputHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paymentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quorumProof\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"cost\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"registeredAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct IAIThoughtRegistry.ThoughtReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isRecorder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"receiptAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"receiptCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"promptHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"outputHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paymentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quorumProof\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"cost\",\"type\":\"uint96\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiptId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recorder\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setRecorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Hanzo AI Inc / Lux Network\",\"details\":\"Append-only and replay-safe: a receipt is keyed by the deterministic `receiptId = keccak256(modelId, promptHash, outputHash, paymentHash, payer, operator)`, so the same paid thought cannot be double-recorded and anyone can recompute the id to find it. The registry does not verify the x402 payment or the quorum proof itself \\u2014 those are checked by the facilitator / aiquorum layer upstream; here they are bound together immutably and emitted for the DAO subgraph. No value is held and no external calls are made, so there is no reentrancy surface. `quorumProof` semantics by tier: 0x0300..03): a deterministic marker (e.g. keccak of the canonical token output) \\u2014 every validator can reproduce it. Tier-2 (operator quorum, aiquorum/AIGovernor): the settlement receipt_root / quorum certificate hash.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"admin_\":\"the recorder authority (DAO); msg.sender if zero.\"}}},\"title\":\"AIThoughtRegistry\",\"version\":1},\"userdoc\":{\"events\":{\"ThoughtRegistered(bytes32,bytes32,address,address,bytes32,bytes32,bytes32,bytes32,uint96)\":{\"notice\":\"Emitted when a PoT receipt is recorded. The canonical on-chain \\\"a paid thought happened\\\" event the DAO/dashboards index.\"}},\"kind\":\"user\",\"methods\":{\"admin()\":{\"notice\":\"The authority that adds/removes recorders (the DAO).\"},\"computeReceiptId(bytes32,bytes32,bytes32,bytes32,address,address)\":{\"notice\":\"The deterministic id for a (modelId, promptHash, outputHash, paymentHash, payer, operator) tuple. Pure; recomputable off-chain.\"},\"exists(bytes32)\":{\"notice\":\"Whether a receipt has been recorded.\"},\"getReceipt(bytes32)\":{\"notice\":\"Read a recorded receipt. Reverts if unknown.\"},\"isRecorder(address)\":{\"notice\":\"Addresses permitted to write receipts \\u2014 the settlement / quorum / facilitator contracts that have actually verified the payment and proof upstream. WITHOUT this gate `register` is permissionless, so anyone can forge receipts attributing paid cognition to arbitrary payer/operator and poison the cognition-volume metric, and can front-run the deterministic receiptId to permanently block (and forge the quorumProof of) a real governance receipt. Gating to authorized recorders closes both.\"},\"receiptAt(uint256)\":{\"notice\":\"The receiptId at a given index (registration order), for enumeration.\"},\"receiptCount()\":{\"notice\":\"Total receipts recorded.\"},\"register(bytes32,bytes32,bytes32,bytes32,bytes32,address,address,uint96)\":{\"notice\":\"Record a PoT receipt. `receiptId` is derived deterministically from (modelId, promptHash, outputHash, paymentHash, payer, operator) so the same paid thought cannot be registered twice (replay-safe), and anyone can recompute the id. Reverts if already present or required fields are zero. Returns the receiptId.\"}},\"notice\":\"Minimal, deterministic on-chain ledger of Proof-of-Thought receipts \\u2014 PR1 of the x402 conscious-economy roadmap. See {IAIThoughtRegistry}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ai/governance/AIThoughtRegistry.sol\":\"AIThoughtRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/alchemix-v2/\\\"../lib/ds-test/src/\",\":\\\"forge-std/=lib/alchemix-v2/\\\"lib/forge-std/src/\",\":@account-abstraction/=lib/account-abstraction/contracts/\",\":@balancer-labs/=lib/balancer/../../node_modules/@balancer-labs/\",\":@balancer/=lib/balancer/pkg/\",\":@chainlink/contracts/=lib/chainlink/contracts/\",\":@comet-contracts/=lib/compound-v3/contracts/\",\":@compound-v3/=lib/compound-v3/contracts/\",\":@curve/=lib/curve/contracts/\",\":@forge-std/=lib/compound-v3/forge/lib/forge-std/\",\":@gnosis.pm/safe-contracts/=lib/safe-smart-account/contracts/\",\":@lido/=lib/lido/contracts/\",\":@lux/=contracts/\",\":@luxfi/contracts/=contracts/\",\":@luxfi/erc-3643/contracts/=contracts/securities/erc3643/\",\":@luxfi/lamport/=../lamport/contracts/\",\":@luxfi/markets/=contracts/markets/\",\":@luxfi/onchain-id/contracts/=contracts/securities/onchainid/\",\":@luxfi/oz-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@luxfi/oz/=lib/openzeppelin-contracts/contracts/\",\":@luxfi/standard/=contracts/\",\":@manifoldxyz/=lib/manifoldxyz/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle/contracts/\",\":@prb/math/=lib/prb-math/src/\",\":@pyth-network/=lib/pyth/\",\":@rari-capital/solmate/=lib/solmate/\",\":@reservoir/=lib/core/packages/contracts/contracts/\",\":@safe-global/safe-modules/=lib/safe-modules/modules/\",\":@safe-global/safe-smart-account/=lib/safe-smart-account/contracts/\",\":@seaport/=lib/seaport/contracts/\",\":@solmate/=lib/solmate/src/\",\":@uniswap/lib/=lib/uni-lib/\",\":@uniswap/v2-core/=lib/uni-v2/\",\":@uniswap/v3-core/=lib/uni-v3/\",\":@uniswap/v3-periphery/=lib/uni-v3-periphery/\",\":aave-v3/=lib/aave-v3/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":alchemix-v2/=lib/alchemix-v2/src/\",\":alchemix-v3/=lib/alchemix-v3/\",\":balancer/=lib/balancer/\",\":base64-sol/=lib/base64/\",\":base64/=lib/base64/\",\":chainlink/=lib/chainlink/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":compound-v2/=lib/compound-v2/\",\":compound-v3/=lib/compound-v3/\",\":core/=lib/core/\",\":create2-helpers/=lib/manifoldxyz/lib/create2-helpers/\",\":create2-scripts/=lib/manifoldxyz/lib/create2-helpers/script/\",\":curve/=lib/curve/\",\":ds-test/=lib/clones-with-immutable-args/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":eth-gas-reporter/=lib/compound-v3/node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":gmx-v1/=lib/gmx-v1/contracts/\",\":gmx-v2/=lib/gmx-v2/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":hardhat/=lib/forge-std/src/\",\":layerzero-v2/=lib/layerzero-v2/\",\":libraries-solidity/=lib/manifoldxyz/lib/libraries-solidity/contracts/\",\":lido/=lib/lido/contracts/\",\":manifoldxyz/=lib/manifoldxyz/\",\":morpho-blue/=lib/morpho-blue/\",\":murky/=lib/seaport/lib/murky/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle/=lib/pendle/contracts/\",\":prb-math/=lib/prb-math/src/\",\":pyth/=lib/pyth/\",\":safe-modules/=lib/safe-modules/\",\":safe-smart-account/=lib/safe-smart-account/contracts/\",\":seaport-core/=lib/seaport/lib/seaport-core/\",\":seaport-sol/=lib/seaport/lib/seaport-sol/\",\":seaport-types/=lib/seaport/lib/seaport-types/\",\":seaport/=lib/seaport/\",\":solady/=lib/seaport/lib/solady/\",\":solarray/=lib/seaport/lib/solarray/src/\",\":solmate/=lib/solmate/src/\",\":uni-lib/=lib/uni-lib/contracts/\",\":uni-v2/=lib/uni-v2/contracts/\",\":uni-v3-periphery/=lib/uni-v3-periphery/contracts/\",\":uni-v3/=lib/uni-v3/\"],\"viaIR\":true},\"sources\":{\"contracts/ai/governance/AIThoughtRegistry.sol\":{\"keccak256\":\"0xe5c609c1c5ea4b318f93a8aa66eb35aeff7be34ab1a5401704189c279d6935af\",\"license\":\"BSD-3-Clause\",\"urls\":[\"bzz-raw://82bf0301f3d383a0d2065d964ebc8223813b0dfbd505566c44fa0985f38028b2\",\"dweb:/ipfs/QmeVvTbqJHDdUKiGrk2Sd1H5JLStstCgJkwrhKrSuqS1SE\"]},\"contracts/ai/interfaces/IAIThoughtRegistry.sol\":{\"keccak256\":\"0x70da6b6f4deeea1439c4402ac9d89034ad20890cedd4062b38388ffba21a3f8c\",\"license\":\"BSD-3-Clause\",\"urls\":[\"bzz-raw://5b52bcb0f30fa7a59aa8ba93bd7da1dd77a765992eca9650d54446c6e7a2f49b\",\"dweb:/ipfs/QmXjCvJnfZ6dEFhddV6DNbQJqjrgfUTfuuHXzD7yRRZsux\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.31+commit.fd3a2265"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NotAdmin"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"NotRecorder"},{"inputs":[{"internalType":"bytes32","name":"receiptId","type":"bytes32"}],"type":"error","name":"ReceiptAlreadyExists"},{"inputs":[{"internalType":"bytes32","name":"receiptId","type":"bytes32"}],"type":"error","name":"UnknownReceipt"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[],"type":"error","name":"ZeroModelId"},{"inputs":[],"type":"error","name":"ZeroPayer"},{"inputs":[],"type":"error","name":"ZeroPaymentHash"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"AdminTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"recorder","type":"address","indexed":true},{"internalType":"bool","name":"allowed","type":"bool","indexed":false}],"type":"event","name":"RecorderSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"receiptId","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"modelId","type":"bytes32","indexed":true},{"internalType":"address","name":"payer","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":false},{"internalType":"bytes32","name":"promptHash","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"outputHash","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"paymentHash","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"quorumProof","type":"bytes32","indexed":false},{"internalType":"uint96","name":"cost","type":"uint96","indexed":false}],"type":"event","name":"ThoughtRegistered","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"modelId","type":"bytes32"},{"internalType":"bytes32","name":"promptHash","type":"bytes32"},{"internalType":"bytes32","name":"outputHash","type":"bytes32"},{"internalType":"bytes32","name":"paymentHash","type":"bytes32"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"pure","type":"function","name":"computeReceiptId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"receiptId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"receiptId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getReceipt","outputs":[{"internalType":"struct IAIThoughtRegistry.ThoughtReceipt","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"modelId","type":"bytes32"},{"internalType":"bytes32","name":"promptHash","type":"bytes32"},{"internalType":"bytes32","name":"outputHash","type":"bytes32"},{"internalType":"bytes32","name":"paymentHash","type":"bytes32"},{"internalType":"bytes32","name":"quorumProof","type":"bytes32"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint96","name":"cost","type":"uint96"},{"internalType":"uint64","name":"registeredAt","type":"uint64"},{"internalType":"uint64","name":"blockNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isRecorder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"receiptAt","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"receiptCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"modelId","type":"bytes32"},{"internalType":"bytes32","name":"promptHash","type":"bytes32"},{"internalType":"bytes32","name":"outputHash","type":"bytes32"},{"internalType":"bytes32","name":"paymentHash","type":"bytes32"},{"internalType":"bytes32","name":"quorumProof","type":"bytes32"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint96","name":"cost","type":"uint96"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"receiptId","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"recorder","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setRecorder"},{"inputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"admin_":"the recorder authority (DAO); msg.sender if zero."}}},"version":1},"userdoc":{"kind":"user","methods":{"admin()":{"notice":"The authority that adds/removes recorders (the DAO)."},"computeReceiptId(bytes32,bytes32,bytes32,bytes32,address,address)":{"notice":"The deterministic id for a (modelId, promptHash, outputHash, paymentHash, payer, operator) tuple. Pure; recomputable off-chain."},"exists(bytes32)":{"notice":"Whether a receipt has been recorded."},"getReceipt(bytes32)":{"notice":"Read a recorded receipt. Reverts if unknown."},"isRecorder(address)":{"notice":"Addresses permitted to write receipts — the settlement / quorum / facilitator contracts that have actually verified the payment and proof upstream. WITHOUT this gate `register` is permissionless, so anyone can forge receipts attributing paid cognition to arbitrary payer/operator and poison the cognition-volume metric, and can front-run the deterministic receiptId to permanently block (and forge the quorumProof of) a real governance receipt. Gating to authorized recorders closes both."},"receiptAt(uint256)":{"notice":"The receiptId at a given index (registration order), for enumeration."},"receiptCount()":{"notice":"Total receipts recorded."},"register(bytes32,bytes32,bytes32,bytes32,bytes32,address,address,uint96)":{"notice":"Record a PoT receipt. `receiptId` is derived deterministically from (modelId, promptHash, outputHash, paymentHash, payer, operator) so the same paid thought cannot be registered twice (replay-safe), and anyone can recompute the id. Reverts if already present or required fields are zero. Returns the receiptId."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/alchemix-v2/\"../lib/ds-test/src/","\"forge-std/=lib/alchemix-v2/\"lib/forge-std/src/","@account-abstraction/=lib/account-abstraction/contracts/","@balancer-labs/=lib/balancer/../../node_modules/@balancer-labs/","@balancer/=lib/balancer/pkg/","@chainlink/contracts/=lib/chainlink/contracts/","@comet-contracts/=lib/compound-v3/contracts/","@compound-v3/=lib/compound-v3/contracts/","@curve/=lib/curve/contracts/","@forge-std/=lib/compound-v3/forge/lib/forge-std/","@gnosis.pm/safe-contracts/=lib/safe-smart-account/contracts/","@lido/=lib/lido/contracts/","@lux/=contracts/","@luxfi/contracts/=contracts/","@luxfi/erc-3643/contracts/=contracts/securities/erc3643/","@luxfi/lamport/=../lamport/contracts/","@luxfi/markets/=contracts/markets/","@luxfi/onchain-id/contracts/=contracts/securities/onchainid/","@luxfi/oz-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@luxfi/oz/=lib/openzeppelin-contracts/contracts/","@luxfi/standard/=contracts/","@manifoldxyz/=lib/manifoldxyz/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@pendle/=lib/pendle/contracts/","@prb/math/=lib/prb-math/src/","@pyth-network/=lib/pyth/","@rari-capital/solmate/=lib/solmate/","@reservoir/=lib/core/packages/contracts/contracts/","@safe-global/safe-modules/=lib/safe-modules/modules/","@safe-global/safe-smart-account/=lib/safe-smart-account/contracts/","@seaport/=lib/seaport/contracts/","@solmate/=lib/solmate/src/","@uniswap/lib/=lib/uni-lib/","@uniswap/v2-core/=lib/uni-v2/","@uniswap/v3-core/=lib/uni-v3/","@uniswap/v3-periphery/=lib/uni-v3-periphery/","aave-v3/=lib/aave-v3/","account-abstraction/=lib/account-abstraction/contracts/","alchemix-v2/=lib/alchemix-v2/src/","alchemix-v3/=lib/alchemix-v3/","balancer/=lib/balancer/","base64-sol/=lib/base64/","base64/=lib/base64/","chainlink/=lib/chainlink/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","compound-v2/=lib/compound-v2/","compound-v3/=lib/compound-v3/","core/=lib/core/","create2-helpers/=lib/manifoldxyz/lib/create2-helpers/","create2-scripts/=lib/manifoldxyz/lib/create2-helpers/script/","curve/=lib/curve/","ds-test/=lib/clones-with-immutable-args/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","eth-gas-reporter/=lib/compound-v3/node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","gmx-v1/=lib/gmx-v1/contracts/","gmx-v2/=lib/gmx-v2/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","hardhat/=lib/forge-std/src/","layerzero-v2/=lib/layerzero-v2/","libraries-solidity/=lib/manifoldxyz/lib/libraries-solidity/contracts/","lido/=lib/lido/contracts/","manifoldxyz/=lib/manifoldxyz/","morpho-blue/=lib/morpho-blue/","murky/=lib/seaport/lib/murky/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","pendle/=lib/pendle/contracts/","prb-math/=lib/prb-math/src/","pyth/=lib/pyth/","safe-modules/=lib/safe-modules/","safe-smart-account/=lib/safe-smart-account/contracts/","seaport-core/=lib/seaport/lib/seaport-core/","seaport-sol/=lib/seaport/lib/seaport-sol/","seaport-types/=lib/seaport/lib/seaport-types/","seaport/=lib/seaport/","solady/=lib/seaport/lib/solady/","solarray/=lib/seaport/lib/solarray/src/","solmate/=lib/solmate/src/","uni-lib/=lib/uni-lib/contracts/","uni-v2/=lib/uni-v2/contracts/","uni-v3-periphery/=lib/uni-v3-periphery/contracts/","uni-v3/=lib/uni-v3/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ai/governance/AIThoughtRegistry.sol":"AIThoughtRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ai/governance/AIThoughtRegistry.sol":{"keccak256":"0xe5c609c1c5ea4b318f93a8aa66eb35aeff7be34ab1a5401704189c279d6935af","urls":["bzz-raw://82bf0301f3d383a0d2065d964ebc8223813b0dfbd505566c44fa0985f38028b2","dweb:/ipfs/QmeVvTbqJHDdUKiGrk2Sd1H5JLStstCgJkwrhKrSuqS1SE"],"license":"BSD-3-Clause"},"contracts/ai/interfaces/IAIThoughtRegistry.sol":{"keccak256":"0x70da6b6f4deeea1439c4402ac9d89034ad20890cedd4062b38388ffba21a3f8c","urls":["bzz-raw://5b52bcb0f30fa7a59aa8ba93bd7da1dd77a765992eca9650d54446c6e7a2f49b","dweb:/ipfs/QmXjCvJnfZ6dEFhddV6DNbQJqjrgfUTfuuHXzD7yRRZsux"],"license":"BSD-3-Clause"}},"version":1},"id":16} |