@clawlogic/sdk 0.0.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 (62) hide show
  1. package/README.md +227 -0
  2. package/dist/abis/agentIdentityRegistryAbi.d.ts +532 -0
  3. package/dist/abis/agentIdentityRegistryAbi.d.ts.map +1 -0
  4. package/dist/abis/agentIdentityRegistryAbi.js +2 -0
  5. package/dist/abis/agentIdentityRegistryAbi.js.map +1 -0
  6. package/dist/abis/agentRegistryAbi.d.ts +265 -0
  7. package/dist/abis/agentRegistryAbi.d.ts.map +1 -0
  8. package/dist/abis/agentRegistryAbi.js +151 -0
  9. package/dist/abis/agentRegistryAbi.js.map +1 -0
  10. package/dist/abis/agentReputationRegistryAbi.d.ts +224 -0
  11. package/dist/abis/agentReputationRegistryAbi.d.ts.map +1 -0
  12. package/dist/abis/agentReputationRegistryAbi.js +2 -0
  13. package/dist/abis/agentReputationRegistryAbi.js.map +1 -0
  14. package/dist/abis/agentValidationRegistryAbi.d.ts +281 -0
  15. package/dist/abis/agentValidationRegistryAbi.d.ts.map +1 -0
  16. package/dist/abis/agentValidationRegistryAbi.js +2 -0
  17. package/dist/abis/agentValidationRegistryAbi.js.map +1 -0
  18. package/dist/abis/outcomeTokenAbi.d.ts +255 -0
  19. package/dist/abis/outcomeTokenAbi.d.ts.map +1 -0
  20. package/dist/abis/outcomeTokenAbi.js +152 -0
  21. package/dist/abis/outcomeTokenAbi.js.map +1 -0
  22. package/dist/abis/predictionMarketHookAbi.d.ts +396 -0
  23. package/dist/abis/predictionMarketHookAbi.d.ts.map +1 -0
  24. package/dist/abis/predictionMarketHookAbi.js +212 -0
  25. package/dist/abis/predictionMarketHookAbi.js.map +1 -0
  26. package/dist/client.d.ts +241 -0
  27. package/dist/client.d.ts.map +1 -0
  28. package/dist/client.js +569 -0
  29. package/dist/client.js.map +1 -0
  30. package/dist/config.d.ts +84 -0
  31. package/dist/config.d.ts.map +1 -0
  32. package/dist/config.js +134 -0
  33. package/dist/config.js.map +1 -0
  34. package/dist/identity.d.ts +133 -0
  35. package/dist/identity.d.ts.map +1 -0
  36. package/dist/identity.js +314 -0
  37. package/dist/identity.js.map +1 -0
  38. package/dist/index.d.ts +13 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +19 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/types.d.ts +191 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +11 -0
  45. package/dist/types.js.map +1 -0
  46. package/package.json +51 -0
  47. package/src/abis/.gitkeep +0 -0
  48. package/src/abis/AgentRegistry.json +1 -0
  49. package/src/abis/ENSAgentHelper.json +1 -0
  50. package/src/abis/OutcomeToken.json +1 -0
  51. package/src/abis/PredictionMarketHook.json +1 -0
  52. package/src/abis/agentIdentityRegistryAbi.ts +1 -0
  53. package/src/abis/agentRegistryAbi.ts +150 -0
  54. package/src/abis/agentReputationRegistryAbi.ts +1 -0
  55. package/src/abis/agentValidationRegistryAbi.ts +1 -0
  56. package/src/abis/outcomeTokenAbi.ts +153 -0
  57. package/src/abis/predictionMarketHookAbi.ts +214 -0
  58. package/src/client.ts +722 -0
  59. package/src/config.ts +161 -0
  60. package/src/identity.ts +395 -0
  61. package/src/index.ts +48 -0
  62. package/src/types.ts +207 -0
