1[
2 {
3 "type": "constructor",
4 "inputs": [
5 {
6 "name": "usdcAddress",
7 "type": "address",
8 "internalType": "address"
9 },
10 {
11 "name": "keeperAddress",
12 "type": "address",
13 "internalType": "address"
14 }
15 ],
16 "stateMutability": "nonpayable"
17 },
18 {
19 "type": "error",
20 "name": "InvalidAddress",
21 "inputs": []
22 },
23 {
24 "type": "error",
25 "name": "OnlyKeeper",
26 "inputs": []
27 },
28 {
29 "type": "error",
30 "name": "OutsideRenewalWindow",
31 "inputs": []
32 },
33 {
34 "type": "error",
35 "name": "PaymentFailed",
36 "inputs": []
37 },
38 {
39 "type": "event",
40 "name": "Subscribed",
41 "inputs": [
42 {
43 "name": "subscriber",
44 "type": "address",
45 "indexed": true,
46 "internalType": "address"
47 },
48 {
49 "name": "creator",
50 "type": "address",
51 "indexed": true,
52 "internalType": "address"
53 },
54 {
55 "name": "expiresAt",
56 "type": "uint256",
57 "indexed": false,
58 "internalType": "uint256"
59 }
60 ],
61 "anonymous": false
62 },
63 {
64 "type": "event",
65 "name": "Renewed",
66 "inputs": [
67 {
68 "name": "subscriber",
69 "type": "address",
70 "indexed": true,
71 "internalType": "address"
72 },
73 {
74 "name": "creator",
75 "type": "address",
76 "indexed": true,
77 "internalType": "address"
78 },
79 {
80 "name": "expiresAt",
81 "type": "uint256",
82 "indexed": false,
83 "internalType": "uint256"
84 }
85 ],
86 "anonymous": false
87 },
88 {
89 "type": "event",
90 "name": "Cancelled",
91 "inputs": [
92 {
93 "name": "subscriber",
94 "type": "address",
95 "indexed": true,
96 "internalType": "address"
97 },
98 {
99 "name": "creator",
100 "type": "address",
101 "indexed": true,
102 "internalType": "address"
103 }
104 ],
105 "anonymous": false
106 },
107 {
108 "type": "function",
109 "name": "cancel",
110 "inputs": [
111 {
112 "name": "creator",
113 "type": "address",
114 "internalType": "address"
115 }
116 ],
117 "outputs": [],
118 "stateMutability": "nonpayable"
119 },
120 {
121 "type": "function",
122 "name": "isSubscribed",
123 "inputs": [
124 {
125 "name": "subscriber",
126 "type": "address",
127 "internalType": "address"
128 },
129 {
130 "name": "creator",
131 "type": "address",
132 "internalType": "address"
133 }
134 ],
135 "outputs": [
136 {
137 "name": "",
138 "type": "bool",
139 "internalType": "bool"
140 }
141 ],
142 "stateMutability": "view"
143 },
144 {
145 "type": "function",
146 "name": "keeper",
147 "inputs": [],
148 "outputs": [
149 {
150 "name": "",
151 "type": "address",
152 "internalType": "address"
153 }
154 ],
155 "stateMutability": "view"
156 },
157 {
158 "type": "function",
159 "name": "renew",
160 "inputs": [
161 {
162 "name": "subscriber",
163 "type": "address",
164 "internalType": "address"
165 },
166 {
167 "name": "creator",
168 "type": "address",
169 "internalType": "address"
170 }
171 ],
172 "outputs": [],
173 "stateMutability": "nonpayable"
174 },
175 {
176 "type": "function",
177 "name": "subscribe",
178 "inputs": [
179 {
180 "name": "creator",
181 "type": "address",
182 "internalType": "address"
183 }
184 ],
185 "outputs": [],
186 "stateMutability": "nonpayable"
187 },
188 {
189 "type": "function",
190 "name": "subscriptions",
191 "inputs": [
192 {
193 "name": "subscriber",
194 "type": "address",
195 "internalType": "address"
196 },
197 {
198 "name": "creator",
199 "type": "address",
200 "internalType": "address"
201 }
202 ],
203 "outputs": [
204 {
205 "name": "expiresAt",
206 "type": "uint256",
207 "internalType": "uint256"
208 }
209 ],
210 "stateMutability": "view"
211 },
212 {
213 "type": "function",
214 "name": "usdc",
215 "inputs": [],
216 "outputs": [
217 {
218 "name": "",
219 "type": "address",
220 "internalType": "contract IERC20"
221 }
222 ],
223 "stateMutability": "view"
224 }
225]