Spaces:
Running
Running
gauravlochab
commited on
Commit
•
c406f4e
1
Parent(s):
011e380
adding graph for agents with one transaction
Browse files- app.py +131 -39
- contracts/ServiceRegistryTokenUtility.json +926 -0
- contracts/StakingActivityChecker.json +87 -0
- contracts/StakingToken.json +1274 -0
app.py
CHANGED
@@ -2,7 +2,7 @@ import requests
|
|
2 |
import pandas as pd
|
3 |
import gradio as gr
|
4 |
import plotly.express as px
|
5 |
-
from datetime import datetime
|
6 |
import json
|
7 |
from web3 import Web3
|
8 |
|
@@ -39,10 +39,50 @@ def get_vanity_transactions(date):
|
|
39 |
'transaction_count': [1] * 4 # Each vanity transaction counts as 1
|
40 |
})
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
def fetch_and_aggregate_transactions():
|
43 |
total_services = service_registry.functions.totalSupply().call()
|
44 |
aggregated_transactions = []
|
45 |
-
|
|
|
|
|
|
|
46 |
|
47 |
for service_id in range(1, total_services + 1):
|
48 |
service = service_registry.functions.getService(service_id).call()
|
@@ -56,31 +96,38 @@ def fetch_and_aggregate_transactions():
|
|
56 |
response_transfers = get_transfers("valory", agent_address)
|
57 |
aggregated_transactions.extend(response_transfers["transfers"])
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
if creation_event:
|
65 |
-
block_number = creation_event[0]['blockNumber']
|
66 |
-
block = web3.eth.get_block(block_number)
|
67 |
-
creation_timestamp = datetime.fromtimestamp(block['timestamp'])
|
68 |
-
week_str = creation_timestamp.strftime('%Y-%W')
|
69 |
|
70 |
-
if
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
|
76 |
# Convert set to count
|
77 |
-
|
|
|
78 |
|
79 |
-
return aggregated_transactions,
|
80 |
|
81 |
# Function to parse the transaction data and prepare it for visualization
|
82 |
def process_transactions_and_agents(data):
|
83 |
-
transactions,
|
84 |
|
85 |
# Convert the data into a pandas DataFrame for easy manipulation
|
86 |
rows = []
|
@@ -111,17 +158,31 @@ def process_transactions_and_agents(data):
|
|
111 |
"sending_timestamp": sending_timestamp,
|
112 |
"receiving_timestamp": receiving_timestamp,
|
113 |
"date": sending_timestamp.date(), # Group by day
|
114 |
-
"week": sending_timestamp.strftime('%Y-%
|
115 |
})
|
116 |
|
117 |
df_transactions = pd.DataFrame(rows)
|
118 |
-
df_agents = pd.DataFrame(list(
|
119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
|
121 |
# Function to create visualizations based on the metrics
|
122 |
def create_visualizations():
|
123 |
transactions_data = fetch_and_aggregate_transactions()
|
124 |
-
df_transactions,
|
125 |
|
126 |
# Map chain IDs to chain names
|
127 |
chain_name_map = {
|
@@ -163,7 +224,7 @@ def create_visualizations():
|
|
163 |
xaxis=dict(
|
164 |
tickmode='array',
|
165 |
tickvals=tx_per_chain['date'],
|
166 |
-
ticktext=tx_per_chain['date'].dt.strftime('%
|
167 |
tickangle=0,
|
168 |
),
|
169 |
bargap=0.8,
|
@@ -192,7 +253,7 @@ def create_visualizations():
|
|
192 |
xaxis=dict(
|
193 |
tickmode='array',
|
194 |
tickvals=swaps_per_chain['date'],
|
195 |
-
ticktext=swaps_per_chain['date'].dt.strftime('%
|
196 |
tickangle=0,
|
197 |
),
|
198 |
bargap=0.8,
|
@@ -221,7 +282,7 @@ def create_visualizations():
|
|
221 |
xaxis=dict(
|
222 |
tickmode='array',
|
223 |
tickvals=bridges_per_chain['date'],
|
224 |
-
ticktext=bridges_per_chain['date'].dt.strftime('%
|
225 |
tickangle=0,
|
226 |
),
|
227 |
bargap=0.8,
|
@@ -252,7 +313,7 @@ def create_visualizations():
|
|
252 |
xaxis=dict(
|
253 |
tickmode='array',
|
254 |
tickvals=investment_per_agent['date'],
|
255 |
-
ticktext=investment_per_agent['date'].dt.strftime('%
|
256 |
tickangle=0,
|
257 |
),
|
258 |
bargap=0.8,
|
@@ -261,23 +322,50 @@ def create_visualizations():
|
|
261 |
fig_investment_agent.update_xaxes(tickformat="%Y-%m-%d")
|
262 |
|
263 |
# Number of agents per week
|
264 |
-
|
265 |
-
|
266 |
x="week",
|
267 |
y="agent_count",
|
268 |
title="Number of Agents Week Over Week",
|
269 |
labels={"week": "Week", "agent_count": "Number of Agents"},
|
270 |
color_discrete_sequence=["purple"]
|
271 |
)
|
272 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
xaxis_title=None,
|
274 |
yaxis=dict(tickmode='linear', tick0=0, dtick=1),
|
275 |
-
xaxis=dict(
|
|
|
|
|
|
|
|
|
|
|
276 |
bargap=0.8,
|
277 |
height=700,
|
278 |
)
|
279 |
|
280 |
-
return fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent,
|
281 |
|
282 |
# Gradio interface
|
283 |
def dashboard():
|
@@ -286,24 +374,28 @@ def dashboard():
|
|
286 |
|
287 |
# Fetch and display visualizations
|
288 |
with gr.Tab("Transactions"):
|
289 |
-
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent,
|
290 |
gr.Plot(fig_tx_chain)
|
291 |
|
292 |
with gr.Tab("Swaps"):
|
293 |
-
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent,
|
294 |
gr.Plot(fig_swaps_chain)
|
295 |
|
296 |
with gr.Tab("Bridges"):
|
297 |
-
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent,
|
298 |
gr.Plot(fig_bridges_chain)
|
299 |
|
300 |
with gr.Tab("Investment"):
|
301 |
-
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent,
|
302 |
gr.Plot(fig_investment_agent)
|
303 |
|
304 |
with gr.Tab("Agents Week Over Week"):
|
305 |
-
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent,
|
306 |
-
gr.Plot(
|
|
|
|
|
|
|
|
|
307 |
|
308 |
return demo
|
309 |
|
|
|
2 |
import pandas as pd
|
3 |
import gradio as gr
|
4 |
import plotly.express as px
|
5 |
+
from datetime import datetime, timedelta
|
6 |
import json
|
7 |
from web3 import Web3
|
8 |
|
|
|
39 |
'transaction_count': [1] * 4 # Each vanity transaction counts as 1
|
40 |
})
|
41 |
|
42 |
+
def load_activity_checker_contract(w3, staking_token_address):
|
43 |
+
"""
|
44 |
+
Loads the Staking Token and Activity Checker contracts.
|
45 |
+
|
46 |
+
:param w3: Web3 instance
|
47 |
+
:param staking_token_address: Address of the staking token contract
|
48 |
+
:return: Tuple of (Staking Token contract instance, Activity Checker contract instance)
|
49 |
+
"""
|
50 |
+
try:
|
51 |
+
# Load the ABI file for the Staking Token contract
|
52 |
+
with open('./contracts/StakingToken.json', "r", encoding="utf-8") as file:
|
53 |
+
staking_token_data = json.load(file)
|
54 |
+
|
55 |
+
staking_token_abi = staking_token_data.get("abi", [])
|
56 |
+
|
57 |
+
# Create the Staking Token contract instance
|
58 |
+
staking_token_contract = w3.eth.contract(address=staking_token_address, abi=staking_token_abi)
|
59 |
+
|
60 |
+
# Get the activity checker contract address from staking_token_contract
|
61 |
+
activity_checker_address = staking_token_contract.functions.activityChecker().call()
|
62 |
+
|
63 |
+
# Load the ABI file for the Activity Checker contract
|
64 |
+
with open('./contracts/StakingActivityChecker.json', "r", encoding="utf-8") as file:
|
65 |
+
activity_checker_data = json.load(file)
|
66 |
+
|
67 |
+
activity_checker_abi = activity_checker_data.get("abi", [])
|
68 |
+
|
69 |
+
# Create the Activity Checker contract instance
|
70 |
+
activity_checker_contract = w3.eth.contract(address=activity_checker_address, abi=activity_checker_abi)
|
71 |
+
|
72 |
+
return staking_token_contract, activity_checker_contract
|
73 |
+
|
74 |
+
except Exception as e:
|
75 |
+
print(f"An error occurred while loading the contracts: {e}")
|
76 |
+
raise
|
77 |
+
|
78 |
+
|
79 |
def fetch_and_aggregate_transactions():
|
80 |
total_services = service_registry.functions.totalSupply().call()
|
81 |
aggregated_transactions = []
|
82 |
+
daily_agent_counts = {}
|
83 |
+
daily_agents_with_transactions = {}
|
84 |
+
|
85 |
+
_staking_token_contract, activity_checker_contract = load_activity_checker_contract(web3, '0x88996bbdE7f982D93214881756840cE2c77C4992')
|
86 |
|
87 |
for service_id in range(1, total_services + 1):
|
88 |
service = service_registry.functions.getService(service_id).call()
|
|
|
96 |
response_transfers = get_transfers("valory", agent_address)
|
97 |
aggregated_transactions.extend(response_transfers["transfers"])
|
98 |
|
99 |
+
# Track the daily number of agents
|
100 |
+
creation_event = service_registry.events.CreateService.create_filter(
|
101 |
+
from_block=0, argument_filters={'serviceId': service_id, 'configHash': service[2]}
|
102 |
+
).get_all_entries()
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
|
104 |
+
if creation_event:
|
105 |
+
block_number = creation_event[0]['blockNumber']
|
106 |
+
block = web3.eth.get_block(block_number)
|
107 |
+
creation_timestamp = datetime.fromtimestamp(block['timestamp'])
|
108 |
+
date_str = creation_timestamp.strftime('%Y-%m-%d')
|
109 |
+
|
110 |
+
if date_str not in daily_agent_counts:
|
111 |
+
daily_agent_counts[date_str] = set()
|
112 |
+
if date_str not in daily_agents_with_transactions:
|
113 |
+
daily_agents_with_transactions[date_str] = set()
|
114 |
+
|
115 |
+
for agent_id in agent_ids:
|
116 |
+
service_safe = service[1]
|
117 |
+
multisig_nonces = activity_checker_contract.functions.getMultisigNonces(service_safe).call()[0]
|
118 |
+
if multisig_nonces > 0:
|
119 |
+
daily_agents_with_transactions[date_str].add(agent_id)
|
120 |
+
daily_agent_counts[date_str].add(agent_id)
|
121 |
|
122 |
# Convert set to count
|
123 |
+
daily_agent_counts = {date: len(agents) for date, agents in daily_agent_counts.items()}
|
124 |
+
daily_agents_with_transactions = {date: len(agents) for date, agents in daily_agents_with_transactions.items()}
|
125 |
|
126 |
+
return aggregated_transactions, daily_agent_counts, daily_agents_with_transactions
|
127 |
|
128 |
# Function to parse the transaction data and prepare it for visualization
|
129 |
def process_transactions_and_agents(data):
|
130 |
+
transactions, daily_agent_counts, daily_agents_with_transactions = data
|
131 |
|
132 |
# Convert the data into a pandas DataFrame for easy manipulation
|
133 |
rows = []
|
|
|
158 |
"sending_timestamp": sending_timestamp,
|
159 |
"receiving_timestamp": receiving_timestamp,
|
160 |
"date": sending_timestamp.date(), # Group by day
|
161 |
+
"week": sending_timestamp.strftime('%Y-%m-%d') # Group by week
|
162 |
})
|
163 |
|
164 |
df_transactions = pd.DataFrame(rows)
|
165 |
+
df_agents = pd.DataFrame(list(daily_agent_counts.items()), columns=['date', 'agent_count'])
|
166 |
+
df_agents_with_transactions = pd.DataFrame(list(daily_agents_with_transactions.items()), columns=['date', 'agent_count_with_transactions'])
|
167 |
+
|
168 |
+
# Convert the date column to datetime
|
169 |
+
df_agents['date'] = pd.to_datetime(df_agents['date'])
|
170 |
+
df_agents_with_transactions['date'] = pd.to_datetime(df_agents_with_transactions['date'])
|
171 |
+
|
172 |
+
# Convert to week periods
|
173 |
+
df_agents['week'] = df_agents['date'].dt.to_period('W').apply(lambda r: r.start_time)
|
174 |
+
df_agents_with_transactions['week'] = df_agents_with_transactions['date'].dt.to_period('W').apply(lambda r: r.start_time)
|
175 |
+
|
176 |
+
# Group by week
|
177 |
+
df_agents_weekly = df_agents[['week', 'agent_count']].groupby('week').sum().reset_index()
|
178 |
+
df_agents_with_transactions_weekly = df_agents_with_transactions[['week', 'agent_count_with_transactions']].groupby('week').sum().reset_index()
|
179 |
+
|
180 |
+
return df_transactions, df_agents_weekly, df_agents_with_transactions_weekly
|
181 |
|
182 |
# Function to create visualizations based on the metrics
|
183 |
def create_visualizations():
|
184 |
transactions_data = fetch_and_aggregate_transactions()
|
185 |
+
df_transactions, df_agents_weekly, df_agents_with_transactions_weekly = process_transactions_and_agents(transactions_data)
|
186 |
|
187 |
# Map chain IDs to chain names
|
188 |
chain_name_map = {
|
|
|
224 |
xaxis=dict(
|
225 |
tickmode='array',
|
226 |
tickvals=tx_per_chain['date'],
|
227 |
+
ticktext=tx_per_chain['date'].dt.strftime('%y-%m-%d'),
|
228 |
tickangle=0,
|
229 |
),
|
230 |
bargap=0.8,
|
|
|
253 |
xaxis=dict(
|
254 |
tickmode='array',
|
255 |
tickvals=swaps_per_chain['date'],
|
256 |
+
ticktext=swaps_per_chain['date'].dt.strftime('%y-%m-%d'),
|
257 |
tickangle=0,
|
258 |
),
|
259 |
bargap=0.8,
|
|
|
282 |
xaxis=dict(
|
283 |
tickmode='array',
|
284 |
tickvals=bridges_per_chain['date'],
|
285 |
+
ticktext=bridges_per_chain['date'].dt.strftime('%y-%m-%d'),
|
286 |
tickangle=0,
|
287 |
),
|
288 |
bargap=0.8,
|
|
|
313 |
xaxis=dict(
|
314 |
tickmode='array',
|
315 |
tickvals=investment_per_agent['date'],
|
316 |
+
ticktext=investment_per_agent['date'].dt.strftime('%y-%m-%d'),
|
317 |
tickangle=0,
|
318 |
),
|
319 |
bargap=0.8,
|
|
|
322 |
fig_investment_agent.update_xaxes(tickformat="%Y-%m-%d")
|
323 |
|
324 |
# Number of agents per week
|
325 |
+
fig_agents_daily = px.bar(
|
326 |
+
df_agents_weekly,
|
327 |
x="week",
|
328 |
y="agent_count",
|
329 |
title="Number of Agents Week Over Week",
|
330 |
labels={"week": "Week", "agent_count": "Number of Agents"},
|
331 |
color_discrete_sequence=["purple"]
|
332 |
)
|
333 |
+
fig_agents_daily.update_layout(
|
334 |
+
xaxis_title=None,
|
335 |
+
yaxis=dict(tickmode='linear', tick0=0, dtick=1),
|
336 |
+
xaxis=dict(
|
337 |
+
tickmode='array',
|
338 |
+
tickvals=df_agents_weekly['week'],
|
339 |
+
ticktext=df_agents_weekly['week'].dt.strftime('%y-%m-%d'),
|
340 |
+
tickangle=0
|
341 |
+
),
|
342 |
+
bargap=0.8,
|
343 |
+
height=700,
|
344 |
+
)
|
345 |
+
|
346 |
+
# Number of agents with transactions per week
|
347 |
+
fig_agents_with_transactions_daily = px.bar(
|
348 |
+
df_agents_with_transactions_weekly,
|
349 |
+
x="week",
|
350 |
+
y="agent_count_with_transactions",
|
351 |
+
title="Number of Agents with Transactions Week Over Week",
|
352 |
+
labels={"week": "Week", "agent_count_with_transactions": "Number of Agents with Transactions"},
|
353 |
+
color_discrete_sequence=["darkgreen"]
|
354 |
+
)
|
355 |
+
fig_agents_with_transactions_daily.update_layout(
|
356 |
xaxis_title=None,
|
357 |
yaxis=dict(tickmode='linear', tick0=0, dtick=1),
|
358 |
+
xaxis=dict(
|
359 |
+
tickmode='array',
|
360 |
+
tickvals=df_agents_with_transactions_weekly['week'],
|
361 |
+
ticktext=df_agents_with_transactions_weekly['week'].dt.strftime('%y-%m-%d'),
|
362 |
+
tickangle=0
|
363 |
+
),
|
364 |
bargap=0.8,
|
365 |
height=700,
|
366 |
)
|
367 |
|
368 |
+
return fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent, fig_agents_daily, fig_agents_with_transactions_daily
|
369 |
|
370 |
# Gradio interface
|
371 |
def dashboard():
|
|
|
374 |
|
375 |
# Fetch and display visualizations
|
376 |
with gr.Tab("Transactions"):
|
377 |
+
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent, fig_agents_daily, fig_agents_with_transactions_daily = create_visualizations()
|
378 |
gr.Plot(fig_tx_chain)
|
379 |
|
380 |
with gr.Tab("Swaps"):
|
381 |
+
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent, fig_agents_daily, fig_agents_with_transactions_daily = create_visualizations()
|
382 |
gr.Plot(fig_swaps_chain)
|
383 |
|
384 |
with gr.Tab("Bridges"):
|
385 |
+
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent, fig_agents_daily, fig_agents_with_transactions_daily = create_visualizations()
|
386 |
gr.Plot(fig_bridges_chain)
|
387 |
|
388 |
with gr.Tab("Investment"):
|
389 |
+
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent, fig_agents_daily, fig_agents_with_transactions_daily = create_visualizations()
|
390 |
gr.Plot(fig_investment_agent)
|
391 |
|
392 |
with gr.Tab("Agents Week Over Week"):
|
393 |
+
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent, fig_agents_daily, fig_agents_with_transactions_daily = create_visualizations()
|
394 |
+
gr.Plot(fig_agents_daily)
|
395 |
+
|
396 |
+
with gr.Tab("Agents with Transactions Week Over Week"):
|
397 |
+
fig_tx_chain, fig_swaps_chain, fig_bridges_chain, fig_investment_agent, fig_agents_daily, fig_agents_with_transactions_daily = create_visualizations()
|
398 |
+
gr.Plot(fig_agents_with_transactions_daily)
|
399 |
|
400 |
return demo
|
401 |
|
contracts/ServiceRegistryTokenUtility.json
ADDED
@@ -0,0 +1,926 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_format": "hh-sol-artifact-1",
|
3 |
+
"contractName": "ServiceRegistryTokenUtility",
|
4 |
+
"sourceName": "contracts/ServiceRegistryTokenUtility.sol",
|
5 |
+
"abi": [
|
6 |
+
{
|
7 |
+
"inputs": [
|
8 |
+
{
|
9 |
+
"internalType": "address",
|
10 |
+
"name": "_serviceRegistry",
|
11 |
+
"type": "address"
|
12 |
+
}
|
13 |
+
],
|
14 |
+
"stateMutability": "nonpayable",
|
15 |
+
"type": "constructor"
|
16 |
+
},
|
17 |
+
{
|
18 |
+
"inputs": [
|
19 |
+
{
|
20 |
+
"internalType": "address",
|
21 |
+
"name": "operator",
|
22 |
+
"type": "address"
|
23 |
+
}
|
24 |
+
],
|
25 |
+
"name": "AgentInstanceRegistered",
|
26 |
+
"type": "error"
|
27 |
+
},
|
28 |
+
{
|
29 |
+
"inputs": [
|
30 |
+
{
|
31 |
+
"internalType": "uint256",
|
32 |
+
"name": "serviceId",
|
33 |
+
"type": "uint256"
|
34 |
+
}
|
35 |
+
],
|
36 |
+
"name": "AgentInstancesSlotsFilled",
|
37 |
+
"type": "error"
|
38 |
+
},
|
39 |
+
{
|
40 |
+
"inputs": [
|
41 |
+
{
|
42 |
+
"internalType": "uint256",
|
43 |
+
"name": "agentId",
|
44 |
+
"type": "uint256"
|
45 |
+
}
|
46 |
+
],
|
47 |
+
"name": "AgentNotFound",
|
48 |
+
"type": "error"
|
49 |
+
},
|
50 |
+
{
|
51 |
+
"inputs": [
|
52 |
+
{
|
53 |
+
"internalType": "uint256",
|
54 |
+
"name": "agentId",
|
55 |
+
"type": "uint256"
|
56 |
+
},
|
57 |
+
{
|
58 |
+
"internalType": "uint256",
|
59 |
+
"name": "serviceId",
|
60 |
+
"type": "uint256"
|
61 |
+
}
|
62 |
+
],
|
63 |
+
"name": "AgentNotInService",
|
64 |
+
"type": "error"
|
65 |
+
},
|
66 |
+
{
|
67 |
+
"inputs": [
|
68 |
+
{
|
69 |
+
"internalType": "uint256",
|
70 |
+
"name": "componentId",
|
71 |
+
"type": "uint256"
|
72 |
+
}
|
73 |
+
],
|
74 |
+
"name": "ComponentNotFound",
|
75 |
+
"type": "error"
|
76 |
+
},
|
77 |
+
{
|
78 |
+
"inputs": [],
|
79 |
+
"name": "HashExists",
|
80 |
+
"type": "error"
|
81 |
+
},
|
82 |
+
{
|
83 |
+
"inputs": [
|
84 |
+
{
|
85 |
+
"internalType": "uint256",
|
86 |
+
"name": "sent",
|
87 |
+
"type": "uint256"
|
88 |
+
},
|
89 |
+
{
|
90 |
+
"internalType": "uint256",
|
91 |
+
"name": "expected",
|
92 |
+
"type": "uint256"
|
93 |
+
},
|
94 |
+
{
|
95 |
+
"internalType": "uint256",
|
96 |
+
"name": "serviceId",
|
97 |
+
"type": "uint256"
|
98 |
+
}
|
99 |
+
],
|
100 |
+
"name": "IncorrectAgentBondingValue",
|
101 |
+
"type": "error"
|
102 |
+
},
|
103 |
+
{
|
104 |
+
"inputs": [
|
105 |
+
{
|
106 |
+
"internalType": "uint256",
|
107 |
+
"name": "sent",
|
108 |
+
"type": "uint256"
|
109 |
+
},
|
110 |
+
{
|
111 |
+
"internalType": "uint256",
|
112 |
+
"name": "expected",
|
113 |
+
"type": "uint256"
|
114 |
+
},
|
115 |
+
{
|
116 |
+
"internalType": "uint256",
|
117 |
+
"name": "serviceId",
|
118 |
+
"type": "uint256"
|
119 |
+
}
|
120 |
+
],
|
121 |
+
"name": "IncorrectRegistrationDepositValue",
|
122 |
+
"type": "error"
|
123 |
+
},
|
124 |
+
{
|
125 |
+
"inputs": [
|
126 |
+
{
|
127 |
+
"internalType": "address",
|
128 |
+
"name": "sender",
|
129 |
+
"type": "address"
|
130 |
+
},
|
131 |
+
{
|
132 |
+
"internalType": "address",
|
133 |
+
"name": "manager",
|
134 |
+
"type": "address"
|
135 |
+
}
|
136 |
+
],
|
137 |
+
"name": "ManagerOnly",
|
138 |
+
"type": "error"
|
139 |
+
},
|
140 |
+
{
|
141 |
+
"inputs": [
|
142 |
+
{
|
143 |
+
"internalType": "address",
|
144 |
+
"name": "provided",
|
145 |
+
"type": "address"
|
146 |
+
},
|
147 |
+
{
|
148 |
+
"internalType": "address",
|
149 |
+
"name": "expected",
|
150 |
+
"type": "address"
|
151 |
+
},
|
152 |
+
{
|
153 |
+
"internalType": "uint256",
|
154 |
+
"name": "serviceId",
|
155 |
+
"type": "uint256"
|
156 |
+
}
|
157 |
+
],
|
158 |
+
"name": "OnlyOwnServiceMultisig",
|
159 |
+
"type": "error"
|
160 |
+
},
|
161 |
+
{
|
162 |
+
"inputs": [
|
163 |
+
{
|
164 |
+
"internalType": "address",
|
165 |
+
"name": "operator",
|
166 |
+
"type": "address"
|
167 |
+
},
|
168 |
+
{
|
169 |
+
"internalType": "uint256",
|
170 |
+
"name": "serviceId",
|
171 |
+
"type": "uint256"
|
172 |
+
}
|
173 |
+
],
|
174 |
+
"name": "OperatorHasNoInstances",
|
175 |
+
"type": "error"
|
176 |
+
},
|
177 |
+
{
|
178 |
+
"inputs": [
|
179 |
+
{
|
180 |
+
"internalType": "uint256",
|
181 |
+
"name": "provided",
|
182 |
+
"type": "uint256"
|
183 |
+
},
|
184 |
+
{
|
185 |
+
"internalType": "uint256",
|
186 |
+
"name": "max",
|
187 |
+
"type": "uint256"
|
188 |
+
}
|
189 |
+
],
|
190 |
+
"name": "Overflow",
|
191 |
+
"type": "error"
|
192 |
+
},
|
193 |
+
{
|
194 |
+
"inputs": [
|
195 |
+
{
|
196 |
+
"internalType": "address",
|
197 |
+
"name": "sender",
|
198 |
+
"type": "address"
|
199 |
+
},
|
200 |
+
{
|
201 |
+
"internalType": "address",
|
202 |
+
"name": "owner",
|
203 |
+
"type": "address"
|
204 |
+
}
|
205 |
+
],
|
206 |
+
"name": "OwnerOnly",
|
207 |
+
"type": "error"
|
208 |
+
},
|
209 |
+
{
|
210 |
+
"inputs": [],
|
211 |
+
"name": "Paused",
|
212 |
+
"type": "error"
|
213 |
+
},
|
214 |
+
{
|
215 |
+
"inputs": [],
|
216 |
+
"name": "ReentrancyGuard",
|
217 |
+
"type": "error"
|
218 |
+
},
|
219 |
+
{
|
220 |
+
"inputs": [
|
221 |
+
{
|
222 |
+
"internalType": "uint256",
|
223 |
+
"name": "serviceId",
|
224 |
+
"type": "uint256"
|
225 |
+
}
|
226 |
+
],
|
227 |
+
"name": "ServiceMustBeInactive",
|
228 |
+
"type": "error"
|
229 |
+
},
|
230 |
+
{
|
231 |
+
"inputs": [
|
232 |
+
{
|
233 |
+
"internalType": "address",
|
234 |
+
"name": "token",
|
235 |
+
"type": "address"
|
236 |
+
}
|
237 |
+
],
|
238 |
+
"name": "TokenRejected",
|
239 |
+
"type": "error"
|
240 |
+
},
|
241 |
+
{
|
242 |
+
"inputs": [
|
243 |
+
{
|
244 |
+
"internalType": "address",
|
245 |
+
"name": "token",
|
246 |
+
"type": "address"
|
247 |
+
},
|
248 |
+
{
|
249 |
+
"internalType": "address",
|
250 |
+
"name": "from",
|
251 |
+
"type": "address"
|
252 |
+
},
|
253 |
+
{
|
254 |
+
"internalType": "address",
|
255 |
+
"name": "to",
|
256 |
+
"type": "address"
|
257 |
+
},
|
258 |
+
{
|
259 |
+
"internalType": "uint256",
|
260 |
+
"name": "value",
|
261 |
+
"type": "uint256"
|
262 |
+
}
|
263 |
+
],
|
264 |
+
"name": "TransferFailed",
|
265 |
+
"type": "error"
|
266 |
+
},
|
267 |
+
{
|
268 |
+
"inputs": [
|
269 |
+
{
|
270 |
+
"internalType": "address",
|
271 |
+
"name": "multisig",
|
272 |
+
"type": "address"
|
273 |
+
}
|
274 |
+
],
|
275 |
+
"name": "UnauthorizedMultisig",
|
276 |
+
"type": "error"
|
277 |
+
},
|
278 |
+
{
|
279 |
+
"inputs": [
|
280 |
+
{
|
281 |
+
"internalType": "uint256",
|
282 |
+
"name": "agentId",
|
283 |
+
"type": "uint256"
|
284 |
+
}
|
285 |
+
],
|
286 |
+
"name": "WrongAgentId",
|
287 |
+
"type": "error"
|
288 |
+
},
|
289 |
+
{
|
290 |
+
"inputs": [
|
291 |
+
{
|
292 |
+
"internalType": "uint256",
|
293 |
+
"name": "numValues1",
|
294 |
+
"type": "uint256"
|
295 |
+
},
|
296 |
+
{
|
297 |
+
"internalType": "uint256",
|
298 |
+
"name": "numValues2",
|
299 |
+
"type": "uint256"
|
300 |
+
}
|
301 |
+
],
|
302 |
+
"name": "WrongArrayLength",
|
303 |
+
"type": "error"
|
304 |
+
},
|
305 |
+
{
|
306 |
+
"inputs": [
|
307 |
+
{
|
308 |
+
"internalType": "uint256",
|
309 |
+
"name": "serviceId",
|
310 |
+
"type": "uint256"
|
311 |
+
}
|
312 |
+
],
|
313 |
+
"name": "WrongOperator",
|
314 |
+
"type": "error"
|
315 |
+
},
|
316 |
+
{
|
317 |
+
"inputs": [
|
318 |
+
{
|
319 |
+
"internalType": "uint256",
|
320 |
+
"name": "state",
|
321 |
+
"type": "uint256"
|
322 |
+
},
|
323 |
+
{
|
324 |
+
"internalType": "uint256",
|
325 |
+
"name": "serviceId",
|
326 |
+
"type": "uint256"
|
327 |
+
}
|
328 |
+
],
|
329 |
+
"name": "WrongServiceState",
|
330 |
+
"type": "error"
|
331 |
+
},
|
332 |
+
{
|
333 |
+
"inputs": [
|
334 |
+
{
|
335 |
+
"internalType": "uint256",
|
336 |
+
"name": "currentThreshold",
|
337 |
+
"type": "uint256"
|
338 |
+
},
|
339 |
+
{
|
340 |
+
"internalType": "uint256",
|
341 |
+
"name": "minThreshold",
|
342 |
+
"type": "uint256"
|
343 |
+
},
|
344 |
+
{
|
345 |
+
"internalType": "uint256",
|
346 |
+
"name": "maxThreshold",
|
347 |
+
"type": "uint256"
|
348 |
+
}
|
349 |
+
],
|
350 |
+
"name": "WrongThreshold",
|
351 |
+
"type": "error"
|
352 |
+
},
|
353 |
+
{
|
354 |
+
"inputs": [],
|
355 |
+
"name": "ZeroAddress",
|
356 |
+
"type": "error"
|
357 |
+
},
|
358 |
+
{
|
359 |
+
"inputs": [],
|
360 |
+
"name": "ZeroValue",
|
361 |
+
"type": "error"
|
362 |
+
},
|
363 |
+
{
|
364 |
+
"anonymous": false,
|
365 |
+
"inputs": [
|
366 |
+
{
|
367 |
+
"indexed": true,
|
368 |
+
"internalType": "address",
|
369 |
+
"name": "drainer",
|
370 |
+
"type": "address"
|
371 |
+
}
|
372 |
+
],
|
373 |
+
"name": "DrainerUpdated",
|
374 |
+
"type": "event"
|
375 |
+
},
|
376 |
+
{
|
377 |
+
"anonymous": false,
|
378 |
+
"inputs": [
|
379 |
+
{
|
380 |
+
"indexed": true,
|
381 |
+
"internalType": "address",
|
382 |
+
"name": "manager",
|
383 |
+
"type": "address"
|
384 |
+
}
|
385 |
+
],
|
386 |
+
"name": "ManagerUpdated",
|
387 |
+
"type": "event"
|
388 |
+
},
|
389 |
+
{
|
390 |
+
"anonymous": false,
|
391 |
+
"inputs": [
|
392 |
+
{
|
393 |
+
"indexed": false,
|
394 |
+
"internalType": "uint256",
|
395 |
+
"name": "amount",
|
396 |
+
"type": "uint256"
|
397 |
+
},
|
398 |
+
{
|
399 |
+
"indexed": true,
|
400 |
+
"internalType": "address",
|
401 |
+
"name": "operator",
|
402 |
+
"type": "address"
|
403 |
+
},
|
404 |
+
{
|
405 |
+
"indexed": true,
|
406 |
+
"internalType": "uint256",
|
407 |
+
"name": "serviceId",
|
408 |
+
"type": "uint256"
|
409 |
+
}
|
410 |
+
],
|
411 |
+
"name": "OperatorTokenSlashed",
|
412 |
+
"type": "event"
|
413 |
+
},
|
414 |
+
{
|
415 |
+
"anonymous": false,
|
416 |
+
"inputs": [
|
417 |
+
{
|
418 |
+
"indexed": true,
|
419 |
+
"internalType": "address",
|
420 |
+
"name": "owner",
|
421 |
+
"type": "address"
|
422 |
+
}
|
423 |
+
],
|
424 |
+
"name": "OwnerUpdated",
|
425 |
+
"type": "event"
|
426 |
+
},
|
427 |
+
{
|
428 |
+
"anonymous": false,
|
429 |
+
"inputs": [
|
430 |
+
{
|
431 |
+
"indexed": true,
|
432 |
+
"internalType": "address",
|
433 |
+
"name": "account",
|
434 |
+
"type": "address"
|
435 |
+
},
|
436 |
+
{
|
437 |
+
"indexed": true,
|
438 |
+
"internalType": "address",
|
439 |
+
"name": "token",
|
440 |
+
"type": "address"
|
441 |
+
},
|
442 |
+
{
|
443 |
+
"indexed": false,
|
444 |
+
"internalType": "uint256",
|
445 |
+
"name": "amount",
|
446 |
+
"type": "uint256"
|
447 |
+
}
|
448 |
+
],
|
449 |
+
"name": "TokenDeposit",
|
450 |
+
"type": "event"
|
451 |
+
},
|
452 |
+
{
|
453 |
+
"anonymous": false,
|
454 |
+
"inputs": [
|
455 |
+
{
|
456 |
+
"indexed": true,
|
457 |
+
"internalType": "address",
|
458 |
+
"name": "drainer",
|
459 |
+
"type": "address"
|
460 |
+
},
|
461 |
+
{
|
462 |
+
"indexed": true,
|
463 |
+
"internalType": "address",
|
464 |
+
"name": "token",
|
465 |
+
"type": "address"
|
466 |
+
},
|
467 |
+
{
|
468 |
+
"indexed": false,
|
469 |
+
"internalType": "uint256",
|
470 |
+
"name": "amount",
|
471 |
+
"type": "uint256"
|
472 |
+
}
|
473 |
+
],
|
474 |
+
"name": "TokenDrain",
|
475 |
+
"type": "event"
|
476 |
+
},
|
477 |
+
{
|
478 |
+
"anonymous": false,
|
479 |
+
"inputs": [
|
480 |
+
{
|
481 |
+
"indexed": true,
|
482 |
+
"internalType": "address",
|
483 |
+
"name": "account",
|
484 |
+
"type": "address"
|
485 |
+
},
|
486 |
+
{
|
487 |
+
"indexed": true,
|
488 |
+
"internalType": "address",
|
489 |
+
"name": "token",
|
490 |
+
"type": "address"
|
491 |
+
},
|
492 |
+
{
|
493 |
+
"indexed": false,
|
494 |
+
"internalType": "uint256",
|
495 |
+
"name": "amount",
|
496 |
+
"type": "uint256"
|
497 |
+
}
|
498 |
+
],
|
499 |
+
"name": "TokenRefund",
|
500 |
+
"type": "event"
|
501 |
+
},
|
502 |
+
{
|
503 |
+
"inputs": [
|
504 |
+
{
|
505 |
+
"internalType": "uint256",
|
506 |
+
"name": "serviceId",
|
507 |
+
"type": "uint256"
|
508 |
+
}
|
509 |
+
],
|
510 |
+
"name": "activateRegistrationTokenDeposit",
|
511 |
+
"outputs": [
|
512 |
+
{
|
513 |
+
"internalType": "bool",
|
514 |
+
"name": "isTokenSecured",
|
515 |
+
"type": "bool"
|
516 |
+
}
|
517 |
+
],
|
518 |
+
"stateMutability": "nonpayable",
|
519 |
+
"type": "function"
|
520 |
+
},
|
521 |
+
{
|
522 |
+
"inputs": [
|
523 |
+
{
|
524 |
+
"internalType": "address",
|
525 |
+
"name": "newDrainer",
|
526 |
+
"type": "address"
|
527 |
+
}
|
528 |
+
],
|
529 |
+
"name": "changeDrainer",
|
530 |
+
"outputs": [],
|
531 |
+
"stateMutability": "nonpayable",
|
532 |
+
"type": "function"
|
533 |
+
},
|
534 |
+
{
|
535 |
+
"inputs": [
|
536 |
+
{
|
537 |
+
"internalType": "address",
|
538 |
+
"name": "newManager",
|
539 |
+
"type": "address"
|
540 |
+
}
|
541 |
+
],
|
542 |
+
"name": "changeManager",
|
543 |
+
"outputs": [],
|
544 |
+
"stateMutability": "nonpayable",
|
545 |
+
"type": "function"
|
546 |
+
},
|
547 |
+
{
|
548 |
+
"inputs": [
|
549 |
+
{
|
550 |
+
"internalType": "address",
|
551 |
+
"name": "newOwner",
|
552 |
+
"type": "address"
|
553 |
+
}
|
554 |
+
],
|
555 |
+
"name": "changeOwner",
|
556 |
+
"outputs": [],
|
557 |
+
"stateMutability": "nonpayable",
|
558 |
+
"type": "function"
|
559 |
+
},
|
560 |
+
{
|
561 |
+
"inputs": [
|
562 |
+
{
|
563 |
+
"internalType": "uint256",
|
564 |
+
"name": "serviceId",
|
565 |
+
"type": "uint256"
|
566 |
+
},
|
567 |
+
{
|
568 |
+
"internalType": "address",
|
569 |
+
"name": "token",
|
570 |
+
"type": "address"
|
571 |
+
},
|
572 |
+
{
|
573 |
+
"internalType": "uint32[]",
|
574 |
+
"name": "agentIds",
|
575 |
+
"type": "uint32[]"
|
576 |
+
},
|
577 |
+
{
|
578 |
+
"internalType": "uint256[]",
|
579 |
+
"name": "bonds",
|
580 |
+
"type": "uint256[]"
|
581 |
+
}
|
582 |
+
],
|
583 |
+
"name": "createWithToken",
|
584 |
+
"outputs": [],
|
585 |
+
"stateMutability": "nonpayable",
|
586 |
+
"type": "function"
|
587 |
+
},
|
588 |
+
{
|
589 |
+
"inputs": [
|
590 |
+
{
|
591 |
+
"internalType": "address",
|
592 |
+
"name": "token",
|
593 |
+
"type": "address"
|
594 |
+
}
|
595 |
+
],
|
596 |
+
"name": "drain",
|
597 |
+
"outputs": [
|
598 |
+
{
|
599 |
+
"internalType": "uint256",
|
600 |
+
"name": "amount",
|
601 |
+
"type": "uint256"
|
602 |
+
}
|
603 |
+
],
|
604 |
+
"stateMutability": "nonpayable",
|
605 |
+
"type": "function"
|
606 |
+
},
|
607 |
+
{
|
608 |
+
"inputs": [],
|
609 |
+
"name": "drainer",
|
610 |
+
"outputs": [
|
611 |
+
{
|
612 |
+
"internalType": "address",
|
613 |
+
"name": "",
|
614 |
+
"type": "address"
|
615 |
+
}
|
616 |
+
],
|
617 |
+
"stateMutability": "view",
|
618 |
+
"type": "function"
|
619 |
+
},
|
620 |
+
{
|
621 |
+
"inputs": [
|
622 |
+
{
|
623 |
+
"internalType": "uint256",
|
624 |
+
"name": "serviceId",
|
625 |
+
"type": "uint256"
|
626 |
+
},
|
627 |
+
{
|
628 |
+
"internalType": "uint256",
|
629 |
+
"name": "agentId",
|
630 |
+
"type": "uint256"
|
631 |
+
}
|
632 |
+
],
|
633 |
+
"name": "getAgentBond",
|
634 |
+
"outputs": [
|
635 |
+
{
|
636 |
+
"internalType": "uint256",
|
637 |
+
"name": "bond",
|
638 |
+
"type": "uint256"
|
639 |
+
}
|
640 |
+
],
|
641 |
+
"stateMutability": "view",
|
642 |
+
"type": "function"
|
643 |
+
},
|
644 |
+
{
|
645 |
+
"inputs": [
|
646 |
+
{
|
647 |
+
"internalType": "address",
|
648 |
+
"name": "operator",
|
649 |
+
"type": "address"
|
650 |
+
},
|
651 |
+
{
|
652 |
+
"internalType": "uint256",
|
653 |
+
"name": "serviceId",
|
654 |
+
"type": "uint256"
|
655 |
+
}
|
656 |
+
],
|
657 |
+
"name": "getOperatorBalance",
|
658 |
+
"outputs": [
|
659 |
+
{
|
660 |
+
"internalType": "uint256",
|
661 |
+
"name": "balance",
|
662 |
+
"type": "uint256"
|
663 |
+
}
|
664 |
+
],
|
665 |
+
"stateMutability": "view",
|
666 |
+
"type": "function"
|
667 |
+
},
|
668 |
+
{
|
669 |
+
"inputs": [
|
670 |
+
{
|
671 |
+
"internalType": "uint256",
|
672 |
+
"name": "serviceId",
|
673 |
+
"type": "uint256"
|
674 |
+
}
|
675 |
+
],
|
676 |
+
"name": "isTokenSecuredService",
|
677 |
+
"outputs": [
|
678 |
+
{
|
679 |
+
"internalType": "bool",
|
680 |
+
"name": "",
|
681 |
+
"type": "bool"
|
682 |
+
}
|
683 |
+
],
|
684 |
+
"stateMutability": "view",
|
685 |
+
"type": "function"
|
686 |
+
},
|
687 |
+
{
|
688 |
+
"inputs": [],
|
689 |
+
"name": "manager",
|
690 |
+
"outputs": [
|
691 |
+
{
|
692 |
+
"internalType": "address",
|
693 |
+
"name": "",
|
694 |
+
"type": "address"
|
695 |
+
}
|
696 |
+
],
|
697 |
+
"stateMutability": "view",
|
698 |
+
"type": "function"
|
699 |
+
},
|
700 |
+
{
|
701 |
+
"inputs": [
|
702 |
+
{
|
703 |
+
"internalType": "uint256",
|
704 |
+
"name": "",
|
705 |
+
"type": "uint256"
|
706 |
+
}
|
707 |
+
],
|
708 |
+
"name": "mapOperatorAndServiceIdOperatorBalances",
|
709 |
+
"outputs": [
|
710 |
+
{
|
711 |
+
"internalType": "uint256",
|
712 |
+
"name": "",
|
713 |
+
"type": "uint256"
|
714 |
+
}
|
715 |
+
],
|
716 |
+
"stateMutability": "view",
|
717 |
+
"type": "function"
|
718 |
+
},
|
719 |
+
{
|
720 |
+
"inputs": [
|
721 |
+
{
|
722 |
+
"internalType": "uint256",
|
723 |
+
"name": "",
|
724 |
+
"type": "uint256"
|
725 |
+
}
|
726 |
+
],
|
727 |
+
"name": "mapServiceAndAgentIdAgentBond",
|
728 |
+
"outputs": [
|
729 |
+
{
|
730 |
+
"internalType": "uint256",
|
731 |
+
"name": "",
|
732 |
+
"type": "uint256"
|
733 |
+
}
|
734 |
+
],
|
735 |
+
"stateMutability": "view",
|
736 |
+
"type": "function"
|
737 |
+
},
|
738 |
+
{
|
739 |
+
"inputs": [
|
740 |
+
{
|
741 |
+
"internalType": "uint256",
|
742 |
+
"name": "",
|
743 |
+
"type": "uint256"
|
744 |
+
}
|
745 |
+
],
|
746 |
+
"name": "mapServiceIdTokenDeposit",
|
747 |
+
"outputs": [
|
748 |
+
{
|
749 |
+
"internalType": "address",
|
750 |
+
"name": "token",
|
751 |
+
"type": "address"
|
752 |
+
},
|
753 |
+
{
|
754 |
+
"internalType": "uint96",
|
755 |
+
"name": "securityDeposit",
|
756 |
+
"type": "uint96"
|
757 |
+
}
|
758 |
+
],
|
759 |
+
"stateMutability": "view",
|
760 |
+
"type": "function"
|
761 |
+
},
|
762 |
+
{
|
763 |
+
"inputs": [
|
764 |
+
{
|
765 |
+
"internalType": "address",
|
766 |
+
"name": "",
|
767 |
+
"type": "address"
|
768 |
+
}
|
769 |
+
],
|
770 |
+
"name": "mapSlashedFunds",
|
771 |
+
"outputs": [
|
772 |
+
{
|
773 |
+
"internalType": "uint256",
|
774 |
+
"name": "",
|
775 |
+
"type": "uint256"
|
776 |
+
}
|
777 |
+
],
|
778 |
+
"stateMutability": "view",
|
779 |
+
"type": "function"
|
780 |
+
},
|
781 |
+
{
|
782 |
+
"inputs": [],
|
783 |
+
"name": "owner",
|
784 |
+
"outputs": [
|
785 |
+
{
|
786 |
+
"internalType": "address",
|
787 |
+
"name": "",
|
788 |
+
"type": "address"
|
789 |
+
}
|
790 |
+
],
|
791 |
+
"stateMutability": "view",
|
792 |
+
"type": "function"
|
793 |
+
},
|
794 |
+
{
|
795 |
+
"inputs": [
|
796 |
+
{
|
797 |
+
"internalType": "address",
|
798 |
+
"name": "operator",
|
799 |
+
"type": "address"
|
800 |
+
},
|
801 |
+
{
|
802 |
+
"internalType": "uint256",
|
803 |
+
"name": "serviceId",
|
804 |
+
"type": "uint256"
|
805 |
+
},
|
806 |
+
{
|
807 |
+
"internalType": "uint32[]",
|
808 |
+
"name": "agentIds",
|
809 |
+
"type": "uint32[]"
|
810 |
+
}
|
811 |
+
],
|
812 |
+
"name": "registerAgentsTokenDeposit",
|
813 |
+
"outputs": [
|
814 |
+
{
|
815 |
+
"internalType": "bool",
|
816 |
+
"name": "isTokenSecured",
|
817 |
+
"type": "bool"
|
818 |
+
}
|
819 |
+
],
|
820 |
+
"stateMutability": "nonpayable",
|
821 |
+
"type": "function"
|
822 |
+
},
|
823 |
+
{
|
824 |
+
"inputs": [
|
825 |
+
{
|
826 |
+
"internalType": "uint256",
|
827 |
+
"name": "serviceId",
|
828 |
+
"type": "uint256"
|
829 |
+
}
|
830 |
+
],
|
831 |
+
"name": "resetServiceToken",
|
832 |
+
"outputs": [],
|
833 |
+
"stateMutability": "nonpayable",
|
834 |
+
"type": "function"
|
835 |
+
},
|
836 |
+
{
|
837 |
+
"inputs": [],
|
838 |
+
"name": "serviceRegistry",
|
839 |
+
"outputs": [
|
840 |
+
{
|
841 |
+
"internalType": "address",
|
842 |
+
"name": "",
|
843 |
+
"type": "address"
|
844 |
+
}
|
845 |
+
],
|
846 |
+
"stateMutability": "view",
|
847 |
+
"type": "function"
|
848 |
+
},
|
849 |
+
{
|
850 |
+
"inputs": [
|
851 |
+
{
|
852 |
+
"internalType": "address[]",
|
853 |
+
"name": "agentInstances",
|
854 |
+
"type": "address[]"
|
855 |
+
},
|
856 |
+
{
|
857 |
+
"internalType": "uint256[]",
|
858 |
+
"name": "amounts",
|
859 |
+
"type": "uint256[]"
|
860 |
+
},
|
861 |
+
{
|
862 |
+
"internalType": "uint256",
|
863 |
+
"name": "serviceId",
|
864 |
+
"type": "uint256"
|
865 |
+
}
|
866 |
+
],
|
867 |
+
"name": "slash",
|
868 |
+
"outputs": [
|
869 |
+
{
|
870 |
+
"internalType": "bool",
|
871 |
+
"name": "success",
|
872 |
+
"type": "bool"
|
873 |
+
}
|
874 |
+
],
|
875 |
+
"stateMutability": "nonpayable",
|
876 |
+
"type": "function"
|
877 |
+
},
|
878 |
+
{
|
879 |
+
"inputs": [
|
880 |
+
{
|
881 |
+
"internalType": "uint256",
|
882 |
+
"name": "serviceId",
|
883 |
+
"type": "uint256"
|
884 |
+
}
|
885 |
+
],
|
886 |
+
"name": "terminateTokenRefund",
|
887 |
+
"outputs": [
|
888 |
+
{
|
889 |
+
"internalType": "uint256",
|
890 |
+
"name": "securityRefund",
|
891 |
+
"type": "uint256"
|
892 |
+
}
|
893 |
+
],
|
894 |
+
"stateMutability": "nonpayable",
|
895 |
+
"type": "function"
|
896 |
+
},
|
897 |
+
{
|
898 |
+
"inputs": [
|
899 |
+
{
|
900 |
+
"internalType": "address",
|
901 |
+
"name": "operator",
|
902 |
+
"type": "address"
|
903 |
+
},
|
904 |
+
{
|
905 |
+
"internalType": "uint256",
|
906 |
+
"name": "serviceId",
|
907 |
+
"type": "uint256"
|
908 |
+
}
|
909 |
+
],
|
910 |
+
"name": "unbondTokenRefund",
|
911 |
+
"outputs": [
|
912 |
+
{
|
913 |
+
"internalType": "uint256",
|
914 |
+
"name": "refund",
|
915 |
+
"type": "uint256"
|
916 |
+
}
|
917 |
+
],
|
918 |
+
"stateMutability": "nonpayable",
|
919 |
+
"type": "function"
|
920 |
+
}
|
921 |
+
],
|
922 |
+
"bytecode": "0x60a0604052600160035534801561001557600080fd5b5060405162001f3a38038062001f3a83398101604081905261003691610080565b6001600160a01b03811661005d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0316608052600080546001600160a01b031916331790556100b0565b60006020828403121561009257600080fd5b81516001600160a01b03811681146100a957600080fd5b9392505050565b608051611e52620000e8600039600081816103be015281816105c1015281816106bd015281816108470152610b630152611e526000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806375c1f934116100d8578063b0f4c2481161008c578063dc4f8bc511610066578063dc4f8bc514610400578063e3ce9a8414610413578063ece531321461042657600080fd5b8063b0f4c248146103a6578063cbcf252a146103b9578063cbd413a5146103e057600080fd5b80638da5cb5b116100bd5780638da5cb5b1461036d578063a3fbbaae14610380578063a6f9dae11461039357600080fd5b806375c1f934146103165780638a2bd86f1461033e57600080fd5b806346d7836d1161013a578063542db44911610114578063542db449146102dd57806357838e85146102f05780635f3662581461030357600080fd5b806346d7836d14610264578063481c6a751461029f5780635419bb8c146102ca57600080fd5b806325e1afc31161016b57806325e1afc3146101cf5780633cebfa4f146101e2578063421448541461024457600080fd5b806310c6aa191461018757806313f824d81461019c575b600080fd5b61019a610195366004611956565b610439565b005b6101bc6101aa36600461197a565b60056020526000908152604090205481565b6040519081526020015b60405180910390f35b6101bc6101dd36600461197a565b6104fc565b61021d6101f036600461197a565b6004602052600090815260409020546001600160a01b03811690600160a01b90046001600160601b031682565b604080516001600160a01b0390931683526001600160601b039091166020830152016101c6565b6101bc61025236600461197a565b60066020526000908152604090205481565b61028f61027236600461197a565b6000908152600460205260409020546001600160a01b0316151590565b60405190151581526020016101c6565b6001546102b2906001600160a01b031681565b6040516001600160a01b0390911681526020016101c6565b61028f6102d8366004611a69565b6106b6565b61028f6102eb36600461197a565b610a88565b6002546102b2906001600160a01b031681565b61019a61031136600461197a565b610e0e565b6101bc610324366004611b34565b602090811b90911760009081526005909152604090205490565b6101bc61034c366004611b56565b60a01b6001600160a01b039091161760009081526006602052604090205490565b6000546102b2906001600160a01b031681565b61019a61038e366004611956565b610e5f565b61019a6103a1366004611956565b610f1d565b6101bc6103b4366004611b56565b610fd9565b6102b27f000000000000000000000000000000000000000000000000000000000000000081565b6101bc6103ee366004611956565b60076020526000908152604090205481565b61028f61040e366004611bf8565b6110ff565b61019a610421366004611c51565b611464565b6101bc610434366004611956565b611708565b6000546001600160a01b0316331461047e5760005460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b6001600160a01b0381166104a55760405163d92e233d60e01b815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f8d1e8547016120917daad7f81c42b48f7fee379badc48f1889f0f43bb619472590600090a250565b600060016003541115610522576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001546001600160a01b031633146105675760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b6000828152600460209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160601b03169183019190915280156106aa5781602001516001600160601b0316925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e866040518263ffffffff1660e01b815260040161060d91815260200190565b602060405180830381865afa15801561062a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064e9190611cd1565b905061065b828286611831565b816001600160a01b0316816001600160a01b03167fb5ea3bd24bc48df54cdc99f11e448ab16503a3e16f46c363202f5fff4891acba866040516106a091815260200190565b60405180910390a3505b50506001600355919050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634236aff8856040518263ffffffff1660e01b815260040161070991815260200190565b60e060405180830381865afa158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190611cee565b9650505050509250508060ff1660041461078357604051633c053f9d60e21b815260ff8216600482015260248101859052604401610475565b8551158061079357508451865114155b156107be57855185516040516308151c1160e41b815260048101929092526024820152604401610475565b336001600160a01b038316146107ff576040516379f91cd360e01b81523360048201526001600160a01b038316602482015260448101859052606401610475565b6000848152600460205260409020546001600160a01b0316806108355760405163d92e233d60e01b815260040160405180910390fd5b86516000805b82811015610a395760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634eb780da8c848151811061088657610886611d92565b60200260200101516040518263ffffffff1660e01b81526004016108b991906001600160a01b0391909116815260200190565b602060405180830381865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa9190611cd1565b60a08a901b6001600160a01b0382161760008181526006602052604081205492935090919081900361092e57505050610a29565b808c858151811061094157610941611d92565b602002602001015110610963576109588186611dbe565b9450600090506109b2565b8b848151811061097557610975611d92565b6020026020010151856109889190611dbe565b94508b848151811061099c5761099c611d92565b6020026020010151816109af9190611dd7565b90505b60008281526006602052604090208190558b518b906001600160a01b038516907fd79658b314eb967321e5e6a82ab39f6f7ffc567d38c6feee527761aca406a597908f9088908110610a0657610a06611d92565b6020026020010151604051610a1d91815260200190565b60405180910390a35050505b610a3281611dea565b905061083b565b506001600160a01b038316600090815260076020526040902054610a5d9082611dbe565b6001600160a01b03909316600090815260076020526040902092909255506001979650505050505050565b600060016003541115610aae576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001546001600160a01b03163314610af35760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b6000828152600460209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160601b03169183019190915280156106aa5760208201516040516331a9108f60e11b8152600481018690526001600160601b03909116906000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190611cd1565b604051636eb1769f60e11b81526001600160a01b03808316600483015230602483015291925060009185169063dd62ed3e90604401602060405180830381865afa158015610c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4c9190611e03565b905082811015610c8057604051631c30abbb60e31b8152600481018290526024810184905260448101889052606401610475565b6040516370a0823160e01b8152306004820152600196506000906001600160a01b038616906370a0823190602401602060405180830381865afa158015610ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cef9190611e03565b9050610cfd858430876118b4565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015610d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d689190611e03565b905080821180610d81575084610d7e8383611dd7565b14155b15610db057604051631c30abbb60e31b81526000600482015260248101869052604481018a9052606401610475565b856001600160a01b0316846001600160a01b03167f98c09d9949722bae4bd0d988d4050091c3ae7ec6d51d3c6bbfe4233593944e9e87604051610df591815260200190565b60405180910390a3505050505050506001600355919050565b6001546001600160a01b03163314610e4e5760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b600090815260046020526040812055565b6000546001600160a01b03163314610e9f5760005460405163521eb56d60e11b81523360048201526001600160a01b039091166024820152604401610475565b6001600160a01b038116610ec65760405163d92e233d60e01b815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d90600090a250565b6000546001600160a01b03163314610f5d5760005460405163521eb56d60e11b81523360048201526001600160a01b039091166024820152604401610475565b6001600160a01b038116610f845760405163d92e233d60e01b815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b600060016003541115610fff576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001546001600160a01b031633146110445760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b6000828152600460205260409020546001600160a01b031680156110f35760a083901b6001600160a01b03851617600081815260066020526040902054925082156110f1576000818152600660205260408120556110a3828685611831565b816001600160a01b0316856001600160a01b03167fb5ea3bd24bc48df54cdc99f11e448ab16503a3e16f46c363202f5fff4891acba856040516110e891815260200190565b60405180910390a35b505b50600160035592915050565b600060016003541115611125576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001546001600160a01b0316331461116a5760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b6000838152600460205260409020546001600160a01b031680156114575782516000805b828110156111f757600087905060208783815181106111af576111af611d92565b60209081029190910181015163ffffffff1690911b91909117600081815260059092526040909120546111e28185611dbe565b93505050806111f090611dea565b905061118e565b50604051636eb1769f60e11b81526001600160a01b0388811660048301523060248301526000919085169063dd62ed3e90604401602060405180830381865afa158015611248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126c9190611e03565b9050818110156112a057604051637ebbcab960e11b8152600481018290526024810183905260448101889052606401610475565b60a087901b6001600160a01b03891617600081815260066020526040812080548592906112ce908490611dbe565b90915550506040516370a0823160e01b8152306004820152600196506000906001600160a01b038716906370a0823190602401602060405180830381865afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113429190611e03565b9050611350868b30876118b4565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015611397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bb9190611e03565b9050808211806113d45750846113d18383611dd7565b14155b1561140357604051637ebbcab960e11b81526000600482015260248101869052604481018b9052606401610475565b866001600160a01b03168b6001600160a01b03167f98c09d9949722bae4bd0d988d4050091c3ae7ec6d51d3c6bbfe4233593944e9e8760405161144891815260200190565b60405180910390a35050505050505b5060016003559392505050565b6001546001600160a01b031633146114a45760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b60408051600060248083018290528351808403909101815260449092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166370a0823160e01b1790527f70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be91906001600160a01b0386163b1561153557600080825160208401895afa91505b8161155e5760405163e77376f360e01b81526001600160a01b0387166004820152602401610475565b6000805b86518110156116b45785818151811061157d5761157d611d92565b6020026020010151600003156116a4576001600160601b0380168682815181106115a9576115a9611d92565b60200260200101511115611606578581815181106115c9576115c9611d92565b60200260200101516001600160601b03604051637ae5968560e01b81526004016104759291909182526001600160601b0316602082015260400190565b6000899050602088838151811061161f5761161f611d92565b602002602001015163ffffffff16901b8117905086828151811061164557611645611d92565b602002602001015160056000838152602001908152602001600020819055508287838151811061167757611677611d92565b602002602001015111156116a25786828151811061169757611697611d92565b602002602001015192505b505b6116ad81611dea565b9050611562565b506040805180820182526001600160a01b0398891681526001600160601b03928316602080830191825260009b8c52600490529190992098519051909116600160a01b029616959095179095555050505050565b60006001600354111561172e576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556000546001600160a01b031633146117735760005460405163521eb56d60e11b81523360048201526001600160a01b039091166024820152604401610475565b6002546001600160a01b031661179c5760405163d92e233d60e01b815260040160405180910390fd5b506001600160a01b0381166000908152600760205260409020548015611827576001600160a01b038083166000908152600760205260408120556002546117e69184911683611831565b6040518181526001600160a01b0383169033907feb64d3e0fe21df59e0edd78e9749e4bc9f3cf593a842d487fe40f29ef45fdad69060200160405180910390a35b6001600355919050565b600060405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d11600160005114161716915060006060528060405250806118ae5760405163cd3f165960e01b81526001600160a01b0380861660048301523060248301528416604482015260648101839052608401610475565b50505050565b60006040516323b872dd60e01b6000528460045283602452826044526020600060646000808a5af13d15601f3d11600160005114161716915060006060528060405250806119375760405163cd3f165960e01b81526001600160a01b03808716600483015280861660248301528416604482015260648101839052608401610475565b5050505050565b6001600160a01b038116811461195357600080fd5b50565b60006020828403121561196857600080fd5b81356119738161193e565b9392505050565b60006020828403121561198c57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156119d2576119d2611993565b604052919050565b600067ffffffffffffffff8211156119f4576119f4611993565b5060051b60200190565b600082601f830112611a0f57600080fd5b81356020611a24611a1f836119da565b6119a9565b82815260059290921b84018101918181019086841115611a4357600080fd5b8286015b84811015611a5e5780358352918301918301611a47565b509695505050505050565b600080600060608486031215611a7e57600080fd5b833567ffffffffffffffff80821115611a9657600080fd5b818601915086601f830112611aaa57600080fd5b81356020611aba611a1f836119da565b82815260059290921b8401810191818101908a841115611ad957600080fd5b948201945b83861015611b00578535611af18161193e565b82529482019490820190611ade565b97505087013592505080821115611b1657600080fd5b50611b23868287016119fe565b925050604084013590509250925092565b60008060408385031215611b4757600080fd5b50508035926020909101359150565b60008060408385031215611b6957600080fd5b8235611b748161193e565b946020939093013593505050565b63ffffffff8116811461195357600080fd5b600082601f830112611ba557600080fd5b81356020611bb5611a1f836119da565b82815260059290921b84018101918181019086841115611bd457600080fd5b8286015b84811015611a5e578035611beb81611b82565b8352918301918301611bd8565b600080600060608486031215611c0d57600080fd5b8335611c188161193e565b925060208401359150604084013567ffffffffffffffff811115611c3b57600080fd5b611c4786828701611b94565b9150509250925092565b60008060008060808587031215611c6757600080fd5b843593506020850135611c798161193e565b9250604085013567ffffffffffffffff80821115611c9657600080fd5b611ca288838901611b94565b93506060870135915080821115611cb857600080fd5b50611cc5878288016119fe565b91505092959194509250565b600060208284031215611ce357600080fd5b81516119738161193e565b600080600080600080600060e0888a031215611d0957600080fd5b87516001600160601b0381168114611d2057600080fd5b6020890151909750611d318161193e565b604089015160608a01519197509550611d4981611b82565b6080890151909450611d5a81611b82565b60a0890151909350611d6b81611b82565b60c089015190925060ff81168114611d8257600080fd5b8091505092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611dd157611dd1611da8565b92915050565b81810381811115611dd157611dd1611da8565b600060018201611dfc57611dfc611da8565b5060010190565b600060208284031215611e1557600080fd5b505191905056fea2646970667358221220e38aad42f76663645ad01adefd7b54c3c3a128669aadd1939110bdc298d0532264736f6c63430008130033",
|
923 |
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c806375c1f934116100d8578063b0f4c2481161008c578063dc4f8bc511610066578063dc4f8bc514610400578063e3ce9a8414610413578063ece531321461042657600080fd5b8063b0f4c248146103a6578063cbcf252a146103b9578063cbd413a5146103e057600080fd5b80638da5cb5b116100bd5780638da5cb5b1461036d578063a3fbbaae14610380578063a6f9dae11461039357600080fd5b806375c1f934146103165780638a2bd86f1461033e57600080fd5b806346d7836d1161013a578063542db44911610114578063542db449146102dd57806357838e85146102f05780635f3662581461030357600080fd5b806346d7836d14610264578063481c6a751461029f5780635419bb8c146102ca57600080fd5b806325e1afc31161016b57806325e1afc3146101cf5780633cebfa4f146101e2578063421448541461024457600080fd5b806310c6aa191461018757806313f824d81461019c575b600080fd5b61019a610195366004611956565b610439565b005b6101bc6101aa36600461197a565b60056020526000908152604090205481565b6040519081526020015b60405180910390f35b6101bc6101dd36600461197a565b6104fc565b61021d6101f036600461197a565b6004602052600090815260409020546001600160a01b03811690600160a01b90046001600160601b031682565b604080516001600160a01b0390931683526001600160601b039091166020830152016101c6565b6101bc61025236600461197a565b60066020526000908152604090205481565b61028f61027236600461197a565b6000908152600460205260409020546001600160a01b0316151590565b60405190151581526020016101c6565b6001546102b2906001600160a01b031681565b6040516001600160a01b0390911681526020016101c6565b61028f6102d8366004611a69565b6106b6565b61028f6102eb36600461197a565b610a88565b6002546102b2906001600160a01b031681565b61019a61031136600461197a565b610e0e565b6101bc610324366004611b34565b602090811b90911760009081526005909152604090205490565b6101bc61034c366004611b56565b60a01b6001600160a01b039091161760009081526006602052604090205490565b6000546102b2906001600160a01b031681565b61019a61038e366004611956565b610e5f565b61019a6103a1366004611956565b610f1d565b6101bc6103b4366004611b56565b610fd9565b6102b27f000000000000000000000000000000000000000000000000000000000000000081565b6101bc6103ee366004611956565b60076020526000908152604090205481565b61028f61040e366004611bf8565b6110ff565b61019a610421366004611c51565b611464565b6101bc610434366004611956565b611708565b6000546001600160a01b0316331461047e5760005460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b6001600160a01b0381166104a55760405163d92e233d60e01b815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f8d1e8547016120917daad7f81c42b48f7fee379badc48f1889f0f43bb619472590600090a250565b600060016003541115610522576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001546001600160a01b031633146105675760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b6000828152600460209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160601b03169183019190915280156106aa5781602001516001600160601b0316925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e866040518263ffffffff1660e01b815260040161060d91815260200190565b602060405180830381865afa15801561062a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064e9190611cd1565b905061065b828286611831565b816001600160a01b0316816001600160a01b03167fb5ea3bd24bc48df54cdc99f11e448ab16503a3e16f46c363202f5fff4891acba866040516106a091815260200190565b60405180910390a3505b50506001600355919050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634236aff8856040518263ffffffff1660e01b815260040161070991815260200190565b60e060405180830381865afa158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190611cee565b9650505050509250508060ff1660041461078357604051633c053f9d60e21b815260ff8216600482015260248101859052604401610475565b8551158061079357508451865114155b156107be57855185516040516308151c1160e41b815260048101929092526024820152604401610475565b336001600160a01b038316146107ff576040516379f91cd360e01b81523360048201526001600160a01b038316602482015260448101859052606401610475565b6000848152600460205260409020546001600160a01b0316806108355760405163d92e233d60e01b815260040160405180910390fd5b86516000805b82811015610a395760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634eb780da8c848151811061088657610886611d92565b60200260200101516040518263ffffffff1660e01b81526004016108b991906001600160a01b0391909116815260200190565b602060405180830381865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa9190611cd1565b60a08a901b6001600160a01b0382161760008181526006602052604081205492935090919081900361092e57505050610a29565b808c858151811061094157610941611d92565b602002602001015110610963576109588186611dbe565b9450600090506109b2565b8b848151811061097557610975611d92565b6020026020010151856109889190611dbe565b94508b848151811061099c5761099c611d92565b6020026020010151816109af9190611dd7565b90505b60008281526006602052604090208190558b518b906001600160a01b038516907fd79658b314eb967321e5e6a82ab39f6f7ffc567d38c6feee527761aca406a597908f9088908110610a0657610a06611d92565b6020026020010151604051610a1d91815260200190565b60405180910390a35050505b610a3281611dea565b905061083b565b506001600160a01b038316600090815260076020526040902054610a5d9082611dbe565b6001600160a01b03909316600090815260076020526040902092909255506001979650505050505050565b600060016003541115610aae576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001546001600160a01b03163314610af35760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b6000828152600460209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160601b03169183019190915280156106aa5760208201516040516331a9108f60e11b8152600481018690526001600160601b03909116906000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190611cd1565b604051636eb1769f60e11b81526001600160a01b03808316600483015230602483015291925060009185169063dd62ed3e90604401602060405180830381865afa158015610c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4c9190611e03565b905082811015610c8057604051631c30abbb60e31b8152600481018290526024810184905260448101889052606401610475565b6040516370a0823160e01b8152306004820152600196506000906001600160a01b038616906370a0823190602401602060405180830381865afa158015610ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cef9190611e03565b9050610cfd858430876118b4565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015610d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d689190611e03565b905080821180610d81575084610d7e8383611dd7565b14155b15610db057604051631c30abbb60e31b81526000600482015260248101869052604481018a9052606401610475565b856001600160a01b0316846001600160a01b03167f98c09d9949722bae4bd0d988d4050091c3ae7ec6d51d3c6bbfe4233593944e9e87604051610df591815260200190565b60405180910390a3505050505050506001600355919050565b6001546001600160a01b03163314610e4e5760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b600090815260046020526040812055565b6000546001600160a01b03163314610e9f5760005460405163521eb56d60e11b81523360048201526001600160a01b039091166024820152604401610475565b6001600160a01b038116610ec65760405163d92e233d60e01b815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d90600090a250565b6000546001600160a01b03163314610f5d5760005460405163521eb56d60e11b81523360048201526001600160a01b039091166024820152604401610475565b6001600160a01b038116610f845760405163d92e233d60e01b815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b600060016003541115610fff576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001546001600160a01b031633146110445760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b6000828152600460205260409020546001600160a01b031680156110f35760a083901b6001600160a01b03851617600081815260066020526040902054925082156110f1576000818152600660205260408120556110a3828685611831565b816001600160a01b0316856001600160a01b03167fb5ea3bd24bc48df54cdc99f11e448ab16503a3e16f46c363202f5fff4891acba856040516110e891815260200190565b60405180910390a35b505b50600160035592915050565b600060016003541115611125576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001546001600160a01b0316331461116a5760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b6000838152600460205260409020546001600160a01b031680156114575782516000805b828110156111f757600087905060208783815181106111af576111af611d92565b60209081029190910181015163ffffffff1690911b91909117600081815260059092526040909120546111e28185611dbe565b93505050806111f090611dea565b905061118e565b50604051636eb1769f60e11b81526001600160a01b0388811660048301523060248301526000919085169063dd62ed3e90604401602060405180830381865afa158015611248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126c9190611e03565b9050818110156112a057604051637ebbcab960e11b8152600481018290526024810183905260448101889052606401610475565b60a087901b6001600160a01b03891617600081815260066020526040812080548592906112ce908490611dbe565b90915550506040516370a0823160e01b8152306004820152600196506000906001600160a01b038716906370a0823190602401602060405180830381865afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113429190611e03565b9050611350868b30876118b4565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015611397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bb9190611e03565b9050808211806113d45750846113d18383611dd7565b14155b1561140357604051637ebbcab960e11b81526000600482015260248101869052604481018b9052606401610475565b866001600160a01b03168b6001600160a01b03167f98c09d9949722bae4bd0d988d4050091c3ae7ec6d51d3c6bbfe4233593944e9e8760405161144891815260200190565b60405180910390a35050505050505b5060016003559392505050565b6001546001600160a01b031633146114a45760015460405163312d21ff60e11b81523360048201526001600160a01b039091166024820152604401610475565b60408051600060248083018290528351808403909101815260449092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166370a0823160e01b1790527f70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be91906001600160a01b0386163b1561153557600080825160208401895afa91505b8161155e5760405163e77376f360e01b81526001600160a01b0387166004820152602401610475565b6000805b86518110156116b45785818151811061157d5761157d611d92565b6020026020010151600003156116a4576001600160601b0380168682815181106115a9576115a9611d92565b60200260200101511115611606578581815181106115c9576115c9611d92565b60200260200101516001600160601b03604051637ae5968560e01b81526004016104759291909182526001600160601b0316602082015260400190565b6000899050602088838151811061161f5761161f611d92565b602002602001015163ffffffff16901b8117905086828151811061164557611645611d92565b602002602001015160056000838152602001908152602001600020819055508287838151811061167757611677611d92565b602002602001015111156116a25786828151811061169757611697611d92565b602002602001015192505b505b6116ad81611dea565b9050611562565b506040805180820182526001600160a01b0398891681526001600160601b03928316602080830191825260009b8c52600490529190992098519051909116600160a01b029616959095179095555050505050565b60006001600354111561172e576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556000546001600160a01b031633146117735760005460405163521eb56d60e11b81523360048201526001600160a01b039091166024820152604401610475565b6002546001600160a01b031661179c5760405163d92e233d60e01b815260040160405180910390fd5b506001600160a01b0381166000908152600760205260409020548015611827576001600160a01b038083166000908152600760205260408120556002546117e69184911683611831565b6040518181526001600160a01b0383169033907feb64d3e0fe21df59e0edd78e9749e4bc9f3cf593a842d487fe40f29ef45fdad69060200160405180910390a35b6001600355919050565b600060405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d11600160005114161716915060006060528060405250806118ae5760405163cd3f165960e01b81526001600160a01b0380861660048301523060248301528416604482015260648101839052608401610475565b50505050565b60006040516323b872dd60e01b6000528460045283602452826044526020600060646000808a5af13d15601f3d11600160005114161716915060006060528060405250806119375760405163cd3f165960e01b81526001600160a01b03808716600483015280861660248301528416604482015260648101839052608401610475565b5050505050565b6001600160a01b038116811461195357600080fd5b50565b60006020828403121561196857600080fd5b81356119738161193e565b9392505050565b60006020828403121561198c57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156119d2576119d2611993565b604052919050565b600067ffffffffffffffff8211156119f4576119f4611993565b5060051b60200190565b600082601f830112611a0f57600080fd5b81356020611a24611a1f836119da565b6119a9565b82815260059290921b84018101918181019086841115611a4357600080fd5b8286015b84811015611a5e5780358352918301918301611a47565b509695505050505050565b600080600060608486031215611a7e57600080fd5b833567ffffffffffffffff80821115611a9657600080fd5b818601915086601f830112611aaa57600080fd5b81356020611aba611a1f836119da565b82815260059290921b8401810191818101908a841115611ad957600080fd5b948201945b83861015611b00578535611af18161193e565b82529482019490820190611ade565b97505087013592505080821115611b1657600080fd5b50611b23868287016119fe565b925050604084013590509250925092565b60008060408385031215611b4757600080fd5b50508035926020909101359150565b60008060408385031215611b6957600080fd5b8235611b748161193e565b946020939093013593505050565b63ffffffff8116811461195357600080fd5b600082601f830112611ba557600080fd5b81356020611bb5611a1f836119da565b82815260059290921b84018101918181019086841115611bd457600080fd5b8286015b84811015611a5e578035611beb81611b82565b8352918301918301611bd8565b600080600060608486031215611c0d57600080fd5b8335611c188161193e565b925060208401359150604084013567ffffffffffffffff811115611c3b57600080fd5b611c4786828701611b94565b9150509250925092565b60008060008060808587031215611c6757600080fd5b843593506020850135611c798161193e565b9250604085013567ffffffffffffffff80821115611c9657600080fd5b611ca288838901611b94565b93506060870135915080821115611cb857600080fd5b50611cc5878288016119fe565b91505092959194509250565b600060208284031215611ce357600080fd5b81516119738161193e565b600080600080600080600060e0888a031215611d0957600080fd5b87516001600160601b0381168114611d2057600080fd5b6020890151909750611d318161193e565b604089015160608a01519197509550611d4981611b82565b6080890151909450611d5a81611b82565b60a0890151909350611d6b81611b82565b60c089015190925060ff81168114611d8257600080fd5b8091505092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611dd157611dd1611da8565b92915050565b81810381811115611dd157611dd1611da8565b600060018201611dfc57611dfc611da8565b5060010190565b600060208284031215611e1557600080fd5b505191905056fea2646970667358221220e38aad42f76663645ad01adefd7b54c3c3a128669aadd1939110bdc298d0532264736f6c63430008130033",
|
924 |
+
"linkReferences": {},
|
925 |
+
"deployedLinkReferences": {}
|
926 |
+
}
|
contracts/StakingActivityChecker.json
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_format": "hh-sol-artifact-1",
|
3 |
+
"contractName": "StakingActivityChecker",
|
4 |
+
"sourceName": "contracts/staking/StakingActivityChecker.sol",
|
5 |
+
"abi": [
|
6 |
+
{
|
7 |
+
"inputs": [
|
8 |
+
{
|
9 |
+
"internalType": "uint256",
|
10 |
+
"name": "_livenessRatio",
|
11 |
+
"type": "uint256"
|
12 |
+
}
|
13 |
+
],
|
14 |
+
"stateMutability": "nonpayable",
|
15 |
+
"type": "constructor"
|
16 |
+
},
|
17 |
+
{
|
18 |
+
"inputs": [],
|
19 |
+
"name": "ZeroValue",
|
20 |
+
"type": "error"
|
21 |
+
},
|
22 |
+
{
|
23 |
+
"inputs": [
|
24 |
+
{
|
25 |
+
"internalType": "address",
|
26 |
+
"name": "multisig",
|
27 |
+
"type": "address"
|
28 |
+
}
|
29 |
+
],
|
30 |
+
"name": "getMultisigNonces",
|
31 |
+
"outputs": [
|
32 |
+
{
|
33 |
+
"internalType": "uint256[]",
|
34 |
+
"name": "nonces",
|
35 |
+
"type": "uint256[]"
|
36 |
+
}
|
37 |
+
],
|
38 |
+
"stateMutability": "view",
|
39 |
+
"type": "function"
|
40 |
+
},
|
41 |
+
{
|
42 |
+
"inputs": [
|
43 |
+
{
|
44 |
+
"internalType": "uint256[]",
|
45 |
+
"name": "curNonces",
|
46 |
+
"type": "uint256[]"
|
47 |
+
},
|
48 |
+
{
|
49 |
+
"internalType": "uint256[]",
|
50 |
+
"name": "lastNonces",
|
51 |
+
"type": "uint256[]"
|
52 |
+
},
|
53 |
+
{
|
54 |
+
"internalType": "uint256",
|
55 |
+
"name": "ts",
|
56 |
+
"type": "uint256"
|
57 |
+
}
|
58 |
+
],
|
59 |
+
"name": "isRatioPass",
|
60 |
+
"outputs": [
|
61 |
+
{
|
62 |
+
"internalType": "bool",
|
63 |
+
"name": "ratioPass",
|
64 |
+
"type": "bool"
|
65 |
+
}
|
66 |
+
],
|
67 |
+
"stateMutability": "view",
|
68 |
+
"type": "function"
|
69 |
+
},
|
70 |
+
{
|
71 |
+
"inputs": [],
|
72 |
+
"name": "livenessRatio",
|
73 |
+
"outputs": [
|
74 |
+
{
|
75 |
+
"internalType": "uint256",
|
76 |
+
"name": "",
|
77 |
+
"type": "uint256"
|
78 |
+
}
|
79 |
+
],
|
80 |
+
"stateMutability": "view",
|
81 |
+
"type": "function"
|
82 |
+
}
|
83 |
+
],
|
84 |
+
"bytecode": "0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063184023a514610043578063592cf3fb1461006b578063d564c4bf146100a0575b5f80fd5b610056610051366004610328565b6100c0565b60405190151581526020015b60405180910390f35b6100927f00000000000000000000000000000000000000000000000000002a1b324b8f6881565b604051908152602001610062565b6100b36100ae366004610390565b610190565b60405161006291906103c3565b5f80821180156101015750825f815181106100dd576100dd610406565b6020026020010151845f815181106100f7576100f7610406565b6020026020010151115b15610189575f82845f8151811061011a5761011a610406565b6020026020010151865f8151811061013457610134610406565b60200260200101516101469190610460565b61015890670de0b6b3a7640000610479565b6101629190610490565b7f00000000000000000000000000000000000000000000000000002a1b324b8f6811159150505b9392505050565b604080516001808252818301909252606091602080830190803683370190505090508173ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021f91906104c8565b815f8151811061023157610231610406565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261027e575f80fd5b8135602067ffffffffffffffff8083111561029b5761029b610242565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156102de576102de610242565b60405293845260208187018101949081019250878511156102fd575f80fd5b6020870191505b8482101561031d57813583529183019190830190610304565b979650505050505050565b5f805f6060848603121561033a575f80fd5b833567ffffffffffffffff80821115610351575f80fd5b61035d8783880161026f565b94506020860135915080821115610372575f80fd5b5061037f8682870161026f565b925050604084013590509250925092565b5f602082840312156103a0575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610189575f80fd5b602080825282518282018190525f9190848201906040850190845b818110156103fa578351835292840192918401916001016103de565b50909695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561047357610473610433565b92915050565b808202811582820484141761047357610473610433565b5f826104c3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f602082840312156104d8575f80fd5b505191905056fea26469706673582212205cd6cde3d106d475558793ccc0670f4af07e2e69e437eff007791837f35d016464736f6c63430008190033",
|
85 |
+
"linkReferences": {},
|
86 |
+
"deployedLinkReferences": {}
|
87 |
+
}
|
contracts/StakingToken.json
ADDED
@@ -0,0 +1,1274 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_format": "hh-sol-artifact-1",
|
3 |
+
"contractName": "ServiceStakingToken",
|
4 |
+
"sourceName": "contracts/staking/ServiceStakingToken.sol",
|
5 |
+
"abi": [
|
6 |
+
{
|
7 |
+
"inputs": [],
|
8 |
+
"name": "AlreadyInitialized",
|
9 |
+
"type": "error"
|
10 |
+
},
|
11 |
+
{
|
12 |
+
"inputs": [
|
13 |
+
{
|
14 |
+
"internalType": "address",
|
15 |
+
"name": "activityChecker",
|
16 |
+
"type": "address"
|
17 |
+
}
|
18 |
+
],
|
19 |
+
"name": "ContractOnly",
|
20 |
+
"type": "error"
|
21 |
+
},
|
22 |
+
{
|
23 |
+
"inputs": [
|
24 |
+
{
|
25 |
+
"internalType": "uint256",
|
26 |
+
"name": "provided",
|
27 |
+
"type": "uint256"
|
28 |
+
},
|
29 |
+
{
|
30 |
+
"internalType": "uint256",
|
31 |
+
"name": "expected",
|
32 |
+
"type": "uint256"
|
33 |
+
}
|
34 |
+
],
|
35 |
+
"name": "LowerThan",
|
36 |
+
"type": "error"
|
37 |
+
},
|
38 |
+
{
|
39 |
+
"inputs": [
|
40 |
+
{
|
41 |
+
"internalType": "uint256",
|
42 |
+
"name": "maxNumServices",
|
43 |
+
"type": "uint256"
|
44 |
+
}
|
45 |
+
],
|
46 |
+
"name": "MaxNumServicesReached",
|
47 |
+
"type": "error"
|
48 |
+
},
|
49 |
+
{
|
50 |
+
"inputs": [],
|
51 |
+
"name": "NoRewardsAvailable",
|
52 |
+
"type": "error"
|
53 |
+
},
|
54 |
+
{
|
55 |
+
"inputs": [
|
56 |
+
{
|
57 |
+
"internalType": "uint256",
|
58 |
+
"name": "serviceId",
|
59 |
+
"type": "uint256"
|
60 |
+
},
|
61 |
+
{
|
62 |
+
"internalType": "uint256",
|
63 |
+
"name": "tsProvided",
|
64 |
+
"type": "uint256"
|
65 |
+
},
|
66 |
+
{
|
67 |
+
"internalType": "uint256",
|
68 |
+
"name": "tsExpected",
|
69 |
+
"type": "uint256"
|
70 |
+
}
|
71 |
+
],
|
72 |
+
"name": "NotEnoughTimeStaked",
|
73 |
+
"type": "error"
|
74 |
+
},
|
75 |
+
{
|
76 |
+
"inputs": [
|
77 |
+
{
|
78 |
+
"internalType": "address",
|
79 |
+
"name": "sender",
|
80 |
+
"type": "address"
|
81 |
+
},
|
82 |
+
{
|
83 |
+
"internalType": "address",
|
84 |
+
"name": "owner",
|
85 |
+
"type": "address"
|
86 |
+
}
|
87 |
+
],
|
88 |
+
"name": "OwnerOnly",
|
89 |
+
"type": "error"
|
90 |
+
},
|
91 |
+
{
|
92 |
+
"inputs": [
|
93 |
+
{
|
94 |
+
"internalType": "uint256",
|
95 |
+
"name": "serviceId",
|
96 |
+
"type": "uint256"
|
97 |
+
}
|
98 |
+
],
|
99 |
+
"name": "ServiceNotUnstaked",
|
100 |
+
"type": "error"
|
101 |
+
},
|
102 |
+
{
|
103 |
+
"inputs": [
|
104 |
+
{
|
105 |
+
"internalType": "address",
|
106 |
+
"name": "token",
|
107 |
+
"type": "address"
|
108 |
+
},
|
109 |
+
{
|
110 |
+
"internalType": "address",
|
111 |
+
"name": "from",
|
112 |
+
"type": "address"
|
113 |
+
},
|
114 |
+
{
|
115 |
+
"internalType": "address",
|
116 |
+
"name": "to",
|
117 |
+
"type": "address"
|
118 |
+
},
|
119 |
+
{
|
120 |
+
"internalType": "uint256",
|
121 |
+
"name": "value",
|
122 |
+
"type": "uint256"
|
123 |
+
}
|
124 |
+
],
|
125 |
+
"name": "TokenTransferFailed",
|
126 |
+
"type": "error"
|
127 |
+
},
|
128 |
+
{
|
129 |
+
"inputs": [
|
130 |
+
{
|
131 |
+
"internalType": "address",
|
132 |
+
"name": "multisig",
|
133 |
+
"type": "address"
|
134 |
+
}
|
135 |
+
],
|
136 |
+
"name": "UnauthorizedMultisig",
|
137 |
+
"type": "error"
|
138 |
+
},
|
139 |
+
{
|
140 |
+
"inputs": [
|
141 |
+
{
|
142 |
+
"internalType": "uint256",
|
143 |
+
"name": "provided",
|
144 |
+
"type": "uint256"
|
145 |
+
},
|
146 |
+
{
|
147 |
+
"internalType": "uint256",
|
148 |
+
"name": "expected",
|
149 |
+
"type": "uint256"
|
150 |
+
}
|
151 |
+
],
|
152 |
+
"name": "ValueLowerThan",
|
153 |
+
"type": "error"
|
154 |
+
},
|
155 |
+
{
|
156 |
+
"inputs": [
|
157 |
+
{
|
158 |
+
"internalType": "uint256",
|
159 |
+
"name": "agentId",
|
160 |
+
"type": "uint256"
|
161 |
+
}
|
162 |
+
],
|
163 |
+
"name": "WrongAgentId",
|
164 |
+
"type": "error"
|
165 |
+
},
|
166 |
+
{
|
167 |
+
"inputs": [
|
168 |
+
{
|
169 |
+
"internalType": "uint256",
|
170 |
+
"name": "serviceId",
|
171 |
+
"type": "uint256"
|
172 |
+
}
|
173 |
+
],
|
174 |
+
"name": "WrongServiceConfiguration",
|
175 |
+
"type": "error"
|
176 |
+
},
|
177 |
+
{
|
178 |
+
"inputs": [
|
179 |
+
{
|
180 |
+
"internalType": "uint256",
|
181 |
+
"name": "state",
|
182 |
+
"type": "uint256"
|
183 |
+
},
|
184 |
+
{
|
185 |
+
"internalType": "uint256",
|
186 |
+
"name": "serviceId",
|
187 |
+
"type": "uint256"
|
188 |
+
}
|
189 |
+
],
|
190 |
+
"name": "WrongServiceState",
|
191 |
+
"type": "error"
|
192 |
+
},
|
193 |
+
{
|
194 |
+
"inputs": [
|
195 |
+
{
|
196 |
+
"internalType": "address",
|
197 |
+
"name": "expected",
|
198 |
+
"type": "address"
|
199 |
+
},
|
200 |
+
{
|
201 |
+
"internalType": "address",
|
202 |
+
"name": "provided",
|
203 |
+
"type": "address"
|
204 |
+
}
|
205 |
+
],
|
206 |
+
"name": "WrongStakingToken",
|
207 |
+
"type": "error"
|
208 |
+
},
|
209 |
+
{
|
210 |
+
"inputs": [],
|
211 |
+
"name": "ZeroAddress",
|
212 |
+
"type": "error"
|
213 |
+
},
|
214 |
+
{
|
215 |
+
"inputs": [],
|
216 |
+
"name": "ZeroTokenAddress",
|
217 |
+
"type": "error"
|
218 |
+
},
|
219 |
+
{
|
220 |
+
"inputs": [],
|
221 |
+
"name": "ZeroValue",
|
222 |
+
"type": "error"
|
223 |
+
},
|
224 |
+
{
|
225 |
+
"anonymous": false,
|
226 |
+
"inputs": [
|
227 |
+
{
|
228 |
+
"indexed": true,
|
229 |
+
"internalType": "uint256",
|
230 |
+
"name": "epoch",
|
231 |
+
"type": "uint256"
|
232 |
+
},
|
233 |
+
{
|
234 |
+
"indexed": false,
|
235 |
+
"internalType": "uint256",
|
236 |
+
"name": "availableRewards",
|
237 |
+
"type": "uint256"
|
238 |
+
},
|
239 |
+
{
|
240 |
+
"indexed": false,
|
241 |
+
"internalType": "uint256[]",
|
242 |
+
"name": "serviceIds",
|
243 |
+
"type": "uint256[]"
|
244 |
+
},
|
245 |
+
{
|
246 |
+
"indexed": false,
|
247 |
+
"internalType": "uint256[]",
|
248 |
+
"name": "rewards",
|
249 |
+
"type": "uint256[]"
|
250 |
+
},
|
251 |
+
{
|
252 |
+
"indexed": false,
|
253 |
+
"internalType": "uint256",
|
254 |
+
"name": "epochLength",
|
255 |
+
"type": "uint256"
|
256 |
+
}
|
257 |
+
],
|
258 |
+
"name": "Checkpoint",
|
259 |
+
"type": "event"
|
260 |
+
},
|
261 |
+
{
|
262 |
+
"anonymous": false,
|
263 |
+
"inputs": [
|
264 |
+
{
|
265 |
+
"indexed": true,
|
266 |
+
"internalType": "address",
|
267 |
+
"name": "sender",
|
268 |
+
"type": "address"
|
269 |
+
},
|
270 |
+
{
|
271 |
+
"indexed": false,
|
272 |
+
"internalType": "uint256",
|
273 |
+
"name": "amount",
|
274 |
+
"type": "uint256"
|
275 |
+
},
|
276 |
+
{
|
277 |
+
"indexed": false,
|
278 |
+
"internalType": "uint256",
|
279 |
+
"name": "balance",
|
280 |
+
"type": "uint256"
|
281 |
+
},
|
282 |
+
{
|
283 |
+
"indexed": false,
|
284 |
+
"internalType": "uint256",
|
285 |
+
"name": "availableRewards",
|
286 |
+
"type": "uint256"
|
287 |
+
}
|
288 |
+
],
|
289 |
+
"name": "Deposit",
|
290 |
+
"type": "event"
|
291 |
+
},
|
292 |
+
{
|
293 |
+
"anonymous": false,
|
294 |
+
"inputs": [
|
295 |
+
{
|
296 |
+
"indexed": false,
|
297 |
+
"internalType": "uint256",
|
298 |
+
"name": "epoch",
|
299 |
+
"type": "uint256"
|
300 |
+
},
|
301 |
+
{
|
302 |
+
"indexed": true,
|
303 |
+
"internalType": "uint256",
|
304 |
+
"name": "serviceId",
|
305 |
+
"type": "uint256"
|
306 |
+
},
|
307 |
+
{
|
308 |
+
"indexed": true,
|
309 |
+
"internalType": "address",
|
310 |
+
"name": "owner",
|
311 |
+
"type": "address"
|
312 |
+
},
|
313 |
+
{
|
314 |
+
"indexed": true,
|
315 |
+
"internalType": "address",
|
316 |
+
"name": "multisig",
|
317 |
+
"type": "address"
|
318 |
+
},
|
319 |
+
{
|
320 |
+
"indexed": false,
|
321 |
+
"internalType": "uint256[]",
|
322 |
+
"name": "nonces",
|
323 |
+
"type": "uint256[]"
|
324 |
+
},
|
325 |
+
{
|
326 |
+
"indexed": false,
|
327 |
+
"internalType": "uint256",
|
328 |
+
"name": "reward",
|
329 |
+
"type": "uint256"
|
330 |
+
}
|
331 |
+
],
|
332 |
+
"name": "RewardClaimed",
|
333 |
+
"type": "event"
|
334 |
+
},
|
335 |
+
{
|
336 |
+
"anonymous": false,
|
337 |
+
"inputs": [
|
338 |
+
{
|
339 |
+
"indexed": false,
|
340 |
+
"internalType": "uint256",
|
341 |
+
"name": "epoch",
|
342 |
+
"type": "uint256"
|
343 |
+
},
|
344 |
+
{
|
345 |
+
"indexed": true,
|
346 |
+
"internalType": "uint256",
|
347 |
+
"name": "serviceId",
|
348 |
+
"type": "uint256"
|
349 |
+
},
|
350 |
+
{
|
351 |
+
"indexed": false,
|
352 |
+
"internalType": "uint256",
|
353 |
+
"name": "serviceInactivity",
|
354 |
+
"type": "uint256"
|
355 |
+
}
|
356 |
+
],
|
357 |
+
"name": "ServiceInactivityWarning",
|
358 |
+
"type": "event"
|
359 |
+
},
|
360 |
+
{
|
361 |
+
"anonymous": false,
|
362 |
+
"inputs": [
|
363 |
+
{
|
364 |
+
"indexed": false,
|
365 |
+
"internalType": "uint256",
|
366 |
+
"name": "epoch",
|
367 |
+
"type": "uint256"
|
368 |
+
},
|
369 |
+
{
|
370 |
+
"indexed": true,
|
371 |
+
"internalType": "uint256",
|
372 |
+
"name": "serviceId",
|
373 |
+
"type": "uint256"
|
374 |
+
},
|
375 |
+
{
|
376 |
+
"indexed": true,
|
377 |
+
"internalType": "address",
|
378 |
+
"name": "owner",
|
379 |
+
"type": "address"
|
380 |
+
},
|
381 |
+
{
|
382 |
+
"indexed": true,
|
383 |
+
"internalType": "address",
|
384 |
+
"name": "multisig",
|
385 |
+
"type": "address"
|
386 |
+
},
|
387 |
+
{
|
388 |
+
"indexed": false,
|
389 |
+
"internalType": "uint256[]",
|
390 |
+
"name": "nonces",
|
391 |
+
"type": "uint256[]"
|
392 |
+
}
|
393 |
+
],
|
394 |
+
"name": "ServiceStaked",
|
395 |
+
"type": "event"
|
396 |
+
},
|
397 |
+
{
|
398 |
+
"anonymous": false,
|
399 |
+
"inputs": [
|
400 |
+
{
|
401 |
+
"indexed": false,
|
402 |
+
"internalType": "uint256",
|
403 |
+
"name": "epoch",
|
404 |
+
"type": "uint256"
|
405 |
+
},
|
406 |
+
{
|
407 |
+
"indexed": true,
|
408 |
+
"internalType": "uint256",
|
409 |
+
"name": "serviceId",
|
410 |
+
"type": "uint256"
|
411 |
+
},
|
412 |
+
{
|
413 |
+
"indexed": true,
|
414 |
+
"internalType": "address",
|
415 |
+
"name": "owner",
|
416 |
+
"type": "address"
|
417 |
+
},
|
418 |
+
{
|
419 |
+
"indexed": true,
|
420 |
+
"internalType": "address",
|
421 |
+
"name": "multisig",
|
422 |
+
"type": "address"
|
423 |
+
},
|
424 |
+
{
|
425 |
+
"indexed": false,
|
426 |
+
"internalType": "uint256[]",
|
427 |
+
"name": "nonces",
|
428 |
+
"type": "uint256[]"
|
429 |
+
},
|
430 |
+
{
|
431 |
+
"indexed": false,
|
432 |
+
"internalType": "uint256",
|
433 |
+
"name": "reward",
|
434 |
+
"type": "uint256"
|
435 |
+
}
|
436 |
+
],
|
437 |
+
"name": "ServiceUnstaked",
|
438 |
+
"type": "event"
|
439 |
+
},
|
440 |
+
{
|
441 |
+
"anonymous": false,
|
442 |
+
"inputs": [
|
443 |
+
{
|
444 |
+
"indexed": true,
|
445 |
+
"internalType": "uint256",
|
446 |
+
"name": "epoch",
|
447 |
+
"type": "uint256"
|
448 |
+
},
|
449 |
+
{
|
450 |
+
"indexed": false,
|
451 |
+
"internalType": "uint256[]",
|
452 |
+
"name": "serviceIds",
|
453 |
+
"type": "uint256[]"
|
454 |
+
},
|
455 |
+
{
|
456 |
+
"indexed": false,
|
457 |
+
"internalType": "address[]",
|
458 |
+
"name": "owners",
|
459 |
+
"type": "address[]"
|
460 |
+
},
|
461 |
+
{
|
462 |
+
"indexed": false,
|
463 |
+
"internalType": "address[]",
|
464 |
+
"name": "multisigs",
|
465 |
+
"type": "address[]"
|
466 |
+
},
|
467 |
+
{
|
468 |
+
"indexed": false,
|
469 |
+
"internalType": "uint256[]",
|
470 |
+
"name": "serviceInactivity",
|
471 |
+
"type": "uint256[]"
|
472 |
+
}
|
473 |
+
],
|
474 |
+
"name": "ServicesEvicted",
|
475 |
+
"type": "event"
|
476 |
+
},
|
477 |
+
{
|
478 |
+
"anonymous": false,
|
479 |
+
"inputs": [
|
480 |
+
{
|
481 |
+
"indexed": true,
|
482 |
+
"internalType": "address",
|
483 |
+
"name": "to",
|
484 |
+
"type": "address"
|
485 |
+
},
|
486 |
+
{
|
487 |
+
"indexed": false,
|
488 |
+
"internalType": "uint256",
|
489 |
+
"name": "amount",
|
490 |
+
"type": "uint256"
|
491 |
+
}
|
492 |
+
],
|
493 |
+
"name": "Withdraw",
|
494 |
+
"type": "event"
|
495 |
+
},
|
496 |
+
{
|
497 |
+
"inputs": [],
|
498 |
+
"name": "VERSION",
|
499 |
+
"outputs": [
|
500 |
+
{
|
501 |
+
"internalType": "string",
|
502 |
+
"name": "",
|
503 |
+
"type": "string"
|
504 |
+
}
|
505 |
+
],
|
506 |
+
"stateMutability": "view",
|
507 |
+
"type": "function"
|
508 |
+
},
|
509 |
+
{
|
510 |
+
"inputs": [],
|
511 |
+
"name": "activityChecker",
|
512 |
+
"outputs": [
|
513 |
+
{
|
514 |
+
"internalType": "address",
|
515 |
+
"name": "",
|
516 |
+
"type": "address"
|
517 |
+
}
|
518 |
+
],
|
519 |
+
"stateMutability": "view",
|
520 |
+
"type": "function"
|
521 |
+
},
|
522 |
+
{
|
523 |
+
"inputs": [
|
524 |
+
{
|
525 |
+
"internalType": "uint256",
|
526 |
+
"name": "",
|
527 |
+
"type": "uint256"
|
528 |
+
}
|
529 |
+
],
|
530 |
+
"name": "agentIds",
|
531 |
+
"outputs": [
|
532 |
+
{
|
533 |
+
"internalType": "uint256",
|
534 |
+
"name": "",
|
535 |
+
"type": "uint256"
|
536 |
+
}
|
537 |
+
],
|
538 |
+
"stateMutability": "view",
|
539 |
+
"type": "function"
|
540 |
+
},
|
541 |
+
{
|
542 |
+
"inputs": [],
|
543 |
+
"name": "availableRewards",
|
544 |
+
"outputs": [
|
545 |
+
{
|
546 |
+
"internalType": "uint256",
|
547 |
+
"name": "",
|
548 |
+
"type": "uint256"
|
549 |
+
}
|
550 |
+
],
|
551 |
+
"stateMutability": "view",
|
552 |
+
"type": "function"
|
553 |
+
},
|
554 |
+
{
|
555 |
+
"inputs": [],
|
556 |
+
"name": "balance",
|
557 |
+
"outputs": [
|
558 |
+
{
|
559 |
+
"internalType": "uint256",
|
560 |
+
"name": "",
|
561 |
+
"type": "uint256"
|
562 |
+
}
|
563 |
+
],
|
564 |
+
"stateMutability": "view",
|
565 |
+
"type": "function"
|
566 |
+
},
|
567 |
+
{
|
568 |
+
"inputs": [
|
569 |
+
{
|
570 |
+
"internalType": "uint256",
|
571 |
+
"name": "serviceId",
|
572 |
+
"type": "uint256"
|
573 |
+
}
|
574 |
+
],
|
575 |
+
"name": "calculateStakingLastReward",
|
576 |
+
"outputs": [
|
577 |
+
{
|
578 |
+
"internalType": "uint256",
|
579 |
+
"name": "reward",
|
580 |
+
"type": "uint256"
|
581 |
+
}
|
582 |
+
],
|
583 |
+
"stateMutability": "view",
|
584 |
+
"type": "function"
|
585 |
+
},
|
586 |
+
{
|
587 |
+
"inputs": [
|
588 |
+
{
|
589 |
+
"internalType": "uint256",
|
590 |
+
"name": "serviceId",
|
591 |
+
"type": "uint256"
|
592 |
+
}
|
593 |
+
],
|
594 |
+
"name": "calculateStakingReward",
|
595 |
+
"outputs": [
|
596 |
+
{
|
597 |
+
"internalType": "uint256",
|
598 |
+
"name": "reward",
|
599 |
+
"type": "uint256"
|
600 |
+
}
|
601 |
+
],
|
602 |
+
"stateMutability": "view",
|
603 |
+
"type": "function"
|
604 |
+
},
|
605 |
+
{
|
606 |
+
"inputs": [],
|
607 |
+
"name": "checkpoint",
|
608 |
+
"outputs": [
|
609 |
+
{
|
610 |
+
"internalType": "uint256[]",
|
611 |
+
"name": "",
|
612 |
+
"type": "uint256[]"
|
613 |
+
},
|
614 |
+
{
|
615 |
+
"internalType": "uint256[][]",
|
616 |
+
"name": "",
|
617 |
+
"type": "uint256[][]"
|
618 |
+
},
|
619 |
+
{
|
620 |
+
"internalType": "uint256[]",
|
621 |
+
"name": "",
|
622 |
+
"type": "uint256[]"
|
623 |
+
},
|
624 |
+
{
|
625 |
+
"internalType": "uint256[]",
|
626 |
+
"name": "",
|
627 |
+
"type": "uint256[]"
|
628 |
+
},
|
629 |
+
{
|
630 |
+
"internalType": "uint256[]",
|
631 |
+
"name": "evictServiceIds",
|
632 |
+
"type": "uint256[]"
|
633 |
+
}
|
634 |
+
],
|
635 |
+
"stateMutability": "nonpayable",
|
636 |
+
"type": "function"
|
637 |
+
},
|
638 |
+
{
|
639 |
+
"inputs": [
|
640 |
+
{
|
641 |
+
"internalType": "uint256",
|
642 |
+
"name": "serviceId",
|
643 |
+
"type": "uint256"
|
644 |
+
}
|
645 |
+
],
|
646 |
+
"name": "checkpointAndClaim",
|
647 |
+
"outputs": [
|
648 |
+
{
|
649 |
+
"internalType": "uint256",
|
650 |
+
"name": "",
|
651 |
+
"type": "uint256"
|
652 |
+
}
|
653 |
+
],
|
654 |
+
"stateMutability": "nonpayable",
|
655 |
+
"type": "function"
|
656 |
+
},
|
657 |
+
{
|
658 |
+
"inputs": [
|
659 |
+
{
|
660 |
+
"internalType": "uint256",
|
661 |
+
"name": "serviceId",
|
662 |
+
"type": "uint256"
|
663 |
+
}
|
664 |
+
],
|
665 |
+
"name": "claim",
|
666 |
+
"outputs": [
|
667 |
+
{
|
668 |
+
"internalType": "uint256",
|
669 |
+
"name": "",
|
670 |
+
"type": "uint256"
|
671 |
+
}
|
672 |
+
],
|
673 |
+
"stateMutability": "nonpayable",
|
674 |
+
"type": "function"
|
675 |
+
},
|
676 |
+
{
|
677 |
+
"inputs": [],
|
678 |
+
"name": "configHash",
|
679 |
+
"outputs": [
|
680 |
+
{
|
681 |
+
"internalType": "bytes32",
|
682 |
+
"name": "",
|
683 |
+
"type": "bytes32"
|
684 |
+
}
|
685 |
+
],
|
686 |
+
"stateMutability": "view",
|
687 |
+
"type": "function"
|
688 |
+
},
|
689 |
+
{
|
690 |
+
"inputs": [
|
691 |
+
{
|
692 |
+
"internalType": "uint256",
|
693 |
+
"name": "amount",
|
694 |
+
"type": "uint256"
|
695 |
+
}
|
696 |
+
],
|
697 |
+
"name": "deposit",
|
698 |
+
"outputs": [],
|
699 |
+
"stateMutability": "nonpayable",
|
700 |
+
"type": "function"
|
701 |
+
},
|
702 |
+
{
|
703 |
+
"inputs": [],
|
704 |
+
"name": "emissionsAmount",
|
705 |
+
"outputs": [
|
706 |
+
{
|
707 |
+
"internalType": "uint256",
|
708 |
+
"name": "",
|
709 |
+
"type": "uint256"
|
710 |
+
}
|
711 |
+
],
|
712 |
+
"stateMutability": "view",
|
713 |
+
"type": "function"
|
714 |
+
},
|
715 |
+
{
|
716 |
+
"inputs": [],
|
717 |
+
"name": "epochCounter",
|
718 |
+
"outputs": [
|
719 |
+
{
|
720 |
+
"internalType": "uint256",
|
721 |
+
"name": "",
|
722 |
+
"type": "uint256"
|
723 |
+
}
|
724 |
+
],
|
725 |
+
"stateMutability": "view",
|
726 |
+
"type": "function"
|
727 |
+
},
|
728 |
+
{
|
729 |
+
"inputs": [],
|
730 |
+
"name": "getAgentIds",
|
731 |
+
"outputs": [
|
732 |
+
{
|
733 |
+
"internalType": "uint256[]",
|
734 |
+
"name": "",
|
735 |
+
"type": "uint256[]"
|
736 |
+
}
|
737 |
+
],
|
738 |
+
"stateMutability": "view",
|
739 |
+
"type": "function"
|
740 |
+
},
|
741 |
+
{
|
742 |
+
"inputs": [],
|
743 |
+
"name": "getNextRewardCheckpointTimestamp",
|
744 |
+
"outputs": [
|
745 |
+
{
|
746 |
+
"internalType": "uint256",
|
747 |
+
"name": "tsNext",
|
748 |
+
"type": "uint256"
|
749 |
+
}
|
750 |
+
],
|
751 |
+
"stateMutability": "view",
|
752 |
+
"type": "function"
|
753 |
+
},
|
754 |
+
{
|
755 |
+
"inputs": [],
|
756 |
+
"name": "getServiceIds",
|
757 |
+
"outputs": [
|
758 |
+
{
|
759 |
+
"internalType": "uint256[]",
|
760 |
+
"name": "",
|
761 |
+
"type": "uint256[]"
|
762 |
+
}
|
763 |
+
],
|
764 |
+
"stateMutability": "view",
|
765 |
+
"type": "function"
|
766 |
+
},
|
767 |
+
{
|
768 |
+
"inputs": [
|
769 |
+
{
|
770 |
+
"internalType": "uint256",
|
771 |
+
"name": "serviceId",
|
772 |
+
"type": "uint256"
|
773 |
+
}
|
774 |
+
],
|
775 |
+
"name": "getServiceInfo",
|
776 |
+
"outputs": [
|
777 |
+
{
|
778 |
+
"components": [
|
779 |
+
{
|
780 |
+
"internalType": "address",
|
781 |
+
"name": "multisig",
|
782 |
+
"type": "address"
|
783 |
+
},
|
784 |
+
{
|
785 |
+
"internalType": "address",
|
786 |
+
"name": "owner",
|
787 |
+
"type": "address"
|
788 |
+
},
|
789 |
+
{
|
790 |
+
"internalType": "uint256[]",
|
791 |
+
"name": "nonces",
|
792 |
+
"type": "uint256[]"
|
793 |
+
},
|
794 |
+
{
|
795 |
+
"internalType": "uint256",
|
796 |
+
"name": "tsStart",
|
797 |
+
"type": "uint256"
|
798 |
+
},
|
799 |
+
{
|
800 |
+
"internalType": "uint256",
|
801 |
+
"name": "reward",
|
802 |
+
"type": "uint256"
|
803 |
+
},
|
804 |
+
{
|
805 |
+
"internalType": "uint256",
|
806 |
+
"name": "inactivity",
|
807 |
+
"type": "uint256"
|
808 |
+
}
|
809 |
+
],
|
810 |
+
"internalType": "struct ServiceInfo",
|
811 |
+
"name": "sInfo",
|
812 |
+
"type": "tuple"
|
813 |
+
}
|
814 |
+
],
|
815 |
+
"stateMutability": "view",
|
816 |
+
"type": "function"
|
817 |
+
},
|
818 |
+
{
|
819 |
+
"inputs": [
|
820 |
+
{
|
821 |
+
"internalType": "uint256",
|
822 |
+
"name": "serviceId",
|
823 |
+
"type": "uint256"
|
824 |
+
}
|
825 |
+
],
|
826 |
+
"name": "getStakingState",
|
827 |
+
"outputs": [
|
828 |
+
{
|
829 |
+
"internalType": "enum StakingBase.StakingState",
|
830 |
+
"name": "stakingState",
|
831 |
+
"type": "uint8"
|
832 |
+
}
|
833 |
+
],
|
834 |
+
"stateMutability": "view",
|
835 |
+
"type": "function"
|
836 |
+
},
|
837 |
+
{
|
838 |
+
"inputs": [
|
839 |
+
{
|
840 |
+
"components": [
|
841 |
+
{
|
842 |
+
"internalType": "bytes32",
|
843 |
+
"name": "metadataHash",
|
844 |
+
"type": "bytes32"
|
845 |
+
},
|
846 |
+
{
|
847 |
+
"internalType": "uint256",
|
848 |
+
"name": "maxNumServices",
|
849 |
+
"type": "uint256"
|
850 |
+
},
|
851 |
+
{
|
852 |
+
"internalType": "uint256",
|
853 |
+
"name": "rewardsPerSecond",
|
854 |
+
"type": "uint256"
|
855 |
+
},
|
856 |
+
{
|
857 |
+
"internalType": "uint256",
|
858 |
+
"name": "minStakingDeposit",
|
859 |
+
"type": "uint256"
|
860 |
+
},
|
861 |
+
{
|
862 |
+
"internalType": "uint256",
|
863 |
+
"name": "minNumStakingPeriods",
|
864 |
+
"type": "uint256"
|
865 |
+
},
|
866 |
+
{
|
867 |
+
"internalType": "uint256",
|
868 |
+
"name": "maxNumInactivityPeriods",
|
869 |
+
"type": "uint256"
|
870 |
+
},
|
871 |
+
{
|
872 |
+
"internalType": "uint256",
|
873 |
+
"name": "livenessPeriod",
|
874 |
+
"type": "uint256"
|
875 |
+
},
|
876 |
+
{
|
877 |
+
"internalType": "uint256",
|
878 |
+
"name": "timeForEmissions",
|
879 |
+
"type": "uint256"
|
880 |
+
},
|
881 |
+
{
|
882 |
+
"internalType": "uint256",
|
883 |
+
"name": "numAgentInstances",
|
884 |
+
"type": "uint256"
|
885 |
+
},
|
886 |
+
{
|
887 |
+
"internalType": "uint256[]",
|
888 |
+
"name": "agentIds",
|
889 |
+
"type": "uint256[]"
|
890 |
+
},
|
891 |
+
{
|
892 |
+
"internalType": "uint256",
|
893 |
+
"name": "threshold",
|
894 |
+
"type": "uint256"
|
895 |
+
},
|
896 |
+
{
|
897 |
+
"internalType": "bytes32",
|
898 |
+
"name": "configHash",
|
899 |
+
"type": "bytes32"
|
900 |
+
},
|
901 |
+
{
|
902 |
+
"internalType": "bytes32",
|
903 |
+
"name": "proxyHash",
|
904 |
+
"type": "bytes32"
|
905 |
+
},
|
906 |
+
{
|
907 |
+
"internalType": "address",
|
908 |
+
"name": "serviceRegistry",
|
909 |
+
"type": "address"
|
910 |
+
},
|
911 |
+
{
|
912 |
+
"internalType": "address",
|
913 |
+
"name": "activityChecker",
|
914 |
+
"type": "address"
|
915 |
+
}
|
916 |
+
],
|
917 |
+
"internalType": "struct StakingBase.StakingParams",
|
918 |
+
"name": "_stakingParams",
|
919 |
+
"type": "tuple"
|
920 |
+
},
|
921 |
+
{
|
922 |
+
"internalType": "address",
|
923 |
+
"name": "_serviceRegistryTokenUtility",
|
924 |
+
"type": "address"
|
925 |
+
},
|
926 |
+
{
|
927 |
+
"internalType": "address",
|
928 |
+
"name": "_stakingToken",
|
929 |
+
"type": "address"
|
930 |
+
}
|
931 |
+
],
|
932 |
+
"name": "initialize",
|
933 |
+
"outputs": [],
|
934 |
+
"stateMutability": "nonpayable",
|
935 |
+
"type": "function"
|
936 |
+
},
|
937 |
+
{
|
938 |
+
"inputs": [],
|
939 |
+
"name": "livenessPeriod",
|
940 |
+
"outputs": [
|
941 |
+
{
|
942 |
+
"internalType": "uint256",
|
943 |
+
"name": "",
|
944 |
+
"type": "uint256"
|
945 |
+
}
|
946 |
+
],
|
947 |
+
"stateMutability": "view",
|
948 |
+
"type": "function"
|
949 |
+
},
|
950 |
+
{
|
951 |
+
"inputs": [
|
952 |
+
{
|
953 |
+
"internalType": "uint256",
|
954 |
+
"name": "",
|
955 |
+
"type": "uint256"
|
956 |
+
}
|
957 |
+
],
|
958 |
+
"name": "mapServiceInfo",
|
959 |
+
"outputs": [
|
960 |
+
{
|
961 |
+
"internalType": "address",
|
962 |
+
"name": "multisig",
|
963 |
+
"type": "address"
|
964 |
+
},
|
965 |
+
{
|
966 |
+
"internalType": "address",
|
967 |
+
"name": "owner",
|
968 |
+
"type": "address"
|
969 |
+
},
|
970 |
+
{
|
971 |
+
"internalType": "uint256",
|
972 |
+
"name": "tsStart",
|
973 |
+
"type": "uint256"
|
974 |
+
},
|
975 |
+
{
|
976 |
+
"internalType": "uint256",
|
977 |
+
"name": "reward",
|
978 |
+
"type": "uint256"
|
979 |
+
},
|
980 |
+
{
|
981 |
+
"internalType": "uint256",
|
982 |
+
"name": "inactivity",
|
983 |
+
"type": "uint256"
|
984 |
+
}
|
985 |
+
],
|
986 |
+
"stateMutability": "view",
|
987 |
+
"type": "function"
|
988 |
+
},
|
989 |
+
{
|
990 |
+
"inputs": [],
|
991 |
+
"name": "maxInactivityDuration",
|
992 |
+
"outputs": [
|
993 |
+
{
|
994 |
+
"internalType": "uint256",
|
995 |
+
"name": "",
|
996 |
+
"type": "uint256"
|
997 |
+
}
|
998 |
+
],
|
999 |
+
"stateMutability": "view",
|
1000 |
+
"type": "function"
|
1001 |
+
},
|
1002 |
+
{
|
1003 |
+
"inputs": [],
|
1004 |
+
"name": "maxNumInactivityPeriods",
|
1005 |
+
"outputs": [
|
1006 |
+
{
|
1007 |
+
"internalType": "uint256",
|
1008 |
+
"name": "",
|
1009 |
+
"type": "uint256"
|
1010 |
+
}
|
1011 |
+
],
|
1012 |
+
"stateMutability": "view",
|
1013 |
+
"type": "function"
|
1014 |
+
},
|
1015 |
+
{
|
1016 |
+
"inputs": [],
|
1017 |
+
"name": "maxNumServices",
|
1018 |
+
"outputs": [
|
1019 |
+
{
|
1020 |
+
"internalType": "uint256",
|
1021 |
+
"name": "",
|
1022 |
+
"type": "uint256"
|
1023 |
+
}
|
1024 |
+
],
|
1025 |
+
"stateMutability": "view",
|
1026 |
+
"type": "function"
|
1027 |
+
},
|
1028 |
+
{
|
1029 |
+
"inputs": [],
|
1030 |
+
"name": "metadataHash",
|
1031 |
+
"outputs": [
|
1032 |
+
{
|
1033 |
+
"internalType": "bytes32",
|
1034 |
+
"name": "",
|
1035 |
+
"type": "bytes32"
|
1036 |
+
}
|
1037 |
+
],
|
1038 |
+
"stateMutability": "view",
|
1039 |
+
"type": "function"
|
1040 |
+
},
|
1041 |
+
{
|
1042 |
+
"inputs": [],
|
1043 |
+
"name": "minStakingDeposit",
|
1044 |
+
"outputs": [
|
1045 |
+
{
|
1046 |
+
"internalType": "uint256",
|
1047 |
+
"name": "",
|
1048 |
+
"type": "uint256"
|
1049 |
+
}
|
1050 |
+
],
|
1051 |
+
"stateMutability": "view",
|
1052 |
+
"type": "function"
|
1053 |
+
},
|
1054 |
+
{
|
1055 |
+
"inputs": [],
|
1056 |
+
"name": "minStakingDuration",
|
1057 |
+
"outputs": [
|
1058 |
+
{
|
1059 |
+
"internalType": "uint256",
|
1060 |
+
"name": "",
|
1061 |
+
"type": "uint256"
|
1062 |
+
}
|
1063 |
+
],
|
1064 |
+
"stateMutability": "view",
|
1065 |
+
"type": "function"
|
1066 |
+
},
|
1067 |
+
{
|
1068 |
+
"inputs": [],
|
1069 |
+
"name": "numAgentInstances",
|
1070 |
+
"outputs": [
|
1071 |
+
{
|
1072 |
+
"internalType": "uint256",
|
1073 |
+
"name": "",
|
1074 |
+
"type": "uint256"
|
1075 |
+
}
|
1076 |
+
],
|
1077 |
+
"stateMutability": "view",
|
1078 |
+
"type": "function"
|
1079 |
+
},
|
1080 |
+
{
|
1081 |
+
"inputs": [
|
1082 |
+
{
|
1083 |
+
"internalType": "address",
|
1084 |
+
"name": "",
|
1085 |
+
"type": "address"
|
1086 |
+
},
|
1087 |
+
{
|
1088 |
+
"internalType": "address",
|
1089 |
+
"name": "",
|
1090 |
+
"type": "address"
|
1091 |
+
},
|
1092 |
+
{
|
1093 |
+
"internalType": "uint256",
|
1094 |
+
"name": "",
|
1095 |
+
"type": "uint256"
|
1096 |
+
},
|
1097 |
+
{
|
1098 |
+
"internalType": "bytes",
|
1099 |
+
"name": "",
|
1100 |
+
"type": "bytes"
|
1101 |
+
}
|
1102 |
+
],
|
1103 |
+
"name": "onERC721Received",
|
1104 |
+
"outputs": [
|
1105 |
+
{
|
1106 |
+
"internalType": "bytes4",
|
1107 |
+
"name": "",
|
1108 |
+
"type": "bytes4"
|
1109 |
+
}
|
1110 |
+
],
|
1111 |
+
"stateMutability": "nonpayable",
|
1112 |
+
"type": "function"
|
1113 |
+
},
|
1114 |
+
{
|
1115 |
+
"inputs": [],
|
1116 |
+
"name": "proxyHash",
|
1117 |
+
"outputs": [
|
1118 |
+
{
|
1119 |
+
"internalType": "bytes32",
|
1120 |
+
"name": "",
|
1121 |
+
"type": "bytes32"
|
1122 |
+
}
|
1123 |
+
],
|
1124 |
+
"stateMutability": "view",
|
1125 |
+
"type": "function"
|
1126 |
+
},
|
1127 |
+
{
|
1128 |
+
"inputs": [],
|
1129 |
+
"name": "rewardsPerSecond",
|
1130 |
+
"outputs": [
|
1131 |
+
{
|
1132 |
+
"internalType": "uint256",
|
1133 |
+
"name": "",
|
1134 |
+
"type": "uint256"
|
1135 |
+
}
|
1136 |
+
],
|
1137 |
+
"stateMutability": "view",
|
1138 |
+
"type": "function"
|
1139 |
+
},
|
1140 |
+
{
|
1141 |
+
"inputs": [],
|
1142 |
+
"name": "serviceRegistry",
|
1143 |
+
"outputs": [
|
1144 |
+
{
|
1145 |
+
"internalType": "address",
|
1146 |
+
"name": "",
|
1147 |
+
"type": "address"
|
1148 |
+
}
|
1149 |
+
],
|
1150 |
+
"stateMutability": "view",
|
1151 |
+
"type": "function"
|
1152 |
+
},
|
1153 |
+
{
|
1154 |
+
"inputs": [],
|
1155 |
+
"name": "serviceRegistryTokenUtility",
|
1156 |
+
"outputs": [
|
1157 |
+
{
|
1158 |
+
"internalType": "address",
|
1159 |
+
"name": "",
|
1160 |
+
"type": "address"
|
1161 |
+
}
|
1162 |
+
],
|
1163 |
+
"stateMutability": "view",
|
1164 |
+
"type": "function"
|
1165 |
+
},
|
1166 |
+
{
|
1167 |
+
"inputs": [
|
1168 |
+
{
|
1169 |
+
"internalType": "uint256",
|
1170 |
+
"name": "",
|
1171 |
+
"type": "uint256"
|
1172 |
+
}
|
1173 |
+
],
|
1174 |
+
"name": "setServiceIds",
|
1175 |
+
"outputs": [
|
1176 |
+
{
|
1177 |
+
"internalType": "uint256",
|
1178 |
+
"name": "",
|
1179 |
+
"type": "uint256"
|
1180 |
+
}
|
1181 |
+
],
|
1182 |
+
"stateMutability": "view",
|
1183 |
+
"type": "function"
|
1184 |
+
},
|
1185 |
+
{
|
1186 |
+
"inputs": [
|
1187 |
+
{
|
1188 |
+
"internalType": "uint256",
|
1189 |
+
"name": "serviceId",
|
1190 |
+
"type": "uint256"
|
1191 |
+
}
|
1192 |
+
],
|
1193 |
+
"name": "stake",
|
1194 |
+
"outputs": [],
|
1195 |
+
"stateMutability": "nonpayable",
|
1196 |
+
"type": "function"
|
1197 |
+
},
|
1198 |
+
{
|
1199 |
+
"inputs": [],
|
1200 |
+
"name": "stakingToken",
|
1201 |
+
"outputs": [
|
1202 |
+
{
|
1203 |
+
"internalType": "address",
|
1204 |
+
"name": "",
|
1205 |
+
"type": "address"
|
1206 |
+
}
|
1207 |
+
],
|
1208 |
+
"stateMutability": "view",
|
1209 |
+
"type": "function"
|
1210 |
+
},
|
1211 |
+
{
|
1212 |
+
"inputs": [],
|
1213 |
+
"name": "threshold",
|
1214 |
+
"outputs": [
|
1215 |
+
{
|
1216 |
+
"internalType": "uint256",
|
1217 |
+
"name": "",
|
1218 |
+
"type": "uint256"
|
1219 |
+
}
|
1220 |
+
],
|
1221 |
+
"stateMutability": "view",
|
1222 |
+
"type": "function"
|
1223 |
+
},
|
1224 |
+
{
|
1225 |
+
"inputs": [],
|
1226 |
+
"name": "timeForEmissions",
|
1227 |
+
"outputs": [
|
1228 |
+
{
|
1229 |
+
"internalType": "uint256",
|
1230 |
+
"name": "",
|
1231 |
+
"type": "uint256"
|
1232 |
+
}
|
1233 |
+
],
|
1234 |
+
"stateMutability": "view",
|
1235 |
+
"type": "function"
|
1236 |
+
},
|
1237 |
+
{
|
1238 |
+
"inputs": [],
|
1239 |
+
"name": "tsCheckpoint",
|
1240 |
+
"outputs": [
|
1241 |
+
{
|
1242 |
+
"internalType": "uint256",
|
1243 |
+
"name": "",
|
1244 |
+
"type": "uint256"
|
1245 |
+
}
|
1246 |
+
],
|
1247 |
+
"stateMutability": "view",
|
1248 |
+
"type": "function"
|
1249 |
+
},
|
1250 |
+
{
|
1251 |
+
"inputs": [
|
1252 |
+
{
|
1253 |
+
"internalType": "uint256",
|
1254 |
+
"name": "serviceId",
|
1255 |
+
"type": "uint256"
|
1256 |
+
}
|
1257 |
+
],
|
1258 |
+
"name": "unstake",
|
1259 |
+
"outputs": [
|
1260 |
+
{
|
1261 |
+
"internalType": "uint256",
|
1262 |
+
"name": "reward",
|
1263 |
+
"type": "uint256"
|
1264 |
+
}
|
1265 |
+
],
|
1266 |
+
"stateMutability": "nonpayable",
|
1267 |
+
"type": "function"
|
1268 |
+
}
|
1269 |
+
],
|
1270 |
+
"bytecode": "0x6102606040523480156200001257600080fd5b506040516200383a3803806200383a833981016040819052620000359162000453565b8484828260000151600014806200004e57506020830151155b806200005c575060a0830151155b806200006a575060c0830151155b8062000078575060e0830151155b806200008657506060830151155b806200009457506080830151155b15620000b357604051637c946ed760e01b815260040160405180910390fd5b826080015183606001511015620000f5576060830151608084015160405163491a2bb160e01b8152600481019290925260248201526044015b60405180910390fd5b6002836040015110156200012d57604080840151905163491a2bb160e01b8152600481019190915260026024820152604401620000ec565b6001600160a01b038216620001555760405163d92e233d60e01b815260040160405180910390fd5b82516080908152602084015160a0908152604085015160c09081529185015160e0908152908501516101005290840151610120908152908401516101409081526001600160a01b0384166101a0529084015161016052830151610180526000805b846101000151518110156200029257818561010001518281518110620001e057620001e062000576565b6020026020010151116200022d57846101000151818151811062000208576200020862000576565b6020026020010151604051632ab10b0b60e21b8152600401620000ec91815260200190565b846101000151818151811062000247576200024762000576565b602090810291909101015160048054600181810183556000929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0182905590925001620001b6565b5081620002b257604051637c946ed760e01b815260040160405180910390fd5b6101c0829052610100516060850151620002cd91906200058c565b6101e052610100516080850151620002e691906200058c565b6102005250504260035550506001600160a01b03821615806200031057506001600160a01b038316155b156200032f5760405163d92e233d60e01b815260040160405180910390fd5b506001600160a01b0390811661024052166102205250620005b89050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b03811182821017156200038957620003896200034d565b60405290565b600082601f830112620003a157600080fd5b815160206001600160401b0380831115620003c057620003c06200034d565b8260051b604051601f19603f83011681018181108482111715620003e857620003e86200034d565b60405293845260208187018101949081019250878511156200040957600080fd5b6020870191505b848210156200042b5781518352918301919083019062000410565b979650505050505050565b80516001600160a01b03811681146200044e57600080fd5b919050565b600080600080600060a086880312156200046c57600080fd5b85516001600160401b03808211156200048457600080fd5b90870190610160828a0312156200049a57600080fd5b620004a462000363565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e082015261010080840151838111156200050357600080fd5b620005118c8287016200038f565b918301919091525061012083810151908201526101409283015192810192909252509450620005436020870162000436565b9350620005536040870162000436565b9250620005636060870162000436565b9150608086015190509295509295909350565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417620005b257634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161311962000721600039600081816104110152818161130901528181611c1401528181611d1e0152611d6201526000818161030501528181611ca40152611e0e01526000818161068e015281816118a50152611b1401526000818161024b0152818161074d015261079f01526000818161044b0152610fca0152600081816105cf01528181610a0101528181610d8601526111bd0152600081816105f601528181610e4e0152610e7d01526000818161036201528181610ec40152610ef80152600081816103c30152610e0c0152600081816103ea015261294a01526000818161038901528181611bc60152611fb80152600061049b01526000818161061d0152611d9901526000818161064401526122ae0152600081816102de01528181610d0d0152610d4101526131196000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c8063a0ed60e011610145578063cbcf252a116100bd578063eb338c961161008c578063f4dce71411610071578063f4dce71414610681578063f86ad2b614610689578063ffa1ad74146106b057600080fd5b8063eb338c9614610666578063f189e85a1461067957600080fd5b8063cbcf252a146105ca578063e1f1176d146105f1578063e77cdcc914610618578063eacdaabc1461063f57600080fd5b8063b69ef8a811610114578063c2c4c5c1116100f9578063c2c4c5c11461057e578063c889921d14610597578063cae2a5f0146105aa57600080fd5b8063b69ef8a814610562578063b6b55f251461056b57600080fd5b8063a0ed60e014610496578063a694fc3a146104bd578063a74466ad146104d0578063b15087601461054d57600080fd5b806352c824f5116101d857806372f702f3116101a7578063809cee2f1161018c578063809cee2f1461044657806382a8ea581461046d578063879d90901461048d57600080fd5b806372f702f31461040c57806378e061361461043357600080fd5b806352c824f51461038457806356e76058146103ab5780635829c5ec146103be578063592cf3fb146103e557600080fd5b8063287140511161021457806328714051146103005780632e17de781461033f5780633e7329971461035457806342cde4e81461035d57600080fd5b806308ae7e541461024657806314b19c5a14610280578063150b7a021461028957806316a75172146102d9575b600080fd5b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61026d60005481565b6102a8610297366004612a0a565b630a85bd0160e11b95945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610277565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610277565b61035261034d366004612aa9565b6106e1565b005b61026d60035481565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d6103b9366004612aa9565b610acf565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b61026d610441366004612aa9565b610af0565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61048061047b366004612aa9565b610bba565b6040516102779190612afe565b61026d60025481565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6103526104cb366004612aa9565b610cb1565b61051a6104de366004612aa9565b6005602081905260009182526040909120805460018201546003830154600484015493909401546001600160a01b039283169492909116929085565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a001610277565b61055561127e565b6040516102779190612b65565b61026d60015481565b610352610579366004612aa9565b6112d6565b610586611378565b604051610277959493929190612b78565b61026d6105a5366004612aa9565b6119ad565b6105bd6105b8366004612aa9565b611a69565b6040516102779190612c3d565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d610674366004612aa9565b611b5c565b610555611b6c565b61026d611bc2565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6106d4604051806040016040528060058152602001640302e312e360dc1b81525081565b6040516102779190612c65565b600081815260056020526040902060018101546001600160a01b0316331461073857600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b600381015460006107498242612cca565b90507f0000000000000000000000000000000000000000000000000000000000000000811115801561077d57506000600254115b156107cb5760405163ba2bbc6b60e01b815260048101859052602481018290527f0000000000000000000000000000000000000000000000000000000000000000604482015260640161072f565b6000806107d6611378565b945050505091508151600003610837576107ee611b6c565b9150815167ffffffffffffffff81111561080a5761080a612cdd565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b5090505b6000805b8351821015610898578783838151811061085757610857612cf3565b60200260200101510315610898578784838151811061087857610878612cf3565b60200260200101510361088d57506001610898565b81600101915061083b565b600487015460028801805460408051602080840282018101909252828152600093909290918301828280156108ec57602002820191906000526020600020905b8154815260200190600101908083116108d8575b50508c5460008f8152600560205260408120805473ffffffffffffffffffffffffffffffffffffffff19908116825560018201805490911690559596506001600160a01b03909116949350915061094890506002830182612974565b506000600382018190556004820181905560059091015583156109d7576006805461097590600190612cca565b8154811061098557610985612cf3565b9060005260206000200154600686815481106109a3576109a3612cf3565b60009182526020909120015560068054806109c0576109c0612d09565b600190038181906000526020600020016000905590555b604051632142170760e11b8152306004820152336024820152604481018c90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b505050506000831115610a7057610a708184611bf7565b806001600160a01b0316336001600160a01b03168c7f950733f4c0bf951b8e770f3cc619a4288e7b59b1236d59aeaf2c238488e8ae816000548688604051610aba93929190612d1f565b60405180910390a45050505050505050505050565b60048181548110610adf57600080fd5b600091825260209091200154905081565b6000818152600560209081526040808320815160c08101835281546001600160a01b0390811682526001830154168185015260028201805484518187028101870186528181528796939586019390929190830182828015610b7057602002820191906000526020600020905b815481526020019060010190808311610b5c575b505050505081526020016003820154815260200160048201548152602001600582015481525050905080608001519150610ba9836119ad565b610bb39083612d48565b9392505050565b610c056040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001606081526020016000815260200160008152602001600081525090565b600082815260056020908152604091829020825160c08101845281546001600160a01b0390811682526001830154168184015260028201805485518186028101860187528181529295939493860193830182828015610c8357602002820191906000526020600020905b815481526020019060010190808311610c6f575b5050505050815260200160038201548152602001600482015481526020016005820154815250509050919050565b600254600003610cd45760405163afb0be3360e01b815260040160405180910390fd5b6000818152600560205260409020600381015415610d085760405163b4817ce760e01b81526004810183905260240161072f565b6006547f00000000000000000000000000000000000000000000000000000000000000008103610d6d5760405163fd20861560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015260240161072f565b60405163ef0e239b60e01b8152600481018490526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610dd5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dfd9190810190612e79565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610e4c57604051637ad404bf60e11b81526004810185905260240161072f565b7f000000000000000000000000000000000000000000000000000000000000000015801590610e9f575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610ec057604051637ad404bf60e11b81526004810185905260240161072f565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610f1a5750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610f3b57604051637ad404bf60e11b81526004810185905260240161072f565b60048160c001516005811115610f5357610f53612c27565b14610f92578060c001516005811115610f6e57610f6e612c27565b604051633c053f9d60e21b815260048101919091526024810185905260440161072f565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f00000000000000000000000000000000000000000000000000000000000000001461101757602082015160405162a2307960e51b81526001600160a01b03909116600482015260240161072f565b60045480156110e05760e08301515181811461104957604051637ad404bf60e11b81526004810188905260240161072f565b60005b818110156110dd578460e00151818151811061106a5761106a612cf3565b602002602001015163ffffffff166004828154811061108b5761108b612cf3565b9060005260206000200154146110d557600481815481106110ae576110ae612cf3565b9060005260206000200154604051632ab10b0b60e21b815260040161072f91815260200190565b60010161104c565b50505b6111018684600001516bffffffffffffffffffffffff168560e00151611c81565b602083015185546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff199182161787556001870180549091163317905560009061114790611f02565b805190915061115f9060028801906020840190612995565b50426003870155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b15801561120957600080fd5b505af115801561121d573d6000803e3d6000fd5b5050505083602001516001600160a01b0316336001600160a01b0316887faa6b005b4958114a0c90492461c24af6525ae0178db7fbf44125ae9217c69ccb6000548560405161126d929190612f57565b60405180910390a450505050505050565b606060048054806020026020016040519081016040528092919081815260200182805480156112cc57602002820191906000526020600020905b8154815260200190600101908083116112b8575b5050505050905090565b6000816001546112e69190612d48565b90506000826002546112f89190612d48565b6001839055600281905590506113307f0000000000000000000000000000000000000000000000000000000000000000333086611f13565b604080518481526020810184905290810182905233907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2505050565b6060806060806060600080600080600080600080611394611f9d565b97509750975097509750975097509750606080845167ffffffffffffffff8111156113c1576113c1612cdd565b6040519080825280602002602001820160405280156113ea578160200160208202803683370190505b509a506000891561177d578967ffffffffffffffff81111561140e5761140e612cdd565b604051908082528060200260200182016040528015611437578160200160208202803683370190505b5092508967ffffffffffffffff81111561145357611453612cdd565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b5091508a8911156116865760008060015b8c811015611579578b8e8b83815181106114a9576114a9612cf3565b60200260200101516114bb9190612f70565b6114c59190612f87565b92506114d18383612d48565b91508a81815181106114e5576114e5612cf3565b602002602001015193508a818151811061150157611501612cf3565b602002602001015186828151811061151b5761151b612cf3565b6020026020010181815250508285828151811061153a5761153a612cf3565b6020026020010181815250508260056000868152602001908152602001600020600401600082825461156c9190612d48565b909155505060010161148d565b508a8d8a60008151811061158f5761158f612cf3565b60200260200101516115a19190612f70565b6115ab9190612f87565b91506115b78282612d48565b9050896000815181106115cc576115cc612cf3565b60200260200101519250896000815181106115e9576115e9612cf3565b60200260200101518560008151811061160457611604612cf3565b602002602001018181525050808d111561162f57611622818e612cca565b61162c9083612d48565b91505b818460008151811061164357611643612cf3565b602002602001018181525050816005600085815260200190815260200160002060040160008282546116759190612d48565b9091555060009d5061177792505050565b60005b8a811015611769578881815181106116a3576116a3612cf3565b602002602001015191508881815181106116bf576116bf612cf3565b60200260200101518482815181106116d9576116d9612cf3565b6020026020010181815250508781815181106116f7576116f7612cf3565b602002602001015183828151811061171157611711612cf3565b60200260200101818152505087818151811061172f5761172f612cf3565b602002602001015160056000848152602001908152602001600020600401600082825461175c9190612d48565b9091555050600101611689565b50611774898c612cca565b9a505b60028b90555b855115611997576000995060005b8651811015611930578681815181106117a6576117a6612cf3565b602002602001015191508581815181106117c2576117c2612cf3565b60200260200101516005600084815260200190815260200160002060020190805190602001906117f3929190612995565b50600085828151811061180857611808612cf3565b602002602001015111156119155784818151811061182857611828612cf3565b602002602001015160056000848152602001908152602001600020600501546118519190612d48565b85828151811061186357611863612cf3565b60200260200101818152505084818151811061188157611881612cf3565b602002602001015160056000848152602001908152602001600020600501819055507f00000000000000000000000000000000000000000000000000000000000000008582815181106118d6576118d6612cf3565b6020026020010151111561191057818d82815181106118f7576118f7612cf3565b60209081029190910101528a61190c81612fa9565b9b50505b611928565b6000828152600560208190526040822001555b60010161178b565b508915611942576119428c858c61239b565b42600355600054611954816001612d48565b60005560405181907f06a98bdd4732811ab3214800ed1ada2dce66a2bce301d250c3ca7d6b461ee6669061198d908f9088908890612fc2565b60405180910390a2505b50939e929d509b50919950969750505050505050565b6000806000806000806119be611f9d565b5050509450945094509450945060005b84811015611a5e57878382815181106119e9576119e9612cf3565b602002602001015103611a565785841115611a35578386838381518110611a1257611a12612cf3565b6020026020010151611a249190612f70565b611a2e9190612f87565b9650611a5e565b818181518110611a4757611a47612cf3565b60200260200101519650611a5e565b6001016119ce565b505050505050919050565b6000818152600560209081526040808320815160c08101835281546001600160a01b0390811682526001830154168185015260028201805484518187028101870186528181528796939586019390929190830182828015611ae957602002820191906000526020600020905b815481526020019060010190808311611ad5575b50505050508152602001600382015481526020016004820154815260200160058201548152505090507f00000000000000000000000000000000000000000000000000000000000000008160a001511115611b475760029150611b56565b606081015115611b5657600191505b50919050565b60068181548110610adf57600080fd5b606060068054806020026020016040519081016040528092919081815260200182805480156112cc57602002820191906000526020600020908154815260200190600101908083116112b8575050505050905090565b60007f0000000000000000000000000000000000000000000000000000000000000000600354611bf29190612d48565b905090565b8060016000828254611c099190612cca565b90915550611c3a90507f00000000000000000000000000000000000000000000000000000000000000008383612760565b816001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436482604051611c7591815260200190565b60405180910390a25050565b604051633cebfa4f60e01b81526004810184905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633cebfa4f906024016040805180830381865afa158015611cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0e9190612ff7565b91509150816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614611d9757604051630b80380d60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301528316602482015260440161072f565b7f00000000000000000000000000000000000000000000000000000000000000006bffffffffffffffffffffffff8216811115611dfe57604051632b30b24760e21b81526bffffffffffffffffffffffff831660048201526024810182905260440161072f565b60005b8451811015611ef95760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166375c1f93489888581518110611e4e57611e4e612cf3565b60200260200101516040518363ffffffff1660e01b8152600401611e8292919091825263ffffffff16602082015260400190565b602060405180830381865afa158015611e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec3919061302c565b905082811015611ef057604051632b30b24760e21b8152600481018290526024810184905260440161072f565b50600101611e01565b50505050505050565b6060611f0d826127e3565b92915050565b60006040516323b872dd60e01b6000528460045283602452826044526020600060646000808a5af13d15601f3d1160016000511416171691506000606052806040525080611f965760405163abae3d6d60e01b81526001600160a01b0380871660048301528086166024830152841660448201526064810183905260840161072f565b5050505050565b600080600060608060608060606000600354905060025498507f00000000000000000000000000000000000000000000000000000000000000008142611fe39190612cca565b10158015611ff15750600089115b15612390576006548067ffffffffffffffff81111561201257612012612cdd565b60405190808252806020026020018201604052801561203b578160200160208202803683370190505b5094508067ffffffffffffffff81111561205757612057612cdd565b604051908082528060200260200182016040528015612080578160200160208202803683370190505b5096508067ffffffffffffffff81111561209c5761209c612cdd565b6040519080825280602002602001820160405280156120c5578160200160208202803683370190505b5095508067ffffffffffffffff8111156120e1576120e1612cdd565b60405190808252806020026020018201604052801561211457816020015b60608152602001906001900390816120ff5790505b5093508067ffffffffffffffff81111561213057612130612cdd565b604051908082528060200260200182016040528015612159578160200160208202803683370190505b50925060005b8181101561238d576006818154811061217a5761217a612cf3565b906000526020600020015486828151811061219757612197612cf3565b6020026020010181815250506000600560008884815181106121bb576121bb612cf3565b602090810291909101810151825281019190915260400160002080549091506121ec906001600160a01b0316611f02565b8683815181106121fe576121fe612cf3565b6020908102919091010152600381015484908181111561221c578091505b6122268242612cca565b905060006122a089868151811061223f5761223f612cf3565b60200260200101518560020180548060200260200160405190810160405280929190818152602001828054801561229557602002820191906000526020600020905b815481526020019060010190808311612281575b50505050508461288b565b9050801561235e576122d2827f0000000000000000000000000000000000000000000000000000000000000000612f70565b8b8f815181106122e4576122e4612cf3565b6020026020010181815250508a8e8151811061230257612302612cf3565b60200260200101518d6123159190612d48565b9c5089858151811061232957612329612cf3565b60200260200101518c8f8151811061234357612343612cf3565b60209081029190910101526123578e612fa9565b9d5061237e565b8188868151811061237157612371612cf3565b6020026020010181815250505b5050505080600101905061215f565b50505b509091929394959697565b825160008267ffffffffffffffff8111156123b8576123b8612cdd565b6040519080825280602002602001820160405280156123e1578160200160208202803683370190505b50905060008367ffffffffffffffff8111156123ff576123ff612cdd565b604051908082528060200260200182016040528015612428578160200160208202803683370190505b50905060008467ffffffffffffffff81111561244657612446612cdd565b60405190808252806020026020018201604052801561246f578160200160208202803683370190505b50905060008567ffffffffffffffff81111561248d5761248d612cdd565b6040519080825280602002602001820160405280156124b6578160200160208202803683370190505b50905060008667ffffffffffffffff8111156124d4576124d4612cdd565b6040519080825280602002602001820160405280156124fd578160200160208202803683370190505b50905060008060005b8881101561265d5760008c828151811061252257612522612cf3565b60200260200101511115612655578b818151811061254257612542612cf3565b602002602001015191508188848151811061255f5761255f612cf3565b6020908102919091018101919091526000838152600590915260409020600181015488516001600160a01b03909116908990869081106125a1576125a1612cf3565b6001600160a01b039283166020918202929092010152815488519116908890869081106125d0576125d0612cf3565b60200260200101906001600160a01b031690816001600160a01b0316815250508b828151811061260257612602612cf3565b602002602001015186858151811061261c5761261c612cf3565b6020026020010181815250508185858151811061263b5761263b612cf3565b60209081029190910101528361265081612fa9565b945050505b600101612506565b50885b8015612712578861267081613045565b99506000905084612682600184612cca565b8151811061269257612692612cf3565b6020026020010151905060068a815481106126af576126af612cf3565b9060005260206000200154600682815481106126cd576126cd612cf3565b60009182526020909120015560068054806126ea576126ea612d09565b60019003818190600052602060002001600090559055508061270b90613045565b9050612660565b506000547fd19a3d42ed383465e4058c322d9411aeac76ddb8454d22e139fc99808bd569528888888860405161274b9493929190613096565b60405180910390a25050505050505050505050565b600060405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d11600160005114161716915060006060528060405250806127dd5760405163abae3d6d60e01b81526001600160a01b038086166004830152306024830152841660448201526064810183905260840161072f565b50505050565b60408051600180825281830190925260609160208083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612843573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612867919061302c565b8160008151811061287a5761287a612cf3565b602002602001018181525050919050565b60006128988484846128a0565b949350505050565b600080821180156128e45750826000815181106128bf576128bf612cf3565b6020026020010151846000815181106128da576128da612cf3565b6020026020010151115b15610bb357600082846000815181106128ff576128ff612cf3565b60200260200101518660008151811061291a5761291a612cf3565b602002602001015161292c9190612cca565b61293e90670de0b6b3a7640000612f70565b6129489190612f87565b7f0000000000000000000000000000000000000000000000000000000000000000111595945050505050565b508054600082559060005260206000209081019061299291906129e0565b50565b8280548282559060005260206000209081019282156129d0579160200282015b828111156129d05782518255916020019190600101906129b5565b506129dc9291506129e0565b5090565b5b808211156129dc57600081556001016129e1565b6001600160a01b038116811461299257600080fd5b600080600080600060808688031215612a2257600080fd5b8535612a2d816129f5565b94506020860135612a3d816129f5565b935060408601359250606086013567ffffffffffffffff80821115612a6157600080fd5b818801915088601f830112612a7557600080fd5b813581811115612a8457600080fd5b896020828501011115612a9657600080fd5b9699959850939650602001949392505050565b600060208284031215612abb57600080fd5b5035919050565b60008151808452602080850194506020840160005b83811015612af357815187529582019590820190600101612ad7565b509495945050505050565b6020815260006001600160a01b0380845116602084015280602085015116604084015250604083015160c06060840152612b3b60e0840182612ac2565b905060608401516080840152608084015160a084015260a084015160c08401528091505092915050565b602081526000610bb36020830184612ac2565b60a081526000612b8b60a0830188612ac2565b6020838203818501528188518084528284019150828160051b850101838b0160005b83811015612bdb57601f19878403018552612bc9838351612ac2565b94860194925090850190600101612bad565b50508681036040880152612bef818b612ac2565b9450505050508281036060840152612c078186612ac2565b90508281036080840152612c1b8185612ac2565b98975050505050505050565b634e487b7160e01b600052602160045260246000fd5b6020810160038310612c5f57634e487b7160e01b600052602160045260246000fd5b91905290565b60006020808352835180602085015260005b81811015612c9357858101830151858201604001528201612c77565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611f0d57611f0d612cb4565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b838152606060208201526000612d386060830185612ac2565b9050826040830152949350505050565b80820180821115611f0d57611f0d612cb4565b604051610100810167ffffffffffffffff81118282101715612d7f57612d7f612cdd565b60405290565b80516bffffffffffffffffffffffff81168114612da157600080fd5b919050565b8051612da1816129f5565b805163ffffffff81168114612da157600080fd5b805160068110612da157600080fd5b600082601f830112612de557600080fd5b8151602067ffffffffffffffff80831115612e0257612e02612cdd565b8260051b604051601f19603f83011681018181108482111715612e2757612e27612cdd565b6040529384526020818701810194908101925087851115612e4757600080fd5b6020870191505b84821015612e6e57612e5f82612db1565b83529183019190830190612e4e565b979650505050505050565b600060208284031215612e8b57600080fd5b815167ffffffffffffffff80821115612ea357600080fd5b908301906101008286031215612eb857600080fd5b612ec0612d5b565b612ec983612d85565b8152612ed760208401612da6565b602082015260408301516040820152612ef260608401612db1565b6060820152612f0360808401612db1565b6080820152612f1460a08401612db1565b60a0820152612f2560c08401612dc5565b60c082015260e083015182811115612f3c57600080fd5b612f4887828601612dd4565b60e08301525095945050505050565b8281526040602082015260006128986040830184612ac2565b8082028115828204841417611f0d57611f0d612cb4565b600082612fa457634e487b7160e01b600052601260045260246000fd5b500490565b600060018201612fbb57612fbb612cb4565b5060010190565b838152606060208201526000612fdb6060830185612ac2565b8281036040840152612fed8185612ac2565b9695505050505050565b6000806040838503121561300a57600080fd5b8251613015816129f5565b915061302360208401612d85565b90509250929050565b60006020828403121561303e57600080fd5b5051919050565b60008161305457613054612cb4565b506000190190565b60008151808452602080850194506020840160005b83811015612af35781516001600160a01b031687529582019590820190600101613071565b6080815260006130a96080830187612ac2565b82810360208401526130bb818761305c565b905082810360408401526130cf818661305c565b90508281036060840152612e6e8185612ac256fea26469706673582212201cbb3243bdf2246a74a754c4b24385dc52b256b192f67778a3b3a76648374a5864736f6c63430008170033",
|
1271 |
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102415760003560e01c8063a0ed60e011610145578063cbcf252a116100bd578063eb338c961161008c578063f4dce71411610071578063f4dce71414610681578063f86ad2b614610689578063ffa1ad74146106b057600080fd5b8063eb338c9614610666578063f189e85a1461067957600080fd5b8063cbcf252a146105ca578063e1f1176d146105f1578063e77cdcc914610618578063eacdaabc1461063f57600080fd5b8063b69ef8a811610114578063c2c4c5c1116100f9578063c2c4c5c11461057e578063c889921d14610597578063cae2a5f0146105aa57600080fd5b8063b69ef8a814610562578063b6b55f251461056b57600080fd5b8063a0ed60e014610496578063a694fc3a146104bd578063a74466ad146104d0578063b15087601461054d57600080fd5b806352c824f5116101d857806372f702f3116101a7578063809cee2f1161018c578063809cee2f1461044657806382a8ea581461046d578063879d90901461048d57600080fd5b806372f702f31461040c57806378e061361461043357600080fd5b806352c824f51461038457806356e76058146103ab5780635829c5ec146103be578063592cf3fb146103e557600080fd5b8063287140511161021457806328714051146103005780632e17de781461033f5780633e7329971461035457806342cde4e81461035d57600080fd5b806308ae7e541461024657806314b19c5a14610280578063150b7a021461028957806316a75172146102d9575b600080fd5b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61026d60005481565b6102a8610297366004612a0a565b630a85bd0160e11b95945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610277565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610277565b61035261034d366004612aa9565b6106e1565b005b61026d60035481565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d6103b9366004612aa9565b610acf565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b61026d610441366004612aa9565b610af0565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61048061047b366004612aa9565b610bba565b6040516102779190612afe565b61026d60025481565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6103526104cb366004612aa9565b610cb1565b61051a6104de366004612aa9565b6005602081905260009182526040909120805460018201546003830154600484015493909401546001600160a01b039283169492909116929085565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a001610277565b61055561127e565b6040516102779190612b65565b61026d60015481565b610352610579366004612aa9565b6112d6565b610586611378565b604051610277959493929190612b78565b61026d6105a5366004612aa9565b6119ad565b6105bd6105b8366004612aa9565b611a69565b6040516102779190612c3d565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b61026d610674366004612aa9565b611b5c565b610555611b6c565b61026d611bc2565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6106d4604051806040016040528060058152602001640302e312e360dc1b81525081565b6040516102779190612c65565b600081815260056020526040902060018101546001600160a01b0316331461073857600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b600381015460006107498242612cca565b90507f0000000000000000000000000000000000000000000000000000000000000000811115801561077d57506000600254115b156107cb5760405163ba2bbc6b60e01b815260048101859052602481018290527f0000000000000000000000000000000000000000000000000000000000000000604482015260640161072f565b6000806107d6611378565b945050505091508151600003610837576107ee611b6c565b9150815167ffffffffffffffff81111561080a5761080a612cdd565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b5090505b6000805b8351821015610898578783838151811061085757610857612cf3565b60200260200101510315610898578784838151811061087857610878612cf3565b60200260200101510361088d57506001610898565b81600101915061083b565b600487015460028801805460408051602080840282018101909252828152600093909290918301828280156108ec57602002820191906000526020600020905b8154815260200190600101908083116108d8575b50508c5460008f8152600560205260408120805473ffffffffffffffffffffffffffffffffffffffff19908116825560018201805490911690559596506001600160a01b03909116949350915061094890506002830182612974565b506000600382018190556004820181905560059091015583156109d7576006805461097590600190612cca565b8154811061098557610985612cf3565b9060005260206000200154600686815481106109a3576109a3612cf3565b60009182526020909120015560068054806109c0576109c0612d09565b600190038181906000526020600020016000905590555b604051632142170760e11b8152306004820152336024820152604481018c90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b505050506000831115610a7057610a708184611bf7565b806001600160a01b0316336001600160a01b03168c7f950733f4c0bf951b8e770f3cc619a4288e7b59b1236d59aeaf2c238488e8ae816000548688604051610aba93929190612d1f565b60405180910390a45050505050505050505050565b60048181548110610adf57600080fd5b600091825260209091200154905081565b6000818152600560209081526040808320815160c08101835281546001600160a01b0390811682526001830154168185015260028201805484518187028101870186528181528796939586019390929190830182828015610b7057602002820191906000526020600020905b815481526020019060010190808311610b5c575b505050505081526020016003820154815260200160048201548152602001600582015481525050905080608001519150610ba9836119ad565b610bb39083612d48565b9392505050565b610c056040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001606081526020016000815260200160008152602001600081525090565b600082815260056020908152604091829020825160c08101845281546001600160a01b0390811682526001830154168184015260028201805485518186028101860187528181529295939493860193830182828015610c8357602002820191906000526020600020905b815481526020019060010190808311610c6f575b5050505050815260200160038201548152602001600482015481526020016005820154815250509050919050565b600254600003610cd45760405163afb0be3360e01b815260040160405180910390fd5b6000818152600560205260409020600381015415610d085760405163b4817ce760e01b81526004810183905260240161072f565b6006547f00000000000000000000000000000000000000000000000000000000000000008103610d6d5760405163fd20861560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015260240161072f565b60405163ef0e239b60e01b8152600481018490526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610dd5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dfd9190810190612e79565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610e4c57604051637ad404bf60e11b81526004810185905260240161072f565b7f000000000000000000000000000000000000000000000000000000000000000015801590610e9f575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610ec057604051637ad404bf60e11b81526004810185905260240161072f565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610f1a5750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610f3b57604051637ad404bf60e11b81526004810185905260240161072f565b60048160c001516005811115610f5357610f53612c27565b14610f92578060c001516005811115610f6e57610f6e612c27565b604051633c053f9d60e21b815260048101919091526024810185905260440161072f565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f00000000000000000000000000000000000000000000000000000000000000001461101757602082015160405162a2307960e51b81526001600160a01b03909116600482015260240161072f565b60045480156110e05760e08301515181811461104957604051637ad404bf60e11b81526004810188905260240161072f565b60005b818110156110dd578460e00151818151811061106a5761106a612cf3565b602002602001015163ffffffff166004828154811061108b5761108b612cf3565b9060005260206000200154146110d557600481815481106110ae576110ae612cf3565b9060005260206000200154604051632ab10b0b60e21b815260040161072f91815260200190565b60010161104c565b50505b6111018684600001516bffffffffffffffffffffffff168560e00151611c81565b602083015185546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff199182161787556001870180549091163317905560009061114790611f02565b805190915061115f9060028801906020840190612995565b50426003870155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b15801561120957600080fd5b505af115801561121d573d6000803e3d6000fd5b5050505083602001516001600160a01b0316336001600160a01b0316887faa6b005b4958114a0c90492461c24af6525ae0178db7fbf44125ae9217c69ccb6000548560405161126d929190612f57565b60405180910390a450505050505050565b606060048054806020026020016040519081016040528092919081815260200182805480156112cc57602002820191906000526020600020905b8154815260200190600101908083116112b8575b5050505050905090565b6000816001546112e69190612d48565b90506000826002546112f89190612d48565b6001839055600281905590506113307f0000000000000000000000000000000000000000000000000000000000000000333086611f13565b604080518481526020810184905290810182905233907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2505050565b6060806060806060600080600080600080600080611394611f9d565b97509750975097509750975097509750606080845167ffffffffffffffff8111156113c1576113c1612cdd565b6040519080825280602002602001820160405280156113ea578160200160208202803683370190505b509a506000891561177d578967ffffffffffffffff81111561140e5761140e612cdd565b604051908082528060200260200182016040528015611437578160200160208202803683370190505b5092508967ffffffffffffffff81111561145357611453612cdd565b60405190808252806020026020018201604052801561147c578160200160208202803683370190505b5091508a8911156116865760008060015b8c811015611579578b8e8b83815181106114a9576114a9612cf3565b60200260200101516114bb9190612f70565b6114c59190612f87565b92506114d18383612d48565b91508a81815181106114e5576114e5612cf3565b602002602001015193508a818151811061150157611501612cf3565b602002602001015186828151811061151b5761151b612cf3565b6020026020010181815250508285828151811061153a5761153a612cf3565b6020026020010181815250508260056000868152602001908152602001600020600401600082825461156c9190612d48565b909155505060010161148d565b508a8d8a60008151811061158f5761158f612cf3565b60200260200101516115a19190612f70565b6115ab9190612f87565b91506115b78282612d48565b9050896000815181106115cc576115cc612cf3565b60200260200101519250896000815181106115e9576115e9612cf3565b60200260200101518560008151811061160457611604612cf3565b602002602001018181525050808d111561162f57611622818e612cca565b61162c9083612d48565b91505b818460008151811061164357611643612cf3565b602002602001018181525050816005600085815260200190815260200160002060040160008282546116759190612d48565b9091555060009d5061177792505050565b60005b8a811015611769578881815181106116a3576116a3612cf3565b602002602001015191508881815181106116bf576116bf612cf3565b60200260200101518482815181106116d9576116d9612cf3565b6020026020010181815250508781815181106116f7576116f7612cf3565b602002602001015183828151811061171157611711612cf3565b60200260200101818152505087818151811061172f5761172f612cf3565b602002602001015160056000848152602001908152602001600020600401600082825461175c9190612d48565b9091555050600101611689565b50611774898c612cca565b9a505b60028b90555b855115611997576000995060005b8651811015611930578681815181106117a6576117a6612cf3565b602002602001015191508581815181106117c2576117c2612cf3565b60200260200101516005600084815260200190815260200160002060020190805190602001906117f3929190612995565b50600085828151811061180857611808612cf3565b602002602001015111156119155784818151811061182857611828612cf3565b602002602001015160056000848152602001908152602001600020600501546118519190612d48565b85828151811061186357611863612cf3565b60200260200101818152505084818151811061188157611881612cf3565b602002602001015160056000848152602001908152602001600020600501819055507f00000000000000000000000000000000000000000000000000000000000000008582815181106118d6576118d6612cf3565b6020026020010151111561191057818d82815181106118f7576118f7612cf3565b60209081029190910101528a61190c81612fa9565b9b50505b611928565b6000828152600560208190526040822001555b60010161178b565b508915611942576119428c858c61239b565b42600355600054611954816001612d48565b60005560405181907f06a98bdd4732811ab3214800ed1ada2dce66a2bce301d250c3ca7d6b461ee6669061198d908f9088908890612fc2565b60405180910390a2505b50939e929d509b50919950969750505050505050565b6000806000806000806119be611f9d565b5050509450945094509450945060005b84811015611a5e57878382815181106119e9576119e9612cf3565b602002602001015103611a565785841115611a35578386838381518110611a1257611a12612cf3565b6020026020010151611a249190612f70565b611a2e9190612f87565b9650611a5e565b818181518110611a4757611a47612cf3565b60200260200101519650611a5e565b6001016119ce565b505050505050919050565b6000818152600560209081526040808320815160c08101835281546001600160a01b0390811682526001830154168185015260028201805484518187028101870186528181528796939586019390929190830182828015611ae957602002820191906000526020600020905b815481526020019060010190808311611ad5575b50505050508152602001600382015481526020016004820154815260200160058201548152505090507f00000000000000000000000000000000000000000000000000000000000000008160a001511115611b475760029150611b56565b606081015115611b5657600191505b50919050565b60068181548110610adf57600080fd5b606060068054806020026020016040519081016040528092919081815260200182805480156112cc57602002820191906000526020600020908154815260200190600101908083116112b8575050505050905090565b60007f0000000000000000000000000000000000000000000000000000000000000000600354611bf29190612d48565b905090565b8060016000828254611c099190612cca565b90915550611c3a90507f00000000000000000000000000000000000000000000000000000000000000008383612760565b816001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436482604051611c7591815260200190565b60405180910390a25050565b604051633cebfa4f60e01b81526004810184905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633cebfa4f906024016040805180830381865afa158015611cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0e9190612ff7565b91509150816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614611d9757604051630b80380d60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301528316602482015260440161072f565b7f00000000000000000000000000000000000000000000000000000000000000006bffffffffffffffffffffffff8216811115611dfe57604051632b30b24760e21b81526bffffffffffffffffffffffff831660048201526024810182905260440161072f565b60005b8451811015611ef95760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166375c1f93489888581518110611e4e57611e4e612cf3565b60200260200101516040518363ffffffff1660e01b8152600401611e8292919091825263ffffffff16602082015260400190565b602060405180830381865afa158015611e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec3919061302c565b905082811015611ef057604051632b30b24760e21b8152600481018290526024810184905260440161072f565b50600101611e01565b50505050505050565b6060611f0d826127e3565b92915050565b60006040516323b872dd60e01b6000528460045283602452826044526020600060646000808a5af13d15601f3d1160016000511416171691506000606052806040525080611f965760405163abae3d6d60e01b81526001600160a01b0380871660048301528086166024830152841660448201526064810183905260840161072f565b5050505050565b600080600060608060608060606000600354905060025498507f00000000000000000000000000000000000000000000000000000000000000008142611fe39190612cca565b10158015611ff15750600089115b15612390576006548067ffffffffffffffff81111561201257612012612cdd565b60405190808252806020026020018201604052801561203b578160200160208202803683370190505b5094508067ffffffffffffffff81111561205757612057612cdd565b604051908082528060200260200182016040528015612080578160200160208202803683370190505b5096508067ffffffffffffffff81111561209c5761209c612cdd565b6040519080825280602002602001820160405280156120c5578160200160208202803683370190505b5095508067ffffffffffffffff8111156120e1576120e1612cdd565b60405190808252806020026020018201604052801561211457816020015b60608152602001906001900390816120ff5790505b5093508067ffffffffffffffff81111561213057612130612cdd565b604051908082528060200260200182016040528015612159578160200160208202803683370190505b50925060005b8181101561238d576006818154811061217a5761217a612cf3565b906000526020600020015486828151811061219757612197612cf3565b6020026020010181815250506000600560008884815181106121bb576121bb612cf3565b602090810291909101810151825281019190915260400160002080549091506121ec906001600160a01b0316611f02565b8683815181106121fe576121fe612cf3565b6020908102919091010152600381015484908181111561221c578091505b6122268242612cca565b905060006122a089868151811061223f5761223f612cf3565b60200260200101518560020180548060200260200160405190810160405280929190818152602001828054801561229557602002820191906000526020600020905b815481526020019060010190808311612281575b50505050508461288b565b9050801561235e576122d2827f0000000000000000000000000000000000000000000000000000000000000000612f70565b8b8f815181106122e4576122e4612cf3565b6020026020010181815250508a8e8151811061230257612302612cf3565b60200260200101518d6123159190612d48565b9c5089858151811061232957612329612cf3565b60200260200101518c8f8151811061234357612343612cf3565b60209081029190910101526123578e612fa9565b9d5061237e565b8188868151811061237157612371612cf3565b6020026020010181815250505b5050505080600101905061215f565b50505b509091929394959697565b825160008267ffffffffffffffff8111156123b8576123b8612cdd565b6040519080825280602002602001820160405280156123e1578160200160208202803683370190505b50905060008367ffffffffffffffff8111156123ff576123ff612cdd565b604051908082528060200260200182016040528015612428578160200160208202803683370190505b50905060008467ffffffffffffffff81111561244657612446612cdd565b60405190808252806020026020018201604052801561246f578160200160208202803683370190505b50905060008567ffffffffffffffff81111561248d5761248d612cdd565b6040519080825280602002602001820160405280156124b6578160200160208202803683370190505b50905060008667ffffffffffffffff8111156124d4576124d4612cdd565b6040519080825280602002602001820160405280156124fd578160200160208202803683370190505b50905060008060005b8881101561265d5760008c828151811061252257612522612cf3565b60200260200101511115612655578b818151811061254257612542612cf3565b602002602001015191508188848151811061255f5761255f612cf3565b6020908102919091018101919091526000838152600590915260409020600181015488516001600160a01b03909116908990869081106125a1576125a1612cf3565b6001600160a01b039283166020918202929092010152815488519116908890869081106125d0576125d0612cf3565b60200260200101906001600160a01b031690816001600160a01b0316815250508b828151811061260257612602612cf3565b602002602001015186858151811061261c5761261c612cf3565b6020026020010181815250508185858151811061263b5761263b612cf3565b60209081029190910101528361265081612fa9565b945050505b600101612506565b50885b8015612712578861267081613045565b99506000905084612682600184612cca565b8151811061269257612692612cf3565b6020026020010151905060068a815481106126af576126af612cf3565b9060005260206000200154600682815481106126cd576126cd612cf3565b60009182526020909120015560068054806126ea576126ea612d09565b60019003818190600052602060002001600090559055508061270b90613045565b9050612660565b506000547fd19a3d42ed383465e4058c322d9411aeac76ddb8454d22e139fc99808bd569528888888860405161274b9493929190613096565b60405180910390a25050505050505050505050565b600060405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d11600160005114161716915060006060528060405250806127dd5760405163abae3d6d60e01b81526001600160a01b038086166004830152306024830152841660448201526064810183905260840161072f565b50505050565b60408051600180825281830190925260609160208083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612843573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612867919061302c565b8160008151811061287a5761287a612cf3565b602002602001018181525050919050565b60006128988484846128a0565b949350505050565b600080821180156128e45750826000815181106128bf576128bf612cf3565b6020026020010151846000815181106128da576128da612cf3565b6020026020010151115b15610bb357600082846000815181106128ff576128ff612cf3565b60200260200101518660008151811061291a5761291a612cf3565b602002602001015161292c9190612cca565b61293e90670de0b6b3a7640000612f70565b6129489190612f87565b7f0000000000000000000000000000000000000000000000000000000000000000111595945050505050565b508054600082559060005260206000209081019061299291906129e0565b50565b8280548282559060005260206000209081019282156129d0579160200282015b828111156129d05782518255916020019190600101906129b5565b506129dc9291506129e0565b5090565b5b808211156129dc57600081556001016129e1565b6001600160a01b038116811461299257600080fd5b600080600080600060808688031215612a2257600080fd5b8535612a2d816129f5565b94506020860135612a3d816129f5565b935060408601359250606086013567ffffffffffffffff80821115612a6157600080fd5b818801915088601f830112612a7557600080fd5b813581811115612a8457600080fd5b896020828501011115612a9657600080fd5b9699959850939650602001949392505050565b600060208284031215612abb57600080fd5b5035919050565b60008151808452602080850194506020840160005b83811015612af357815187529582019590820190600101612ad7565b509495945050505050565b6020815260006001600160a01b0380845116602084015280602085015116604084015250604083015160c06060840152612b3b60e0840182612ac2565b905060608401516080840152608084015160a084015260a084015160c08401528091505092915050565b602081526000610bb36020830184612ac2565b60a081526000612b8b60a0830188612ac2565b6020838203818501528188518084528284019150828160051b850101838b0160005b83811015612bdb57601f19878403018552612bc9838351612ac2565b94860194925090850190600101612bad565b50508681036040880152612bef818b612ac2565b9450505050508281036060840152612c078186612ac2565b90508281036080840152612c1b8185612ac2565b98975050505050505050565b634e487b7160e01b600052602160045260246000fd5b6020810160038310612c5f57634e487b7160e01b600052602160045260246000fd5b91905290565b60006020808352835180602085015260005b81811015612c9357858101830151858201604001528201612c77565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611f0d57611f0d612cb4565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b838152606060208201526000612d386060830185612ac2565b9050826040830152949350505050565b80820180821115611f0d57611f0d612cb4565b604051610100810167ffffffffffffffff81118282101715612d7f57612d7f612cdd565b60405290565b80516bffffffffffffffffffffffff81168114612da157600080fd5b919050565b8051612da1816129f5565b805163ffffffff81168114612da157600080fd5b805160068110612da157600080fd5b600082601f830112612de557600080fd5b8151602067ffffffffffffffff80831115612e0257612e02612cdd565b8260051b604051601f19603f83011681018181108482111715612e2757612e27612cdd565b6040529384526020818701810194908101925087851115612e4757600080fd5b6020870191505b84821015612e6e57612e5f82612db1565b83529183019190830190612e4e565b979650505050505050565b600060208284031215612e8b57600080fd5b815167ffffffffffffffff80821115612ea357600080fd5b908301906101008286031215612eb857600080fd5b612ec0612d5b565b612ec983612d85565b8152612ed760208401612da6565b602082015260408301516040820152612ef260608401612db1565b6060820152612f0360808401612db1565b6080820152612f1460a08401612db1565b60a0820152612f2560c08401612dc5565b60c082015260e083015182811115612f3c57600080fd5b612f4887828601612dd4565b60e08301525095945050505050565b8281526040602082015260006128986040830184612ac2565b8082028115828204841417611f0d57611f0d612cb4565b600082612fa457634e487b7160e01b600052601260045260246000fd5b500490565b600060018201612fbb57612fbb612cb4565b5060010190565b838152606060208201526000612fdb6060830185612ac2565b8281036040840152612fed8185612ac2565b9695505050505050565b6000806040838503121561300a57600080fd5b8251613015816129f5565b915061302360208401612d85565b90509250929050565b60006020828403121561303e57600080fd5b5051919050565b60008161305457613054612cb4565b506000190190565b60008151808452602080850194506020840160005b83811015612af35781516001600160a01b031687529582019590820190600101613071565b6080815260006130a96080830187612ac2565b82810360208401526130bb818761305c565b905082810360408401526130cf818661305c565b90508281036060840152612e6e8185612ac256fea26469706673582212201cbb3243bdf2246a74a754c4b24385dc52b256b192f67778a3b3a76648374a5864736f6c63430008170033",
|
1272 |
+
"linkReferences": {},
|
1273 |
+
"deployedLinkReferences": {}
|
1274 |
+
}
|