@@ -0,0 +1 @@
1
+ export const agentIdentityRegistryAbi = [{"type":"constructor","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"agentExists","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAgentMetadata","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintAgentIdentity","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"metadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"agentId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOfAgent","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAgents","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateAgentMetadata","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"},{"name":"newMetadataURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AgentIdentityMinted","inputs":[{"name":"agentId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"metadataURI","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"AgentMetadataUpdated","inputs":[{"name":"agentId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newMetadataURI","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AgentDoesNotExist","inputs":[]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"EmptyMetadataURI","inputs":[]},{"type":"error","name":"OnlyAuthorizedMinter","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ZeroAddress","inputs":[]}] as const;
@@ -0,0 +1,150 @@
1
+ /**
2
+ * ABI for the AgentRegistry contract.
3
+ * Extracted from the Foundry build artifact.
4
+ *
5
+ * Phase 1.1: Includes ENS identity integration (registerAgentWithENS, getAgentByENS,
6
+ * i_ensRegistry, ENSLinked event, ENS-related errors).
7
+ * Phase 1.3: Includes Phala TEE attestation integration (registerAgentWithENSAndTEE,
8
+ * i_validationRegistry, ValidationRegistryNotConfigured error).
9
+ */
10
+ export const agentRegistryAbi = [
11
+ {
12
+ type: 'constructor',
13
+ inputs: [
14
+ { name: 'ensRegistry_', type: 'address', internalType: 'contract IENS' },
15
+ { name: 'validationRegistry_', type: 'address', internalType: 'contract IERC8004AgentValidation' },
16
+ ],
17
+ stateMutability: 'nonpayable',
18
+ },
19
+ {
20
+ type: 'function',
21
+ name: 'getAgent',
22
+ inputs: [{ name: 'addr', type: 'address', internalType: 'address' }],
23
+ outputs: [
24
+ {
25
+ name: '',
26
+ type: 'tuple',
27
+ internalType: 'struct IAgentRegistry.Agent',
28
+ components: [
29
+ { name: 'name', type: 'string', internalType: 'string' },
30
+ { name: 'attestation', type: 'bytes', internalType: 'bytes' },
31
+ { name: 'registeredAt', type: 'uint256', internalType: 'uint256' },
32
+ { name: 'exists', type: 'bool', internalType: 'bool' },
33
+ { name: 'ensNode', type: 'bytes32', internalType: 'bytes32' },
34
+ ],
35
+ },
36
+ ],
37
+ stateMutability: 'view',
38
+ },
39
+ {
40
+ type: 'function',
41
+ name: 'getAgentAddresses',
42
+ inputs: [],
43
+ outputs: [{ name: '', type: 'address[]', internalType: 'address[]' }],
44
+ stateMutability: 'view',
45
+ },
46
+ {
47
+ type: 'function',
48
+ name: 'getAgentByENS',
49
+ inputs: [{ name: 'ensNode', type: 'bytes32', internalType: 'bytes32' }],
50
+ outputs: [{ name: '', type: 'address', internalType: 'address' }],
51
+ stateMutability: 'view',
52
+ },
53
+ {
54
+ type: 'function',
55
+ name: 'getAgentCount',
56
+ inputs: [],
57
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
58
+ stateMutability: 'view',
59
+ },
60
+ {
61
+ type: 'function',
62
+ name: 'i_ensRegistry',
63
+ inputs: [],
64
+ outputs: [{ name: '', type: 'address', internalType: 'contract IENS' }],
65
+ stateMutability: 'view',
66
+ },
67
+ {
68
+ type: 'function',
69
+ name: 'isAgent',
70
+ inputs: [{ name: 'addr', type: 'address', internalType: 'address' }],
71
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
72
+ stateMutability: 'view',
73
+ },
74
+ {
75
+ type: 'function',
76
+ name: 'registerAgent',
77
+ inputs: [
78
+ { name: 'name', type: 'string', internalType: 'string' },
79
+ { name: 'attestation', type: 'bytes', internalType: 'bytes' },
80
+ ],
81
+ outputs: [],
82
+ stateMutability: 'nonpayable',
83
+ },
84
+ {
85
+ type: 'function',
86
+ name: 'registerAgentWithENS',
87
+ inputs: [
88
+ { name: 'name', type: 'string', internalType: 'string' },
89
+ { name: 'attestation', type: 'bytes', internalType: 'bytes' },
90
+ { name: 'ensNode', type: 'bytes32', internalType: 'bytes32' },
91
+ ],
92
+ outputs: [],
93
+ stateMutability: 'nonpayable',
94
+ },
95
+ {
96
+ type: 'function',
97
+ name: 'registerAgentWithENSAndTEE',
98
+ inputs: [
99
+ { name: 'name', type: 'string', internalType: 'string' },
100
+ { name: 'attestation', type: 'bytes', internalType: 'bytes' },
101
+ { name: 'ensNode', type: 'bytes32', internalType: 'bytes32' },
102
+ { name: 'agentId', type: 'uint256', internalType: 'uint256' },
103
+ { name: 'attestationQuote', type: 'bytes', internalType: 'bytes' },
104
+ { name: 'publicKey', type: 'bytes', internalType: 'bytes' },
105
+ ],
106
+ outputs: [],
107
+ stateMutability: 'nonpayable',
108
+ },
109
+ {
110
+ type: 'function',
111
+ name: 'i_validationRegistry',
112
+ inputs: [],
113
+ outputs: [{ name: '', type: 'address', internalType: 'contract IERC8004AgentValidation' }],
114
+ stateMutability: 'view',
115
+ },
116
+ {
117
+ type: 'function',
118
+ name: 's_agentCount',
119
+ inputs: [],
120
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
121
+ stateMutability: 'view',
122
+ },
123
+ {
124
+ type: 'event',
125
+ name: 'AgentRegistered',
126
+ inputs: [
127
+ { name: 'agent', type: 'address', indexed: true, internalType: 'address' },
128
+ { name: 'name', type: 'string', indexed: false, internalType: 'string' },
129
+ ],
130
+ anonymous: false,
131
+ },
132
+ {
133
+ type: 'event',
134
+ name: 'ENSLinked',
135
+ inputs: [
136
+ { name: 'agent', type: 'address', indexed: true, internalType: 'address' },
137
+ { name: 'ensNode', type: 'bytes32', indexed: true, internalType: 'bytes32' },
138
+ { name: 'name', type: 'string', indexed: false, internalType: 'string' },
139
+ ],
140
+ anonymous: false,
141
+ },
142
+ { type: 'error', name: 'AgentNotFound', inputs: [] },
143
+ { type: 'error', name: 'AlreadyRegistered', inputs: [] },
144
+ { type: 'error', name: 'ENSNodeAlreadyLinked', inputs: [] },
145
+ { type: 'error', name: 'ENSNodeNotLinked', inputs: [] },
146
+ { type: 'error', name: 'ENSNotConfigured', inputs: [] },
147
+ { type: 'error', name: 'EmptyName', inputs: [] },
148
+ { type: 'error', name: 'NotENSOwner', inputs: [] },
149
+ { type: 'error', name: 'ValidationRegistryNotConfigured', inputs: [] },
150
+ ] as const;
@@ -0,0 +1 @@
1
+ export const agentReputationRegistryAbi = [{"type":"constructor","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"identityRegistry","type":"address","internalType":"contract IERC8004AgentIdentity"},{"name":"recorder","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAccuracy","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRecorder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getReputationScore","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC8004AgentReputation.ReputationScore","components":[{"name":"totalAssertions","type":"uint64","internalType":"uint64"},{"name":"successfulAssertions","type":"uint64","internalType":"uint64"},{"name":"totalVolume","type":"uint128","internalType":"uint128"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"i_identityRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC8004AgentIdentity"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recordAssertion","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"},{"name":"marketId","type":"bytes32","internalType":"bytes32"},{"name":"successful","type":"bool","internalType":"bool"},{"name":"volume","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecorder","inputs":[{"name":"newRecorder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AssertionRecorded","inputs":[{"name":"agentId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"marketId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"successful","type":"bool","indexed":false,"internalType":"bool"},{"name":"volume","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RecorderUpdated","inputs":[{"name":"oldRecorder","type":"address","indexed":true,"internalType":"address"},{"name":"newRecorder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AgentDoesNotExist","inputs":[]},{"type":"error","name":"OnlyRecorder","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ZeroAddress","inputs":[]}] as const;
@@ -0,0 +1 @@
1
+ export const agentValidationRegistryAbi = [{"type":"constructor","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"identityRegistry","type":"address","internalType":"contract IERC8004AgentIdentity"}],"stateMutability":"nonpayable"},{"type":"function","name":"getValidation","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"},{"name":"validationType","type":"uint8","internalType":"enum IERC8004AgentValidation.ValidationType"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC8004AgentValidation.Validation","components":[{"name":"validationType","type":"uint8","internalType":"enum IERC8004AgentValidation.ValidationType"},{"name":"valid","type":"bool","internalType":"bool"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getVerifier","inputs":[{"name":"validationType","type":"uint8","internalType":"enum IERC8004AgentValidation.ValidationType"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"i_identityRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC8004AgentIdentity"}],"stateMutability":"view"},{"type":"function","name":"isValidated","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"},{"name":"validationType","type":"uint8","internalType":"enum IERC8004AgentValidation.ValidationType"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVerifier","inputs":[{"name":"validationType","type":"uint8","internalType":"enum IERC8004AgentValidation.ValidationType"},{"name":"verifier","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitValidation","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes","internalType":"bytes"},{"name":"validationType","type":"uint8","internalType":"enum IERC8004AgentValidation.ValidationType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyValidation","inputs":[{"name":"agentId","type":"uint256","internalType":"uint256"},{"name":"validationType","type":"uint8","internalType":"enum IERC8004AgentValidation.ValidationType"},{"name":"valid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidationSubmitted","inputs":[{"name":"agentId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"validationType","type":"uint8","indexed":true,"internalType":"enum IERC8004AgentValidation.ValidationType"},{"name":"proof","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ValidationVerified","inputs":[{"name":"agentId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"validationType","type":"uint8","indexed":true,"internalType":"enum IERC8004AgentValidation.ValidationType"},{"name":"valid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"VerifierSet","inputs":[{"name":"validationType","type":"uint8","indexed":true,"internalType":"enum IERC8004AgentValidation.ValidationType"},{"name":"verifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AgentDoesNotExist","inputs":[]},{"type":"error","name":"EmptyProof","inputs":[]},{"type":"error","name":"InvalidValidationType","inputs":[]},{"type":"error","name":"OnlyOwner","inputs":[]},{"type":"error","name":"OnlyVerifier","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ValidationNotSubmitted","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}] as const;
@@ -0,0 +1,153 @@
1
+ /**
2
+ * ABI for the OutcomeToken (ERC-20) contract.
3
+ * Extracted from the Foundry build artifact.
4
+ * Includes standard ERC-20 functions plus mint/burn and the hook getter.
5
+ */
6
+ export const outcomeTokenAbi = [
7
+ {
8
+ type: 'function',
9
+ name: 'allowance',
10
+ inputs: [
11
+ { name: 'owner', type: 'address', internalType: 'address' },
12
+ { name: 'spender', type: 'address', internalType: 'address' },
13
+ ],
14
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
15
+ stateMutability: 'view',
16
+ },
17
+ {
18
+ type: 'function',
19
+ name: 'approve',
20
+ inputs: [
21
+ { name: 'spender', type: 'address', internalType: 'address' },
22
+ { name: 'value', type: 'uint256', internalType: 'uint256' },
23
+ ],
24
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
25
+ stateMutability: 'nonpayable',
26
+ },
27
+ {
28
+ type: 'function',
29
+ name: 'balanceOf',
30
+ inputs: [{ name: 'account', type: 'address', internalType: 'address' }],
31
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
32
+ stateMutability: 'view',
33
+ },
34
+ {
35
+ type: 'function',
36
+ name: 'decimals',
37
+ inputs: [],
38
+ outputs: [{ name: '', type: 'uint8', internalType: 'uint8' }],
39
+ stateMutability: 'view',
40
+ },
41
+ {
42
+ type: 'function',
43
+ name: 'hook',
44
+ inputs: [],
45
+ outputs: [{ name: '', type: 'address', internalType: 'address' }],
46
+ stateMutability: 'view',
47
+ },
48
+ {
49
+ type: 'function',
50
+ name: 'name',
51
+ inputs: [],
52
+ outputs: [{ name: '', type: 'string', internalType: 'string' }],
53
+ stateMutability: 'view',
54
+ },
55
+ {
56
+ type: 'function',
57
+ name: 'symbol',
58
+ inputs: [],
59
+ outputs: [{ name: '', type: 'string', internalType: 'string' }],
60
+ stateMutability: 'view',
61
+ },
62
+ {
63
+ type: 'function',
64
+ name: 'totalSupply',
65
+ inputs: [],
66
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
67
+ stateMutability: 'view',
68
+ },
69
+ {
70
+ type: 'function',
71
+ name: 'transfer',
72
+ inputs: [
73
+ { name: 'to', type: 'address', internalType: 'address' },
74
+ { name: 'value', type: 'uint256', internalType: 'uint256' },
75
+ ],
76
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
77
+ stateMutability: 'nonpayable',
78
+ },
79
+ {
80
+ type: 'function',
81
+ name: 'transferFrom',
82
+ inputs: [
83
+ { name: 'from', type: 'address', internalType: 'address' },
84
+ { name: 'to', type: 'address', internalType: 'address' },
85
+ { name: 'value', type: 'uint256', internalType: 'uint256' },
86
+ ],
87
+ outputs: [{ name: '', type: 'bool', internalType: 'bool' }],
88
+ stateMutability: 'nonpayable',
89
+ },
90
+
91
+ // ── Events ─────────────────────────────────────────────────────────
92
+ {
93
+ type: 'event',
94
+ name: 'Approval',
95
+ inputs: [
96
+ { name: 'owner', type: 'address', indexed: true, internalType: 'address' },
97
+ { name: 'spender', type: 'address', indexed: true, internalType: 'address' },
98
+ { name: 'value', type: 'uint256', indexed: false, internalType: 'uint256' },
99
+ ],
100
+ anonymous: false,
101
+ },
102
+ {
103
+ type: 'event',
104
+ name: 'Transfer',
105
+ inputs: [
106
+ { name: 'from', type: 'address', indexed: true, internalType: 'address' },
107
+ { name: 'to', type: 'address', indexed: true, internalType: 'address' },
108
+ { name: 'value', type: 'uint256', indexed: false, internalType: 'uint256' },
109
+ ],
110
+ anonymous: false,
111
+ },
112
+
113
+ // ── Errors ─────────────────────────────────────────────────────────
114
+ {
115
+ type: 'error',
116
+ name: 'ERC20InsufficientAllowance',
117
+ inputs: [
118
+ { name: 'spender', type: 'address', internalType: 'address' },
119
+ { name: 'allowance', type: 'uint256', internalType: 'uint256' },
120
+ { name: 'needed', type: 'uint256', internalType: 'uint256' },
121
+ ],
122
+ },
123
+ {
124
+ type: 'error',
125
+ name: 'ERC20InsufficientBalance',
126
+ inputs: [
127
+ { name: 'sender', type: 'address', internalType: 'address' },
128
+ { name: 'balance', type: 'uint256', internalType: 'uint256' },
129
+ { name: 'needed', type: 'uint256', internalType: 'uint256' },
130
+ ],
131
+ },
132
+ {
133
+ type: 'error',
134
+ name: 'ERC20InvalidApprover',
135
+ inputs: [{ name: 'approver', type: 'address', internalType: 'address' }],
136
+ },
137
+ {
138
+ type: 'error',
139
+ name: 'ERC20InvalidReceiver',
140
+ inputs: [{ name: 'receiver', type: 'address', internalType: 'address' }],
141
+ },
142
+ {
143
+ type: 'error',
144
+ name: 'ERC20InvalidSender',
145
+ inputs: [{ name: 'sender', type: 'address', internalType: 'address' }],
146
+ },
147
+ {
148
+ type: 'error',
149
+ name: 'ERC20InvalidSpender',
150
+ inputs: [{ name: 'spender', type: 'address', internalType: 'address' }],
151
+ },
152
+ { type: 'error', name: 'OnlyHook', inputs: [] },
153
+ ] as const;
@@ -0,0 +1,214 @@
1
+ /**
2
+ * ABI for the PredictionMarketHook contract.
3
+ * Extracted from the Foundry build artifact.
4
+ * Only includes the functions, events, and errors relevant to the SDK
5
+ * (excludes V4 hook callbacks like beforeSwap, afterSwap, etc.).
6
+ */
7
+ export const predictionMarketHookAbi = [
8
+ // ── Market Lifecycle Functions ──────────────────────────────────────
9
+ {
10
+ type: 'function',
11
+ name: 'initializeMarket',
12
+ inputs: [
13
+ { name: 'outcome1', type: 'string', internalType: 'string' },
14
+ { name: 'outcome2', type: 'string', internalType: 'string' },
15
+ { name: 'description', type: 'string', internalType: 'string' },
16
+ { name: 'reward', type: 'uint256', internalType: 'uint256' },
17
+ { name: 'requiredBond', type: 'uint256', internalType: 'uint256' },
18
+ ],
19
+ outputs: [{ name: 'marketId', type: 'bytes32', internalType: 'bytes32' }],
20
+ stateMutability: 'nonpayable',
21
+ },
22
+ {
23
+ type: 'function',
24
+ name: 'mintOutcomeTokens',
25
+ inputs: [{ name: 'marketId', type: 'bytes32', internalType: 'bytes32' }],
26
+ outputs: [],
27
+ stateMutability: 'payable',
28
+ },
29
+ {
30
+ type: 'function',
31
+ name: 'assertMarket',
32
+ inputs: [
33
+ { name: 'marketId', type: 'bytes32', internalType: 'bytes32' },
34
+ { name: 'assertedOutcome', type: 'string', internalType: 'string' },
35
+ ],
36
+ outputs: [],
37
+ stateMutability: 'nonpayable',
38
+ },
39
+ {
40
+ type: 'function',
41
+ name: 'settleOutcomeTokens',
42
+ inputs: [{ name: 'marketId', type: 'bytes32', internalType: 'bytes32' }],
43
+ outputs: [],
44
+ stateMutability: 'nonpayable',
45
+ },
46
+
47
+ // ── View / Read Functions ──────────────────────────────────────────
48
+ {
49
+ type: 'function',
50
+ name: 'getMarket',
51
+ inputs: [{ name: 'marketId', type: 'bytes32', internalType: 'bytes32' }],
52
+ outputs: [
53
+ { name: 'description', type: 'string', internalType: 'string' },
54
+ { name: 'outcome1', type: 'string', internalType: 'string' },
55
+ { name: 'outcome2', type: 'string', internalType: 'string' },
56
+ { name: 'outcome1Token', type: 'address', internalType: 'address' },
57
+ { name: 'outcome2Token', type: 'address', internalType: 'address' },
58
+ { name: 'reward', type: 'uint256', internalType: 'uint256' },
59
+ { name: 'requiredBond', type: 'uint256', internalType: 'uint256' },
60
+ { name: 'resolved', type: 'bool', internalType: 'bool' },
61
+ { name: 'assertedOutcomeId', type: 'bytes32', internalType: 'bytes32' },
62
+ { name: 'poolId', type: 'bytes32', internalType: 'PoolId' },
63
+ { name: 'totalCollateral', type: 'uint256', internalType: 'uint256' },
64
+ ],
65
+ stateMutability: 'view',
66
+ },
67
+ {
68
+ type: 'function',
69
+ name: 'getMarketIds',
70
+ inputs: [],
71
+ outputs: [{ name: '', type: 'bytes32[]', internalType: 'bytes32[]' }],
72
+ stateMutability: 'view',
73
+ },
74
+ {
75
+ type: 'function',
76
+ name: 'i_currency',
77
+ inputs: [],
78
+ outputs: [{ name: '', type: 'address', internalType: 'contract IERC20' }],
79
+ stateMutability: 'view',
80
+ },
81
+ {
82
+ type: 'function',
83
+ name: 'i_defaultIdentifier',
84
+ inputs: [],
85
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
86
+ stateMutability: 'view',
87
+ },
88
+ {
89
+ type: 'function',
90
+ name: 'i_defaultLiveness',
91
+ inputs: [],
92
+ outputs: [{ name: '', type: 'uint64', internalType: 'uint64' }],
93
+ stateMutability: 'view',
94
+ },
95
+ {
96
+ type: 'function',
97
+ name: 'i_oo',
98
+ inputs: [],
99
+ outputs: [
100
+ { name: '', type: 'address', internalType: 'contract OptimisticOracleV3Interface' },
101
+ ],
102
+ stateMutability: 'view',
103
+ },
104
+ {
105
+ type: 'function',
106
+ name: 'i_registry',
107
+ inputs: [],
108
+ outputs: [{ name: '', type: 'address', internalType: 'contract IAgentRegistry' }],
109
+ stateMutability: 'view',
110
+ },
111
+ {
112
+ type: 'function',
113
+ name: 's_assertionToMarket',
114
+ inputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
115
+ outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],
116
+ stateMutability: 'view',
117
+ },
118
+ {
119
+ type: 'function',
120
+ name: 's_marketCount',
121
+ inputs: [],
122
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
123
+ stateMutability: 'view',
124
+ },
125
+
126
+ // ── Events ─────────────────────────────────────────────────────────
127
+ {
128
+ type: 'event',
129
+ name: 'MarketInitialized',
130
+ inputs: [
131
+ { name: 'marketId', type: 'bytes32', indexed: true, internalType: 'bytes32' },
132
+ { name: 'description', type: 'string', indexed: false, internalType: 'string' },
133
+ { name: 'creator', type: 'address', indexed: true, internalType: 'address' },
134
+ ],
135
+ anonymous: false,
136
+ },
137
+ {
138
+ type: 'event',
139
+ name: 'TokensMinted',
140
+ inputs: [
141
+ { name: 'marketId', type: 'bytes32', indexed: true, internalType: 'bytes32' },
142
+ { name: 'agent', type: 'address', indexed: true, internalType: 'address' },
143
+ { name: 'amount', type: 'uint256', indexed: false, internalType: 'uint256' },
144
+ ],
145
+ anonymous: false,
146
+ },
147
+ {
148
+ type: 'event',
149
+ name: 'MarketAsserted',
150
+ inputs: [
151
+ { name: 'marketId', type: 'bytes32', indexed: true, internalType: 'bytes32' },
152
+ { name: 'assertedOutcome', type: 'string', indexed: false, internalType: 'string' },
153
+ { name: 'asserter', type: 'address', indexed: true, internalType: 'address' },
154
+ { name: 'assertionId', type: 'bytes32', indexed: false, internalType: 'bytes32' },
155
+ ],
156
+ anonymous: false,
157
+ },
158
+ {
159
+ type: 'event',
160
+ name: 'MarketResolved',
161
+ inputs: [
162
+ { name: 'marketId', type: 'bytes32', indexed: true, internalType: 'bytes32' },
163
+ { name: 'outcomeId', type: 'bytes32', indexed: false, internalType: 'bytes32' },
164
+ ],
165
+ anonymous: false,
166
+ },
167
+ {
168
+ type: 'event',
169
+ name: 'AssertionFailed',
170
+ inputs: [
171
+ { name: 'marketId', type: 'bytes32', indexed: true, internalType: 'bytes32' },
172
+ { name: 'assertionId', type: 'bytes32', indexed: false, internalType: 'bytes32' },
173
+ ],
174
+ anonymous: false,
175
+ },
176
+ {
177
+ type: 'event',
178
+ name: 'AssertionDisputed',
179
+ inputs: [
180
+ { name: 'marketId', type: 'bytes32', indexed: true, internalType: 'bytes32' },
181
+ { name: 'assertionId', type: 'bytes32', indexed: false, internalType: 'bytes32' },
182
+ ],
183
+ anonymous: false,
184
+ },
185
+ {
186
+ type: 'event',
187
+ name: 'TokensSettled',
188
+ inputs: [
189
+ { name: 'marketId', type: 'bytes32', indexed: true, internalType: 'bytes32' },
190
+ { name: 'agent', type: 'address', indexed: true, internalType: 'address' },
191
+ { name: 'payout', type: 'uint256', indexed: false, internalType: 'uint256' },
192
+ ],
193
+ anonymous: false,
194
+ },
195
+
196
+ // ── Errors ─────────────────────────────────────────────────────────
197
+ { type: 'error', name: 'ActiveAssertionExists', inputs: [] },
198
+ { type: 'error', name: 'EthTransferFailed', inputs: [] },
199
+ { type: 'error', name: 'HookNotImplemented', inputs: [] },
200
+ { type: 'error', name: 'InvalidOutcome', inputs: [] },
201
+ { type: 'error', name: 'MarketAlreadyResolved', inputs: [] },
202
+ { type: 'error', name: 'MarketNotFound', inputs: [] },
203
+ { type: 'error', name: 'MarketNotResolved', inputs: [] },
204
+ { type: 'error', name: 'NoTokensToSettle', inputs: [] },
205
+ { type: 'error', name: 'NotPoolManager', inputs: [] },
206
+ { type: 'error', name: 'NotRegisteredAgent', inputs: [] },
207
+ { type: 'error', name: 'OnlyOracle', inputs: [] },
208
+ {
209
+ type: 'error',
210
+ name: 'SafeERC20FailedOperation',
211
+ inputs: [{ name: 'token', type: 'address', internalType: 'address' }],
212
+ },
213
+ { type: 'error', name: 'ZeroMintAmount', inputs: [] },
214
+ ] as const;