Spaces:
Sleeping
Sleeping
gauravlochab
commited on
Commit
·
db4f69b
1
Parent(s):
ef47052
feat: add graph for optimus agent
Browse files- .gitignore +3 -0
- app.py +108 -333
- app_trans_new.py +0 -570
- app_value_locked.py +0 -405
- apr_visualization.py +0 -592
- contracts/NonfungiblePositionManager.json +0 -1228
- contracts/ServiceRegistryTokenUtility.json +0 -926
- contracts/StakingActivityChecker.json +0 -87
- contracts/StakingToken.json +0 -1274
- contracts/Vault.json +0 -1186
- contracts/service_registry_abi.json +0 -1
- daily_transactions_new.csv +0 -334
- daily_value_locked.csv +0 -8
- modius_apr_statistics.csv +0 -3
- modius_apr_values.csv +0 -2
.gitignore
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
hf-dash/
|
2 |
+
env/
|
3 |
+
debug_scripts/
|
app.py
CHANGED
@@ -215,16 +215,16 @@ def fetch_apr_data_from_db():
|
|
215 |
logger.info("==== Starting APR data fetch ====")
|
216 |
|
217 |
try:
|
218 |
-
# Step 1: Find the
|
219 |
-
logger.info("Finding
|
220 |
-
|
221 |
-
if not
|
222 |
-
logger.error("
|
223 |
global_df = pd.DataFrame([])
|
224 |
return global_df
|
225 |
|
226 |
-
type_id =
|
227 |
-
logger.info(f"Found
|
228 |
|
229 |
# Step 2: Find the APR attribute definition
|
230 |
logger.info("Finding APR attribute definition")
|
@@ -237,22 +237,22 @@ def fetch_apr_data_from_db():
|
|
237 |
attr_def_id = apr_attr_def["attr_def_id"]
|
238 |
logger.info(f"Found APR attribute definition with ID: {attr_def_id}")
|
239 |
|
240 |
-
# Step 3: Get all agents of type
|
241 |
-
logger.info(f"Getting all agents of type
|
242 |
-
|
243 |
-
if not
|
244 |
-
logger.error("No agents of type '
|
245 |
global_df = pd.DataFrame([])
|
246 |
return global_df
|
247 |
|
248 |
-
logger.info(f"Found {len(
|
249 |
-
logger.debug(f"
|
250 |
|
251 |
-
# Step 4: Fetch all APR values for
|
252 |
-
logger.info(f"Fetching APR values for all
|
253 |
-
apr_attributes = get_attribute_values_by_type_and_attr(
|
254 |
if not apr_attributes:
|
255 |
-
logger.error("No APR values found for '
|
256 |
global_df = pd.DataFrame([])
|
257 |
return global_df
|
258 |
|
@@ -267,7 +267,7 @@ def fetch_apr_data_from_db():
|
|
267 |
data = extract_apr_value(attr)
|
268 |
if data["timestamp"] is not None:
|
269 |
# Get agent name
|
270 |
-
agent_name = get_agent_name(attr["agent_id"],
|
271 |
# Add agent name to the data
|
272 |
data["agent_name"] = agent_name
|
273 |
# Add is_dummy flag (all real data)
|
@@ -670,8 +670,8 @@ def generate_apr_visualizations():
|
|
670 |
)
|
671 |
|
672 |
# Save as static file for reference
|
673 |
-
fig.write_html("
|
674 |
-
fig.write_image("
|
675 |
|
676 |
csv_file = None
|
677 |
return fig, csv_file
|
@@ -715,8 +715,8 @@ def generate_roi_visualizations():
|
|
715 |
)
|
716 |
|
717 |
# Save as static file for reference
|
718 |
-
fig.write_html("
|
719 |
-
fig.write_image("
|
720 |
|
721 |
csv_file = None
|
722 |
return fig, csv_file
|
@@ -744,8 +744,8 @@ def create_combined_roi_time_series_graph(df):
|
|
744 |
)
|
745 |
return fig
|
746 |
|
747 |
-
# Define fixed start date (
|
748 |
-
fixed_start_date = datetime(2025,
|
749 |
logger.info(f"Using fixed start date for ROI runtime calculation: {fixed_start_date}")
|
750 |
|
751 |
# Calculate runtime for each agent from fixed start date
|
@@ -805,7 +805,7 @@ def create_combined_roi_time_series_graph(df):
|
|
805 |
type="rect",
|
806 |
fillcolor="rgba(230, 243, 255, 0.3)",
|
807 |
line=dict(width=0),
|
808 |
-
y0=0, y1=
|
809 |
x0=min_time, x1=max_time,
|
810 |
layer="below"
|
811 |
)
|
@@ -815,7 +815,7 @@ def create_combined_roi_time_series_graph(df):
|
|
815 |
type="rect",
|
816 |
fillcolor="rgba(255, 230, 230, 0.3)",
|
817 |
line=dict(width=0),
|
818 |
-
y0
|
819 |
x0=min_time, x1=max_time,
|
820 |
layer="below"
|
821 |
)
|
@@ -986,7 +986,7 @@ def create_combined_roi_time_series_graph(df):
|
|
986 |
# Update layout with average runtime information in the title
|
987 |
fig.update_layout(
|
988 |
title=dict(
|
989 |
-
text=f"
|
990 |
font=dict(
|
991 |
family="Arial, sans-serif",
|
992 |
size=22,
|
@@ -1042,27 +1042,25 @@ def create_combined_roi_time_series_graph(df):
|
|
1042 |
)
|
1043 |
)
|
1044 |
|
1045 |
-
# Update y-axis with fixed range
|
1046 |
fig.update_yaxes(
|
1047 |
showgrid=True,
|
1048 |
gridwidth=1,
|
1049 |
gridcolor='rgba(0,0,0,0.1)',
|
1050 |
# Use fixed range instead of autoscaling
|
1051 |
-
|
1052 |
-
range=[-100, 100], # Set fixed range from -100% to +100%
|
1053 |
tickformat=".2f", # Format tick labels with 2 decimal places
|
1054 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
1055 |
title=None # Remove the built-in axis title since we're using annotations
|
1056 |
)
|
1057 |
|
1058 |
-
# Update x-axis with better formatting and
|
1059 |
fig.update_xaxes(
|
1060 |
showgrid=True,
|
1061 |
gridwidth=1,
|
1062 |
gridcolor='rgba(0,0,0,0.1)',
|
1063 |
-
#
|
1064 |
-
autorange=
|
1065 |
-
range=[x_start_date, last_valid_date], # Set fixed range from start date to last valid date
|
1066 |
tickformat="%b %d", # Simplified date format without time
|
1067 |
tickangle=-30, # Angle the labels for better readability
|
1068 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
@@ -1071,11 +1069,11 @@ def create_combined_roi_time_series_graph(df):
|
|
1071 |
|
1072 |
try:
|
1073 |
# Save the figure
|
1074 |
-
graph_file = "
|
1075 |
fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
1076 |
|
1077 |
# Also save as image for compatibility
|
1078 |
-
img_file = "
|
1079 |
try:
|
1080 |
fig.write_image(img_file)
|
1081 |
logger.info(f"ROI graph saved to {graph_file} and {img_file}")
|
@@ -1101,6 +1099,44 @@ def create_combined_roi_time_series_graph(df):
|
|
1101 |
x0=min_time, x1=max_time
|
1102 |
)
|
1103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1104 |
# Simply plot the average ROI data with moving average
|
1105 |
if not avg_roi_data.empty:
|
1106 |
# Add moving average as a line
|
@@ -1117,7 +1153,7 @@ def create_combined_roi_time_series_graph(df):
|
|
1117 |
# Simplified layout with adjusted y-axis range
|
1118 |
simple_fig.update_layout(
|
1119 |
title=dict(
|
1120 |
-
text="
|
1121 |
font=dict(
|
1122 |
family="Arial, sans-serif",
|
1123 |
size=22,
|
@@ -1133,32 +1169,30 @@ def create_combined_roi_time_series_graph(df):
|
|
1133 |
margin=dict(r=30, l=120, t=40, b=50)
|
1134 |
)
|
1135 |
|
1136 |
-
# Update y-axis with fixed range
|
1137 |
simple_fig.update_yaxes(
|
1138 |
showgrid=True,
|
1139 |
gridwidth=1,
|
1140 |
gridcolor='rgba(0,0,0,0.1)',
|
1141 |
-
|
1142 |
-
range=[-100, 100],
|
1143 |
tickformat=".2f",
|
1144 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"),
|
1145 |
title=None # Remove the built-in axis title since we're using annotations
|
1146 |
)
|
1147 |
|
1148 |
-
# Update x-axis with better formatting and
|
1149 |
simple_fig.update_xaxes(
|
1150 |
showgrid=True,
|
1151 |
gridwidth=1,
|
1152 |
gridcolor='rgba(0,0,0,0.1)',
|
1153 |
-
autorange=
|
1154 |
-
range=[x_start_date, max_time],
|
1155 |
tickformat="%b %d",
|
1156 |
tickangle=-30,
|
1157 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold")
|
1158 |
)
|
1159 |
|
1160 |
# Save the figure
|
1161 |
-
graph_file = "
|
1162 |
simple_fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
1163 |
|
1164 |
# Return the simple figure
|
@@ -1171,7 +1205,7 @@ def save_roi_to_csv(df):
|
|
1171 |
return None
|
1172 |
|
1173 |
# Define the CSV file path
|
1174 |
-
csv_file = "
|
1175 |
|
1176 |
# Save to CSV
|
1177 |
df.to_csv(csv_file, index=False)
|
@@ -1213,15 +1247,17 @@ def create_time_series_graph_per_agent(df):
|
|
1213 |
row=row, col=1
|
1214 |
)
|
1215 |
|
1216 |
-
# Add background colors
|
1217 |
fig.add_shape(
|
1218 |
type="rect", fillcolor="rgba(230, 243, 255, 0.3)", line=dict(width=0),
|
1219 |
-
y0=0, y1=
|
|
|
1220 |
row=row, col=1, layer="below"
|
1221 |
)
|
1222 |
fig.add_shape(
|
1223 |
type="rect", fillcolor="rgba(255, 230, 230, 0.3)", line=dict(width=0),
|
1224 |
-
y0
|
|
|
1225 |
row=row, col=1, layer="below"
|
1226 |
)
|
1227 |
|
@@ -1301,11 +1337,11 @@ def create_time_series_graph_per_agent(df):
|
|
1301 |
)
|
1302 |
|
1303 |
# Save the figure (still useful for reference)
|
1304 |
-
graph_file = "
|
1305 |
fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
1306 |
|
1307 |
# Also save as image for compatibility
|
1308 |
-
img_file = "
|
1309 |
fig.write_image(img_file)
|
1310 |
|
1311 |
logger.info(f"Per-agent graph saved to {graph_file} and {img_file}")
|
@@ -1343,8 +1379,8 @@ def create_combined_time_series_graph(df):
|
|
1343 |
min_time = df['timestamp'].min()
|
1344 |
max_time = df['timestamp'].max()
|
1345 |
|
1346 |
-
# Use
|
1347 |
-
x_start_date =
|
1348 |
|
1349 |
# CRITICAL: Log the exact dataframe we're using for plotting to help debug
|
1350 |
logger.info(f"Graph data - shape: {df.shape}, columns: {df.columns}")
|
@@ -1402,7 +1438,7 @@ def create_combined_time_series_graph(df):
|
|
1402 |
type="rect",
|
1403 |
fillcolor="rgba(230, 243, 255, 0.3)",
|
1404 |
line=dict(width=0),
|
1405 |
-
y0=0, y1=
|
1406 |
x0=min_time, x1=max_time,
|
1407 |
layer="below"
|
1408 |
)
|
@@ -1412,7 +1448,7 @@ def create_combined_time_series_graph(df):
|
|
1412 |
type="rect",
|
1413 |
fillcolor="rgba(255, 230, 230, 0.3)",
|
1414 |
line=dict(width=0),
|
1415 |
-
y0
|
1416 |
x0=min_time, x1=max_time,
|
1417 |
layer="below"
|
1418 |
)
|
@@ -1719,7 +1755,7 @@ def create_combined_time_series_graph(df):
|
|
1719 |
# Make chart responsive instead of fixed width
|
1720 |
fig.update_layout(
|
1721 |
title=dict(
|
1722 |
-
text="
|
1723 |
font=dict(
|
1724 |
family="Arial, sans-serif",
|
1725 |
size=22,
|
@@ -1800,27 +1836,25 @@ def create_combined_time_series_graph(df):
|
|
1800 |
)
|
1801 |
)
|
1802 |
|
1803 |
-
# Update y-axis with fixed range
|
1804 |
fig.update_yaxes(
|
1805 |
showgrid=True,
|
1806 |
gridwidth=1,
|
1807 |
gridcolor='rgba(0,0,0,0.1)',
|
1808 |
# Use fixed range instead of autoscaling
|
1809 |
-
|
1810 |
-
range=[-50, 100], # Set fixed range from -50 to +100
|
1811 |
tickformat=".2f", # Format tick labels with 2 decimal places
|
1812 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
1813 |
title=None # Remove the built-in axis title since we're using annotations
|
1814 |
)
|
1815 |
|
1816 |
-
# Update x-axis with better formatting and
|
1817 |
fig.update_xaxes(
|
1818 |
showgrid=True,
|
1819 |
gridwidth=1,
|
1820 |
gridcolor='rgba(0,0,0,0.1)',
|
1821 |
-
#
|
1822 |
-
autorange=
|
1823 |
-
range=[x_start_date, last_valid_date], # Set fixed range from April 17 to last valid date
|
1824 |
tickformat="%b %d", # Simplified date format without time
|
1825 |
tickangle=-30, # Angle the labels for better readability
|
1826 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
@@ -1834,11 +1868,11 @@ def create_combined_time_series_graph(df):
|
|
1834 |
write_debug_info(df, fig)
|
1835 |
|
1836 |
# Save the figure (still useful for reference)
|
1837 |
-
graph_file = "
|
1838 |
fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
1839 |
|
1840 |
# Also save as image for compatibility
|
1841 |
-
img_file = "
|
1842 |
try:
|
1843 |
fig.write_image(img_file)
|
1844 |
logger.info(f"Combined graph saved to {graph_file} and {img_file}")
|
@@ -1965,10 +1999,10 @@ def create_combined_time_series_graph(df):
|
|
1965 |
)
|
1966 |
)
|
1967 |
|
1968 |
-
# Simplified layout with
|
1969 |
simple_fig.update_layout(
|
1970 |
title=dict(
|
1971 |
-
text="
|
1972 |
font=dict(
|
1973 |
family="Arial, sans-serif",
|
1974 |
size=22,
|
@@ -1979,8 +2013,8 @@ def create_combined_time_series_graph(df):
|
|
1979 |
xaxis_title=None, # Remove x-axis title to use annotation instead
|
1980 |
yaxis_title=None, # Remove the y-axis title as we'll use annotations instead
|
1981 |
yaxis=dict(
|
1982 |
-
#
|
1983 |
-
|
1984 |
tickformat=".2f", # Format tick labels with 2 decimal places
|
1985 |
tickfont=dict(size=12) # Larger font for tick labels
|
1986 |
),
|
@@ -2040,10 +2074,9 @@ def create_combined_time_series_graph(df):
|
|
2040 |
)
|
2041 |
)
|
2042 |
|
2043 |
-
# Apply
|
2044 |
simple_fig.update_xaxes(
|
2045 |
-
autorange=
|
2046 |
-
range=[x_start_date, max_time], # Set fixed range from April 17
|
2047 |
tickformat="%b %d", # Simplified date format without time
|
2048 |
tickangle=-30,
|
2049 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
@@ -2076,7 +2109,7 @@ def save_to_csv(df):
|
|
2076 |
return None
|
2077 |
|
2078 |
# Define the CSV file path
|
2079 |
-
csv_file = "
|
2080 |
|
2081 |
# Save to CSV
|
2082 |
df.to_csv(csv_file, index=False)
|
@@ -2084,7 +2117,7 @@ def save_to_csv(df):
|
|
2084 |
|
2085 |
# Also generate a statistics CSV file
|
2086 |
stats_df = generate_statistics_from_data(df)
|
2087 |
-
stats_csv = "
|
2088 |
stats_df.to_csv(stats_csv, index=False)
|
2089 |
logger.info(f"Statistics saved to {stats_csv}")
|
2090 |
|
@@ -2197,43 +2230,6 @@ def create_active_agents_visualizations():
|
|
2197 |
)
|
2198 |
return fig
|
2199 |
|
2200 |
-
# Comment out the blockchain connection code
|
2201 |
-
"""
|
2202 |
-
# Load environment variables from .env file
|
2203 |
-
# RPC URLs
|
2204 |
-
OPTIMISM_RPC_URL = os.getenv('OPTIMISM_RPC_URL')
|
2205 |
-
MODE_RPC_URL = os.getenv('MODE_RPC_URL')
|
2206 |
-
|
2207 |
-
# Initialize Web3 instances
|
2208 |
-
web3_instances = {
|
2209 |
-
'optimism': Web3(Web3.HTTPProvider(OPTIMISM_RPC_URL)),
|
2210 |
-
'mode': Web3(Web3.HTTPProvider(MODE_RPC_URL))
|
2211 |
-
}
|
2212 |
-
|
2213 |
-
# Contract addresses for service registries
|
2214 |
-
contract_addresses = {
|
2215 |
-
'optimism': '0x3d77596beb0f130a4415df3D2D8232B3d3D31e44',
|
2216 |
-
'mode': '0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE'
|
2217 |
-
}
|
2218 |
-
|
2219 |
-
# Load the ABI from the provided JSON file
|
2220 |
-
with open('./contracts/service_registry_abi.json', 'r') as abi_file:
|
2221 |
-
contract_abi = json.load(abi_file)
|
2222 |
-
|
2223 |
-
# Create the contract instances
|
2224 |
-
service_registries = {
|
2225 |
-
chain_name: web3.eth.contract(address=contract_addresses[chain_name], abi=contract_abi)
|
2226 |
-
for chain_name, web3 in web3_instances.items()
|
2227 |
-
}
|
2228 |
-
|
2229 |
-
# Check if connections are successful
|
2230 |
-
for chain_name, web3_instance in web3_instances.items():
|
2231 |
-
if not web3_instance.is_connected():
|
2232 |
-
raise Exception(f"Failed to connect to the {chain_name.capitalize()} network.")
|
2233 |
-
else:
|
2234 |
-
print(f"Successfully connected to the {chain_name.capitalize()} network.")
|
2235 |
-
"""
|
2236 |
-
|
2237 |
# Dummy blockchain functions to replace the commented ones
|
2238 |
def get_transfers(integrator: str, wallet: str) -> str:
|
2239 |
"""Dummy function that returns an empty result"""
|
@@ -2253,227 +2249,6 @@ def process_transactions_and_agents(data):
|
|
2253 |
|
2254 |
# Function to create visualizations based on the metrics
|
2255 |
def create_visualizations():
|
2256 |
-
"""
|
2257 |
-
# Commenting out the original visualization code temporarily for debugging
|
2258 |
-
transactions_data = fetch_and_aggregate_transactions()
|
2259 |
-
df_transactions, df_agents, df_agents_weekly = process_transactions_and_agents(transactions_data)
|
2260 |
-
|
2261 |
-
# Fetch daily value locked data
|
2262 |
-
df_tvl = pd.read_csv('daily_value_locked.csv')
|
2263 |
-
|
2264 |
-
# Calculate total value locked per chain per day
|
2265 |
-
df_tvl["total_value_locked_usd"] = df_tvl["amount0_usd"] + df_tvl["amount1_usd"]
|
2266 |
-
df_tvl_daily = df_tvl.groupby(["date", "chain_name"])["total_value_locked_usd"].sum().reset_index()
|
2267 |
-
df_tvl_daily['date'] = pd.to_datetime(df_tvl_daily['date'])
|
2268 |
-
|
2269 |
-
# Filter out dates with zero total value locked
|
2270 |
-
df_tvl_daily = df_tvl_daily[df_tvl_daily["total_value_locked_usd"] > 0]
|
2271 |
-
|
2272 |
-
chain_name_map = {
|
2273 |
-
"mode": "Mode",
|
2274 |
-
"base": "Base",
|
2275 |
-
"ethereum": "Ethereum",
|
2276 |
-
"optimism": "Optimism"
|
2277 |
-
}
|
2278 |
-
df_tvl_daily["chain_name"] = df_tvl_daily["chain_name"].map(chain_name_map)
|
2279 |
-
|
2280 |
-
# Plot total value locked
|
2281 |
-
fig_tvl = px.bar(
|
2282 |
-
df_tvl_daily,
|
2283 |
-
x="date",
|
2284 |
-
y="total_value_locked_usd",
|
2285 |
-
color="chain_name",
|
2286 |
-
opacity=0.7,
|
2287 |
-
title="Total Volume Invested in Pools in Different Chains Daily",
|
2288 |
-
labels={"date": "Date","chain_name": "Transaction Chain", "total_value_locked_usd": "Total Volume Invested (USD)"},
|
2289 |
-
barmode='stack',
|
2290 |
-
color_discrete_map={
|
2291 |
-
"Mode": "orange",
|
2292 |
-
"Base": "purple",
|
2293 |
-
"Ethereum": "darkgreen",
|
2294 |
-
"Optimism": "blue"
|
2295 |
-
}
|
2296 |
-
)
|
2297 |
-
fig_tvl.update_layout(
|
2298 |
-
xaxis_title="Date",
|
2299 |
-
|
2300 |
-
yaxis=dict(tickmode='linear', tick0=0, dtick=4),
|
2301 |
-
xaxis=dict(
|
2302 |
-
tickmode='array',
|
2303 |
-
tickvals=df_tvl_daily['date'],
|
2304 |
-
ticktext=df_tvl_daily['date'].dt.strftime('%b %d'),
|
2305 |
-
tickangle=-45,
|
2306 |
-
),
|
2307 |
-
bargap=0.6, # Increase gap between bar groups (0-1)
|
2308 |
-
bargroupgap=0.1, # Decrease gap between bars in a group (0-1)
|
2309 |
-
height=600,
|
2310 |
-
width=1200, # Specify width to prevent bars from being too wide
|
2311 |
-
showlegend=True,
|
2312 |
-
template='plotly_white'
|
2313 |
-
)
|
2314 |
-
fig_tvl.update_xaxes(tickformat="%b %d")
|
2315 |
-
|
2316 |
-
chain_name_map = {
|
2317 |
-
10: "Optimism",
|
2318 |
-
8453: "Base",
|
2319 |
-
1: "Ethereum",
|
2320 |
-
34443: "Mode"
|
2321 |
-
}
|
2322 |
-
|
2323 |
-
df_transactions["sending_chain"] = df_transactions["sending_chain"].map(chain_name_map)
|
2324 |
-
df_transactions["receiving_chain"] = df_transactions["receiving_chain"].map(chain_name_map)
|
2325 |
-
|
2326 |
-
df_transactions["sending_chain"] = df_transactions["sending_chain"].astype(str)
|
2327 |
-
df_transactions["receiving_chain"] = df_transactions["receiving_chain"].astype(str)
|
2328 |
-
df_transactions['date'] = pd.to_datetime(df_transactions['date'])
|
2329 |
-
df_transactions["is_swap"] = df_transactions.apply(lambda x: x["sending_chain"] == x["receiving_chain"], axis=1)
|
2330 |
-
|
2331 |
-
swaps_per_chain = df_transactions[df_transactions["is_swap"]].groupby(["date", "sending_chain"]).size().reset_index(name="swap_count")
|
2332 |
-
fig_swaps_chain = px.bar(
|
2333 |
-
swaps_per_chain,
|
2334 |
-
x="date",
|
2335 |
-
y="swap_count",
|
2336 |
-
color="sending_chain",
|
2337 |
-
title="Chain Daily Activity: Swaps",
|
2338 |
-
labels={"sending_chain": "Transaction Chain", "swap_count": "Daily Swap Nr"},
|
2339 |
-
barmode="stack",
|
2340 |
-
opacity=0.7,
|
2341 |
-
color_discrete_map={
|
2342 |
-
"Optimism": "blue",
|
2343 |
-
"Ethereum": "darkgreen",
|
2344 |
-
"Base": "purple",
|
2345 |
-
"Mode": "orange"
|
2346 |
-
}
|
2347 |
-
)
|
2348 |
-
fig_swaps_chain.update_layout(
|
2349 |
-
xaxis_title="Date",
|
2350 |
-
yaxis_title="Daily Swap Count",
|
2351 |
-
yaxis=dict(tickmode='linear', tick0=0, dtick=1),
|
2352 |
-
xaxis=dict(
|
2353 |
-
tickmode='array',
|
2354 |
-
tickvals=[d for d in swaps_per_chain['date']],
|
2355 |
-
ticktext=[d.strftime('%m-%d') for d in swaps_per_chain['date']],
|
2356 |
-
tickangle=-45,
|
2357 |
-
),
|
2358 |
-
bargap=0.6,
|
2359 |
-
bargroupgap=0.1,
|
2360 |
-
height=600,
|
2361 |
-
width=1200,
|
2362 |
-
margin=dict(l=50, r=50, t=50, b=50),
|
2363 |
-
showlegend=True,
|
2364 |
-
legend=dict(
|
2365 |
-
yanchor="top",
|
2366 |
-
y=0.99,
|
2367 |
-
xanchor="right",
|
2368 |
-
x=0.99
|
2369 |
-
),
|
2370 |
-
template='plotly_white'
|
2371 |
-
)
|
2372 |
-
fig_swaps_chain.update_xaxes(tickformat="%m-%d")
|
2373 |
-
|
2374 |
-
df_transactions["is_bridge"] = df_transactions.apply(lambda x: x["sending_chain"] != x["receiving_chain"], axis=1)
|
2375 |
-
|
2376 |
-
bridges_per_chain = df_transactions[df_transactions["is_bridge"]].groupby(["date", "sending_chain"]).size().reset_index(name="bridge_count")
|
2377 |
-
fig_bridges_chain = px.bar(
|
2378 |
-
bridges_per_chain,
|
2379 |
-
x="date",
|
2380 |
-
y="bridge_count",
|
2381 |
-
color="sending_chain",
|
2382 |
-
title="Chain Daily Activity: Bridges",
|
2383 |
-
labels={"sending_chain": "Transaction Chain", "bridge_count": "Daily Bridge Nr"},
|
2384 |
-
barmode="stack",
|
2385 |
-
opacity=0.7,
|
2386 |
-
color_discrete_map={
|
2387 |
-
"Optimism": "blue",
|
2388 |
-
"Ethereum": "darkgreen",
|
2389 |
-
"Base": "purple",
|
2390 |
-
"Mode": "orange"
|
2391 |
-
}
|
2392 |
-
)
|
2393 |
-
fig_bridges_chain.update_layout(
|
2394 |
-
xaxis_title="Date",
|
2395 |
-
yaxis_title="Daily Bridge Count",
|
2396 |
-
yaxis=dict(tickmode='linear', tick0=0, dtick=1),
|
2397 |
-
xaxis=dict(
|
2398 |
-
tickmode='array',
|
2399 |
-
tickvals=[d for d in bridges_per_chain['date']],
|
2400 |
-
ticktext=[d.strftime('%m-%d') for d in bridges_per_chain['date']],
|
2401 |
-
tickangle=-45,
|
2402 |
-
),
|
2403 |
-
bargap=0.6,
|
2404 |
-
bargroupgap=0.1,
|
2405 |
-
height=600,
|
2406 |
-
width=1200,
|
2407 |
-
margin=dict(l=50, r=50, t=50, b=50),
|
2408 |
-
showlegend=True,
|
2409 |
-
legend=dict(
|
2410 |
-
yanchor="top",
|
2411 |
-
y=0.99,
|
2412 |
-
xanchor="right",
|
2413 |
-
x=0.99
|
2414 |
-
),
|
2415 |
-
template='plotly_white'
|
2416 |
-
)
|
2417 |
-
fig_bridges_chain.update_xaxes(tickformat="%m-%d")
|
2418 |
-
df_agents['date'] = pd.to_datetime(df_agents['date'])
|
2419 |
-
|
2420 |
-
daily_agents_df = df_agents.groupby('date').agg({'agent_count': 'sum'}).reset_index()
|
2421 |
-
daily_agents_df.rename(columns={'agent_count': 'daily_agent_count'}, inplace=True)
|
2422 |
-
# Sort by date to ensure proper running total calculation
|
2423 |
-
daily_agents_df = daily_agents_df.sort_values('date')
|
2424 |
-
|
2425 |
-
# Create week column
|
2426 |
-
daily_agents_df['week'] = daily_agents_df['date'].dt.to_period('W').apply(lambda r: r.start_time)
|
2427 |
-
|
2428 |
-
# Calculate running total within each week
|
2429 |
-
daily_agents_df['running_weekly_total'] = daily_agents_df.groupby('week')['daily_agent_count'].cumsum()
|
2430 |
-
|
2431 |
-
# Create final merged dataframe
|
2432 |
-
weekly_merged_df = daily_agents_df.copy()
|
2433 |
-
adjustment_date = pd.to_datetime('2024-11-15')
|
2434 |
-
weekly_merged_df.loc[weekly_merged_df['date'] == adjustment_date, 'daily_agent_count'] -= 1
|
2435 |
-
weekly_merged_df.loc[weekly_merged_df['date'] == adjustment_date, 'running_weekly_total'] -= 1
|
2436 |
-
fig_agents_registered = go.Figure(data=[
|
2437 |
-
go.Bar(
|
2438 |
-
name='Daily nr of Registered Agents',
|
2439 |
-
x=weekly_merged_df['date'].dt.strftime("%b %d"),
|
2440 |
-
y=weekly_merged_df['daily_agent_count'],
|
2441 |
-
opacity=0.7,
|
2442 |
-
marker_color='blue'
|
2443 |
-
),
|
2444 |
-
go.Bar(
|
2445 |
-
name='Weekly Nr of Registered Agents',
|
2446 |
-
x=weekly_merged_df['date'].dt.strftime("%b %d"),
|
2447 |
-
y=weekly_merged_df['running_weekly_total'],
|
2448 |
-
opacity=0.7,
|
2449 |
-
marker_color='purple'
|
2450 |
-
)
|
2451 |
-
])
|
2452 |
-
|
2453 |
-
fig_agents_registered.update_layout(
|
2454 |
-
xaxis_title='Date',
|
2455 |
-
yaxis_title='Number of Agents',
|
2456 |
-
title="Nr of Agents Registered",
|
2457 |
-
barmode='group',
|
2458 |
-
yaxis=dict(tickmode='linear', tick0=0, dtick=1),
|
2459 |
-
xaxis=dict(
|
2460 |
-
categoryorder='array',
|
2461 |
-
categoryarray=weekly_merged_df['date'].dt.strftime("%b %d"),
|
2462 |
-
tickangle=-45
|
2463 |
-
),
|
2464 |
-
bargap=0.3,
|
2465 |
-
height=600,
|
2466 |
-
width=1200,
|
2467 |
-
showlegend=True,
|
2468 |
-
legend=dict(
|
2469 |
-
yanchor="top",
|
2470 |
-
xanchor="right",
|
2471 |
-
),
|
2472 |
-
template='plotly_white',
|
2473 |
-
)
|
2474 |
-
|
2475 |
-
return fig_swaps_chain, fig_bridges_chain, fig_agents_registered,fig_tvl
|
2476 |
-
"""
|
2477 |
# Placeholder figures for testing
|
2478 |
fig_swaps_chain = go.Figure()
|
2479 |
fig_swaps_chain.add_annotation(
|
@@ -2508,7 +2283,7 @@ def create_visualizations():
|
|
2508 |
# Modify dashboard function to make the plot container responsive
|
2509 |
def dashboard():
|
2510 |
with gr.Blocks() as demo:
|
2511 |
-
gr.Markdown("# Average
|
2512 |
|
2513 |
# Create tabs for APR and ROI metrics
|
2514 |
with gr.Tabs():
|
|
|
215 |
logger.info("==== Starting APR data fetch ====")
|
216 |
|
217 |
try:
|
218 |
+
# Step 1: Find the Optimus agent type
|
219 |
+
logger.info("Finding Optimus agent type")
|
220 |
+
optimus_type = get_agent_type_by_name("Optimus")
|
221 |
+
if not optimus_type:
|
222 |
+
logger.error("Optimus agent type not found, using placeholder data")
|
223 |
global_df = pd.DataFrame([])
|
224 |
return global_df
|
225 |
|
226 |
+
type_id = optimus_type["type_id"]
|
227 |
+
logger.info(f"Found Optimus agent type with ID: {type_id}")
|
228 |
|
229 |
# Step 2: Find the APR attribute definition
|
230 |
logger.info("Finding APR attribute definition")
|
|
|
237 |
attr_def_id = apr_attr_def["attr_def_id"]
|
238 |
logger.info(f"Found APR attribute definition with ID: {attr_def_id}")
|
239 |
|
240 |
+
# Step 3: Get all agents of type Optimus
|
241 |
+
logger.info(f"Getting all agents of type Optimus (type_id: {type_id})")
|
242 |
+
optimus_agents = get_agents_by_type(type_id)
|
243 |
+
if not optimus_agents:
|
244 |
+
logger.error("No agents of type 'Optimus' found")
|
245 |
global_df = pd.DataFrame([])
|
246 |
return global_df
|
247 |
|
248 |
+
logger.info(f"Found {len(optimus_agents)} Optimus agents")
|
249 |
+
logger.debug(f"Optimus agents: {[{'agent_id': a['agent_id'], 'agent_name': a['agent_name']} for a in optimus_agents]}")
|
250 |
|
251 |
+
# Step 4: Fetch all APR values for Optimus agents
|
252 |
+
logger.info(f"Fetching APR values for all Optimus agents (attr_def_id: {attr_def_id})")
|
253 |
+
apr_attributes = get_attribute_values_by_type_and_attr(optimus_agents, attr_def_id)
|
254 |
if not apr_attributes:
|
255 |
+
logger.error("No APR values found for 'Optimus' agents")
|
256 |
global_df = pd.DataFrame([])
|
257 |
return global_df
|
258 |
|
|
|
267 |
data = extract_apr_value(attr)
|
268 |
if data["timestamp"] is not None:
|
269 |
# Get agent name
|
270 |
+
agent_name = get_agent_name(attr["agent_id"], optimus_agents)
|
271 |
# Add agent name to the data
|
272 |
data["agent_name"] = agent_name
|
273 |
# Add is_dummy flag (all real data)
|
|
|
670 |
)
|
671 |
|
672 |
# Save as static file for reference
|
673 |
+
fig.write_html("optimus_apr_combined_graph.html")
|
674 |
+
fig.write_image("optimus_apr_combined_graph.png")
|
675 |
|
676 |
csv_file = None
|
677 |
return fig, csv_file
|
|
|
715 |
)
|
716 |
|
717 |
# Save as static file for reference
|
718 |
+
fig.write_html("optimus_roi_graph.html")
|
719 |
+
fig.write_image("optimus_roi_graph.png")
|
720 |
|
721 |
csv_file = None
|
722 |
return fig, csv_file
|
|
|
744 |
)
|
745 |
return fig
|
746 |
|
747 |
+
# Define fixed start date (May 15, 2025)
|
748 |
+
fixed_start_date = datetime(2025, 5, 15)
|
749 |
logger.info(f"Using fixed start date for ROI runtime calculation: {fixed_start_date}")
|
750 |
|
751 |
# Calculate runtime for each agent from fixed start date
|
|
|
805 |
type="rect",
|
806 |
fillcolor="rgba(230, 243, 255, 0.3)",
|
807 |
line=dict(width=0),
|
808 |
+
y0=0, y1=df['roi'].max() * 1.1 if not df.empty else 10, # Dynamic positive value based on data
|
809 |
x0=min_time, x1=max_time,
|
810 |
layer="below"
|
811 |
)
|
|
|
815 |
type="rect",
|
816 |
fillcolor="rgba(255, 230, 230, 0.3)",
|
817 |
line=dict(width=0),
|
818 |
+
y0=df['roi'].min() * 1.1 if not df.empty else -10, y1=0, # Dynamic negative value based on data
|
819 |
x0=min_time, x1=max_time,
|
820 |
layer="below"
|
821 |
)
|
|
|
986 |
# Update layout with average runtime information in the title
|
987 |
fig.update_layout(
|
988 |
title=dict(
|
989 |
+
text=f"Optimus Agents ROI (over avg. {avg_runtime:.1f} days runtime)",
|
990 |
font=dict(
|
991 |
family="Arial, sans-serif",
|
992 |
size=22,
|
|
|
1042 |
)
|
1043 |
)
|
1044 |
|
1045 |
+
# Update y-axis with fixed range for ROI (-10 to 10)
|
1046 |
fig.update_yaxes(
|
1047 |
showgrid=True,
|
1048 |
gridwidth=1,
|
1049 |
gridcolor='rgba(0,0,0,0.1)',
|
1050 |
# Use fixed range instead of autoscaling
|
1051 |
+
range=[-10, 10], # Set fixed range from -10 to 10
|
|
|
1052 |
tickformat=".2f", # Format tick labels with 2 decimal places
|
1053 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
1054 |
title=None # Remove the built-in axis title since we're using annotations
|
1055 |
)
|
1056 |
|
1057 |
+
# Update x-axis with better formatting and autoscaling
|
1058 |
fig.update_xaxes(
|
1059 |
showgrid=True,
|
1060 |
gridwidth=1,
|
1061 |
gridcolor='rgba(0,0,0,0.1)',
|
1062 |
+
# Use autoscaling instead of fixed range
|
1063 |
+
autorange=True, # Enable autoscaling
|
|
|
1064 |
tickformat="%b %d", # Simplified date format without time
|
1065 |
tickangle=-30, # Angle the labels for better readability
|
1066 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
|
|
1069 |
|
1070 |
try:
|
1071 |
# Save the figure
|
1072 |
+
graph_file = "optimus_roi_graph.html"
|
1073 |
fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
1074 |
|
1075 |
# Also save as image for compatibility
|
1076 |
+
img_file = "optimus_roi_graph.png"
|
1077 |
try:
|
1078 |
fig.write_image(img_file)
|
1079 |
logger.info(f"ROI graph saved to {graph_file} and {img_file}")
|
|
|
1099 |
x0=min_time, x1=max_time
|
1100 |
)
|
1101 |
|
1102 |
+
# Add background shapes with dynamic values
|
1103 |
+
simple_fig.add_shape(
|
1104 |
+
type="rect",
|
1105 |
+
fillcolor="rgba(230, 243, 255, 0.3)",
|
1106 |
+
line=dict(width=0),
|
1107 |
+
y0=0, y1=df['roi'].max() * 1.1 if not df.empty else 10, # Dynamic positive value based on data
|
1108 |
+
x0=min_time, x1=max_time,
|
1109 |
+
layer="below"
|
1110 |
+
)
|
1111 |
+
|
1112 |
+
simple_fig.add_shape(
|
1113 |
+
type="rect",
|
1114 |
+
fillcolor="rgba(255, 230, 230, 0.3)",
|
1115 |
+
line=dict(width=0),
|
1116 |
+
y0=df['roi'].min() * 1.1 if not df.empty else -10, y1=0, # Dynamic negative value based on data
|
1117 |
+
x0=min_time, x1=max_time,
|
1118 |
+
layer="below"
|
1119 |
+
)
|
1120 |
+
|
1121 |
+
# Add background shapes with dynamic values
|
1122 |
+
simple_fig.add_shape(
|
1123 |
+
type="rect",
|
1124 |
+
fillcolor="rgba(230, 243, 255, 0.3)",
|
1125 |
+
line=dict(width=0),
|
1126 |
+
y0=0, y1=df['roi'].max() * 1.1 if not df.empty else 10, # Dynamic positive value based on data
|
1127 |
+
x0=min_time, x1=max_time,
|
1128 |
+
layer="below"
|
1129 |
+
)
|
1130 |
+
|
1131 |
+
simple_fig.add_shape(
|
1132 |
+
type="rect",
|
1133 |
+
fillcolor="rgba(255, 230, 230, 0.3)",
|
1134 |
+
line=dict(width=0),
|
1135 |
+
y0=df['roi'].min() * 1.1 if not df.empty else -10, y1=0, # Dynamic negative value based on data
|
1136 |
+
x0=min_time, x1=max_time,
|
1137 |
+
layer="below"
|
1138 |
+
)
|
1139 |
+
|
1140 |
# Simply plot the average ROI data with moving average
|
1141 |
if not avg_roi_data.empty:
|
1142 |
# Add moving average as a line
|
|
|
1153 |
# Simplified layout with adjusted y-axis range
|
1154 |
simple_fig.update_layout(
|
1155 |
title=dict(
|
1156 |
+
text="Optimus Agents ROI",
|
1157 |
font=dict(
|
1158 |
family="Arial, sans-serif",
|
1159 |
size=22,
|
|
|
1169 |
margin=dict(r=30, l=120, t=40, b=50)
|
1170 |
)
|
1171 |
|
1172 |
+
# Update y-axis with fixed range for ROI (-10 to 10)
|
1173 |
simple_fig.update_yaxes(
|
1174 |
showgrid=True,
|
1175 |
gridwidth=1,
|
1176 |
gridcolor='rgba(0,0,0,0.1)',
|
1177 |
+
range=[-10, 10], # Set fixed range from -10 to 10
|
|
|
1178 |
tickformat=".2f",
|
1179 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"),
|
1180 |
title=None # Remove the built-in axis title since we're using annotations
|
1181 |
)
|
1182 |
|
1183 |
+
# Update x-axis with better formatting and autoscaling
|
1184 |
simple_fig.update_xaxes(
|
1185 |
showgrid=True,
|
1186 |
gridwidth=1,
|
1187 |
gridcolor='rgba(0,0,0,0.1)',
|
1188 |
+
autorange=True, # Enable autoscaling
|
|
|
1189 |
tickformat="%b %d",
|
1190 |
tickangle=-30,
|
1191 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold")
|
1192 |
)
|
1193 |
|
1194 |
# Save the figure
|
1195 |
+
graph_file = "optimus_roi_graph.html"
|
1196 |
simple_fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
1197 |
|
1198 |
# Return the simple figure
|
|
|
1205 |
return None
|
1206 |
|
1207 |
# Define the CSV file path
|
1208 |
+
csv_file = "optimus_roi_values.csv"
|
1209 |
|
1210 |
# Save to CSV
|
1211 |
df.to_csv(csv_file, index=False)
|
|
|
1247 |
row=row, col=1
|
1248 |
)
|
1249 |
|
1250 |
+
# Add background colors with dynamic values
|
1251 |
fig.add_shape(
|
1252 |
type="rect", fillcolor="rgba(230, 243, 255, 0.3)", line=dict(width=0),
|
1253 |
+
y0=0, y1=agent_data['apr'].max() * 1.1 if not agent_data.empty else 10,
|
1254 |
+
x0=agent_data['timestamp'].min(), x1=agent_data['timestamp'].max(),
|
1255 |
row=row, col=1, layer="below"
|
1256 |
)
|
1257 |
fig.add_shape(
|
1258 |
type="rect", fillcolor="rgba(255, 230, 230, 0.3)", line=dict(width=0),
|
1259 |
+
y0=agent_data['apr'].min() * 1.1 if not agent_data.empty else -10, y1=0,
|
1260 |
+
x0=agent_data['timestamp'].min(), x1=agent_data['timestamp'].max(),
|
1261 |
row=row, col=1, layer="below"
|
1262 |
)
|
1263 |
|
|
|
1337 |
)
|
1338 |
|
1339 |
# Save the figure (still useful for reference)
|
1340 |
+
graph_file = "optimus_apr_per_agent_graph.html"
|
1341 |
fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
1342 |
|
1343 |
# Also save as image for compatibility
|
1344 |
+
img_file = "optimus_apr_per_agent_graph.png"
|
1345 |
fig.write_image(img_file)
|
1346 |
|
1347 |
logger.info(f"Per-agent graph saved to {graph_file} and {img_file}")
|
|
|
1379 |
min_time = df['timestamp'].min()
|
1380 |
max_time = df['timestamp'].max()
|
1381 |
|
1382 |
+
# Use the actual start date from the data instead of a fixed date
|
1383 |
+
x_start_date = min_time
|
1384 |
|
1385 |
# CRITICAL: Log the exact dataframe we're using for plotting to help debug
|
1386 |
logger.info(f"Graph data - shape: {df.shape}, columns: {df.columns}")
|
|
|
1438 |
type="rect",
|
1439 |
fillcolor="rgba(230, 243, 255, 0.3)",
|
1440 |
line=dict(width=0),
|
1441 |
+
y0=0, y1=apr_data['apr'].max() * 1.1 if not apr_data.empty else 10, # Dynamic positive value based on data
|
1442 |
x0=min_time, x1=max_time,
|
1443 |
layer="below"
|
1444 |
)
|
|
|
1448 |
type="rect",
|
1449 |
fillcolor="rgba(255, 230, 230, 0.3)",
|
1450 |
line=dict(width=0),
|
1451 |
+
y0=apr_data['apr'].min() * 1.1 if not apr_data.empty else -10, y1=0, # Dynamic negative value based on data
|
1452 |
x0=min_time, x1=max_time,
|
1453 |
layer="below"
|
1454 |
)
|
|
|
1755 |
# Make chart responsive instead of fixed width
|
1756 |
fig.update_layout(
|
1757 |
title=dict(
|
1758 |
+
text="Optimus Agents",
|
1759 |
font=dict(
|
1760 |
family="Arial, sans-serif",
|
1761 |
size=22,
|
|
|
1836 |
)
|
1837 |
)
|
1838 |
|
1839 |
+
# Update y-axis with fixed range (-10 to 10)
|
1840 |
fig.update_yaxes(
|
1841 |
showgrid=True,
|
1842 |
gridwidth=1,
|
1843 |
gridcolor='rgba(0,0,0,0.1)',
|
1844 |
# Use fixed range instead of autoscaling
|
1845 |
+
range=[-10, 10], # Set fixed range from -10 to 10
|
|
|
1846 |
tickformat=".2f", # Format tick labels with 2 decimal places
|
1847 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
1848 |
title=None # Remove the built-in axis title since we're using annotations
|
1849 |
)
|
1850 |
|
1851 |
+
# Update x-axis with better formatting and autoscaling
|
1852 |
fig.update_xaxes(
|
1853 |
showgrid=True,
|
1854 |
gridwidth=1,
|
1855 |
gridcolor='rgba(0,0,0,0.1)',
|
1856 |
+
# Use autoscaling instead of fixed range
|
1857 |
+
autorange=True, # Enable autoscaling
|
|
|
1858 |
tickformat="%b %d", # Simplified date format without time
|
1859 |
tickangle=-30, # Angle the labels for better readability
|
1860 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
|
|
1868 |
write_debug_info(df, fig)
|
1869 |
|
1870 |
# Save the figure (still useful for reference)
|
1871 |
+
graph_file = "optimus_apr_combined_graph.html"
|
1872 |
fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
1873 |
|
1874 |
# Also save as image for compatibility
|
1875 |
+
img_file = "optimus_apr_combined_graph.png"
|
1876 |
try:
|
1877 |
fig.write_image(img_file)
|
1878 |
logger.info(f"Combined graph saved to {graph_file} and {img_file}")
|
|
|
1999 |
)
|
2000 |
)
|
2001 |
|
2002 |
+
# Simplified layout with fixed y-axis range (-10 to 10) and increased size
|
2003 |
simple_fig.update_layout(
|
2004 |
title=dict(
|
2005 |
+
text="Optimus Agents",
|
2006 |
font=dict(
|
2007 |
family="Arial, sans-serif",
|
2008 |
size=22,
|
|
|
2013 |
xaxis_title=None, # Remove x-axis title to use annotation instead
|
2014 |
yaxis_title=None, # Remove the y-axis title as we'll use annotations instead
|
2015 |
yaxis=dict(
|
2016 |
+
# Fixed range from -10 to 10
|
2017 |
+
range=[-10, 10], # Set fixed range from -10 to 10
|
2018 |
tickformat=".2f", # Format tick labels with 2 decimal places
|
2019 |
tickfont=dict(size=12) # Larger font for tick labels
|
2020 |
),
|
|
|
2074 |
)
|
2075 |
)
|
2076 |
|
2077 |
+
# Apply autoscaling to the x-axis for the fallback graph
|
2078 |
simple_fig.update_xaxes(
|
2079 |
+
autorange=True, # Enable autoscaling
|
|
|
2080 |
tickformat="%b %d", # Simplified date format without time
|
2081 |
tickangle=-30,
|
2082 |
tickfont=dict(size=14, family="Arial, sans-serif", color="black", weight="bold"), # Adjusted font size
|
|
|
2109 |
return None
|
2110 |
|
2111 |
# Define the CSV file path
|
2112 |
+
csv_file = "optimus_apr_values.csv"
|
2113 |
|
2114 |
# Save to CSV
|
2115 |
df.to_csv(csv_file, index=False)
|
|
|
2117 |
|
2118 |
# Also generate a statistics CSV file
|
2119 |
stats_df = generate_statistics_from_data(df)
|
2120 |
+
stats_csv = "optimus_apr_statistics.csv"
|
2121 |
stats_df.to_csv(stats_csv, index=False)
|
2122 |
logger.info(f"Statistics saved to {stats_csv}")
|
2123 |
|
|
|
2230 |
)
|
2231 |
return fig
|
2232 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2233 |
# Dummy blockchain functions to replace the commented ones
|
2234 |
def get_transfers(integrator: str, wallet: str) -> str:
|
2235 |
"""Dummy function that returns an empty result"""
|
|
|
2249 |
|
2250 |
# Function to create visualizations based on the metrics
|
2251 |
def create_visualizations():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2252 |
# Placeholder figures for testing
|
2253 |
fig_swaps_chain = go.Figure()
|
2254 |
fig_swaps_chain.add_annotation(
|
|
|
2283 |
# Modify dashboard function to make the plot container responsive
|
2284 |
def dashboard():
|
2285 |
with gr.Blocks() as demo:
|
2286 |
+
gr.Markdown("# Average Optimus Agent Performance")
|
2287 |
|
2288 |
# Create tabs for APR and ROI metrics
|
2289 |
with gr.Tabs():
|
app_trans_new.py
DELETED
@@ -1,570 +0,0 @@
|
|
1 |
-
import requests
|
2 |
-
import pandas as pd
|
3 |
-
import gradio as gr
|
4 |
-
import plotly.express as px
|
5 |
-
from datetime import datetime, timedelta
|
6 |
-
import plotly.graph_objects as go
|
7 |
-
import numpy as np
|
8 |
-
import json
|
9 |
-
from web3 import Web3
|
10 |
-
import time
|
11 |
-
import os
|
12 |
-
from itertools import product
|
13 |
-
# RPC URLs
|
14 |
-
from dotenv import load_dotenv
|
15 |
-
load_dotenv()
|
16 |
-
|
17 |
-
OPTIMISM_RPC_URL = os.getenv('OPTIMISM_RPC_URL')
|
18 |
-
BASE_RPC_URL = os.getenv('BASE_RPC_URL')
|
19 |
-
ETH_RPC_URL = os.getenv('ETH_RPC_URL')
|
20 |
-
MODE_RPC_URL = os.getenv('MODE_RPC_URL')
|
21 |
-
|
22 |
-
print(f"Optimism RPC URL: {OPTIMISM_RPC_URL}")
|
23 |
-
|
24 |
-
# Initialize Web3 instances
|
25 |
-
print("Initializing Web3 instances...")
|
26 |
-
web3_optimism = Web3(Web3.HTTPProvider(OPTIMISM_RPC_URL))
|
27 |
-
web3_base = Web3(Web3.HTTPProvider(BASE_RPC_URL))
|
28 |
-
web3_eth = Web3(Web3.HTTPProvider(ETH_RPC_URL))
|
29 |
-
web3_mode = Web3(Web3.HTTPProvider(MODE_RPC_URL)) # New chain
|
30 |
-
|
31 |
-
# Contract addresses for service registries
|
32 |
-
contract_address_optimism = '0x3d77596beb0f130a4415df3D2D8232B3d3D31e44'
|
33 |
-
contract_address_base = '0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE'
|
34 |
-
contract_address_eth = '0x48b6af7B12C71f09e2fC8aF4855De4Ff54e775cA'
|
35 |
-
contract_address_mode = '0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE' # New chain
|
36 |
-
|
37 |
-
# Load the ABI from a local JSON file
|
38 |
-
with open('./contracts/service_registry_abi.json', 'r') as abi_file:
|
39 |
-
contract_abi = json.load(abi_file)
|
40 |
-
|
41 |
-
# Create the contract instances
|
42 |
-
service_registry_optimism = web3_optimism.eth.contract(address=contract_address_optimism, abi=contract_abi)
|
43 |
-
service_registry_base = web3_base.eth.contract(address=contract_address_base, abi=contract_abi)
|
44 |
-
service_registry_eth = web3_eth.eth.contract(address=contract_address_eth, abi=contract_abi)
|
45 |
-
service_registry_mode = web3_mode.eth.contract(address=contract_address_mode, abi=contract_abi) # New chain
|
46 |
-
print("Service registry contracts loaded.")
|
47 |
-
|
48 |
-
# Check if connection is successful
|
49 |
-
if not web3_optimism.is_connected():
|
50 |
-
raise Exception("Failed to connect to the Optimism network.")
|
51 |
-
if not web3_base.is_connected():
|
52 |
-
raise Exception("Failed to connect to the Base network.")
|
53 |
-
if not web3_eth.is_connected():
|
54 |
-
raise Exception("Failed to connect to the ETH network.")
|
55 |
-
if not web3_mode.is_connected():
|
56 |
-
raise Exception("Failed to connect to the Mode network.") # New chain
|
57 |
-
print("Successfully connected to Ethereum, Optimism, Base, and Mode networks.")
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
def fetch_service_safes(web3, registry_contract):
|
62 |
-
print("\nFetching service safes...")
|
63 |
-
total_services = registry_contract.functions.totalSupply().call()
|
64 |
-
print(f"Total services: {total_services}")
|
65 |
-
service_safes_dict = {}
|
66 |
-
zero_address = '0x0000000000000000000000000000000000000000'
|
67 |
-
|
68 |
-
for service_id in range(1, total_services + 1):
|
69 |
-
print(f"Processing service ID: {service_id}")
|
70 |
-
service = registry_contract.functions.getService(service_id).call()
|
71 |
-
agent_ids = service[-1] # Assuming the last element is the list of agent IDs
|
72 |
-
print(f"Agent IDs: {agent_ids}")
|
73 |
-
|
74 |
-
if 40 in agent_ids or 25 in agent_ids:
|
75 |
-
agent_instance_data = registry_contract.functions.getAgentInstances(service_id).call()
|
76 |
-
service_safe = service[1]
|
77 |
-
agent_addresses = agent_instance_data[1]
|
78 |
-
if agent_addresses:
|
79 |
-
agent_address = agent_addresses[0]
|
80 |
-
if service_safe != zero_address:
|
81 |
-
print(f"Found agent_address: {agent_address}")
|
82 |
-
print(f"Found service safe: {service_safe}")
|
83 |
-
service_safes_dict[agent_address] = service_safe
|
84 |
-
else:
|
85 |
-
print(f"Found zero address for service safe, skipping for agent: {agent_address}")
|
86 |
-
else:
|
87 |
-
print(f"No agent address found for service ID: {service_id}")
|
88 |
-
|
89 |
-
print(f"Total unique agent addresses found (excluding zero safe addresses): {len(service_safes_dict)}")
|
90 |
-
return service_safes_dict
|
91 |
-
|
92 |
-
# Fetch service safes for each network
|
93 |
-
service_safes_optimism = fetch_service_safes(web3_optimism, service_registry_optimism)
|
94 |
-
service_safes_base = fetch_service_safes(web3_base, service_registry_base)
|
95 |
-
service_safes_eth = fetch_service_safes(web3_eth, service_registry_eth)
|
96 |
-
service_safes_mode = fetch_service_safes(web3_mode, service_registry_mode)
|
97 |
-
# service_safes_eth = {safe for safe in service_safes_eth if safe.lower() != '0x0000000000000000000000000000000000000000'}
|
98 |
-
print(f"Service safes for Mode: {service_safes_mode}")
|
99 |
-
def get_block_range_for_date(chain_id, date_str, api_key, base_url):
|
100 |
-
"""Get the block range for a specific date."""
|
101 |
-
target_date = datetime.strptime(date_str, "%Y-%m-%d").date()
|
102 |
-
start_of_day = datetime.combine(target_date, datetime.min.time())
|
103 |
-
|
104 |
-
if target_date == datetime.now().date():
|
105 |
-
end_of_day = datetime.now() # Use the current time if the target date is today
|
106 |
-
else:
|
107 |
-
end_of_day = datetime.combine(target_date, datetime.max.time())
|
108 |
-
|
109 |
-
start_timestamp = int(start_of_day.timestamp())
|
110 |
-
end_timestamp = int(end_of_day.timestamp())
|
111 |
-
|
112 |
-
# Get start block
|
113 |
-
start_response = requests.get(
|
114 |
-
f"{base_url}?module=block&action=getblocknobytime×tamp={start_timestamp}&closest=before&apikey={api_key}"
|
115 |
-
)
|
116 |
-
if start_response.status_code == 200:
|
117 |
-
start_data = start_response.json()
|
118 |
-
start_block = start_data.get('result')
|
119 |
-
else:
|
120 |
-
print(f"Error fetching start block for {date_str} on chain {chain_id}")
|
121 |
-
return None, None
|
122 |
-
|
123 |
-
if start_block is None:
|
124 |
-
print(f"No start block found for chain {chain_id} on {date_str}")
|
125 |
-
return None, None
|
126 |
-
print(f"Start block for chain {chain_id} on {date_str}: {start_block}")
|
127 |
-
|
128 |
-
# Get end block
|
129 |
-
time.sleep(1)
|
130 |
-
end_response = requests.get(
|
131 |
-
f"{base_url}?module=block&action=getblocknobytime×tamp={end_timestamp}&closest=before&apikey={api_key}"
|
132 |
-
)
|
133 |
-
if end_response.status_code == 200:
|
134 |
-
end_data = end_response.json()
|
135 |
-
end_block = end_data.get('result')
|
136 |
-
else:
|
137 |
-
print(f"Error fetching end block for {date_str} on chain {chain_id}")
|
138 |
-
return None, None
|
139 |
-
|
140 |
-
if end_block is None:
|
141 |
-
print(f"No end block found for chain {chain_id} on {date_str}")
|
142 |
-
return None, None
|
143 |
-
print(f"End block for chain {chain_id} on {date_str}: {end_block}")
|
144 |
-
|
145 |
-
return start_block, end_block
|
146 |
-
|
147 |
-
def get_transactions_mode_all(address):
|
148 |
-
url = f'https://explorer.mode.network/api/v2/addresses/{address}/transactions'
|
149 |
-
headers = {
|
150 |
-
'accept': 'application/json'
|
151 |
-
}
|
152 |
-
|
153 |
-
response = requests.get(url, headers=headers)
|
154 |
-
return response.json()['items']
|
155 |
-
|
156 |
-
def get_transactions(api_keys, wallet_address, chain_name, start_block, end_block):
|
157 |
-
"""Retrieve transactions for the given wallet address, chain, and block range using the Etherscan or similar API."""
|
158 |
-
base_url = {
|
159 |
-
'optimism': "https://api-optimistic.etherscan.io/api",
|
160 |
-
'base': "https://api.basescan.org/api",
|
161 |
-
'ethereum': "https://api.etherscan.io/api",
|
162 |
-
'mode': "https://eth-sepolia.blockscout.com/api"
|
163 |
-
}.get(chain_name)
|
164 |
-
|
165 |
-
if not base_url:
|
166 |
-
print(f"Invalid chain name: {chain_name}")
|
167 |
-
return []
|
168 |
-
|
169 |
-
params = {
|
170 |
-
'module': 'account',
|
171 |
-
'action': 'txlist',
|
172 |
-
'address': wallet_address,
|
173 |
-
'startblock': start_block,
|
174 |
-
'endblock': end_block,
|
175 |
-
'sort': 'asc',
|
176 |
-
'apikey': api_keys.get(chain_name)
|
177 |
-
}
|
178 |
-
|
179 |
-
response = requests.get(base_url, params=params)
|
180 |
-
data = response.json()
|
181 |
-
|
182 |
-
time.sleep(1)
|
183 |
-
|
184 |
-
if data['status'] != '1':
|
185 |
-
print(f"Error: {data['message']}")
|
186 |
-
return []
|
187 |
-
|
188 |
-
valid_transactions = [tx for tx in data['result'] if tx['isError'] == '0']
|
189 |
-
|
190 |
-
return valid_transactions
|
191 |
-
|
192 |
-
def get_mode_transactions(transactions_all_base,date_str):
|
193 |
-
target_date = datetime.strptime(date_str, "%Y-%m-%d").date()
|
194 |
-
start_of_day = datetime.combine(target_date, datetime.min.time())
|
195 |
-
|
196 |
-
if target_date == datetime.now().date():
|
197 |
-
end_of_day = datetime.now() # Use the current time if the target date is today
|
198 |
-
else:
|
199 |
-
end_of_day = datetime.combine(target_date, datetime.max.time())
|
200 |
-
|
201 |
-
start_timestamp = start_of_day.isoformat()
|
202 |
-
end_timestamp = end_of_day.isoformat()
|
203 |
-
processed_list = []
|
204 |
-
for transaction in transactions_all_base:
|
205 |
-
# Filter transactions based on the timestamp
|
206 |
-
if start_timestamp <= transaction['timestamp'] <= end_timestamp:
|
207 |
-
transaction_timestamp = datetime.strptime(transaction['timestamp'], "%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S")
|
208 |
-
processed_transaction = {
|
209 |
-
'hash': transaction['hash'],
|
210 |
-
'timeStamp': transaction_timestamp,
|
211 |
-
'from': transaction['from']['hash'],
|
212 |
-
'to': transaction['to']['hash'],
|
213 |
-
'value': transaction['value']
|
214 |
-
}
|
215 |
-
processed_list.append(processed_transaction)
|
216 |
-
|
217 |
-
return processed_list
|
218 |
-
|
219 |
-
|
220 |
-
def date_range(start_date, end_date):
|
221 |
-
"""Generates a range of dates from start_date to end_date inclusive."""
|
222 |
-
start_dt = datetime.strptime(start_date, "%Y-%m-%d")
|
223 |
-
end_dt = datetime.strptime(end_date, "%Y-%m-%d")
|
224 |
-
delta = timedelta(days=1)
|
225 |
-
current_dt = start_dt
|
226 |
-
while current_dt <= end_dt:
|
227 |
-
yield current_dt.strftime("%Y-%m-%d")
|
228 |
-
current_dt += delta
|
229 |
-
|
230 |
-
def fetch_transactions():
|
231 |
-
api_keys = {
|
232 |
-
'optimism': 'XQ72JA5XZ51QC7TG1W295AAIF4KTV92K1K',
|
233 |
-
'base': '4BFQMVW1QUKEPVDA4VW711CF4462682CY8',
|
234 |
-
'ethereum': '3GRYJGX55W3QWCEKGREF4H53AFHCAIVVR7',
|
235 |
-
'mode': 'f651444d-2916-4f37-bfd8-e70cc8232eb7'
|
236 |
-
}
|
237 |
-
|
238 |
-
base_urls = {
|
239 |
-
10: "https://api-optimistic.etherscan.io/api",
|
240 |
-
8453: "https://api.basescan.org/api",
|
241 |
-
1: "https://api.etherscan.io/api",
|
242 |
-
3443: "https://eth-sepolia.blockscout.com/api"
|
243 |
-
}
|
244 |
-
|
245 |
-
current_date = datetime.today().strftime("%Y-%m-%d")
|
246 |
-
csv_filename = 'daily_transactions_new.csv'
|
247 |
-
|
248 |
-
if os.path.exists(csv_filename):
|
249 |
-
df_existing = pd.read_csv(csv_filename)
|
250 |
-
if 'date' in df_existing:
|
251 |
-
last_date_in_csv = df_existing['date'].max()
|
252 |
-
else:
|
253 |
-
df_existing['date'] = pd.to_datetime(df_existing['timestamp']).dt.date
|
254 |
-
last_date_in_csv = df_existing['date'].max()
|
255 |
-
else:
|
256 |
-
df_existing = pd.DataFrame()
|
257 |
-
last_date_in_csv = '2024-09-19'
|
258 |
-
|
259 |
-
start_date = (datetime.strptime(last_date_in_csv, "%Y-%m-%d") + timedelta(days=1)).strftime("%Y-%m-%d")
|
260 |
-
|
261 |
-
chains = {
|
262 |
-
10: ('optimism', service_safes_optimism),
|
263 |
-
8453: ('base', service_safes_base),
|
264 |
-
1: ('ethereum', service_safes_eth),
|
265 |
-
3443: ('mode', service_safes_mode)
|
266 |
-
}
|
267 |
-
|
268 |
-
all_transactions = df_existing.to_dict('records') if not df_existing.empty else []
|
269 |
-
|
270 |
-
for chain_id, (chain_name, service_safes) in chains.items():
|
271 |
-
base_url = base_urls[chain_id]
|
272 |
-
api_key = api_keys[chain_name]
|
273 |
-
|
274 |
-
for agent_address, safe_address in service_safes.items():
|
275 |
-
print(f"\nProcessing {chain_name.capitalize()} for agent address {agent_address} (safe address {safe_address})...")
|
276 |
-
if chain_name == 'mode':
|
277 |
-
transactions_all_base = get_transactions_mode_all(safe_address)
|
278 |
-
|
279 |
-
for single_date in date_range(start_date, current_date):
|
280 |
-
if chain_name == 'mode':
|
281 |
-
print(f"Processing date {single_date} for chain {chain_name}...")
|
282 |
-
transactions = get_mode_transactions(transactions_all_base,single_date)
|
283 |
-
|
284 |
-
else:
|
285 |
-
print(f"Processing date {single_date} for chain {chain_name}...")
|
286 |
-
start_block, end_block = get_block_range_for_date(chain_id, single_date, api_key, base_url)
|
287 |
-
if start_block is None or end_block is None:
|
288 |
-
print(f"Skipping date {single_date} for chain {chain_name} due to missing block data.")
|
289 |
-
continue
|
290 |
-
print(f"Start Block: {start_block}, End Block: {end_block} for date {single_date}")
|
291 |
-
transactions = get_transactions(api_keys, safe_address, chain_name, start_block, end_block)
|
292 |
-
|
293 |
-
if transactions:
|
294 |
-
print(f"Found {len(transactions)} transactions on {single_date} for {chain_name.capitalize()} safe address {safe_address}:")
|
295 |
-
for tx in transactions:
|
296 |
-
if chain_name != 'mode':
|
297 |
-
print(f"Transaction Hash: {tx['hash']} on {chain_name.capitalize()} at {tx['timeStamp']}")
|
298 |
-
tx_time = datetime.fromtimestamp(int(tx['timeStamp']))
|
299 |
-
all_transactions.append({
|
300 |
-
'chain': chain_name,
|
301 |
-
'agent_address': agent_address,
|
302 |
-
'safe_address': safe_address,
|
303 |
-
'date': single_date,
|
304 |
-
'transaction_hash': tx['hash'],
|
305 |
-
'timestamp': tx_time,
|
306 |
-
'from': tx['from'],
|
307 |
-
'to': tx['to'],
|
308 |
-
'value_eth': int(tx['value']) / 1e18 # Convert value to ETH
|
309 |
-
})
|
310 |
-
else:
|
311 |
-
all_transactions.append({
|
312 |
-
'chain': chain_name,
|
313 |
-
'agent_address': agent_address,
|
314 |
-
'safe_address': safe_address,
|
315 |
-
'date': single_date,
|
316 |
-
'transaction_hash': tx['hash'],
|
317 |
-
'timestamp': tx['timeStamp'],
|
318 |
-
'from': tx['from'],
|
319 |
-
'to': tx['to'],
|
320 |
-
'value_eth': int(tx['value']) / 1e18 # Convert value to ETH
|
321 |
-
})
|
322 |
-
|
323 |
-
else:
|
324 |
-
print(f"No transactions found for agent address {agent_address} (safe address {safe_address}) on {single_date} on {chain_name.capitalize()}.")
|
325 |
-
|
326 |
-
df_transactions_new = pd.DataFrame(all_transactions)
|
327 |
-
df_transactions_new.to_csv(csv_filename, index=False)
|
328 |
-
return df_transactions_new
|
329 |
-
|
330 |
-
|
331 |
-
def create_transcation_visualizations():
|
332 |
-
df_transactions_new = fetch_transactions()
|
333 |
-
df_transactions_new['timestamp'] = pd.to_datetime(df_transactions_new['timestamp'])
|
334 |
-
|
335 |
-
# Group by date and chain, count transactions
|
336 |
-
daily_counts = df_transactions_new.groupby([df_transactions_new['timestamp'].dt.date, 'chain']).size().unstack(fill_value=0)
|
337 |
-
|
338 |
-
# Ensure required chains are present
|
339 |
-
chains = ['optimism', 'base', 'ethereum', 'mode']
|
340 |
-
for chain in chains:
|
341 |
-
if chain not in daily_counts.columns:
|
342 |
-
daily_counts[chain] = 0
|
343 |
-
|
344 |
-
daily_counts = daily_counts[chains]
|
345 |
-
|
346 |
-
# Read the original data
|
347 |
-
daily_counts['timestamp'] = daily_counts.index
|
348 |
-
daily_counts['timestamp'] = pd.to_datetime(daily_counts['timestamp'])
|
349 |
-
daily_counts = daily_counts.reset_index(drop=True)
|
350 |
-
# Get min and max dates
|
351 |
-
min_date = daily_counts['timestamp'].min()
|
352 |
-
max_date = daily_counts['timestamp'].max()
|
353 |
-
|
354 |
-
# Create complete date range
|
355 |
-
full_date_range = pd.date_range(start=min_date, end=max_date, freq='D')
|
356 |
-
|
357 |
-
# Create a new dataframe with all dates
|
358 |
-
complete_df = pd.DataFrame({'timestamp': full_date_range})
|
359 |
-
complete_df = complete_df.merge(daily_counts, on='timestamp', how='left')
|
360 |
-
complete_df = complete_df.fillna(0)
|
361 |
-
daily_counts = complete_df
|
362 |
-
# Convert timestamp to datetime
|
363 |
-
daily_counts['timestamp'] = pd.to_datetime(daily_counts['timestamp'])
|
364 |
-
|
365 |
-
# Create a new dataframe with 12-hour slots
|
366 |
-
new_rows = []
|
367 |
-
|
368 |
-
for _, row in daily_counts.iterrows():
|
369 |
-
# Create first 12-hour slot (0-12)
|
370 |
-
slot1 = row.copy()
|
371 |
-
# slot1['timestamp'] = row['timestamp'].replace(hour=0)
|
372 |
-
|
373 |
-
# # Create second 12-hour slot (12-24)
|
374 |
-
new_rows.extend([slot1])
|
375 |
-
slot2 = row.copy()
|
376 |
-
if slot2['timestamp'].dayofweek == 6: # 6 represents Sunday
|
377 |
-
slot2[chains] = 0
|
378 |
-
slot2['timestamp'] = row['timestamp'].replace(hour=12)
|
379 |
-
new_rows.extend([slot2])
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
# Create new dataframe with 12-hour slots
|
384 |
-
hourly_counts = pd.DataFrame(new_rows).sort_values('timestamp')
|
385 |
-
|
386 |
-
# Prepare data for plotting
|
387 |
-
dates = hourly_counts['timestamp'].tolist()
|
388 |
-
values = hourly_counts[chains].to_numpy()
|
389 |
-
|
390 |
-
# Create the figure
|
391 |
-
fig = go.Figure()
|
392 |
-
# Create arrays for positioning and width
|
393 |
-
# Convert dates to datetime objects first
|
394 |
-
date_objects = pd.to_datetime(dates)
|
395 |
-
|
396 |
-
# Create numeric indices for x-axis
|
397 |
-
x_numeric = np.arange(len(dates))
|
398 |
-
|
399 |
-
# Create arrays for positioning and width
|
400 |
-
width_array = []
|
401 |
-
|
402 |
-
for i, date in enumerate(date_objects):
|
403 |
-
width_array.append(1.0) # Full width for other days
|
404 |
-
|
405 |
-
# Get Monday indices for tick positions
|
406 |
-
monday_indices = [i for i, date in enumerate(date_objects) if date.dayofweek == 0]
|
407 |
-
monday_labels = [date_objects[i].strftime('%m-%d') for i in monday_indices]
|
408 |
-
|
409 |
-
# Add traces for each series
|
410 |
-
fig.add_trace(go.Bar(
|
411 |
-
name='Optimism',
|
412 |
-
x=x_numeric,
|
413 |
-
y=values[:,0],
|
414 |
-
marker_color='blue',
|
415 |
-
opacity=0.7,
|
416 |
-
text=None,
|
417 |
-
width=width_array,
|
418 |
-
textposition='none',
|
419 |
-
))
|
420 |
-
|
421 |
-
fig.add_trace(go.Bar(
|
422 |
-
name='Base',
|
423 |
-
x=x_numeric,
|
424 |
-
y=values[:,1],
|
425 |
-
marker_color='purple',
|
426 |
-
opacity=0.7,
|
427 |
-
text=None,
|
428 |
-
textposition='none',
|
429 |
-
width=width_array,
|
430 |
-
))
|
431 |
-
|
432 |
-
fig.add_trace(go.Bar(
|
433 |
-
name='Ethereum',
|
434 |
-
x=x_numeric,
|
435 |
-
y=values[:,2],
|
436 |
-
marker_color='darkgreen',
|
437 |
-
opacity=0.7,
|
438 |
-
text=None,
|
439 |
-
width=width_array,
|
440 |
-
textposition='none',
|
441 |
-
))
|
442 |
-
|
443 |
-
fig.add_trace(go.Bar(
|
444 |
-
name='Mode',
|
445 |
-
x=x_numeric,
|
446 |
-
y=values[:,3],
|
447 |
-
marker_color='orange',
|
448 |
-
opacity=0.7,
|
449 |
-
text=None,
|
450 |
-
width=width_array,
|
451 |
-
textposition='none',
|
452 |
-
))
|
453 |
-
|
454 |
-
# Update layout with numeric x-axis
|
455 |
-
fig.update_layout(
|
456 |
-
title='Chain Daily Activity : Transactions',
|
457 |
-
xaxis_title='Date',
|
458 |
-
yaxis_title='Daily Transactions Count',
|
459 |
-
barmode='stack',
|
460 |
-
showlegend=True,
|
461 |
-
legend_title_text='Transaction Chain',
|
462 |
-
height=600,
|
463 |
-
bargap=0,
|
464 |
-
bargroupgap=0,
|
465 |
-
xaxis=dict(
|
466 |
-
tickangle=-45,
|
467 |
-
tickmode='array',
|
468 |
-
ticktext=monday_labels,
|
469 |
-
tickvals=monday_indices,
|
470 |
-
),
|
471 |
-
template='plotly_white',
|
472 |
-
hoverlabel=dict(
|
473 |
-
font_size=12,
|
474 |
-
),
|
475 |
-
)
|
476 |
-
|
477 |
-
# Update hover template
|
478 |
-
for trace in fig.data:
|
479 |
-
trace.update(
|
480 |
-
hovertemplate="<b>Date:</b> %{text}<br>" +
|
481 |
-
"<b>" + trace.name + ":</b> %{y}<br>" +
|
482 |
-
"<extra></extra>",
|
483 |
-
text=[d.strftime('%Y-%m-%d') for d in date_objects] # Add date text for hover
|
484 |
-
)
|
485 |
-
|
486 |
-
# Show the plot
|
487 |
-
return fig
|
488 |
-
|
489 |
-
def create_active_agents_visualizations():
|
490 |
-
df_transactions_new = fetch_transactions()
|
491 |
-
df_transactions_new['timestamp'] = pd.to_datetime(df_transactions_new['timestamp'])
|
492 |
-
# Extract week and day information
|
493 |
-
df_transactions_new['week_start'] = df_transactions_new['timestamp'].dt.to_period('W').apply(lambda r: r.start_time)
|
494 |
-
df_transactions_new['weekday'] = df_transactions_new['timestamp'].dt.weekday
|
495 |
-
|
496 |
-
# Count unique agents per day
|
497 |
-
daily_agents = df_transactions_new.groupby(['week_start', 'weekday'])['agent_address'].nunique().reset_index()
|
498 |
-
|
499 |
-
# Generate all possible combinations of week_start and weekday up to today
|
500 |
-
today = datetime.today()
|
501 |
-
yesterday = today - timedelta(days=1)
|
502 |
-
valid_weekdays = [(ws, wd) for ws, wd in product(daily_agents['week_start'].unique(), range(7)) if ws + timedelta(days=wd) <= yesterday]
|
503 |
-
|
504 |
-
all_combinations = pd.DataFrame(valid_weekdays, columns=['week_start', 'weekday'])
|
505 |
-
|
506 |
-
# Merge with daily_agents to fill missing days with zero
|
507 |
-
daily_agents = all_combinations.merge(daily_agents, on=['week_start', 'weekday'], how='left').fillna(0)
|
508 |
-
|
509 |
-
# Compute average unique agents per week
|
510 |
-
weekly_avg_agents = daily_agents.groupby('week_start')['agent_address'].mean().reset_index()
|
511 |
-
weekly_avg_agents.rename(columns={'agent_address': 'avg_daily_active_agents'}, inplace=True)
|
512 |
-
|
513 |
-
# Prepare data for plotting
|
514 |
-
weeks = weekly_avg_agents['week_start'].unique()
|
515 |
-
avg_agents_per_week = weekly_avg_agents['avg_daily_active_agents']
|
516 |
-
|
517 |
-
# Create the bar chart
|
518 |
-
fig = go.Figure()
|
519 |
-
|
520 |
-
fig.add_trace(go.Bar(
|
521 |
-
x=[f'{week.strftime("%b %d")}' for week in weeks],
|
522 |
-
y=avg_agents_per_week,
|
523 |
-
|
524 |
-
marker_color='blue',
|
525 |
-
opacity=0.7,
|
526 |
-
text=None,
|
527 |
-
hoverlabel=dict(
|
528 |
-
font_size=12,
|
529 |
-
),
|
530 |
-
))
|
531 |
-
|
532 |
-
# Update layout
|
533 |
-
fig.update_layout(
|
534 |
-
title='Daily Active Agents: Weekly Average Number of Agents with at Least 1 Transaction Daily',
|
535 |
-
xaxis_title='Week',
|
536 |
-
yaxis_title='Average Number of Active Agents',
|
537 |
-
xaxis=dict(
|
538 |
-
tickangle=-45 # Rotate x-axis labels to 45 degrees
|
539 |
-
),
|
540 |
-
height=600,
|
541 |
-
width=1000,
|
542 |
-
bargap=0,
|
543 |
-
bargroupgap=0.2,
|
544 |
-
template='plotly_white'
|
545 |
-
)
|
546 |
-
|
547 |
-
return fig
|
548 |
-
|
549 |
-
|
550 |
-
# Gradio interface
|
551 |
-
def dashboard():
|
552 |
-
with gr.Blocks() as demo:
|
553 |
-
gr.Markdown("# Valory Transactions Dashboard")
|
554 |
-
|
555 |
-
# Fetch and display visualizations
|
556 |
-
with gr.Tab("Transactions"):
|
557 |
-
fig_tx_chain = create_transcation_visualizations()
|
558 |
-
gr.Plot(fig_tx_chain)
|
559 |
-
with gr.Tab("DAA"):
|
560 |
-
fig_active_agents = create_active_agents_visualizations()
|
561 |
-
gr.Plot(fig_active_agents)
|
562 |
-
|
563 |
-
# Add more tabs as needed...
|
564 |
-
|
565 |
-
return demo
|
566 |
-
|
567 |
-
|
568 |
-
# Launch the dashboard
|
569 |
-
if __name__ == "__main__":
|
570 |
-
dashboard().launch()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app_value_locked.py
DELETED
@@ -1,405 +0,0 @@
|
|
1 |
-
import json
|
2 |
-
import requests
|
3 |
-
from web3 import Web3
|
4 |
-
from datetime import datetime, timedelta
|
5 |
-
from typing import List, Dict, Optional
|
6 |
-
import pandas as pd
|
7 |
-
import time
|
8 |
-
import requests
|
9 |
-
from requests.adapters import HTTPAdapter
|
10 |
-
from requests.packages.urllib3.util.retry import Retry
|
11 |
-
import time
|
12 |
-
import os
|
13 |
-
|
14 |
-
ADDRESSES = {
|
15 |
-
"optimism": {
|
16 |
-
"balancer_vault": "0xBA12222222228d8Ba445958a75a0704d566BF2C8",
|
17 |
-
"uniswap_position_manager": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88"
|
18 |
-
},
|
19 |
-
"base": {
|
20 |
-
"balancer_vault": "0xBA12222222228d8Ba445958a75a0704d566BF2C8",
|
21 |
-
"uniswap_position_manager": "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1"
|
22 |
-
}
|
23 |
-
}
|
24 |
-
|
25 |
-
# Defining RPC URLs and initializing Web3 instances
|
26 |
-
OPTIMISM_RPC_URL = os.getenv('OPTIMISM_RPC_URL')
|
27 |
-
BASE_RPC_URL = os.getenv('BASE_RPC_URL')
|
28 |
-
ETH_RPC_URL = os.getenv('ETH_RPC_URL')
|
29 |
-
|
30 |
-
print("Initializing Web3 instances...")
|
31 |
-
web3_optimism = Web3(Web3.HTTPProvider(OPTIMISM_RPC_URL))
|
32 |
-
web3_base = Web3(Web3.HTTPProvider(BASE_RPC_URL))
|
33 |
-
|
34 |
-
# Contract addresses for service registries
|
35 |
-
contract_address_optimism = '0x3d77596beb0f130a4415df3D2D8232B3d3D31e44'
|
36 |
-
contract_address_base = '0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE'
|
37 |
-
|
38 |
-
# Load the ABI from a local JSON file
|
39 |
-
with open('./contracts/service_registry_abi.json', 'r') as abi_file:
|
40 |
-
contract_abi = json.load(abi_file)
|
41 |
-
|
42 |
-
# Create the contract instances
|
43 |
-
service_registry_optimism = web3_optimism.eth.contract(address=contract_address_optimism, abi=contract_abi)
|
44 |
-
service_registry_base = web3_base.eth.contract(address=contract_address_base, abi=contract_abi)
|
45 |
-
print("Service registry contracts loaded.")
|
46 |
-
|
47 |
-
def load_abi(filename):
|
48 |
-
with open(filename, 'r') as file:
|
49 |
-
contract_json = json.load(file)
|
50 |
-
return contract_json['abi']
|
51 |
-
|
52 |
-
UNISWAP_ABI = load_abi('./contracts/NonfungiblePositionManager.json')
|
53 |
-
|
54 |
-
def get_logs(api_key, chain_name, from_block, to_block, contract_address, service_safe):
|
55 |
-
"""Fetch logs for the given contract and wallet address with specified topics."""
|
56 |
-
base_url = {
|
57 |
-
'optimism': "https://api-optimistic.etherscan.io/api",
|
58 |
-
'base': "https://api.basescan.org/api"
|
59 |
-
}.get(chain_name)
|
60 |
-
|
61 |
-
if not base_url:
|
62 |
-
print(f"Invalid chain name: {chain_name}")
|
63 |
-
return []
|
64 |
-
print('formatted safe address for topic', f"0x000000000000000000000000{service_safe[2:].lower()}")
|
65 |
-
params = {
|
66 |
-
'module': 'logs',
|
67 |
-
'action': 'getLogs',
|
68 |
-
'address': contract_address,
|
69 |
-
'fromBlock': from_block,
|
70 |
-
'toBlock': to_block,
|
71 |
-
'apikey': api_key,
|
72 |
-
'topic2': f"0x000000000000000000000000{service_safe[2:].lower()}" # Properly formatted topic2
|
73 |
-
}
|
74 |
-
|
75 |
-
response = requests.get(base_url, params=params)
|
76 |
-
data = response.json()
|
77 |
-
|
78 |
-
if data['status'] != '1':
|
79 |
-
print(f"Error: {data['message']}")
|
80 |
-
return []
|
81 |
-
|
82 |
-
return data['result']
|
83 |
-
|
84 |
-
def get_block_range_for_date(chain_id, date_str, api_key, base_url):
|
85 |
-
"""Get the block range for a specific date."""
|
86 |
-
target_date = datetime.strptime(date_str, "%Y-%m-%d")
|
87 |
-
start_of_day = datetime.combine(target_date, datetime.min.time())
|
88 |
-
end_of_day = datetime.combine(target_date, datetime.max.time())
|
89 |
-
|
90 |
-
start_timestamp = int(start_of_day.timestamp())
|
91 |
-
end_timestamp = int(end_of_day.timestamp())
|
92 |
-
|
93 |
-
# Get start block
|
94 |
-
start_response = requests.get(
|
95 |
-
f"{base_url}?module=block&action=getblocknobytime×tamp={start_timestamp}&closest=before&apikey={api_key}"
|
96 |
-
)
|
97 |
-
if start_response.status_code == 200:
|
98 |
-
start_data = start_response.json()
|
99 |
-
start_block = start_data.get('result')
|
100 |
-
else:
|
101 |
-
print(f"Error fetching start block for {date_str} on chain {chain_id}")
|
102 |
-
return None, None
|
103 |
-
|
104 |
-
if start_block is None:
|
105 |
-
print(f"No start block found for chain {chain_id} on {date_str}")
|
106 |
-
return None, None
|
107 |
-
print(f"Start block for chain {chain_id} on {date_str}: {start_block}")
|
108 |
-
|
109 |
-
# Get end block
|
110 |
-
end_response = requests.get(
|
111 |
-
f"{base_url}?module=block&action=getblocknobytime×tamp={end_timestamp}&closest=before&apikey={api_key}"
|
112 |
-
)
|
113 |
-
if end_response.status_code == 200:
|
114 |
-
end_data = end_response.json()
|
115 |
-
end_block = end_data.get('result')
|
116 |
-
else:
|
117 |
-
print(f"Error fetching end block for {date_str} on chain {chain_id}")
|
118 |
-
return None, None
|
119 |
-
|
120 |
-
if end_block is None:
|
121 |
-
print(f"No end block found for chain {chain_id} on {date_str}")
|
122 |
-
return None, None
|
123 |
-
print(f"End block for chain {chain_id} on {date_str}: {end_block}")
|
124 |
-
|
125 |
-
return start_block, end_block
|
126 |
-
|
127 |
-
def date_range(start_date, end_date):
|
128 |
-
"""Generates a range of dates from start_date to end_date inclusive."""
|
129 |
-
start_dt = datetime.strptime(start_date, "%Y-%m-%d")
|
130 |
-
end_dt = datetime.strptime(end_date, "%Y-%m-%d")
|
131 |
-
delta = timedelta(days=1)
|
132 |
-
current_dt = start_dt
|
133 |
-
while current_dt <= end_dt:
|
134 |
-
yield current_dt.strftime("%Y-%m-%d")
|
135 |
-
current_dt += delta
|
136 |
-
|
137 |
-
def parse_transfer_log(chain_name, single_date, log):
|
138 |
-
# ERC-721 Transfer event signature
|
139 |
-
TRANSFER_EVENT_SIGNATURE = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
140 |
-
|
141 |
-
if log['topics'][0].lower() == TRANSFER_EVENT_SIGNATURE.lower():
|
142 |
-
# This is a Transfer event
|
143 |
-
return {
|
144 |
-
"chain_name": chain_name,
|
145 |
-
"date": single_date,
|
146 |
-
"event": "Transfer",
|
147 |
-
"topic_0": log['topics'][0],
|
148 |
-
"from": "0x" + log['topics'][1][-40:], # Extract the address from the padded topic
|
149 |
-
"to": "0x" + log['topics'][2][-40:], # Extract the address from the padded topic
|
150 |
-
"token_id": int(log['topics'][3], 16) # Convert hex to decimal
|
151 |
-
}
|
152 |
-
|
153 |
-
# If no Transfer event is found
|
154 |
-
return None
|
155 |
-
|
156 |
-
def parse_pool_balance_log(chain_name, single_date, log):
|
157 |
-
POOL_BALANCE_SIGNATURE = "0xe5ce249087ce04f05a957192435400fd97868dba0e6a4b4c049abf8af80dae78"
|
158 |
-
if log['topics'][0].lower() == POOL_BALANCE_SIGNATURE.lower():
|
159 |
-
# Event PoolBalanceChanged: (bytes32 poolId, address liquidityProvider, address[] tokens, int256[] deltas, uint256[] protocolFeeAmounts)
|
160 |
-
return {
|
161 |
-
"chain_name": chain_name,
|
162 |
-
"date": single_date,
|
163 |
-
"event": "PoolBalanceChanged",
|
164 |
-
"poolId": log['topics'][1],
|
165 |
-
"liquidityProvider": "0x" + log['topics'][2][-40:], # Extract the address from the padded topic
|
166 |
-
"tokens": [log['data'][i:i + 64] for i in range(0, len(log['data']), 64)],
|
167 |
-
"deltas": [int(log['data'][i:i + 64], 16) for i in range(0, len(log['data']), 64)],
|
168 |
-
"protocolFeeAmounts": [int(log['data'][i:i + 64], 16) for i in range(0, len(log['data']), 64)]
|
169 |
-
}
|
170 |
-
|
171 |
-
def fetch_service_safes(web3, registry_contract):
|
172 |
-
print("\nFetching service safes...")
|
173 |
-
total_services = registry_contract.functions.totalSupply().call()
|
174 |
-
print(f"Total services: {total_services}")
|
175 |
-
service_safes = set()
|
176 |
-
|
177 |
-
for service_id in range(1, total_services + 1):
|
178 |
-
service = registry_contract.functions.getService(service_id).call()
|
179 |
-
agent_ids = service[-1] # Assuming the last element is the list of agent IDs
|
180 |
-
|
181 |
-
if 40 in agent_ids:
|
182 |
-
service_safe = service[1]
|
183 |
-
service_safes.add(service_safe)
|
184 |
-
|
185 |
-
print(f"Total service safes found: {len(service_safes)}")
|
186 |
-
return service_safes
|
187 |
-
|
188 |
-
def get_uniswap_v3_position(web3, contract_address, token_id):
|
189 |
-
"""Fetch the Uniswap V3 position details including `token0`, `token1`."""
|
190 |
-
position_manager_contract = web3.eth.contract(address=contract_address, abi=UNISWAP_ABI)
|
191 |
-
position_data = position_manager_contract.functions.positions(token_id).call()
|
192 |
-
return {
|
193 |
-
'token0': position_data[2],
|
194 |
-
'token1': position_data[3]
|
195 |
-
}
|
196 |
-
|
197 |
-
def get_uniswap_increase_liquidity(api_key, chain_name, token_id):
|
198 |
-
"""Fetch the IncreaseLiquidity event details including `amount0`, `amount1`."""
|
199 |
-
base_url = {
|
200 |
-
'optimism': "https://api-optimistic.etherscan.io/api",
|
201 |
-
'base': "https://api.basescan.org/api"
|
202 |
-
}.get(chain_name)
|
203 |
-
|
204 |
-
if not base_url:
|
205 |
-
print(f"Invalid chain name: {chain_name}")
|
206 |
-
return {}
|
207 |
-
|
208 |
-
params = {
|
209 |
-
'module': 'logs',
|
210 |
-
'action': 'getLogs',
|
211 |
-
'address': ADDRESSES[chain_name]['uniswap_position_manager'],
|
212 |
-
'topic0': "0x3067048beee31b25b2f1681f88dac838c8bba36af25bfb2b7cf7473a5847e35f",
|
213 |
-
'topic1': f"0x{token_id:064x}",
|
214 |
-
'apikey': api_key
|
215 |
-
}
|
216 |
-
|
217 |
-
response = requests.get(base_url, params=params)
|
218 |
-
data = response.json()
|
219 |
-
|
220 |
-
if data['status'] != '1':
|
221 |
-
print(f"Error: {data['message']}")
|
222 |
-
return {}
|
223 |
-
|
224 |
-
log = data['result'][0] if data['result'] else None
|
225 |
-
if not log:
|
226 |
-
return {}
|
227 |
-
|
228 |
-
# Extracting amounts from the data hex-string
|
229 |
-
data_hex = log['data'][2:] # Remove '0x' prefix
|
230 |
-
liquidity = int(data_hex[0:64], 16)
|
231 |
-
amount0 = int(data_hex[64:128], 16)
|
232 |
-
amount1 = int(data_hex[128:192], 16)
|
233 |
-
|
234 |
-
return {
|
235 |
-
'liquidity': liquidity,
|
236 |
-
'amount0': amount0,
|
237 |
-
'amount1': amount1
|
238 |
-
}
|
239 |
-
|
240 |
-
def get_token_decimals(web3, token_address):
|
241 |
-
"""Fetch the number of decimals for a given ERC-20 token."""
|
242 |
-
token_contract = web3.eth.contract(address=token_address, abi=[
|
243 |
-
{"constant":True,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":False,"stateMutability":"view","type":"function"}
|
244 |
-
])
|
245 |
-
return token_contract.functions.decimals().call()
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
def requests_retry_session(
|
250 |
-
retries=3,
|
251 |
-
backoff_factor=0.3,
|
252 |
-
status_forcelist=(500, 502, 504),
|
253 |
-
session=None,
|
254 |
-
):
|
255 |
-
session = session or requests.Session()
|
256 |
-
retry = Retry(
|
257 |
-
total=retries,
|
258 |
-
read=retries,
|
259 |
-
connect=retries,
|
260 |
-
backoff_factor=backoff_factor,
|
261 |
-
status_forcelist=status_forcelist,
|
262 |
-
)
|
263 |
-
adapter = HTTPAdapter(max_retries=retry)
|
264 |
-
session.mount('http://', adapter)
|
265 |
-
session.mount('https://', adapter)
|
266 |
-
return session
|
267 |
-
|
268 |
-
def get_token_price_usd(chain, token_address):
|
269 |
-
chain_dict = {"optimism": "optimistic-ethereum", "base": "base", "ethereum": "ethereum"}
|
270 |
-
chain_name = chain_dict.get(chain, chain)
|
271 |
-
time.sleep(4)
|
272 |
-
url = f"https://api.coingecko.com/api/v3/simple/token_price/{chain_name}?contract_addresses={token_address}&vs_currencies=usd"
|
273 |
-
|
274 |
-
headers = {
|
275 |
-
"accept": "application/json",
|
276 |
-
"x-cg-api-key": "CG-mf5xZnGELpSXeSqmHDLY2nNU"
|
277 |
-
}
|
278 |
-
|
279 |
-
try:
|
280 |
-
response = requests_retry_session().get(url, headers=headers, timeout=10)
|
281 |
-
response.raise_for_status()
|
282 |
-
data = response.json()
|
283 |
-
|
284 |
-
# Extract USD price
|
285 |
-
key = token_address.lower()
|
286 |
-
return data.get(key, {}).get('usd', None)
|
287 |
-
except requests.exceptions.RequestException as e:
|
288 |
-
print(f"An error occurred: {e}")
|
289 |
-
return None
|
290 |
-
|
291 |
-
def load_existing_transactions(file_path):
|
292 |
-
"""Load existing transactions from a CSV file."""
|
293 |
-
try:
|
294 |
-
return pd.read_csv(file_path)
|
295 |
-
except FileNotFoundError:
|
296 |
-
return pd.DataFrame()
|
297 |
-
|
298 |
-
def get_last_processed_date(df):
|
299 |
-
"""Get the last processed date from the DataFrame."""
|
300 |
-
if df.empty:
|
301 |
-
return None
|
302 |
-
return df['date'].max()
|
303 |
-
|
304 |
-
# Main function to integrate the above based on provided context
|
305 |
-
def fetch_daily_value_locked():
|
306 |
-
api_keys = {
|
307 |
-
'optimism': 'XQ72JA5XZ51QC7TG1W295AAIF4KTV92K1K',
|
308 |
-
'base': '4BFQMVW1QUKEPVDA4VW711CF4462682CY8'
|
309 |
-
}
|
310 |
-
|
311 |
-
base_urls = {
|
312 |
-
10: "https://api-optimistic.etherscan.io/api",
|
313 |
-
8453: "https://api.basescan.org/api"
|
314 |
-
}
|
315 |
-
|
316 |
-
# Load existing transactions if any
|
317 |
-
existing_transactions_path = 'daily_value_locked.csv'
|
318 |
-
df_existing_transactions = load_existing_transactions(existing_transactions_path)
|
319 |
-
last_processed_date = get_last_processed_date(df_existing_transactions)
|
320 |
-
|
321 |
-
# Determine the start date based on the last processed date
|
322 |
-
start_date = (pd.to_datetime(last_processed_date) + timedelta(days=1)).strftime('%Y-%m-%d') if last_processed_date else '2024-09-19'
|
323 |
-
current_date = datetime.now().strftime('%Y-%m-%d') # Till present date
|
324 |
-
|
325 |
-
chains = {
|
326 |
-
10: ('optimism', 'uniswap_position_manager', 'balancer_vault'),
|
327 |
-
8453: ('base', 'uniswap_position_manager', 'balancer_vault')
|
328 |
-
}
|
329 |
-
|
330 |
-
# Example service safe addresses - Replace these with actual addresses
|
331 |
-
print("Fetching service safes for Optimism...")
|
332 |
-
service_safes_optimism = fetch_service_safes(web3_optimism, service_registry_optimism)
|
333 |
-
print(service_safes_optimism)
|
334 |
-
print("Fetching service safes for Base...")
|
335 |
-
service_safes_base = fetch_service_safes(web3_base, service_registry_base)
|
336 |
-
print(service_safes_base)
|
337 |
-
|
338 |
-
service_safes = {
|
339 |
-
'optimism': service_safes_optimism,
|
340 |
-
'base': service_safes_base
|
341 |
-
}
|
342 |
-
|
343 |
-
all_transactions = [] # List to hold all parsed logs
|
344 |
-
|
345 |
-
for chain_id, (chain_name, uniswap_contract_key, balancer_contract_key) in chains.items():
|
346 |
-
base_url = base_urls[chain_id]
|
347 |
-
api_key = api_keys[chain_name]
|
348 |
-
|
349 |
-
for service_safe in service_safes[chain_name]:
|
350 |
-
print(f"Checking service safe {service_safe} for chain {chain_name}")
|
351 |
-
for single_date in date_range(start_date, current_date):
|
352 |
-
start_block, end_block = get_block_range_for_date(chain_id, single_date, api_key, base_url)
|
353 |
-
if start_block is None or end_block is None:
|
354 |
-
print(f"Skipping date {single_date} for chain {chain_name} due to missing block data.")
|
355 |
-
continue
|
356 |
-
|
357 |
-
print(f"Start Block: {start_block}, End Block: {end_block} for date {single_date} on chain {chain_name} for service safe {service_safe}")
|
358 |
-
|
359 |
-
# Get logs for Uniswap and Balancer contracts
|
360 |
-
for contract_key, topic_key in [(uniswap_contract_key, "transfer"), (balancer_contract_key, "pool_balance_changed")]:
|
361 |
-
contract_address = ADDRESSES[chain_name][contract_key]
|
362 |
-
print(api_key, chain_name, start_block, end_block, contract_address, service_safe)
|
363 |
-
logs = get_logs(api_key, chain_name, start_block, end_block, contract_address, service_safe)
|
364 |
-
|
365 |
-
for log in logs:
|
366 |
-
parsed_log = parse_pool_balance_log(chain_name, single_date, log) if topic_key == "pool_balance_changed" else parse_transfer_log(chain_name, single_date, log)
|
367 |
-
if parsed_log:
|
368 |
-
if topic_key == "transfer":
|
369 |
-
# If the event is a Transfer event, fetch uniswap position details and increase liquidity event details
|
370 |
-
uniswap_v3_data = get_uniswap_v3_position(web3_base if chain_name == 'base' else web3_optimism, contract_address, parsed_log['token_id'])
|
371 |
-
increase_liquidity_data = get_uniswap_increase_liquidity(api_key, chain_name, parsed_log['token_id'])
|
372 |
-
|
373 |
-
token0_address = uniswap_v3_data['token0']
|
374 |
-
token1_address = uniswap_v3_data['token1']
|
375 |
-
decimals_token0 = get_token_decimals(web3_base if chain_name == 'base' else web3_optimism, token0_address)
|
376 |
-
decimals_token1 = get_token_decimals(web3_base if chain_name == 'base' else web3_optimism, token1_address)
|
377 |
-
print(decimals_token0,decimals_token1)
|
378 |
-
increase_liquidity_data['amount0'] /= 10**decimals_token0
|
379 |
-
increase_liquidity_data['amount1'] /= 10**decimals_token1
|
380 |
-
|
381 |
-
usd_price_token0 = get_token_price_usd(chain_name, token0_address)
|
382 |
-
usd_price_token1 = get_token_price_usd(chain_name, token1_address)
|
383 |
-
|
384 |
-
if usd_price_token0 is not None and usd_price_token1 is not None:
|
385 |
-
increase_liquidity_data['amount0_usd'] = increase_liquidity_data['amount0'] * usd_price_token0
|
386 |
-
increase_liquidity_data['amount1_usd'] = increase_liquidity_data['amount1'] * usd_price_token1
|
387 |
-
|
388 |
-
parsed_log.update(uniswap_v3_data)
|
389 |
-
parsed_log.update(increase_liquidity_data)
|
390 |
-
all_transactions.append(parsed_log)
|
391 |
-
|
392 |
-
# Convert to DataFrame and append to existing transactions
|
393 |
-
df_new_transactions = pd.DataFrame(all_transactions)
|
394 |
-
|
395 |
-
if not df_existing_transactions.empty:
|
396 |
-
all_data = pd.concat([df_existing_transactions, df_new_transactions])
|
397 |
-
else:
|
398 |
-
all_data = df_new_transactions
|
399 |
-
|
400 |
-
all_data.to_csv(existing_transactions_path, index=False)
|
401 |
-
print("Data saved to", existing_transactions_path)
|
402 |
-
|
403 |
-
return all_data
|
404 |
-
|
405 |
-
#print(df_transactions)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
apr_visualization.py
DELETED
@@ -1,592 +0,0 @@
|
|
1 |
-
import pandas as pd
|
2 |
-
import numpy as np
|
3 |
-
import matplotlib.pyplot as plt
|
4 |
-
import matplotlib.dates as mdates
|
5 |
-
import plotly.graph_objects as go
|
6 |
-
import plotly.express as px
|
7 |
-
from plotly.subplots import make_subplots
|
8 |
-
import random
|
9 |
-
from datetime import datetime, timedelta
|
10 |
-
import requests
|
11 |
-
import sys
|
12 |
-
import json
|
13 |
-
from typing import List, Dict, Any
|
14 |
-
import logging
|
15 |
-
|
16 |
-
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
|
17 |
-
logger = logging.getLogger(__name__)
|
18 |
-
|
19 |
-
# Global variable to store the data for reuse
|
20 |
-
global_df = None
|
21 |
-
|
22 |
-
# Configuration
|
23 |
-
API_BASE_URL = "https://afmdb.autonolas.tech"
|
24 |
-
|
25 |
-
def get_agent_type_by_name(type_name: str) -> Dict[str, Any]:
|
26 |
-
"""Get agent type by name"""
|
27 |
-
response = requests.get(f"{API_BASE_URL}/api/agent-types/name/{type_name}")
|
28 |
-
if response.status_code == 404:
|
29 |
-
logger.error(f"Agent type '{type_name}' not found")
|
30 |
-
return None
|
31 |
-
response.raise_for_status()
|
32 |
-
return response.json()
|
33 |
-
|
34 |
-
def get_attribute_definition_by_name(attr_name: str) -> Dict[str, Any]:
|
35 |
-
"""Get attribute definition by name"""
|
36 |
-
response = requests.get(f"{API_BASE_URL}/api/attributes/name/{attr_name}")
|
37 |
-
if response.status_code == 404:
|
38 |
-
logger.error(f"Attribute definition '{attr_name}' not found")
|
39 |
-
return None
|
40 |
-
response.raise_for_status()
|
41 |
-
return response.json()
|
42 |
-
|
43 |
-
def get_agents_by_type(type_id: int) -> List[Dict[str, Any]]:
|
44 |
-
"""Get all agents of a specific type"""
|
45 |
-
response = requests.get(f"{API_BASE_URL}/api/agent-types/{type_id}/agents/")
|
46 |
-
if response.status_code == 404:
|
47 |
-
logger.error(f"No agents found for type ID {type_id}")
|
48 |
-
return []
|
49 |
-
response.raise_for_status()
|
50 |
-
return response.json()
|
51 |
-
|
52 |
-
def get_attribute_values_by_type_and_attr(agents: List[Dict[str, Any]], attr_def_id: int) -> List[Dict[str, Any]]:
|
53 |
-
"""Get all attribute values for a specific attribute definition across all agents of a given list"""
|
54 |
-
all_attributes = []
|
55 |
-
|
56 |
-
# For each agent, get their attributes and filter for the one we want
|
57 |
-
for agent in agents:
|
58 |
-
agent_id = agent["agent_id"]
|
59 |
-
|
60 |
-
# Call the /api/agents/{agent_id}/attributes/ endpoint
|
61 |
-
response = requests.get(f"{API_BASE_URL}/api/agents/{agent_id}/attributes/", params={"limit": 1000})
|
62 |
-
if response.status_code == 404:
|
63 |
-
logger.error(f"No attributes found for agent ID {agent_id}")
|
64 |
-
continue
|
65 |
-
|
66 |
-
try:
|
67 |
-
response.raise_for_status()
|
68 |
-
agent_attrs = response.json()
|
69 |
-
|
70 |
-
# Filter for the specific attribute definition ID
|
71 |
-
filtered_attrs = [attr for attr in agent_attrs if attr.get("attr_def_id") == attr_def_id]
|
72 |
-
all_attributes.extend(filtered_attrs)
|
73 |
-
except requests.exceptions.RequestException as e:
|
74 |
-
logger.error(f"Error fetching attributes for agent ID {agent_id}: {e}")
|
75 |
-
|
76 |
-
return all_attributes
|
77 |
-
|
78 |
-
def get_agent_name(agent_id: int, agents: List[Dict[str, Any]]) -> str:
|
79 |
-
"""Get agent name from agent ID"""
|
80 |
-
for agent in agents:
|
81 |
-
if agent["agent_id"] == agent_id:
|
82 |
-
return agent["agent_name"]
|
83 |
-
return "Unknown"
|
84 |
-
|
85 |
-
def extract_apr_value(attr: Dict[str, Any]) -> Dict[str, Any]:
|
86 |
-
"""Extract APR value and timestamp from JSON value"""
|
87 |
-
try:
|
88 |
-
# The APR value is stored in the json_value field
|
89 |
-
if attr["json_value"] is None:
|
90 |
-
return {"apr": None, "timestamp": None, "agent_id": attr["agent_id"], "is_dummy": False}
|
91 |
-
|
92 |
-
# If json_value is a string, parse it
|
93 |
-
if isinstance(attr["json_value"], str):
|
94 |
-
json_data = json.loads(attr["json_value"])
|
95 |
-
else:
|
96 |
-
json_data = attr["json_value"]
|
97 |
-
|
98 |
-
apr = json_data.get("apr")
|
99 |
-
timestamp = json_data.get("timestamp")
|
100 |
-
|
101 |
-
# Convert timestamp to datetime if it exists
|
102 |
-
timestamp_dt = None
|
103 |
-
if timestamp:
|
104 |
-
timestamp_dt = datetime.fromtimestamp(timestamp)
|
105 |
-
|
106 |
-
return {"apr": apr, "timestamp": timestamp_dt, "agent_id": attr["agent_id"], "is_dummy": False}
|
107 |
-
except (json.JSONDecodeError, KeyError, TypeError) as e:
|
108 |
-
logger.error(f"Error parsing JSON value: {e} for agent_id: {attr.get('agent_id')}")
|
109 |
-
return {"apr": None, "timestamp": None, "agent_id": attr["agent_id"], "is_dummy": False}
|
110 |
-
|
111 |
-
def fetch_apr_data_from_db():
|
112 |
-
"""
|
113 |
-
Fetch APR data from database using the API.
|
114 |
-
"""
|
115 |
-
global global_df
|
116 |
-
|
117 |
-
try:
|
118 |
-
# Step 1: Find the Modius agent type
|
119 |
-
modius_type = get_agent_type_by_name("Modius")
|
120 |
-
if not modius_type:
|
121 |
-
logger.error("Modius agent type not found, using placeholder data")
|
122 |
-
global_df = pd.DataFrame([])
|
123 |
-
return global_df
|
124 |
-
|
125 |
-
type_id = modius_type["type_id"]
|
126 |
-
|
127 |
-
# Step 2: Find the APR attribute definition
|
128 |
-
apr_attr_def = get_attribute_definition_by_name("APR")
|
129 |
-
if not apr_attr_def:
|
130 |
-
logger.error("APR attribute definition not found, using placeholder data")
|
131 |
-
global_df = pd.DataFrame([])
|
132 |
-
return global_df
|
133 |
-
|
134 |
-
attr_def_id = apr_attr_def["attr_def_id"]
|
135 |
-
|
136 |
-
# Step 3: Get all agents of type Modius
|
137 |
-
modius_agents = get_agents_by_type(type_id)
|
138 |
-
if not modius_agents:
|
139 |
-
logger.error("No agents of type 'Modius' found")
|
140 |
-
global_df = pd.DataFrame([])
|
141 |
-
return global_df
|
142 |
-
|
143 |
-
# Step 4: Fetch all APR values for Modius agents
|
144 |
-
apr_attributes = get_attribute_values_by_type_and_attr(modius_agents, attr_def_id)
|
145 |
-
if not apr_attributes:
|
146 |
-
logger.error("No APR values found for 'Modius' agents")
|
147 |
-
global_df = pd.DataFrame([])
|
148 |
-
return global_df
|
149 |
-
|
150 |
-
# Step 5: Extract APR data
|
151 |
-
apr_data_list = []
|
152 |
-
for attr in apr_attributes:
|
153 |
-
apr_data = extract_apr_value(attr)
|
154 |
-
if apr_data["apr"] is not None and apr_data["timestamp"] is not None:
|
155 |
-
# Get agent name
|
156 |
-
agent_name = get_agent_name(attr["agent_id"], modius_agents)
|
157 |
-
# Add agent name to the data
|
158 |
-
apr_data["agent_name"] = agent_name
|
159 |
-
# Add is_dummy flag (all real data)
|
160 |
-
apr_data["is_dummy"] = False
|
161 |
-
|
162 |
-
# Mark negative values as "Performance" metrics
|
163 |
-
if apr_data["apr"] < 0:
|
164 |
-
apr_data["metric_type"] = "Performance"
|
165 |
-
else:
|
166 |
-
apr_data["metric_type"] = "APR"
|
167 |
-
|
168 |
-
apr_data_list.append(apr_data)
|
169 |
-
|
170 |
-
# Convert list of dictionaries to DataFrame
|
171 |
-
if not apr_data_list:
|
172 |
-
logger.error("No valid APR data extracted")
|
173 |
-
global_df = pd.DataFrame([])
|
174 |
-
return global_df
|
175 |
-
|
176 |
-
global_df = pd.DataFrame(apr_data_list)
|
177 |
-
return global_df
|
178 |
-
|
179 |
-
except requests.exceptions.RequestException as e:
|
180 |
-
logger.error(f"API request error: {e}")
|
181 |
-
global_df = pd.DataFrame([])
|
182 |
-
return global_df
|
183 |
-
except Exception as e:
|
184 |
-
logger.error(f"Error fetching APR data: {e}")
|
185 |
-
global_df = pd.DataFrame([])
|
186 |
-
return global_df
|
187 |
-
|
188 |
-
def generate_apr_visualizations():
|
189 |
-
"""Generate APR visualizations with real data only (no dummy data)"""
|
190 |
-
global global_df
|
191 |
-
|
192 |
-
# Fetch data from database
|
193 |
-
df = fetch_apr_data_from_db()
|
194 |
-
|
195 |
-
# If we got no data at all, return placeholder figures
|
196 |
-
if df.empty:
|
197 |
-
logger.info("No APR data available. Using fallback visualization.")
|
198 |
-
# Create empty visualizations with a message using Plotly
|
199 |
-
fig = go.Figure()
|
200 |
-
fig.add_annotation(
|
201 |
-
x=0.5, y=0.5,
|
202 |
-
text="No APR data available",
|
203 |
-
font=dict(size=20),
|
204 |
-
showarrow=False
|
205 |
-
)
|
206 |
-
fig.update_layout(
|
207 |
-
xaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
|
208 |
-
yaxis=dict(showgrid=False, zeroline=False, showticklabels=False)
|
209 |
-
)
|
210 |
-
|
211 |
-
# Save as static files for reference
|
212 |
-
fig.write_html("modius_apr_per_agent_graph.html")
|
213 |
-
fig.write_image("modius_apr_per_agent_graph.png")
|
214 |
-
fig.write_html("modius_apr_combined_graph.html")
|
215 |
-
fig.write_image("modius_apr_combined_graph.png")
|
216 |
-
|
217 |
-
csv_file = None
|
218 |
-
return fig, fig, csv_file
|
219 |
-
|
220 |
-
# No longer generating dummy data
|
221 |
-
# Set global_df for access by other functions
|
222 |
-
global_df = df
|
223 |
-
|
224 |
-
# Save to CSV before creating visualizations
|
225 |
-
csv_file = save_to_csv(df)
|
226 |
-
|
227 |
-
# Create per-agent time series graph (returns figure object)
|
228 |
-
per_agent_fig = create_time_series_graph_per_agent(df)
|
229 |
-
|
230 |
-
# Create combined time series graph (returns figure object)
|
231 |
-
combined_fig = create_combined_time_series_graph(df)
|
232 |
-
|
233 |
-
return per_agent_fig, combined_fig, csv_file
|
234 |
-
|
235 |
-
def create_time_series_graph_per_agent(df):
|
236 |
-
"""Create a time series graph for each agent using Plotly"""
|
237 |
-
# Get unique agents
|
238 |
-
unique_agents = df['agent_id'].unique()
|
239 |
-
|
240 |
-
if len(unique_agents) == 0:
|
241 |
-
logger.error("No agent data to plot")
|
242 |
-
fig = go.Figure()
|
243 |
-
fig.add_annotation(
|
244 |
-
text="No agent data available",
|
245 |
-
x=0.5, y=0.5,
|
246 |
-
showarrow=False, font=dict(size=20)
|
247 |
-
)
|
248 |
-
return fig
|
249 |
-
|
250 |
-
# Create a subplot figure for each agent
|
251 |
-
fig = make_subplots(rows=len(unique_agents), cols=1,
|
252 |
-
subplot_titles=[f"Agent: {df[df['agent_id'] == agent_id]['agent_name'].iloc[0]}"
|
253 |
-
for agent_id in unique_agents],
|
254 |
-
vertical_spacing=0.1)
|
255 |
-
|
256 |
-
# Plot data for each agent
|
257 |
-
for i, agent_id in enumerate(unique_agents):
|
258 |
-
agent_data = df[df['agent_id'] == agent_id].copy()
|
259 |
-
agent_name = agent_data['agent_name'].iloc[0]
|
260 |
-
row = i + 1
|
261 |
-
|
262 |
-
# Add zero line to separate APR and Performance
|
263 |
-
fig.add_shape(
|
264 |
-
type="line", line=dict(dash="solid", width=1.5, color="black"),
|
265 |
-
y0=0, y1=0, x0=agent_data['timestamp'].min(), x1=agent_data['timestamp'].max(),
|
266 |
-
row=row, col=1
|
267 |
-
)
|
268 |
-
|
269 |
-
# Add background colors
|
270 |
-
fig.add_shape(
|
271 |
-
type="rect", fillcolor="rgba(230, 243, 255, 0.3)", line=dict(width=0),
|
272 |
-
y0=0, y1=1000, x0=agent_data['timestamp'].min(), x1=agent_data['timestamp'].max(),
|
273 |
-
row=row, col=1, layer="below"
|
274 |
-
)
|
275 |
-
fig.add_shape(
|
276 |
-
type="rect", fillcolor="rgba(255, 230, 230, 0.3)", line=dict(width=0),
|
277 |
-
y0=-1000, y1=0, x0=agent_data['timestamp'].min(), x1=agent_data['timestamp'].max(),
|
278 |
-
row=row, col=1, layer="below"
|
279 |
-
)
|
280 |
-
|
281 |
-
# Create separate dataframes for different data types
|
282 |
-
apr_data = agent_data[agent_data['metric_type'] == 'APR']
|
283 |
-
perf_data = agent_data[agent_data['metric_type'] == 'Performance']
|
284 |
-
|
285 |
-
# Sort all data by timestamp for the line plots
|
286 |
-
combined_agent_data = agent_data.sort_values('timestamp')
|
287 |
-
|
288 |
-
# Add main line connecting all points
|
289 |
-
fig.add_trace(
|
290 |
-
go.Scatter(
|
291 |
-
x=combined_agent_data['timestamp'],
|
292 |
-
y=combined_agent_data['apr'],
|
293 |
-
mode='lines',
|
294 |
-
line=dict(color='purple', width=2),
|
295 |
-
name=f'{agent_name}',
|
296 |
-
legendgroup=agent_name,
|
297 |
-
showlegend=(i == 0), # Only show in legend once
|
298 |
-
hovertemplate='Time: %{x}<br>Value: %{y:.2f}<extra></extra>'
|
299 |
-
),
|
300 |
-
row=row, col=1
|
301 |
-
)
|
302 |
-
|
303 |
-
# Add scatter points for APR values
|
304 |
-
if not apr_data.empty:
|
305 |
-
fig.add_trace(
|
306 |
-
go.Scatter(
|
307 |
-
x=apr_data['timestamp'],
|
308 |
-
y=apr_data['apr'],
|
309 |
-
mode='markers',
|
310 |
-
marker=dict(color='blue', size=10, symbol='circle'),
|
311 |
-
name='APR',
|
312 |
-
legendgroup='APR',
|
313 |
-
showlegend=(i == 0),
|
314 |
-
hovertemplate='Time: %{x}<br>APR: %{y:.2f}<extra></extra>'
|
315 |
-
),
|
316 |
-
row=row, col=1
|
317 |
-
)
|
318 |
-
|
319 |
-
# Add scatter points for Performance values
|
320 |
-
if not perf_data.empty:
|
321 |
-
fig.add_trace(
|
322 |
-
go.Scatter(
|
323 |
-
x=perf_data['timestamp'],
|
324 |
-
y=perf_data['apr'],
|
325 |
-
mode='markers',
|
326 |
-
marker=dict(color='red', size=10, symbol='square'),
|
327 |
-
name='Performance',
|
328 |
-
legendgroup='Performance',
|
329 |
-
showlegend=(i == 0),
|
330 |
-
hovertemplate='Time: %{x}<br>Performance: %{y:.2f}<extra></extra>'
|
331 |
-
),
|
332 |
-
row=row, col=1
|
333 |
-
)
|
334 |
-
|
335 |
-
# Update axes
|
336 |
-
fig.update_xaxes(title_text="Time", row=row, col=1)
|
337 |
-
fig.update_yaxes(title_text="Value", row=row, col=1, gridcolor='rgba(0,0,0,0.1)')
|
338 |
-
|
339 |
-
# Update layout
|
340 |
-
fig.update_layout(
|
341 |
-
height=400 * len(unique_agents),
|
342 |
-
width=1000,
|
343 |
-
title_text="APR and Performance Values per Agent",
|
344 |
-
template="plotly_white",
|
345 |
-
legend=dict(
|
346 |
-
orientation="h",
|
347 |
-
yanchor="bottom",
|
348 |
-
y=1.02,
|
349 |
-
xanchor="right",
|
350 |
-
x=1
|
351 |
-
),
|
352 |
-
margin=dict(r=20, l=20, t=30, b=20),
|
353 |
-
hovermode="closest"
|
354 |
-
)
|
355 |
-
|
356 |
-
# Save the figure (still useful for reference)
|
357 |
-
graph_file = "modius_apr_per_agent_graph.html"
|
358 |
-
fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
359 |
-
|
360 |
-
# Also save as image for compatibility
|
361 |
-
img_file = "modius_apr_per_agent_graph.png"
|
362 |
-
fig.write_image(img_file)
|
363 |
-
|
364 |
-
logger.info(f"Per-agent graph saved to {graph_file} and {img_file}")
|
365 |
-
|
366 |
-
# Return the figure object for direct use in Gradio
|
367 |
-
return fig
|
368 |
-
|
369 |
-
def create_combined_time_series_graph(df):
|
370 |
-
"""Create a combined time series graph for all agents using Plotly"""
|
371 |
-
if len(df) == 0:
|
372 |
-
logger.error("No data to plot combined graph")
|
373 |
-
fig = go.Figure()
|
374 |
-
fig.add_annotation(
|
375 |
-
text="No data available",
|
376 |
-
x=0.5, y=0.5,
|
377 |
-
showarrow=False, font=dict(size=20)
|
378 |
-
)
|
379 |
-
return fig
|
380 |
-
|
381 |
-
# Create Plotly figure
|
382 |
-
fig = go.Figure()
|
383 |
-
|
384 |
-
# Get unique agents
|
385 |
-
unique_agents = df['agent_id'].unique()
|
386 |
-
|
387 |
-
# Define a color scale for different agents
|
388 |
-
colors = px.colors.qualitative.Plotly[:len(unique_agents)]
|
389 |
-
|
390 |
-
# Add background shapes for APR and Performance regions
|
391 |
-
min_time = df['timestamp'].min()
|
392 |
-
max_time = df['timestamp'].max()
|
393 |
-
|
394 |
-
# Add shape for APR region (above zero)
|
395 |
-
fig.add_shape(
|
396 |
-
type="rect",
|
397 |
-
fillcolor="rgba(230, 243, 255, 0.3)",
|
398 |
-
line=dict(width=0),
|
399 |
-
y0=0, y1=1000,
|
400 |
-
x0=min_time, x1=max_time,
|
401 |
-
layer="below"
|
402 |
-
)
|
403 |
-
|
404 |
-
# Add shape for Performance region (below zero)
|
405 |
-
fig.add_shape(
|
406 |
-
type="rect",
|
407 |
-
fillcolor="rgba(255, 230, 230, 0.3)",
|
408 |
-
line=dict(width=0),
|
409 |
-
y0=-1000, y1=0,
|
410 |
-
x0=min_time, x1=max_time,
|
411 |
-
layer="below"
|
412 |
-
)
|
413 |
-
|
414 |
-
# Add zero line
|
415 |
-
fig.add_shape(
|
416 |
-
type="line",
|
417 |
-
line=dict(dash="solid", width=1.5, color="black"),
|
418 |
-
y0=0, y1=0,
|
419 |
-
x0=min_time, x1=max_time
|
420 |
-
)
|
421 |
-
|
422 |
-
# Add data for each agent
|
423 |
-
for i, agent_id in enumerate(unique_agents):
|
424 |
-
agent_data = df[df['agent_id'] == agent_id].copy()
|
425 |
-
agent_name = agent_data['agent_name'].iloc[0]
|
426 |
-
color = colors[i % len(colors)]
|
427 |
-
|
428 |
-
# Sort the data by timestamp
|
429 |
-
agent_data = agent_data.sort_values('timestamp')
|
430 |
-
|
431 |
-
# Add the combined line for both APR and Performance
|
432 |
-
fig.add_trace(
|
433 |
-
go.Scatter(
|
434 |
-
x=agent_data['timestamp'],
|
435 |
-
y=agent_data['apr'],
|
436 |
-
mode='lines',
|
437 |
-
line=dict(color=color, width=2),
|
438 |
-
name=f'{agent_name}',
|
439 |
-
legendgroup=agent_name,
|
440 |
-
hovertemplate='Time: %{x}<br>Value: %{y:.2f}<br>Agent: ' + agent_name + '<extra></extra>'
|
441 |
-
)
|
442 |
-
)
|
443 |
-
|
444 |
-
# Add scatter points for APR values
|
445 |
-
apr_data = agent_data[agent_data['metric_type'] == 'APR']
|
446 |
-
if not apr_data.empty:
|
447 |
-
fig.add_trace(
|
448 |
-
go.Scatter(
|
449 |
-
x=apr_data['timestamp'],
|
450 |
-
y=apr_data['apr'],
|
451 |
-
mode='markers',
|
452 |
-
marker=dict(color=color, symbol='circle', size=8),
|
453 |
-
name=f'{agent_name} APR',
|
454 |
-
legendgroup=agent_name,
|
455 |
-
showlegend=False,
|
456 |
-
hovertemplate='Time: %{x}<br>APR: %{y:.2f}<br>Agent: ' + agent_name + '<extra></extra>'
|
457 |
-
)
|
458 |
-
)
|
459 |
-
|
460 |
-
# Add scatter points for Performance values
|
461 |
-
perf_data = agent_data[agent_data['metric_type'] == 'Performance']
|
462 |
-
if not perf_data.empty:
|
463 |
-
fig.add_trace(
|
464 |
-
go.Scatter(
|
465 |
-
x=perf_data['timestamp'],
|
466 |
-
y=perf_data['apr'],
|
467 |
-
mode='markers',
|
468 |
-
marker=dict(color=color, symbol='square', size=8),
|
469 |
-
name=f'{agent_name} Perf',
|
470 |
-
legendgroup=agent_name,
|
471 |
-
showlegend=False,
|
472 |
-
hovertemplate='Time: %{x}<br>Performance: %{y:.2f}<br>Agent: ' + agent_name + '<extra></extra>'
|
473 |
-
)
|
474 |
-
)
|
475 |
-
|
476 |
-
# Update layout
|
477 |
-
fig.update_layout(
|
478 |
-
title="APR and Performance Values for All Agents",
|
479 |
-
xaxis_title="Time",
|
480 |
-
yaxis_title="Value",
|
481 |
-
template="plotly_white",
|
482 |
-
height=600,
|
483 |
-
width=1000,
|
484 |
-
legend=dict(
|
485 |
-
orientation="h",
|
486 |
-
yanchor="bottom",
|
487 |
-
y=1.02,
|
488 |
-
xanchor="right",
|
489 |
-
x=1,
|
490 |
-
groupclick="toggleitem"
|
491 |
-
),
|
492 |
-
margin=dict(r=20, l=20, t=30, b=20),
|
493 |
-
hovermode="closest"
|
494 |
-
)
|
495 |
-
|
496 |
-
# Update axes
|
497 |
-
fig.update_xaxes(showgrid=True, gridwidth=1, gridcolor='rgba(0,0,0,0.1)')
|
498 |
-
fig.update_yaxes(showgrid=True, gridwidth=1, gridcolor='rgba(0,0,0,0.1)')
|
499 |
-
|
500 |
-
# Save the figure (still useful for reference)
|
501 |
-
graph_file = "modius_apr_combined_graph.html"
|
502 |
-
fig.write_html(graph_file, include_plotlyjs='cdn', full_html=False)
|
503 |
-
|
504 |
-
# Also save as image for compatibility
|
505 |
-
img_file = "modius_apr_combined_graph.png"
|
506 |
-
fig.write_image(img_file)
|
507 |
-
|
508 |
-
logger.info(f"Combined graph saved to {graph_file} and {img_file}")
|
509 |
-
|
510 |
-
# Return the figure object for direct use in Gradio
|
511 |
-
return fig
|
512 |
-
|
513 |
-
def save_to_csv(df):
|
514 |
-
"""Save the APR data DataFrame to a CSV file and return the file path"""
|
515 |
-
if df.empty:
|
516 |
-
logger.error("No APR data to save to CSV")
|
517 |
-
return None
|
518 |
-
|
519 |
-
# Define the CSV file path
|
520 |
-
csv_file = "modius_apr_values.csv"
|
521 |
-
|
522 |
-
# Save to CSV
|
523 |
-
df.to_csv(csv_file, index=False)
|
524 |
-
logger.info(f"APR data saved to {csv_file}")
|
525 |
-
|
526 |
-
# Also generate a statistics CSV file
|
527 |
-
stats_df = generate_statistics_from_data(df)
|
528 |
-
stats_csv = "modius_apr_statistics.csv"
|
529 |
-
stats_df.to_csv(stats_csv, index=False)
|
530 |
-
logger.info(f"Statistics saved to {stats_csv}")
|
531 |
-
|
532 |
-
return csv_file
|
533 |
-
|
534 |
-
def generate_statistics_from_data(df):
|
535 |
-
"""Generate statistics from the APR data"""
|
536 |
-
if df.empty:
|
537 |
-
return pd.DataFrame()
|
538 |
-
|
539 |
-
# Get unique agents
|
540 |
-
unique_agents = df['agent_id'].unique()
|
541 |
-
stats_list = []
|
542 |
-
|
543 |
-
# Generate per-agent statistics
|
544 |
-
for agent_id in unique_agents:
|
545 |
-
agent_data = df[df['agent_id'] == agent_id]
|
546 |
-
agent_name = agent_data['agent_name'].iloc[0]
|
547 |
-
|
548 |
-
# APR statistics
|
549 |
-
apr_data = agent_data[agent_data['metric_type'] == 'APR']
|
550 |
-
real_apr = apr_data[apr_data['is_dummy'] == False]
|
551 |
-
|
552 |
-
# Performance statistics
|
553 |
-
perf_data = agent_data[agent_data['metric_type'] == 'Performance']
|
554 |
-
real_perf = perf_data[perf_data['is_dummy'] == False]
|
555 |
-
|
556 |
-
stats = {
|
557 |
-
'agent_id': agent_id,
|
558 |
-
'agent_name': agent_name,
|
559 |
-
'total_points': len(agent_data),
|
560 |
-
'apr_points': len(apr_data),
|
561 |
-
'performance_points': len(perf_data),
|
562 |
-
'real_apr_points': len(real_apr),
|
563 |
-
'real_performance_points': len(real_perf),
|
564 |
-
'avg_apr': apr_data['apr'].mean() if not apr_data.empty else None,
|
565 |
-
'avg_performance': perf_data['apr'].mean() if not perf_data.empty else None,
|
566 |
-
'max_apr': apr_data['apr'].max() if not apr_data.empty else None,
|
567 |
-
'min_apr': apr_data['apr'].min() if not apr_data.empty else None,
|
568 |
-
'latest_timestamp': agent_data['timestamp'].max().strftime('%Y-%m-%d %H:%M:%S') if not agent_data.empty else None
|
569 |
-
}
|
570 |
-
stats_list.append(stats)
|
571 |
-
|
572 |
-
# Generate overall statistics
|
573 |
-
apr_only = df[df['metric_type'] == 'APR']
|
574 |
-
perf_only = df[df['metric_type'] == 'Performance']
|
575 |
-
|
576 |
-
overall_stats = {
|
577 |
-
'agent_id': 'ALL',
|
578 |
-
'agent_name': 'All Agents',
|
579 |
-
'total_points': len(df),
|
580 |
-
'apr_points': len(apr_only),
|
581 |
-
'performance_points': len(perf_only),
|
582 |
-
'real_apr_points': len(apr_only[apr_only['is_dummy'] == False]),
|
583 |
-
'real_performance_points': len(perf_only[perf_only['is_dummy'] == False]),
|
584 |
-
'avg_apr': apr_only['apr'].mean() if not apr_only.empty else None,
|
585 |
-
'avg_performance': perf_only['apr'].mean() if not perf_only.empty else None,
|
586 |
-
'max_apr': apr_only['apr'].max() if not apr_only.empty else None,
|
587 |
-
'min_apr': apr_only['apr'].min() if not apr_only.empty else None,
|
588 |
-
'latest_timestamp': df['timestamp'].max().strftime('%Y-%m-%d %H:%M:%S') if not df.empty else None
|
589 |
-
}
|
590 |
-
stats_list.append(overall_stats)
|
591 |
-
|
592 |
-
return pd.DataFrame(stats_list)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contracts/NonfungiblePositionManager.json
DELETED
@@ -1,1228 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"contractName": "",
|
3 |
-
"abi": [
|
4 |
-
{
|
5 |
-
"inputs": [
|
6 |
-
{
|
7 |
-
"internalType": "address",
|
8 |
-
"name": "_factory",
|
9 |
-
"type": "address"
|
10 |
-
},
|
11 |
-
{
|
12 |
-
"internalType": "address",
|
13 |
-
"name": "_WETH9",
|
14 |
-
"type": "address"
|
15 |
-
},
|
16 |
-
{
|
17 |
-
"internalType": "address",
|
18 |
-
"name": "_tokenDescriptor_",
|
19 |
-
"type": "address"
|
20 |
-
}
|
21 |
-
],
|
22 |
-
"stateMutability": "nonpayable",
|
23 |
-
"type": "constructor"
|
24 |
-
},
|
25 |
-
{
|
26 |
-
"anonymous": false,
|
27 |
-
"inputs": [
|
28 |
-
{
|
29 |
-
"indexed": true,
|
30 |
-
"internalType": "address",
|
31 |
-
"name": "owner",
|
32 |
-
"type": "address"
|
33 |
-
},
|
34 |
-
{
|
35 |
-
"indexed": true,
|
36 |
-
"internalType": "address",
|
37 |
-
"name": "approved",
|
38 |
-
"type": "address"
|
39 |
-
},
|
40 |
-
{
|
41 |
-
"indexed": true,
|
42 |
-
"internalType": "uint256",
|
43 |
-
"name": "tokenId",
|
44 |
-
"type": "uint256"
|
45 |
-
}
|
46 |
-
],
|
47 |
-
"name": "Approval",
|
48 |
-
"type": "event"
|
49 |
-
},
|
50 |
-
{
|
51 |
-
"anonymous": false,
|
52 |
-
"inputs": [
|
53 |
-
{
|
54 |
-
"indexed": true,
|
55 |
-
"internalType": "address",
|
56 |
-
"name": "owner",
|
57 |
-
"type": "address"
|
58 |
-
},
|
59 |
-
{
|
60 |
-
"indexed": true,
|
61 |
-
"internalType": "address",
|
62 |
-
"name": "operator",
|
63 |
-
"type": "address"
|
64 |
-
},
|
65 |
-
{
|
66 |
-
"indexed": false,
|
67 |
-
"internalType": "bool",
|
68 |
-
"name": "approved",
|
69 |
-
"type": "bool"
|
70 |
-
}
|
71 |
-
],
|
72 |
-
"name": "ApprovalForAll",
|
73 |
-
"type": "event"
|
74 |
-
},
|
75 |
-
{
|
76 |
-
"anonymous": false,
|
77 |
-
"inputs": [
|
78 |
-
{
|
79 |
-
"indexed": true,
|
80 |
-
"internalType": "uint256",
|
81 |
-
"name": "tokenId",
|
82 |
-
"type": "uint256"
|
83 |
-
},
|
84 |
-
{
|
85 |
-
"indexed": false,
|
86 |
-
"internalType": "address",
|
87 |
-
"name": "recipient",
|
88 |
-
"type": "address"
|
89 |
-
},
|
90 |
-
{
|
91 |
-
"indexed": false,
|
92 |
-
"internalType": "uint256",
|
93 |
-
"name": "amount0",
|
94 |
-
"type": "uint256"
|
95 |
-
},
|
96 |
-
{
|
97 |
-
"indexed": false,
|
98 |
-
"internalType": "uint256",
|
99 |
-
"name": "amount1",
|
100 |
-
"type": "uint256"
|
101 |
-
}
|
102 |
-
],
|
103 |
-
"name": "Collect",
|
104 |
-
"type": "event"
|
105 |
-
},
|
106 |
-
{
|
107 |
-
"anonymous": false,
|
108 |
-
"inputs": [
|
109 |
-
{
|
110 |
-
"indexed": true,
|
111 |
-
"internalType": "uint256",
|
112 |
-
"name": "tokenId",
|
113 |
-
"type": "uint256"
|
114 |
-
},
|
115 |
-
{
|
116 |
-
"indexed": false,
|
117 |
-
"internalType": "uint128",
|
118 |
-
"name": "liquidity",
|
119 |
-
"type": "uint128"
|
120 |
-
},
|
121 |
-
{
|
122 |
-
"indexed": false,
|
123 |
-
"internalType": "uint256",
|
124 |
-
"name": "amount0",
|
125 |
-
"type": "uint256"
|
126 |
-
},
|
127 |
-
{
|
128 |
-
"indexed": false,
|
129 |
-
"internalType": "uint256",
|
130 |
-
"name": "amount1",
|
131 |
-
"type": "uint256"
|
132 |
-
}
|
133 |
-
],
|
134 |
-
"name": "DecreaseLiquidity",
|
135 |
-
"type": "event"
|
136 |
-
},
|
137 |
-
{
|
138 |
-
"anonymous": false,
|
139 |
-
"inputs": [
|
140 |
-
{
|
141 |
-
"indexed": true,
|
142 |
-
"internalType": "uint256",
|
143 |
-
"name": "tokenId",
|
144 |
-
"type": "uint256"
|
145 |
-
},
|
146 |
-
{
|
147 |
-
"indexed": false,
|
148 |
-
"internalType": "uint128",
|
149 |
-
"name": "liquidity",
|
150 |
-
"type": "uint128"
|
151 |
-
},
|
152 |
-
{
|
153 |
-
"indexed": false,
|
154 |
-
"internalType": "uint256",
|
155 |
-
"name": "amount0",
|
156 |
-
"type": "uint256"
|
157 |
-
},
|
158 |
-
{
|
159 |
-
"indexed": false,
|
160 |
-
"internalType": "uint256",
|
161 |
-
"name": "amount1",
|
162 |
-
"type": "uint256"
|
163 |
-
}
|
164 |
-
],
|
165 |
-
"name": "IncreaseLiquidity",
|
166 |
-
"type": "event"
|
167 |
-
},
|
168 |
-
{
|
169 |
-
"anonymous": false,
|
170 |
-
"inputs": [
|
171 |
-
{
|
172 |
-
"indexed": true,
|
173 |
-
"internalType": "address",
|
174 |
-
"name": "from",
|
175 |
-
"type": "address"
|
176 |
-
},
|
177 |
-
{
|
178 |
-
"indexed": true,
|
179 |
-
"internalType": "address",
|
180 |
-
"name": "to",
|
181 |
-
"type": "address"
|
182 |
-
},
|
183 |
-
{
|
184 |
-
"indexed": true,
|
185 |
-
"internalType": "uint256",
|
186 |
-
"name": "tokenId",
|
187 |
-
"type": "uint256"
|
188 |
-
}
|
189 |
-
],
|
190 |
-
"name": "Transfer",
|
191 |
-
"type": "event"
|
192 |
-
},
|
193 |
-
{
|
194 |
-
"inputs": [],
|
195 |
-
"name": "DOMAIN_SEPARATOR",
|
196 |
-
"outputs": [
|
197 |
-
{
|
198 |
-
"internalType": "bytes32",
|
199 |
-
"name": "",
|
200 |
-
"type": "bytes32"
|
201 |
-
}
|
202 |
-
],
|
203 |
-
"stateMutability": "view",
|
204 |
-
"type": "function"
|
205 |
-
},
|
206 |
-
{
|
207 |
-
"inputs": [],
|
208 |
-
"name": "PERMIT_TYPEHASH",
|
209 |
-
"outputs": [
|
210 |
-
{
|
211 |
-
"internalType": "bytes32",
|
212 |
-
"name": "",
|
213 |
-
"type": "bytes32"
|
214 |
-
}
|
215 |
-
],
|
216 |
-
"stateMutability": "view",
|
217 |
-
"type": "function"
|
218 |
-
},
|
219 |
-
{
|
220 |
-
"inputs": [],
|
221 |
-
"name": "WETH9",
|
222 |
-
"outputs": [
|
223 |
-
{
|
224 |
-
"internalType": "address",
|
225 |
-
"name": "",
|
226 |
-
"type": "address"
|
227 |
-
}
|
228 |
-
],
|
229 |
-
"stateMutability": "view",
|
230 |
-
"type": "function"
|
231 |
-
},
|
232 |
-
{
|
233 |
-
"inputs": [
|
234 |
-
{
|
235 |
-
"internalType": "address",
|
236 |
-
"name": "to",
|
237 |
-
"type": "address"
|
238 |
-
},
|
239 |
-
{
|
240 |
-
"internalType": "uint256",
|
241 |
-
"name": "tokenId",
|
242 |
-
"type": "uint256"
|
243 |
-
}
|
244 |
-
],
|
245 |
-
"name": "approve",
|
246 |
-
"outputs": [],
|
247 |
-
"stateMutability": "nonpayable",
|
248 |
-
"type": "function"
|
249 |
-
},
|
250 |
-
{
|
251 |
-
"inputs": [
|
252 |
-
{
|
253 |
-
"internalType": "address",
|
254 |
-
"name": "owner",
|
255 |
-
"type": "address"
|
256 |
-
}
|
257 |
-
],
|
258 |
-
"name": "balanceOf",
|
259 |
-
"outputs": [
|
260 |
-
{
|
261 |
-
"internalType": "uint256",
|
262 |
-
"name": "",
|
263 |
-
"type": "uint256"
|
264 |
-
}
|
265 |
-
],
|
266 |
-
"stateMutability": "view",
|
267 |
-
"type": "function"
|
268 |
-
},
|
269 |
-
{
|
270 |
-
"inputs": [],
|
271 |
-
"name": "baseURI",
|
272 |
-
"outputs": [
|
273 |
-
{
|
274 |
-
"internalType": "string",
|
275 |
-
"name": "",
|
276 |
-
"type": "string"
|
277 |
-
}
|
278 |
-
],
|
279 |
-
"stateMutability": "pure",
|
280 |
-
"type": "function"
|
281 |
-
},
|
282 |
-
{
|
283 |
-
"inputs": [
|
284 |
-
{
|
285 |
-
"internalType": "uint256",
|
286 |
-
"name": "tokenId",
|
287 |
-
"type": "uint256"
|
288 |
-
}
|
289 |
-
],
|
290 |
-
"name": "burn",
|
291 |
-
"outputs": [],
|
292 |
-
"stateMutability": "payable",
|
293 |
-
"type": "function"
|
294 |
-
},
|
295 |
-
{
|
296 |
-
"inputs": [
|
297 |
-
{
|
298 |
-
"components": [
|
299 |
-
{
|
300 |
-
"internalType": "uint256",
|
301 |
-
"name": "tokenId",
|
302 |
-
"type": "uint256"
|
303 |
-
},
|
304 |
-
{
|
305 |
-
"internalType": "address",
|
306 |
-
"name": "recipient",
|
307 |
-
"type": "address"
|
308 |
-
},
|
309 |
-
{
|
310 |
-
"internalType": "uint128",
|
311 |
-
"name": "amount0Max",
|
312 |
-
"type": "uint128"
|
313 |
-
},
|
314 |
-
{
|
315 |
-
"internalType": "uint128",
|
316 |
-
"name": "amount1Max",
|
317 |
-
"type": "uint128"
|
318 |
-
}
|
319 |
-
],
|
320 |
-
"internalType": "struct INonfungiblePositionManager.CollectParams",
|
321 |
-
"name": "params",
|
322 |
-
"type": "tuple"
|
323 |
-
}
|
324 |
-
],
|
325 |
-
"name": "collect",
|
326 |
-
"outputs": [
|
327 |
-
{
|
328 |
-
"internalType": "uint256",
|
329 |
-
"name": "amount0",
|
330 |
-
"type": "uint256"
|
331 |
-
},
|
332 |
-
{
|
333 |
-
"internalType": "uint256",
|
334 |
-
"name": "amount1",
|
335 |
-
"type": "uint256"
|
336 |
-
}
|
337 |
-
],
|
338 |
-
"stateMutability": "payable",
|
339 |
-
"type": "function"
|
340 |
-
},
|
341 |
-
{
|
342 |
-
"inputs": [
|
343 |
-
{
|
344 |
-
"internalType": "address",
|
345 |
-
"name": "token0",
|
346 |
-
"type": "address"
|
347 |
-
},
|
348 |
-
{
|
349 |
-
"internalType": "address",
|
350 |
-
"name": "token1",
|
351 |
-
"type": "address"
|
352 |
-
},
|
353 |
-
{
|
354 |
-
"internalType": "uint24",
|
355 |
-
"name": "fee",
|
356 |
-
"type": "uint24"
|
357 |
-
},
|
358 |
-
{
|
359 |
-
"internalType": "uint160",
|
360 |
-
"name": "sqrtPriceX96",
|
361 |
-
"type": "uint160"
|
362 |
-
}
|
363 |
-
],
|
364 |
-
"name": "createAndInitializePoolIfNecessary",
|
365 |
-
"outputs": [
|
366 |
-
{
|
367 |
-
"internalType": "address",
|
368 |
-
"name": "pool",
|
369 |
-
"type": "address"
|
370 |
-
}
|
371 |
-
],
|
372 |
-
"stateMutability": "payable",
|
373 |
-
"type": "function"
|
374 |
-
},
|
375 |
-
{
|
376 |
-
"inputs": [
|
377 |
-
{
|
378 |
-
"components": [
|
379 |
-
{
|
380 |
-
"internalType": "uint256",
|
381 |
-
"name": "tokenId",
|
382 |
-
"type": "uint256"
|
383 |
-
},
|
384 |
-
{
|
385 |
-
"internalType": "uint128",
|
386 |
-
"name": "liquidity",
|
387 |
-
"type": "uint128"
|
388 |
-
},
|
389 |
-
{
|
390 |
-
"internalType": "uint256",
|
391 |
-
"name": "amount0Min",
|
392 |
-
"type": "uint256"
|
393 |
-
},
|
394 |
-
{
|
395 |
-
"internalType": "uint256",
|
396 |
-
"name": "amount1Min",
|
397 |
-
"type": "uint256"
|
398 |
-
},
|
399 |
-
{
|
400 |
-
"internalType": "uint256",
|
401 |
-
"name": "deadline",
|
402 |
-
"type": "uint256"
|
403 |
-
}
|
404 |
-
],
|
405 |
-
"internalType": "struct INonfungiblePositionManager.DecreaseLiquidityParams",
|
406 |
-
"name": "params",
|
407 |
-
"type": "tuple"
|
408 |
-
}
|
409 |
-
],
|
410 |
-
"name": "decreaseLiquidity",
|
411 |
-
"outputs": [
|
412 |
-
{
|
413 |
-
"internalType": "uint256",
|
414 |
-
"name": "amount0",
|
415 |
-
"type": "uint256"
|
416 |
-
},
|
417 |
-
{
|
418 |
-
"internalType": "uint256",
|
419 |
-
"name": "amount1",
|
420 |
-
"type": "uint256"
|
421 |
-
}
|
422 |
-
],
|
423 |
-
"stateMutability": "payable",
|
424 |
-
"type": "function"
|
425 |
-
},
|
426 |
-
{
|
427 |
-
"inputs": [],
|
428 |
-
"name": "factory",
|
429 |
-
"outputs": [
|
430 |
-
{
|
431 |
-
"internalType": "address",
|
432 |
-
"name": "",
|
433 |
-
"type": "address"
|
434 |
-
}
|
435 |
-
],
|
436 |
-
"stateMutability": "view",
|
437 |
-
"type": "function"
|
438 |
-
},
|
439 |
-
{
|
440 |
-
"inputs": [
|
441 |
-
{
|
442 |
-
"internalType": "uint256",
|
443 |
-
"name": "tokenId",
|
444 |
-
"type": "uint256"
|
445 |
-
}
|
446 |
-
],
|
447 |
-
"name": "getApproved",
|
448 |
-
"outputs": [
|
449 |
-
{
|
450 |
-
"internalType": "address",
|
451 |
-
"name": "",
|
452 |
-
"type": "address"
|
453 |
-
}
|
454 |
-
],
|
455 |
-
"stateMutability": "view",
|
456 |
-
"type": "function"
|
457 |
-
},
|
458 |
-
{
|
459 |
-
"inputs": [
|
460 |
-
{
|
461 |
-
"components": [
|
462 |
-
{
|
463 |
-
"internalType": "uint256",
|
464 |
-
"name": "tokenId",
|
465 |
-
"type": "uint256"
|
466 |
-
},
|
467 |
-
{
|
468 |
-
"internalType": "uint256",
|
469 |
-
"name": "amount0Desired",
|
470 |
-
"type": "uint256"
|
471 |
-
},
|
472 |
-
{
|
473 |
-
"internalType": "uint256",
|
474 |
-
"name": "amount1Desired",
|
475 |
-
"type": "uint256"
|
476 |
-
},
|
477 |
-
{
|
478 |
-
"internalType": "uint256",
|
479 |
-
"name": "amount0Min",
|
480 |
-
"type": "uint256"
|
481 |
-
},
|
482 |
-
{
|
483 |
-
"internalType": "uint256",
|
484 |
-
"name": "amount1Min",
|
485 |
-
"type": "uint256"
|
486 |
-
},
|
487 |
-
{
|
488 |
-
"internalType": "uint256",
|
489 |
-
"name": "deadline",
|
490 |
-
"type": "uint256"
|
491 |
-
}
|
492 |
-
],
|
493 |
-
"internalType": "struct INonfungiblePositionManager.IncreaseLiquidityParams",
|
494 |
-
"name": "params",
|
495 |
-
"type": "tuple"
|
496 |
-
}
|
497 |
-
],
|
498 |
-
"name": "increaseLiquidity",
|
499 |
-
"outputs": [
|
500 |
-
{
|
501 |
-
"internalType": "uint128",
|
502 |
-
"name": "liquidity",
|
503 |
-
"type": "uint128"
|
504 |
-
},
|
505 |
-
{
|
506 |
-
"internalType": "uint256",
|
507 |
-
"name": "amount0",
|
508 |
-
"type": "uint256"
|
509 |
-
},
|
510 |
-
{
|
511 |
-
"internalType": "uint256",
|
512 |
-
"name": "amount1",
|
513 |
-
"type": "uint256"
|
514 |
-
}
|
515 |
-
],
|
516 |
-
"stateMutability": "payable",
|
517 |
-
"type": "function"
|
518 |
-
},
|
519 |
-
{
|
520 |
-
"inputs": [
|
521 |
-
{
|
522 |
-
"internalType": "address",
|
523 |
-
"name": "owner",
|
524 |
-
"type": "address"
|
525 |
-
},
|
526 |
-
{
|
527 |
-
"internalType": "address",
|
528 |
-
"name": "operator",
|
529 |
-
"type": "address"
|
530 |
-
}
|
531 |
-
],
|
532 |
-
"name": "isApprovedForAll",
|
533 |
-
"outputs": [
|
534 |
-
{
|
535 |
-
"internalType": "bool",
|
536 |
-
"name": "",
|
537 |
-
"type": "bool"
|
538 |
-
}
|
539 |
-
],
|
540 |
-
"stateMutability": "view",
|
541 |
-
"type": "function"
|
542 |
-
},
|
543 |
-
{
|
544 |
-
"inputs": [
|
545 |
-
{
|
546 |
-
"components": [
|
547 |
-
{
|
548 |
-
"internalType": "address",
|
549 |
-
"name": "token0",
|
550 |
-
"type": "address"
|
551 |
-
},
|
552 |
-
{
|
553 |
-
"internalType": "address",
|
554 |
-
"name": "token1",
|
555 |
-
"type": "address"
|
556 |
-
},
|
557 |
-
{
|
558 |
-
"internalType": "uint24",
|
559 |
-
"name": "fee",
|
560 |
-
"type": "uint24"
|
561 |
-
},
|
562 |
-
{
|
563 |
-
"internalType": "int24",
|
564 |
-
"name": "tickLower",
|
565 |
-
"type": "int24"
|
566 |
-
},
|
567 |
-
{
|
568 |
-
"internalType": "int24",
|
569 |
-
"name": "tickUpper",
|
570 |
-
"type": "int24"
|
571 |
-
},
|
572 |
-
{
|
573 |
-
"internalType": "uint256",
|
574 |
-
"name": "amount0Desired",
|
575 |
-
"type": "uint256"
|
576 |
-
},
|
577 |
-
{
|
578 |
-
"internalType": "uint256",
|
579 |
-
"name": "amount1Desired",
|
580 |
-
"type": "uint256"
|
581 |
-
},
|
582 |
-
{
|
583 |
-
"internalType": "uint256",
|
584 |
-
"name": "amount0Min",
|
585 |
-
"type": "uint256"
|
586 |
-
},
|
587 |
-
{
|
588 |
-
"internalType": "uint256",
|
589 |
-
"name": "amount1Min",
|
590 |
-
"type": "uint256"
|
591 |
-
},
|
592 |
-
{
|
593 |
-
"internalType": "address",
|
594 |
-
"name": "recipient",
|
595 |
-
"type": "address"
|
596 |
-
},
|
597 |
-
{
|
598 |
-
"internalType": "uint256",
|
599 |
-
"name": "deadline",
|
600 |
-
"type": "uint256"
|
601 |
-
}
|
602 |
-
],
|
603 |
-
"internalType": "struct INonfungiblePositionManager.MintParams",
|
604 |
-
"name": "params",
|
605 |
-
"type": "tuple"
|
606 |
-
}
|
607 |
-
],
|
608 |
-
"name": "mint",
|
609 |
-
"outputs": [
|
610 |
-
{
|
611 |
-
"internalType": "uint256",
|
612 |
-
"name": "tokenId",
|
613 |
-
"type": "uint256"
|
614 |
-
},
|
615 |
-
{
|
616 |
-
"internalType": "uint128",
|
617 |
-
"name": "liquidity",
|
618 |
-
"type": "uint128"
|
619 |
-
},
|
620 |
-
{
|
621 |
-
"internalType": "uint256",
|
622 |
-
"name": "amount0",
|
623 |
-
"type": "uint256"
|
624 |
-
},
|
625 |
-
{
|
626 |
-
"internalType": "uint256",
|
627 |
-
"name": "amount1",
|
628 |
-
"type": "uint256"
|
629 |
-
}
|
630 |
-
],
|
631 |
-
"stateMutability": "payable",
|
632 |
-
"type": "function"
|
633 |
-
},
|
634 |
-
{
|
635 |
-
"inputs": [
|
636 |
-
{
|
637 |
-
"internalType": "bytes[]",
|
638 |
-
"name": "data",
|
639 |
-
"type": "bytes[]"
|
640 |
-
}
|
641 |
-
],
|
642 |
-
"name": "multicall",
|
643 |
-
"outputs": [
|
644 |
-
{
|
645 |
-
"internalType": "bytes[]",
|
646 |
-
"name": "results",
|
647 |
-
"type": "bytes[]"
|
648 |
-
}
|
649 |
-
],
|
650 |
-
"stateMutability": "payable",
|
651 |
-
"type": "function"
|
652 |
-
},
|
653 |
-
{
|
654 |
-
"inputs": [],
|
655 |
-
"name": "name",
|
656 |
-
"outputs": [
|
657 |
-
{
|
658 |
-
"internalType": "string",
|
659 |
-
"name": "",
|
660 |
-
"type": "string"
|
661 |
-
}
|
662 |
-
],
|
663 |
-
"stateMutability": "view",
|
664 |
-
"type": "function"
|
665 |
-
},
|
666 |
-
{
|
667 |
-
"inputs": [
|
668 |
-
{
|
669 |
-
"internalType": "uint256",
|
670 |
-
"name": "tokenId",
|
671 |
-
"type": "uint256"
|
672 |
-
}
|
673 |
-
],
|
674 |
-
"name": "ownerOf",
|
675 |
-
"outputs": [
|
676 |
-
{
|
677 |
-
"internalType": "address",
|
678 |
-
"name": "",
|
679 |
-
"type": "address"
|
680 |
-
}
|
681 |
-
],
|
682 |
-
"stateMutability": "view",
|
683 |
-
"type": "function"
|
684 |
-
},
|
685 |
-
{
|
686 |
-
"inputs": [
|
687 |
-
{
|
688 |
-
"internalType": "address",
|
689 |
-
"name": "spender",
|
690 |
-
"type": "address"
|
691 |
-
},
|
692 |
-
{
|
693 |
-
"internalType": "uint256",
|
694 |
-
"name": "tokenId",
|
695 |
-
"type": "uint256"
|
696 |
-
},
|
697 |
-
{
|
698 |
-
"internalType": "uint256",
|
699 |
-
"name": "deadline",
|
700 |
-
"type": "uint256"
|
701 |
-
},
|
702 |
-
{
|
703 |
-
"internalType": "uint8",
|
704 |
-
"name": "v",
|
705 |
-
"type": "uint8"
|
706 |
-
},
|
707 |
-
{
|
708 |
-
"internalType": "bytes32",
|
709 |
-
"name": "r",
|
710 |
-
"type": "bytes32"
|
711 |
-
},
|
712 |
-
{
|
713 |
-
"internalType": "bytes32",
|
714 |
-
"name": "s",
|
715 |
-
"type": "bytes32"
|
716 |
-
}
|
717 |
-
],
|
718 |
-
"name": "permit",
|
719 |
-
"outputs": [],
|
720 |
-
"stateMutability": "payable",
|
721 |
-
"type": "function"
|
722 |
-
},
|
723 |
-
{
|
724 |
-
"inputs": [
|
725 |
-
{
|
726 |
-
"internalType": "uint256",
|
727 |
-
"name": "tokenId",
|
728 |
-
"type": "uint256"
|
729 |
-
}
|
730 |
-
],
|
731 |
-
"name": "positions",
|
732 |
-
"outputs": [
|
733 |
-
{
|
734 |
-
"internalType": "uint96",
|
735 |
-
"name": "nonce",
|
736 |
-
"type": "uint96"
|
737 |
-
},
|
738 |
-
{
|
739 |
-
"internalType": "address",
|
740 |
-
"name": "operator",
|
741 |
-
"type": "address"
|
742 |
-
},
|
743 |
-
{
|
744 |
-
"internalType": "address",
|
745 |
-
"name": "token0",
|
746 |
-
"type": "address"
|
747 |
-
},
|
748 |
-
{
|
749 |
-
"internalType": "address",
|
750 |
-
"name": "token1",
|
751 |
-
"type": "address"
|
752 |
-
},
|
753 |
-
{
|
754 |
-
"internalType": "uint24",
|
755 |
-
"name": "fee",
|
756 |
-
"type": "uint24"
|
757 |
-
},
|
758 |
-
{
|
759 |
-
"internalType": "int24",
|
760 |
-
"name": "tickLower",
|
761 |
-
"type": "int24"
|
762 |
-
},
|
763 |
-
{
|
764 |
-
"internalType": "int24",
|
765 |
-
"name": "tickUpper",
|
766 |
-
"type": "int24"
|
767 |
-
},
|
768 |
-
{
|
769 |
-
"internalType": "uint128",
|
770 |
-
"name": "liquidity",
|
771 |
-
"type": "uint128"
|
772 |
-
},
|
773 |
-
{
|
774 |
-
"internalType": "uint256",
|
775 |
-
"name": "feeGrowthInside0LastX128",
|
776 |
-
"type": "uint256"
|
777 |
-
},
|
778 |
-
{
|
779 |
-
"internalType": "uint256",
|
780 |
-
"name": "feeGrowthInside1LastX128",
|
781 |
-
"type": "uint256"
|
782 |
-
},
|
783 |
-
{
|
784 |
-
"internalType": "uint128",
|
785 |
-
"name": "tokensOwed0",
|
786 |
-
"type": "uint128"
|
787 |
-
},
|
788 |
-
{
|
789 |
-
"internalType": "uint128",
|
790 |
-
"name": "tokensOwed1",
|
791 |
-
"type": "uint128"
|
792 |
-
}
|
793 |
-
],
|
794 |
-
"stateMutability": "view",
|
795 |
-
"type": "function"
|
796 |
-
},
|
797 |
-
{
|
798 |
-
"inputs": [],
|
799 |
-
"name": "refundETH",
|
800 |
-
"outputs": [],
|
801 |
-
"stateMutability": "payable",
|
802 |
-
"type": "function"
|
803 |
-
},
|
804 |
-
{
|
805 |
-
"inputs": [
|
806 |
-
{
|
807 |
-
"internalType": "address",
|
808 |
-
"name": "from",
|
809 |
-
"type": "address"
|
810 |
-
},
|
811 |
-
{
|
812 |
-
"internalType": "address",
|
813 |
-
"name": "to",
|
814 |
-
"type": "address"
|
815 |
-
},
|
816 |
-
{
|
817 |
-
"internalType": "uint256",
|
818 |
-
"name": "tokenId",
|
819 |
-
"type": "uint256"
|
820 |
-
}
|
821 |
-
],
|
822 |
-
"name": "safeTransferFrom",
|
823 |
-
"outputs": [],
|
824 |
-
"stateMutability": "nonpayable",
|
825 |
-
"type": "function"
|
826 |
-
},
|
827 |
-
{
|
828 |
-
"inputs": [
|
829 |
-
{
|
830 |
-
"internalType": "address",
|
831 |
-
"name": "from",
|
832 |
-
"type": "address"
|
833 |
-
},
|
834 |
-
{
|
835 |
-
"internalType": "address",
|
836 |
-
"name": "to",
|
837 |
-
"type": "address"
|
838 |
-
},
|
839 |
-
{
|
840 |
-
"internalType": "uint256",
|
841 |
-
"name": "tokenId",
|
842 |
-
"type": "uint256"
|
843 |
-
},
|
844 |
-
{
|
845 |
-
"internalType": "bytes",
|
846 |
-
"name": "_data",
|
847 |
-
"type": "bytes"
|
848 |
-
}
|
849 |
-
],
|
850 |
-
"name": "safeTransferFrom",
|
851 |
-
"outputs": [],
|
852 |
-
"stateMutability": "nonpayable",
|
853 |
-
"type": "function"
|
854 |
-
},
|
855 |
-
{
|
856 |
-
"inputs": [
|
857 |
-
{
|
858 |
-
"internalType": "address",
|
859 |
-
"name": "token",
|
860 |
-
"type": "address"
|
861 |
-
},
|
862 |
-
{
|
863 |
-
"internalType": "uint256",
|
864 |
-
"name": "value",
|
865 |
-
"type": "uint256"
|
866 |
-
},
|
867 |
-
{
|
868 |
-
"internalType": "uint256",
|
869 |
-
"name": "deadline",
|
870 |
-
"type": "uint256"
|
871 |
-
},
|
872 |
-
{
|
873 |
-
"internalType": "uint8",
|
874 |
-
"name": "v",
|
875 |
-
"type": "uint8"
|
876 |
-
},
|
877 |
-
{
|
878 |
-
"internalType": "bytes32",
|
879 |
-
"name": "r",
|
880 |
-
"type": "bytes32"
|
881 |
-
},
|
882 |
-
{
|
883 |
-
"internalType": "bytes32",
|
884 |
-
"name": "s",
|
885 |
-
"type": "bytes32"
|
886 |
-
}
|
887 |
-
],
|
888 |
-
"name": "selfPermit",
|
889 |
-
"outputs": [],
|
890 |
-
"stateMutability": "payable",
|
891 |
-
"type": "function"
|
892 |
-
},
|
893 |
-
{
|
894 |
-
"inputs": [
|
895 |
-
{
|
896 |
-
"internalType": "address",
|
897 |
-
"name": "token",
|
898 |
-
"type": "address"
|
899 |
-
},
|
900 |
-
{
|
901 |
-
"internalType": "uint256",
|
902 |
-
"name": "nonce",
|
903 |
-
"type": "uint256"
|
904 |
-
},
|
905 |
-
{
|
906 |
-
"internalType": "uint256",
|
907 |
-
"name": "expiry",
|
908 |
-
"type": "uint256"
|
909 |
-
},
|
910 |
-
{
|
911 |
-
"internalType": "uint8",
|
912 |
-
"name": "v",
|
913 |
-
"type": "uint8"
|
914 |
-
},
|
915 |
-
{
|
916 |
-
"internalType": "bytes32",
|
917 |
-
"name": "r",
|
918 |
-
"type": "bytes32"
|
919 |
-
},
|
920 |
-
{
|
921 |
-
"internalType": "bytes32",
|
922 |
-
"name": "s",
|
923 |
-
"type": "bytes32"
|
924 |
-
}
|
925 |
-
],
|
926 |
-
"name": "selfPermitAllowed",
|
927 |
-
"outputs": [],
|
928 |
-
"stateMutability": "payable",
|
929 |
-
"type": "function"
|
930 |
-
},
|
931 |
-
{
|
932 |
-
"inputs": [
|
933 |
-
{
|
934 |
-
"internalType": "address",
|
935 |
-
"name": "token",
|
936 |
-
"type": "address"
|
937 |
-
},
|
938 |
-
{
|
939 |
-
"internalType": "uint256",
|
940 |
-
"name": "nonce",
|
941 |
-
"type": "uint256"
|
942 |
-
},
|
943 |
-
{
|
944 |
-
"internalType": "uint256",
|
945 |
-
"name": "expiry",
|
946 |
-
"type": "uint256"
|
947 |
-
},
|
948 |
-
{
|
949 |
-
"internalType": "uint8",
|
950 |
-
"name": "v",
|
951 |
-
"type": "uint8"
|
952 |
-
},
|
953 |
-
{
|
954 |
-
"internalType": "bytes32",
|
955 |
-
"name": "r",
|
956 |
-
"type": "bytes32"
|
957 |
-
},
|
958 |
-
{
|
959 |
-
"internalType": "bytes32",
|
960 |
-
"name": "s",
|
961 |
-
"type": "bytes32"
|
962 |
-
}
|
963 |
-
],
|
964 |
-
"name": "selfPermitAllowedIfNecessary",
|
965 |
-
"outputs": [],
|
966 |
-
"stateMutability": "payable",
|
967 |
-
"type": "function"
|
968 |
-
},
|
969 |
-
{
|
970 |
-
"inputs": [
|
971 |
-
{
|
972 |
-
"internalType": "address",
|
973 |
-
"name": "token",
|
974 |
-
"type": "address"
|
975 |
-
},
|
976 |
-
{
|
977 |
-
"internalType": "uint256",
|
978 |
-
"name": "value",
|
979 |
-
"type": "uint256"
|
980 |
-
},
|
981 |
-
{
|
982 |
-
"internalType": "uint256",
|
983 |
-
"name": "deadline",
|
984 |
-
"type": "uint256"
|
985 |
-
},
|
986 |
-
{
|
987 |
-
"internalType": "uint8",
|
988 |
-
"name": "v",
|
989 |
-
"type": "uint8"
|
990 |
-
},
|
991 |
-
{
|
992 |
-
"internalType": "bytes32",
|
993 |
-
"name": "r",
|
994 |
-
"type": "bytes32"
|
995 |
-
},
|
996 |
-
{
|
997 |
-
"internalType": "bytes32",
|
998 |
-
"name": "s",
|
999 |
-
"type": "bytes32"
|
1000 |
-
}
|
1001 |
-
],
|
1002 |
-
"name": "selfPermitIfNecessary",
|
1003 |
-
"outputs": [],
|
1004 |
-
"stateMutability": "payable",
|
1005 |
-
"type": "function"
|
1006 |
-
},
|
1007 |
-
{
|
1008 |
-
"inputs": [
|
1009 |
-
{
|
1010 |
-
"internalType": "address",
|
1011 |
-
"name": "operator",
|
1012 |
-
"type": "address"
|
1013 |
-
},
|
1014 |
-
{
|
1015 |
-
"internalType": "bool",
|
1016 |
-
"name": "approved",
|
1017 |
-
"type": "bool"
|
1018 |
-
}
|
1019 |
-
],
|
1020 |
-
"name": "setApprovalForAll",
|
1021 |
-
"outputs": [],
|
1022 |
-
"stateMutability": "nonpayable",
|
1023 |
-
"type": "function"
|
1024 |
-
},
|
1025 |
-
{
|
1026 |
-
"inputs": [
|
1027 |
-
{
|
1028 |
-
"internalType": "bytes4",
|
1029 |
-
"name": "interfaceId",
|
1030 |
-
"type": "bytes4"
|
1031 |
-
}
|
1032 |
-
],
|
1033 |
-
"name": "supportsInterface",
|
1034 |
-
"outputs": [
|
1035 |
-
{
|
1036 |
-
"internalType": "bool",
|
1037 |
-
"name": "",
|
1038 |
-
"type": "bool"
|
1039 |
-
}
|
1040 |
-
],
|
1041 |
-
"stateMutability": "view",
|
1042 |
-
"type": "function"
|
1043 |
-
},
|
1044 |
-
{
|
1045 |
-
"inputs": [
|
1046 |
-
{
|
1047 |
-
"internalType": "address",
|
1048 |
-
"name": "token",
|
1049 |
-
"type": "address"
|
1050 |
-
},
|
1051 |
-
{
|
1052 |
-
"internalType": "uint256",
|
1053 |
-
"name": "amountMinimum",
|
1054 |
-
"type": "uint256"
|
1055 |
-
},
|
1056 |
-
{
|
1057 |
-
"internalType": "address",
|
1058 |
-
"name": "recipient",
|
1059 |
-
"type": "address"
|
1060 |
-
}
|
1061 |
-
],
|
1062 |
-
"name": "sweepToken",
|
1063 |
-
"outputs": [],
|
1064 |
-
"stateMutability": "payable",
|
1065 |
-
"type": "function"
|
1066 |
-
},
|
1067 |
-
{
|
1068 |
-
"inputs": [],
|
1069 |
-
"name": "symbol",
|
1070 |
-
"outputs": [
|
1071 |
-
{
|
1072 |
-
"internalType": "string",
|
1073 |
-
"name": "",
|
1074 |
-
"type": "string"
|
1075 |
-
}
|
1076 |
-
],
|
1077 |
-
"stateMutability": "view",
|
1078 |
-
"type": "function"
|
1079 |
-
},
|
1080 |
-
{
|
1081 |
-
"inputs": [
|
1082 |
-
{
|
1083 |
-
"internalType": "uint256",
|
1084 |
-
"name": "index",
|
1085 |
-
"type": "uint256"
|
1086 |
-
}
|
1087 |
-
],
|
1088 |
-
"name": "tokenByIndex",
|
1089 |
-
"outputs": [
|
1090 |
-
{
|
1091 |
-
"internalType": "uint256",
|
1092 |
-
"name": "",
|
1093 |
-
"type": "uint256"
|
1094 |
-
}
|
1095 |
-
],
|
1096 |
-
"stateMutability": "view",
|
1097 |
-
"type": "function"
|
1098 |
-
},
|
1099 |
-
{
|
1100 |
-
"inputs": [
|
1101 |
-
{
|
1102 |
-
"internalType": "address",
|
1103 |
-
"name": "owner",
|
1104 |
-
"type": "address"
|
1105 |
-
},
|
1106 |
-
{
|
1107 |
-
"internalType": "uint256",
|
1108 |
-
"name": "index",
|
1109 |
-
"type": "uint256"
|
1110 |
-
}
|
1111 |
-
],
|
1112 |
-
"name": "tokenOfOwnerByIndex",
|
1113 |
-
"outputs": [
|
1114 |
-
{
|
1115 |
-
"internalType": "uint256",
|
1116 |
-
"name": "",
|
1117 |
-
"type": "uint256"
|
1118 |
-
}
|
1119 |
-
],
|
1120 |
-
"stateMutability": "view",
|
1121 |
-
"type": "function"
|
1122 |
-
},
|
1123 |
-
{
|
1124 |
-
"inputs": [
|
1125 |
-
{
|
1126 |
-
"internalType": "uint256",
|
1127 |
-
"name": "tokenId",
|
1128 |
-
"type": "uint256"
|
1129 |
-
}
|
1130 |
-
],
|
1131 |
-
"name": "tokenURI",
|
1132 |
-
"outputs": [
|
1133 |
-
{
|
1134 |
-
"internalType": "string",
|
1135 |
-
"name": "",
|
1136 |
-
"type": "string"
|
1137 |
-
}
|
1138 |
-
],
|
1139 |
-
"stateMutability": "view",
|
1140 |
-
"type": "function"
|
1141 |
-
},
|
1142 |
-
{
|
1143 |
-
"inputs": [],
|
1144 |
-
"name": "totalSupply",
|
1145 |
-
"outputs": [
|
1146 |
-
{
|
1147 |
-
"internalType": "uint256",
|
1148 |
-
"name": "",
|
1149 |
-
"type": "uint256"
|
1150 |
-
}
|
1151 |
-
],
|
1152 |
-
"stateMutability": "view",
|
1153 |
-
"type": "function"
|
1154 |
-
},
|
1155 |
-
{
|
1156 |
-
"inputs": [
|
1157 |
-
{
|
1158 |
-
"internalType": "address",
|
1159 |
-
"name": "from",
|
1160 |
-
"type": "address"
|
1161 |
-
},
|
1162 |
-
{
|
1163 |
-
"internalType": "address",
|
1164 |
-
"name": "to",
|
1165 |
-
"type": "address"
|
1166 |
-
},
|
1167 |
-
{
|
1168 |
-
"internalType": "uint256",
|
1169 |
-
"name": "tokenId",
|
1170 |
-
"type": "uint256"
|
1171 |
-
}
|
1172 |
-
],
|
1173 |
-
"name": "transferFrom",
|
1174 |
-
"outputs": [],
|
1175 |
-
"stateMutability": "nonpayable",
|
1176 |
-
"type": "function"
|
1177 |
-
},
|
1178 |
-
{
|
1179 |
-
"inputs": [
|
1180 |
-
{
|
1181 |
-
"internalType": "uint256",
|
1182 |
-
"name": "amount0Owed",
|
1183 |
-
"type": "uint256"
|
1184 |
-
},
|
1185 |
-
{
|
1186 |
-
"internalType": "uint256",
|
1187 |
-
"name": "amount1Owed",
|
1188 |
-
"type": "uint256"
|
1189 |
-
},
|
1190 |
-
{
|
1191 |
-
"internalType": "bytes",
|
1192 |
-
"name": "data",
|
1193 |
-
"type": "bytes"
|
1194 |
-
}
|
1195 |
-
],
|
1196 |
-
"name": "uniswapV3MintCallback",
|
1197 |
-
"outputs": [],
|
1198 |
-
"stateMutability": "nonpayable",
|
1199 |
-
"type": "function"
|
1200 |
-
},
|
1201 |
-
{
|
1202 |
-
"inputs": [
|
1203 |
-
{
|
1204 |
-
"internalType": "uint256",
|
1205 |
-
"name": "amountMinimum",
|
1206 |
-
"type": "uint256"
|
1207 |
-
},
|
1208 |
-
{
|
1209 |
-
"internalType": "address",
|
1210 |
-
"name": "recipient",
|
1211 |
-
"type": "address"
|
1212 |
-
}
|
1213 |
-
],
|
1214 |
-
"name": "unwrapWETH9",
|
1215 |
-
"outputs": [],
|
1216 |
-
"stateMutability": "payable",
|
1217 |
-
"type": "function"
|
1218 |
-
},
|
1219 |
-
{
|
1220 |
-
"stateMutability": "payable",
|
1221 |
-
"type": "receive"
|
1222 |
-
}
|
1223 |
-
],
|
1224 |
-
"bytecode": "",
|
1225 |
-
"deployedBytecode": "",
|
1226 |
-
"linkReferences": {},
|
1227 |
-
"deployedLinkReferences": {}
|
1228 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contracts/ServiceRegistryTokenUtility.json
DELETED
@@ -1,926 +0,0 @@
|
|
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
DELETED
@@ -1,87 +0,0 @@
|
|
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
DELETED
@@ -1,1274 +0,0 @@
|
|
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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contracts/Vault.json
DELETED
@@ -1,1186 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"contractName": "",
|
3 |
-
"abi": [
|
4 |
-
{
|
5 |
-
"inputs": [
|
6 |
-
{
|
7 |
-
"internalType": "contract IAuthorizer",
|
8 |
-
"name": "authorizer",
|
9 |
-
"type": "address"
|
10 |
-
},
|
11 |
-
{
|
12 |
-
"internalType": "contract IWETH",
|
13 |
-
"name": "weth",
|
14 |
-
"type": "address"
|
15 |
-
},
|
16 |
-
{
|
17 |
-
"internalType": "uint256",
|
18 |
-
"name": "pauseWindowDuration",
|
19 |
-
"type": "uint256"
|
20 |
-
},
|
21 |
-
{
|
22 |
-
"internalType": "uint256",
|
23 |
-
"name": "bufferPeriodDuration",
|
24 |
-
"type": "uint256"
|
25 |
-
}
|
26 |
-
],
|
27 |
-
"stateMutability": "nonpayable",
|
28 |
-
"type": "constructor"
|
29 |
-
},
|
30 |
-
{
|
31 |
-
"anonymous": false,
|
32 |
-
"inputs": [
|
33 |
-
{
|
34 |
-
"indexed": true,
|
35 |
-
"internalType": "contract IAuthorizer",
|
36 |
-
"name": "newAuthorizer",
|
37 |
-
"type": "address"
|
38 |
-
}
|
39 |
-
],
|
40 |
-
"name": "AuthorizerChanged",
|
41 |
-
"type": "event"
|
42 |
-
},
|
43 |
-
{
|
44 |
-
"anonymous": false,
|
45 |
-
"inputs": [
|
46 |
-
{
|
47 |
-
"indexed": true,
|
48 |
-
"internalType": "contract IERC20",
|
49 |
-
"name": "token",
|
50 |
-
"type": "address"
|
51 |
-
},
|
52 |
-
{
|
53 |
-
"indexed": true,
|
54 |
-
"internalType": "address",
|
55 |
-
"name": "sender",
|
56 |
-
"type": "address"
|
57 |
-
},
|
58 |
-
{
|
59 |
-
"indexed": false,
|
60 |
-
"internalType": "address",
|
61 |
-
"name": "recipient",
|
62 |
-
"type": "address"
|
63 |
-
},
|
64 |
-
{
|
65 |
-
"indexed": false,
|
66 |
-
"internalType": "uint256",
|
67 |
-
"name": "amount",
|
68 |
-
"type": "uint256"
|
69 |
-
}
|
70 |
-
],
|
71 |
-
"name": "ExternalBalanceTransfer",
|
72 |
-
"type": "event"
|
73 |
-
},
|
74 |
-
{
|
75 |
-
"anonymous": false,
|
76 |
-
"inputs": [
|
77 |
-
{
|
78 |
-
"indexed": true,
|
79 |
-
"internalType": "contract IFlashLoanRecipient",
|
80 |
-
"name": "recipient",
|
81 |
-
"type": "address"
|
82 |
-
},
|
83 |
-
{
|
84 |
-
"indexed": true,
|
85 |
-
"internalType": "contract IERC20",
|
86 |
-
"name": "token",
|
87 |
-
"type": "address"
|
88 |
-
},
|
89 |
-
{
|
90 |
-
"indexed": false,
|
91 |
-
"internalType": "uint256",
|
92 |
-
"name": "amount",
|
93 |
-
"type": "uint256"
|
94 |
-
},
|
95 |
-
{
|
96 |
-
"indexed": false,
|
97 |
-
"internalType": "uint256",
|
98 |
-
"name": "feeAmount",
|
99 |
-
"type": "uint256"
|
100 |
-
}
|
101 |
-
],
|
102 |
-
"name": "FlashLoan",
|
103 |
-
"type": "event"
|
104 |
-
},
|
105 |
-
{
|
106 |
-
"anonymous": false,
|
107 |
-
"inputs": [
|
108 |
-
{
|
109 |
-
"indexed": true,
|
110 |
-
"internalType": "address",
|
111 |
-
"name": "user",
|
112 |
-
"type": "address"
|
113 |
-
},
|
114 |
-
{
|
115 |
-
"indexed": true,
|
116 |
-
"internalType": "contract IERC20",
|
117 |
-
"name": "token",
|
118 |
-
"type": "address"
|
119 |
-
},
|
120 |
-
{
|
121 |
-
"indexed": false,
|
122 |
-
"internalType": "int256",
|
123 |
-
"name": "delta",
|
124 |
-
"type": "int256"
|
125 |
-
}
|
126 |
-
],
|
127 |
-
"name": "InternalBalanceChanged",
|
128 |
-
"type": "event"
|
129 |
-
},
|
130 |
-
{
|
131 |
-
"anonymous": false,
|
132 |
-
"inputs": [
|
133 |
-
{
|
134 |
-
"indexed": false,
|
135 |
-
"internalType": "bool",
|
136 |
-
"name": "paused",
|
137 |
-
"type": "bool"
|
138 |
-
}
|
139 |
-
],
|
140 |
-
"name": "PausedStateChanged",
|
141 |
-
"type": "event"
|
142 |
-
},
|
143 |
-
{
|
144 |
-
"anonymous": false,
|
145 |
-
"inputs": [
|
146 |
-
{
|
147 |
-
"indexed": true,
|
148 |
-
"internalType": "bytes32",
|
149 |
-
"name": "poolId",
|
150 |
-
"type": "bytes32"
|
151 |
-
},
|
152 |
-
{
|
153 |
-
"indexed": true,
|
154 |
-
"internalType": "address",
|
155 |
-
"name": "liquidityProvider",
|
156 |
-
"type": "address"
|
157 |
-
},
|
158 |
-
{
|
159 |
-
"indexed": false,
|
160 |
-
"internalType": "contract IERC20[]",
|
161 |
-
"name": "tokens",
|
162 |
-
"type": "address[]"
|
163 |
-
},
|
164 |
-
{
|
165 |
-
"indexed": false,
|
166 |
-
"internalType": "int256[]",
|
167 |
-
"name": "deltas",
|
168 |
-
"type": "int256[]"
|
169 |
-
},
|
170 |
-
{
|
171 |
-
"indexed": false,
|
172 |
-
"internalType": "uint256[]",
|
173 |
-
"name": "protocolFeeAmounts",
|
174 |
-
"type": "uint256[]"
|
175 |
-
}
|
176 |
-
],
|
177 |
-
"name": "PoolBalanceChanged",
|
178 |
-
"type": "event"
|
179 |
-
},
|
180 |
-
{
|
181 |
-
"anonymous": false,
|
182 |
-
"inputs": [
|
183 |
-
{
|
184 |
-
"indexed": true,
|
185 |
-
"internalType": "bytes32",
|
186 |
-
"name": "poolId",
|
187 |
-
"type": "bytes32"
|
188 |
-
},
|
189 |
-
{
|
190 |
-
"indexed": true,
|
191 |
-
"internalType": "address",
|
192 |
-
"name": "assetManager",
|
193 |
-
"type": "address"
|
194 |
-
},
|
195 |
-
{
|
196 |
-
"indexed": true,
|
197 |
-
"internalType": "contract IERC20",
|
198 |
-
"name": "token",
|
199 |
-
"type": "address"
|
200 |
-
},
|
201 |
-
{
|
202 |
-
"indexed": false,
|
203 |
-
"internalType": "int256",
|
204 |
-
"name": "cashDelta",
|
205 |
-
"type": "int256"
|
206 |
-
},
|
207 |
-
{
|
208 |
-
"indexed": false,
|
209 |
-
"internalType": "int256",
|
210 |
-
"name": "managedDelta",
|
211 |
-
"type": "int256"
|
212 |
-
}
|
213 |
-
],
|
214 |
-
"name": "PoolBalanceManaged",
|
215 |
-
"type": "event"
|
216 |
-
},
|
217 |
-
{
|
218 |
-
"anonymous": false,
|
219 |
-
"inputs": [
|
220 |
-
{
|
221 |
-
"indexed": true,
|
222 |
-
"internalType": "bytes32",
|
223 |
-
"name": "poolId",
|
224 |
-
"type": "bytes32"
|
225 |
-
},
|
226 |
-
{
|
227 |
-
"indexed": true,
|
228 |
-
"internalType": "address",
|
229 |
-
"name": "poolAddress",
|
230 |
-
"type": "address"
|
231 |
-
},
|
232 |
-
{
|
233 |
-
"indexed": false,
|
234 |
-
"internalType": "enum IVault.PoolSpecialization",
|
235 |
-
"name": "specialization",
|
236 |
-
"type": "uint8"
|
237 |
-
}
|
238 |
-
],
|
239 |
-
"name": "PoolRegistered",
|
240 |
-
"type": "event"
|
241 |
-
},
|
242 |
-
{
|
243 |
-
"anonymous": false,
|
244 |
-
"inputs": [
|
245 |
-
{
|
246 |
-
"indexed": true,
|
247 |
-
"internalType": "address",
|
248 |
-
"name": "relayer",
|
249 |
-
"type": "address"
|
250 |
-
},
|
251 |
-
{
|
252 |
-
"indexed": true,
|
253 |
-
"internalType": "address",
|
254 |
-
"name": "sender",
|
255 |
-
"type": "address"
|
256 |
-
},
|
257 |
-
{
|
258 |
-
"indexed": false,
|
259 |
-
"internalType": "bool",
|
260 |
-
"name": "approved",
|
261 |
-
"type": "bool"
|
262 |
-
}
|
263 |
-
],
|
264 |
-
"name": "RelayerApprovalChanged",
|
265 |
-
"type": "event"
|
266 |
-
},
|
267 |
-
{
|
268 |
-
"anonymous": false,
|
269 |
-
"inputs": [
|
270 |
-
{
|
271 |
-
"indexed": true,
|
272 |
-
"internalType": "bytes32",
|
273 |
-
"name": "poolId",
|
274 |
-
"type": "bytes32"
|
275 |
-
},
|
276 |
-
{
|
277 |
-
"indexed": true,
|
278 |
-
"internalType": "contract IERC20",
|
279 |
-
"name": "tokenIn",
|
280 |
-
"type": "address"
|
281 |
-
},
|
282 |
-
{
|
283 |
-
"indexed": true,
|
284 |
-
"internalType": "contract IERC20",
|
285 |
-
"name": "tokenOut",
|
286 |
-
"type": "address"
|
287 |
-
},
|
288 |
-
{
|
289 |
-
"indexed": false,
|
290 |
-
"internalType": "uint256",
|
291 |
-
"name": "amountIn",
|
292 |
-
"type": "uint256"
|
293 |
-
},
|
294 |
-
{
|
295 |
-
"indexed": false,
|
296 |
-
"internalType": "uint256",
|
297 |
-
"name": "amountOut",
|
298 |
-
"type": "uint256"
|
299 |
-
}
|
300 |
-
],
|
301 |
-
"name": "Swap",
|
302 |
-
"type": "event"
|
303 |
-
},
|
304 |
-
{
|
305 |
-
"anonymous": false,
|
306 |
-
"inputs": [
|
307 |
-
{
|
308 |
-
"indexed": true,
|
309 |
-
"internalType": "bytes32",
|
310 |
-
"name": "poolId",
|
311 |
-
"type": "bytes32"
|
312 |
-
},
|
313 |
-
{
|
314 |
-
"indexed": false,
|
315 |
-
"internalType": "contract IERC20[]",
|
316 |
-
"name": "tokens",
|
317 |
-
"type": "address[]"
|
318 |
-
}
|
319 |
-
],
|
320 |
-
"name": "TokensDeregistered",
|
321 |
-
"type": "event"
|
322 |
-
},
|
323 |
-
{
|
324 |
-
"anonymous": false,
|
325 |
-
"inputs": [
|
326 |
-
{
|
327 |
-
"indexed": true,
|
328 |
-
"internalType": "bytes32",
|
329 |
-
"name": "poolId",
|
330 |
-
"type": "bytes32"
|
331 |
-
},
|
332 |
-
{
|
333 |
-
"indexed": false,
|
334 |
-
"internalType": "contract IERC20[]",
|
335 |
-
"name": "tokens",
|
336 |
-
"type": "address[]"
|
337 |
-
},
|
338 |
-
{
|
339 |
-
"indexed": false,
|
340 |
-
"internalType": "address[]",
|
341 |
-
"name": "assetManagers",
|
342 |
-
"type": "address[]"
|
343 |
-
}
|
344 |
-
],
|
345 |
-
"name": "TokensRegistered",
|
346 |
-
"type": "event"
|
347 |
-
},
|
348 |
-
{
|
349 |
-
"inputs": [],
|
350 |
-
"name": "WETH",
|
351 |
-
"outputs": [
|
352 |
-
{
|
353 |
-
"internalType": "contract IWETH",
|
354 |
-
"name": "",
|
355 |
-
"type": "address"
|
356 |
-
}
|
357 |
-
],
|
358 |
-
"stateMutability": "view",
|
359 |
-
"type": "function"
|
360 |
-
},
|
361 |
-
{
|
362 |
-
"inputs": [
|
363 |
-
{
|
364 |
-
"internalType": "enum IVault.SwapKind",
|
365 |
-
"name": "kind",
|
366 |
-
"type": "uint8"
|
367 |
-
},
|
368 |
-
{
|
369 |
-
"components": [
|
370 |
-
{
|
371 |
-
"internalType": "bytes32",
|
372 |
-
"name": "poolId",
|
373 |
-
"type": "bytes32"
|
374 |
-
},
|
375 |
-
{
|
376 |
-
"internalType": "uint256",
|
377 |
-
"name": "assetInIndex",
|
378 |
-
"type": "uint256"
|
379 |
-
},
|
380 |
-
{
|
381 |
-
"internalType": "uint256",
|
382 |
-
"name": "assetOutIndex",
|
383 |
-
"type": "uint256"
|
384 |
-
},
|
385 |
-
{
|
386 |
-
"internalType": "uint256",
|
387 |
-
"name": "amount",
|
388 |
-
"type": "uint256"
|
389 |
-
},
|
390 |
-
{
|
391 |
-
"internalType": "bytes",
|
392 |
-
"name": "userData",
|
393 |
-
"type": "bytes"
|
394 |
-
}
|
395 |
-
],
|
396 |
-
"internalType": "struct IVault.BatchSwapStep[]",
|
397 |
-
"name": "swaps",
|
398 |
-
"type": "tuple[]"
|
399 |
-
},
|
400 |
-
{
|
401 |
-
"internalType": "contract IAsset[]",
|
402 |
-
"name": "assets",
|
403 |
-
"type": "address[]"
|
404 |
-
},
|
405 |
-
{
|
406 |
-
"components": [
|
407 |
-
{
|
408 |
-
"internalType": "address",
|
409 |
-
"name": "sender",
|
410 |
-
"type": "address"
|
411 |
-
},
|
412 |
-
{
|
413 |
-
"internalType": "bool",
|
414 |
-
"name": "fromInternalBalance",
|
415 |
-
"type": "bool"
|
416 |
-
},
|
417 |
-
{
|
418 |
-
"internalType": "address payable",
|
419 |
-
"name": "recipient",
|
420 |
-
"type": "address"
|
421 |
-
},
|
422 |
-
{
|
423 |
-
"internalType": "bool",
|
424 |
-
"name": "toInternalBalance",
|
425 |
-
"type": "bool"
|
426 |
-
}
|
427 |
-
],
|
428 |
-
"internalType": "struct IVault.FundManagement",
|
429 |
-
"name": "funds",
|
430 |
-
"type": "tuple"
|
431 |
-
},
|
432 |
-
{
|
433 |
-
"internalType": "int256[]",
|
434 |
-
"name": "limits",
|
435 |
-
"type": "int256[]"
|
436 |
-
},
|
437 |
-
{
|
438 |
-
"internalType": "uint256",
|
439 |
-
"name": "deadline",
|
440 |
-
"type": "uint256"
|
441 |
-
}
|
442 |
-
],
|
443 |
-
"name": "batchSwap",
|
444 |
-
"outputs": [
|
445 |
-
{
|
446 |
-
"internalType": "int256[]",
|
447 |
-
"name": "assetDeltas",
|
448 |
-
"type": "int256[]"
|
449 |
-
}
|
450 |
-
],
|
451 |
-
"stateMutability": "payable",
|
452 |
-
"type": "function"
|
453 |
-
},
|
454 |
-
{
|
455 |
-
"inputs": [
|
456 |
-
{
|
457 |
-
"internalType": "bytes32",
|
458 |
-
"name": "poolId",
|
459 |
-
"type": "bytes32"
|
460 |
-
},
|
461 |
-
{
|
462 |
-
"internalType": "contract IERC20[]",
|
463 |
-
"name": "tokens",
|
464 |
-
"type": "address[]"
|
465 |
-
}
|
466 |
-
],
|
467 |
-
"name": "deregisterTokens",
|
468 |
-
"outputs": [],
|
469 |
-
"stateMutability": "nonpayable",
|
470 |
-
"type": "function"
|
471 |
-
},
|
472 |
-
{
|
473 |
-
"inputs": [
|
474 |
-
{
|
475 |
-
"internalType": "bytes32",
|
476 |
-
"name": "poolId",
|
477 |
-
"type": "bytes32"
|
478 |
-
},
|
479 |
-
{
|
480 |
-
"internalType": "address",
|
481 |
-
"name": "sender",
|
482 |
-
"type": "address"
|
483 |
-
},
|
484 |
-
{
|
485 |
-
"internalType": "address payable",
|
486 |
-
"name": "recipient",
|
487 |
-
"type": "address"
|
488 |
-
},
|
489 |
-
{
|
490 |
-
"components": [
|
491 |
-
{
|
492 |
-
"internalType": "contract IAsset[]",
|
493 |
-
"name": "assets",
|
494 |
-
"type": "address[]"
|
495 |
-
},
|
496 |
-
{
|
497 |
-
"internalType": "uint256[]",
|
498 |
-
"name": "minAmountsOut",
|
499 |
-
"type": "uint256[]"
|
500 |
-
},
|
501 |
-
{
|
502 |
-
"internalType": "bytes",
|
503 |
-
"name": "userData",
|
504 |
-
"type": "bytes"
|
505 |
-
},
|
506 |
-
{
|
507 |
-
"internalType": "bool",
|
508 |
-
"name": "toInternalBalance",
|
509 |
-
"type": "bool"
|
510 |
-
}
|
511 |
-
],
|
512 |
-
"internalType": "struct IVault.ExitPoolRequest",
|
513 |
-
"name": "request",
|
514 |
-
"type": "tuple"
|
515 |
-
}
|
516 |
-
],
|
517 |
-
"name": "exitPool",
|
518 |
-
"outputs": [],
|
519 |
-
"stateMutability": "nonpayable",
|
520 |
-
"type": "function"
|
521 |
-
},
|
522 |
-
{
|
523 |
-
"inputs": [
|
524 |
-
{
|
525 |
-
"internalType": "contract IFlashLoanRecipient",
|
526 |
-
"name": "recipient",
|
527 |
-
"type": "address"
|
528 |
-
},
|
529 |
-
{
|
530 |
-
"internalType": "contract IERC20[]",
|
531 |
-
"name": "tokens",
|
532 |
-
"type": "address[]"
|
533 |
-
},
|
534 |
-
{
|
535 |
-
"internalType": "uint256[]",
|
536 |
-
"name": "amounts",
|
537 |
-
"type": "uint256[]"
|
538 |
-
},
|
539 |
-
{
|
540 |
-
"internalType": "bytes",
|
541 |
-
"name": "userData",
|
542 |
-
"type": "bytes"
|
543 |
-
}
|
544 |
-
],
|
545 |
-
"name": "flashLoan",
|
546 |
-
"outputs": [],
|
547 |
-
"stateMutability": "nonpayable",
|
548 |
-
"type": "function"
|
549 |
-
},
|
550 |
-
{
|
551 |
-
"inputs": [
|
552 |
-
{
|
553 |
-
"internalType": "bytes4",
|
554 |
-
"name": "selector",
|
555 |
-
"type": "bytes4"
|
556 |
-
}
|
557 |
-
],
|
558 |
-
"name": "getActionId",
|
559 |
-
"outputs": [
|
560 |
-
{
|
561 |
-
"internalType": "bytes32",
|
562 |
-
"name": "",
|
563 |
-
"type": "bytes32"
|
564 |
-
}
|
565 |
-
],
|
566 |
-
"stateMutability": "view",
|
567 |
-
"type": "function"
|
568 |
-
},
|
569 |
-
{
|
570 |
-
"inputs": [],
|
571 |
-
"name": "getAuthorizer",
|
572 |
-
"outputs": [
|
573 |
-
{
|
574 |
-
"internalType": "contract IAuthorizer",
|
575 |
-
"name": "",
|
576 |
-
"type": "address"
|
577 |
-
}
|
578 |
-
],
|
579 |
-
"stateMutability": "view",
|
580 |
-
"type": "function"
|
581 |
-
},
|
582 |
-
{
|
583 |
-
"inputs": [],
|
584 |
-
"name": "getDomainSeparator",
|
585 |
-
"outputs": [
|
586 |
-
{
|
587 |
-
"internalType": "bytes32",
|
588 |
-
"name": "",
|
589 |
-
"type": "bytes32"
|
590 |
-
}
|
591 |
-
],
|
592 |
-
"stateMutability": "view",
|
593 |
-
"type": "function"
|
594 |
-
},
|
595 |
-
{
|
596 |
-
"inputs": [
|
597 |
-
{
|
598 |
-
"internalType": "address",
|
599 |
-
"name": "user",
|
600 |
-
"type": "address"
|
601 |
-
},
|
602 |
-
{
|
603 |
-
"internalType": "contract IERC20[]",
|
604 |
-
"name": "tokens",
|
605 |
-
"type": "address[]"
|
606 |
-
}
|
607 |
-
],
|
608 |
-
"name": "getInternalBalance",
|
609 |
-
"outputs": [
|
610 |
-
{
|
611 |
-
"internalType": "uint256[]",
|
612 |
-
"name": "balances",
|
613 |
-
"type": "uint256[]"
|
614 |
-
}
|
615 |
-
],
|
616 |
-
"stateMutability": "view",
|
617 |
-
"type": "function"
|
618 |
-
},
|
619 |
-
{
|
620 |
-
"inputs": [
|
621 |
-
{
|
622 |
-
"internalType": "address",
|
623 |
-
"name": "user",
|
624 |
-
"type": "address"
|
625 |
-
}
|
626 |
-
],
|
627 |
-
"name": "getNextNonce",
|
628 |
-
"outputs": [
|
629 |
-
{
|
630 |
-
"internalType": "uint256",
|
631 |
-
"name": "",
|
632 |
-
"type": "uint256"
|
633 |
-
}
|
634 |
-
],
|
635 |
-
"stateMutability": "view",
|
636 |
-
"type": "function"
|
637 |
-
},
|
638 |
-
{
|
639 |
-
"inputs": [],
|
640 |
-
"name": "getPausedState",
|
641 |
-
"outputs": [
|
642 |
-
{
|
643 |
-
"internalType": "bool",
|
644 |
-
"name": "paused",
|
645 |
-
"type": "bool"
|
646 |
-
},
|
647 |
-
{
|
648 |
-
"internalType": "uint256",
|
649 |
-
"name": "pauseWindowEndTime",
|
650 |
-
"type": "uint256"
|
651 |
-
},
|
652 |
-
{
|
653 |
-
"internalType": "uint256",
|
654 |
-
"name": "bufferPeriodEndTime",
|
655 |
-
"type": "uint256"
|
656 |
-
}
|
657 |
-
],
|
658 |
-
"stateMutability": "view",
|
659 |
-
"type": "function"
|
660 |
-
},
|
661 |
-
{
|
662 |
-
"inputs": [
|
663 |
-
{
|
664 |
-
"internalType": "bytes32",
|
665 |
-
"name": "poolId",
|
666 |
-
"type": "bytes32"
|
667 |
-
}
|
668 |
-
],
|
669 |
-
"name": "getPool",
|
670 |
-
"outputs": [
|
671 |
-
{
|
672 |
-
"internalType": "address",
|
673 |
-
"name": "",
|
674 |
-
"type": "address"
|
675 |
-
},
|
676 |
-
{
|
677 |
-
"internalType": "enum IVault.PoolSpecialization",
|
678 |
-
"name": "",
|
679 |
-
"type": "uint8"
|
680 |
-
}
|
681 |
-
],
|
682 |
-
"stateMutability": "view",
|
683 |
-
"type": "function"
|
684 |
-
},
|
685 |
-
{
|
686 |
-
"inputs": [
|
687 |
-
{
|
688 |
-
"internalType": "bytes32",
|
689 |
-
"name": "poolId",
|
690 |
-
"type": "bytes32"
|
691 |
-
},
|
692 |
-
{
|
693 |
-
"internalType": "contract IERC20",
|
694 |
-
"name": "token",
|
695 |
-
"type": "address"
|
696 |
-
}
|
697 |
-
],
|
698 |
-
"name": "getPoolTokenInfo",
|
699 |
-
"outputs": [
|
700 |
-
{
|
701 |
-
"internalType": "uint256",
|
702 |
-
"name": "cash",
|
703 |
-
"type": "uint256"
|
704 |
-
},
|
705 |
-
{
|
706 |
-
"internalType": "uint256",
|
707 |
-
"name": "managed",
|
708 |
-
"type": "uint256"
|
709 |
-
},
|
710 |
-
{
|
711 |
-
"internalType": "uint256",
|
712 |
-
"name": "lastChangeBlock",
|
713 |
-
"type": "uint256"
|
714 |
-
},
|
715 |
-
{
|
716 |
-
"internalType": "address",
|
717 |
-
"name": "assetManager",
|
718 |
-
"type": "address"
|
719 |
-
}
|
720 |
-
],
|
721 |
-
"stateMutability": "view",
|
722 |
-
"type": "function"
|
723 |
-
},
|
724 |
-
{
|
725 |
-
"inputs": [
|
726 |
-
{
|
727 |
-
"internalType": "bytes32",
|
728 |
-
"name": "poolId",
|
729 |
-
"type": "bytes32"
|
730 |
-
}
|
731 |
-
],
|
732 |
-
"name": "getPoolTokens",
|
733 |
-
"outputs": [
|
734 |
-
{
|
735 |
-
"internalType": "contract IERC20[]",
|
736 |
-
"name": "tokens",
|
737 |
-
"type": "address[]"
|
738 |
-
},
|
739 |
-
{
|
740 |
-
"internalType": "uint256[]",
|
741 |
-
"name": "balances",
|
742 |
-
"type": "uint256[]"
|
743 |
-
},
|
744 |
-
{
|
745 |
-
"internalType": "uint256",
|
746 |
-
"name": "lastChangeBlock",
|
747 |
-
"type": "uint256"
|
748 |
-
}
|
749 |
-
],
|
750 |
-
"stateMutability": "view",
|
751 |
-
"type": "function"
|
752 |
-
},
|
753 |
-
{
|
754 |
-
"inputs": [],
|
755 |
-
"name": "getProtocolFeesCollector",
|
756 |
-
"outputs": [
|
757 |
-
{
|
758 |
-
"internalType": "contract ProtocolFeesCollector",
|
759 |
-
"name": "",
|
760 |
-
"type": "address"
|
761 |
-
}
|
762 |
-
],
|
763 |
-
"stateMutability": "view",
|
764 |
-
"type": "function"
|
765 |
-
},
|
766 |
-
{
|
767 |
-
"inputs": [
|
768 |
-
{
|
769 |
-
"internalType": "address",
|
770 |
-
"name": "user",
|
771 |
-
"type": "address"
|
772 |
-
},
|
773 |
-
{
|
774 |
-
"internalType": "address",
|
775 |
-
"name": "relayer",
|
776 |
-
"type": "address"
|
777 |
-
}
|
778 |
-
],
|
779 |
-
"name": "hasApprovedRelayer",
|
780 |
-
"outputs": [
|
781 |
-
{
|
782 |
-
"internalType": "bool",
|
783 |
-
"name": "",
|
784 |
-
"type": "bool"
|
785 |
-
}
|
786 |
-
],
|
787 |
-
"stateMutability": "view",
|
788 |
-
"type": "function"
|
789 |
-
},
|
790 |
-
{
|
791 |
-
"inputs": [
|
792 |
-
{
|
793 |
-
"internalType": "bytes32",
|
794 |
-
"name": "poolId",
|
795 |
-
"type": "bytes32"
|
796 |
-
},
|
797 |
-
{
|
798 |
-
"internalType": "address",
|
799 |
-
"name": "sender",
|
800 |
-
"type": "address"
|
801 |
-
},
|
802 |
-
{
|
803 |
-
"internalType": "address",
|
804 |
-
"name": "recipient",
|
805 |
-
"type": "address"
|
806 |
-
},
|
807 |
-
{
|
808 |
-
"components": [
|
809 |
-
{
|
810 |
-
"internalType": "contract IAsset[]",
|
811 |
-
"name": "assets",
|
812 |
-
"type": "address[]"
|
813 |
-
},
|
814 |
-
{
|
815 |
-
"internalType": "uint256[]",
|
816 |
-
"name": "maxAmountsIn",
|
817 |
-
"type": "uint256[]"
|
818 |
-
},
|
819 |
-
{
|
820 |
-
"internalType": "bytes",
|
821 |
-
"name": "userData",
|
822 |
-
"type": "bytes"
|
823 |
-
},
|
824 |
-
{
|
825 |
-
"internalType": "bool",
|
826 |
-
"name": "fromInternalBalance",
|
827 |
-
"type": "bool"
|
828 |
-
}
|
829 |
-
],
|
830 |
-
"internalType": "struct IVault.JoinPoolRequest",
|
831 |
-
"name": "request",
|
832 |
-
"type": "tuple"
|
833 |
-
}
|
834 |
-
],
|
835 |
-
"name": "joinPool",
|
836 |
-
"outputs": [],
|
837 |
-
"stateMutability": "payable",
|
838 |
-
"type": "function"
|
839 |
-
},
|
840 |
-
{
|
841 |
-
"inputs": [
|
842 |
-
{
|
843 |
-
"components": [
|
844 |
-
{
|
845 |
-
"internalType": "enum IVault.PoolBalanceOpKind",
|
846 |
-
"name": "kind",
|
847 |
-
"type": "uint8"
|
848 |
-
},
|
849 |
-
{
|
850 |
-
"internalType": "bytes32",
|
851 |
-
"name": "poolId",
|
852 |
-
"type": "bytes32"
|
853 |
-
},
|
854 |
-
{
|
855 |
-
"internalType": "contract IERC20",
|
856 |
-
"name": "token",
|
857 |
-
"type": "address"
|
858 |
-
},
|
859 |
-
{
|
860 |
-
"internalType": "uint256",
|
861 |
-
"name": "amount",
|
862 |
-
"type": "uint256"
|
863 |
-
}
|
864 |
-
],
|
865 |
-
"internalType": "struct IVault.PoolBalanceOp[]",
|
866 |
-
"name": "ops",
|
867 |
-
"type": "tuple[]"
|
868 |
-
}
|
869 |
-
],
|
870 |
-
"name": "managePoolBalance",
|
871 |
-
"outputs": [],
|
872 |
-
"stateMutability": "nonpayable",
|
873 |
-
"type": "function"
|
874 |
-
},
|
875 |
-
{
|
876 |
-
"inputs": [
|
877 |
-
{
|
878 |
-
"components": [
|
879 |
-
{
|
880 |
-
"internalType": "enum IVault.UserBalanceOpKind",
|
881 |
-
"name": "kind",
|
882 |
-
"type": "uint8"
|
883 |
-
},
|
884 |
-
{
|
885 |
-
"internalType": "contract IAsset",
|
886 |
-
"name": "asset",
|
887 |
-
"type": "address"
|
888 |
-
},
|
889 |
-
{
|
890 |
-
"internalType": "uint256",
|
891 |
-
"name": "amount",
|
892 |
-
"type": "uint256"
|
893 |
-
},
|
894 |
-
{
|
895 |
-
"internalType": "address",
|
896 |
-
"name": "sender",
|
897 |
-
"type": "address"
|
898 |
-
},
|
899 |
-
{
|
900 |
-
"internalType": "address payable",
|
901 |
-
"name": "recipient",
|
902 |
-
"type": "address"
|
903 |
-
}
|
904 |
-
],
|
905 |
-
"internalType": "struct IVault.UserBalanceOp[]",
|
906 |
-
"name": "ops",
|
907 |
-
"type": "tuple[]"
|
908 |
-
}
|
909 |
-
],
|
910 |
-
"name": "manageUserBalance",
|
911 |
-
"outputs": [],
|
912 |
-
"stateMutability": "payable",
|
913 |
-
"type": "function"
|
914 |
-
},
|
915 |
-
{
|
916 |
-
"inputs": [
|
917 |
-
{
|
918 |
-
"internalType": "enum IVault.SwapKind",
|
919 |
-
"name": "kind",
|
920 |
-
"type": "uint8"
|
921 |
-
},
|
922 |
-
{
|
923 |
-
"components": [
|
924 |
-
{
|
925 |
-
"internalType": "bytes32",
|
926 |
-
"name": "poolId",
|
927 |
-
"type": "bytes32"
|
928 |
-
},
|
929 |
-
{
|
930 |
-
"internalType": "uint256",
|
931 |
-
"name": "assetInIndex",
|
932 |
-
"type": "uint256"
|
933 |
-
},
|
934 |
-
{
|
935 |
-
"internalType": "uint256",
|
936 |
-
"name": "assetOutIndex",
|
937 |
-
"type": "uint256"
|
938 |
-
},
|
939 |
-
{
|
940 |
-
"internalType": "uint256",
|
941 |
-
"name": "amount",
|
942 |
-
"type": "uint256"
|
943 |
-
},
|
944 |
-
{
|
945 |
-
"internalType": "bytes",
|
946 |
-
"name": "userData",
|
947 |
-
"type": "bytes"
|
948 |
-
}
|
949 |
-
],
|
950 |
-
"internalType": "struct IVault.BatchSwapStep[]",
|
951 |
-
"name": "swaps",
|
952 |
-
"type": "tuple[]"
|
953 |
-
},
|
954 |
-
{
|
955 |
-
"internalType": "contract IAsset[]",
|
956 |
-
"name": "assets",
|
957 |
-
"type": "address[]"
|
958 |
-
},
|
959 |
-
{
|
960 |
-
"components": [
|
961 |
-
{
|
962 |
-
"internalType": "address",
|
963 |
-
"name": "sender",
|
964 |
-
"type": "address"
|
965 |
-
},
|
966 |
-
{
|
967 |
-
"internalType": "bool",
|
968 |
-
"name": "fromInternalBalance",
|
969 |
-
"type": "bool"
|
970 |
-
},
|
971 |
-
{
|
972 |
-
"internalType": "address payable",
|
973 |
-
"name": "recipient",
|
974 |
-
"type": "address"
|
975 |
-
},
|
976 |
-
{
|
977 |
-
"internalType": "bool",
|
978 |
-
"name": "toInternalBalance",
|
979 |
-
"type": "bool"
|
980 |
-
}
|
981 |
-
],
|
982 |
-
"internalType": "struct IVault.FundManagement",
|
983 |
-
"name": "funds",
|
984 |
-
"type": "tuple"
|
985 |
-
}
|
986 |
-
],
|
987 |
-
"name": "queryBatchSwap",
|
988 |
-
"outputs": [
|
989 |
-
{
|
990 |
-
"internalType": "int256[]",
|
991 |
-
"name": "",
|
992 |
-
"type": "int256[]"
|
993 |
-
}
|
994 |
-
],
|
995 |
-
"stateMutability": "nonpayable",
|
996 |
-
"type": "function"
|
997 |
-
},
|
998 |
-
{
|
999 |
-
"inputs": [
|
1000 |
-
{
|
1001 |
-
"internalType": "enum IVault.PoolSpecialization",
|
1002 |
-
"name": "specialization",
|
1003 |
-
"type": "uint8"
|
1004 |
-
}
|
1005 |
-
],
|
1006 |
-
"name": "registerPool",
|
1007 |
-
"outputs": [
|
1008 |
-
{
|
1009 |
-
"internalType": "bytes32",
|
1010 |
-
"name": "",
|
1011 |
-
"type": "bytes32"
|
1012 |
-
}
|
1013 |
-
],
|
1014 |
-
"stateMutability": "nonpayable",
|
1015 |
-
"type": "function"
|
1016 |
-
},
|
1017 |
-
{
|
1018 |
-
"inputs": [
|
1019 |
-
{
|
1020 |
-
"internalType": "bytes32",
|
1021 |
-
"name": "poolId",
|
1022 |
-
"type": "bytes32"
|
1023 |
-
},
|
1024 |
-
{
|
1025 |
-
"internalType": "contract IERC20[]",
|
1026 |
-
"name": "tokens",
|
1027 |
-
"type": "address[]"
|
1028 |
-
},
|
1029 |
-
{
|
1030 |
-
"internalType": "address[]",
|
1031 |
-
"name": "assetManagers",
|
1032 |
-
"type": "address[]"
|
1033 |
-
}
|
1034 |
-
],
|
1035 |
-
"name": "registerTokens",
|
1036 |
-
"outputs": [],
|
1037 |
-
"stateMutability": "nonpayable",
|
1038 |
-
"type": "function"
|
1039 |
-
},
|
1040 |
-
{
|
1041 |
-
"inputs": [
|
1042 |
-
{
|
1043 |
-
"internalType": "contract IAuthorizer",
|
1044 |
-
"name": "newAuthorizer",
|
1045 |
-
"type": "address"
|
1046 |
-
}
|
1047 |
-
],
|
1048 |
-
"name": "setAuthorizer",
|
1049 |
-
"outputs": [],
|
1050 |
-
"stateMutability": "nonpayable",
|
1051 |
-
"type": "function"
|
1052 |
-
},
|
1053 |
-
{
|
1054 |
-
"inputs": [
|
1055 |
-
{
|
1056 |
-
"internalType": "bool",
|
1057 |
-
"name": "paused",
|
1058 |
-
"type": "bool"
|
1059 |
-
}
|
1060 |
-
],
|
1061 |
-
"name": "setPaused",
|
1062 |
-
"outputs": [],
|
1063 |
-
"stateMutability": "nonpayable",
|
1064 |
-
"type": "function"
|
1065 |
-
},
|
1066 |
-
{
|
1067 |
-
"inputs": [
|
1068 |
-
{
|
1069 |
-
"internalType": "address",
|
1070 |
-
"name": "sender",
|
1071 |
-
"type": "address"
|
1072 |
-
},
|
1073 |
-
{
|
1074 |
-
"internalType": "address",
|
1075 |
-
"name": "relayer",
|
1076 |
-
"type": "address"
|
1077 |
-
},
|
1078 |
-
{
|
1079 |
-
"internalType": "bool",
|
1080 |
-
"name": "approved",
|
1081 |
-
"type": "bool"
|
1082 |
-
}
|
1083 |
-
],
|
1084 |
-
"name": "setRelayerApproval",
|
1085 |
-
"outputs": [],
|
1086 |
-
"stateMutability": "nonpayable",
|
1087 |
-
"type": "function"
|
1088 |
-
},
|
1089 |
-
{
|
1090 |
-
"inputs": [
|
1091 |
-
{
|
1092 |
-
"components": [
|
1093 |
-
{
|
1094 |
-
"internalType": "bytes32",
|
1095 |
-
"name": "poolId",
|
1096 |
-
"type": "bytes32"
|
1097 |
-
},
|
1098 |
-
{
|
1099 |
-
"internalType": "enum IVault.SwapKind",
|
1100 |
-
"name": "kind",
|
1101 |
-
"type": "uint8"
|
1102 |
-
},
|
1103 |
-
{
|
1104 |
-
"internalType": "contract IAsset",
|
1105 |
-
"name": "assetIn",
|
1106 |
-
"type": "address"
|
1107 |
-
},
|
1108 |
-
{
|
1109 |
-
"internalType": "contract IAsset",
|
1110 |
-
"name": "assetOut",
|
1111 |
-
"type": "address"
|
1112 |
-
},
|
1113 |
-
{
|
1114 |
-
"internalType": "uint256",
|
1115 |
-
"name": "amount",
|
1116 |
-
"type": "uint256"
|
1117 |
-
},
|
1118 |
-
{
|
1119 |
-
"internalType": "bytes",
|
1120 |
-
"name": "userData",
|
1121 |
-
"type": "bytes"
|
1122 |
-
}
|
1123 |
-
],
|
1124 |
-
"internalType": "struct IVault.SingleSwap",
|
1125 |
-
"name": "singleSwap",
|
1126 |
-
"type": "tuple"
|
1127 |
-
},
|
1128 |
-
{
|
1129 |
-
"components": [
|
1130 |
-
{
|
1131 |
-
"internalType": "address",
|
1132 |
-
"name": "sender",
|
1133 |
-
"type": "address"
|
1134 |
-
},
|
1135 |
-
{
|
1136 |
-
"internalType": "bool",
|
1137 |
-
"name": "fromInternalBalance",
|
1138 |
-
"type": "bool"
|
1139 |
-
},
|
1140 |
-
{
|
1141 |
-
"internalType": "address payable",
|
1142 |
-
"name": "recipient",
|
1143 |
-
"type": "address"
|
1144 |
-
},
|
1145 |
-
{
|
1146 |
-
"internalType": "bool",
|
1147 |
-
"name": "toInternalBalance",
|
1148 |
-
"type": "bool"
|
1149 |
-
}
|
1150 |
-
],
|
1151 |
-
"internalType": "struct IVault.FundManagement",
|
1152 |
-
"name": "funds",
|
1153 |
-
"type": "tuple"
|
1154 |
-
},
|
1155 |
-
{
|
1156 |
-
"internalType": "uint256",
|
1157 |
-
"name": "limit",
|
1158 |
-
"type": "uint256"
|
1159 |
-
},
|
1160 |
-
{
|
1161 |
-
"internalType": "uint256",
|
1162 |
-
"name": "deadline",
|
1163 |
-
"type": "uint256"
|
1164 |
-
}
|
1165 |
-
],
|
1166 |
-
"name": "swap",
|
1167 |
-
"outputs": [
|
1168 |
-
{
|
1169 |
-
"internalType": "uint256",
|
1170 |
-
"name": "amountCalculated",
|
1171 |
-
"type": "uint256"
|
1172 |
-
}
|
1173 |
-
],
|
1174 |
-
"stateMutability": "payable",
|
1175 |
-
"type": "function"
|
1176 |
-
},
|
1177 |
-
{
|
1178 |
-
"stateMutability": "payable",
|
1179 |
-
"type": "receive"
|
1180 |
-
}
|
1181 |
-
],
|
1182 |
-
"bytecode": "",
|
1183 |
-
"deployedBytecode": "",
|
1184 |
-
"linkReferences": {},
|
1185 |
-
"deployedLinkReferences": {}
|
1186 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contracts/service_registry_abi.json
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_baseURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"AgentInstanceRegistered","type":"error"},{"inputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"AgentInstancesSlotsFilled","type":"error"},{"inputs":[{"internalType":"uint256","name":"agentId","type":"uint256"}],"name":"AgentNotFound","type":"error"},{"inputs":[{"internalType":"uint256","name":"agentId","type":"uint256"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"AgentNotInService","type":"error"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"ComponentNotFound","type":"error"},{"inputs":[],"name":"HashExists","type":"error"},{"inputs":[{"internalType":"uint256","name":"sent","type":"uint256"},{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"IncorrectAgentBondingValue","type":"error"},{"inputs":[{"internalType":"uint256","name":"sent","type":"uint256"},{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"IncorrectRegistrationDepositValue","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"manager","type":"address"}],"name":"ManagerOnly","type":"error"},{"inputs":[{"internalType":"address","name":"provided","type":"address"},{"internalType":"address","name":"expected","type":"address"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"OnlyOwnServiceMultisig","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"OperatorHasNoInstances","type":"error"},{"inputs":[{"internalType":"uint256","name":"provided","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"Overflow","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OwnerOnly","type":"error"},{"inputs":[],"name":"Paused","type":"error"},{"inputs":[],"name":"ReentrancyGuard","type":"error"},{"inputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"ServiceMustBeInactive","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[{"internalType":"address","name":"multisig","type":"address"}],"name":"UnauthorizedMultisig","type":"error"},{"inputs":[{"internalType":"uint256","name":"agentId","type":"uint256"}],"name":"WrongAgentId","type":"error"},{"inputs":[{"internalType":"uint256","name":"numValues1","type":"uint256"},{"internalType":"uint256","name":"numValues2","type":"uint256"}],"name":"WrongArrayLength","type":"error"},{"inputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"WrongOperator","type":"error"},{"inputs":[{"internalType":"uint256","name":"state","type":"uint256"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"WrongServiceState","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentThreshold","type":"uint256"},{"internalType":"uint256","name":"minThreshold","type":"uint256"},{"internalType":"uint256","name":"maxThreshold","type":"uint256"}],"name":"WrongThreshold","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroValue","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"ActivateRegistration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"baseURI","type":"string"}],"name":"BaseURIChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"},{"indexed":true,"internalType":"address","name":"multisig","type":"address"}],"name":"CreateMultisigWithAgents","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"configHash","type":"bytes32"}],"name":"CreateService","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"DeployService","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"drainer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Drain","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"drainer","type":"address"}],"name":"DrainerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager","type":"address"}],"name":"ManagerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"OperatorSlashed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"OperatorUnbond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"},{"indexed":true,"internalType":"address","name":"agentInstance","type":"address"},{"indexed":false,"internalType":"uint256","name":"agentId","type":"uint256"}],"name":"RegisterInstance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"TerminateService","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"serviceId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"configHash","type":"bytes32"}],"name":"UpdateService","type":"event"},{"inputs":[],"name":"CID_PREFIX","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"serviceOwner","type":"address"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"activateRegistration","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDrainer","type":"address"}],"name":"changeDrainer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newManager","type":"address"}],"name":"changeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"multisig","type":"address"},{"internalType":"bool","name":"permission","type":"bool"}],"name":"changeMultisigPermission","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceOwner","type":"address"},{"internalType":"bytes32","name":"configHash","type":"bytes32"},{"internalType":"uint32[]","name":"agentIds","type":"uint32[]"},{"components":[{"internalType":"uint32","name":"slots","type":"uint32"},{"internalType":"uint96","name":"bond","type":"uint96"}],"internalType":"struct AgentParams[]","name":"agentParams","type":"tuple[]"},{"internalType":"uint32","name":"threshold","type":"uint32"}],"name":"create","outputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceOwner","type":"address"},{"internalType":"uint256","name":"serviceId","type":"uint256"},{"internalType":"address","name":"multisigImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"deploy","outputs":[{"internalType":"address","name":"multisig","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"drain","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"drainer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"unitId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"getAgentInstances","outputs":[{"internalType":"uint256","name":"numAgentInstances","type":"uint256"},{"internalType":"address[]","name":"agentInstances","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"getAgentParams","outputs":[{"internalType":"uint256","name":"numAgentIds","type":"uint256"},{"components":[{"internalType":"uint32","name":"slots","type":"uint32"},{"internalType":"uint96","name":"bond","type":"uint96"}],"internalType":"struct AgentParams[]","name":"agentParams","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"},{"internalType":"uint256","name":"agentId","type":"uint256"}],"name":"getInstancesForAgentId","outputs":[{"internalType":"uint256","name":"numAgentInstances","type":"uint256"},{"internalType":"address[]","name":"agentInstances","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"getOperatorBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"getPreviousHashes","outputs":[{"internalType":"uint256","name":"numHashes","type":"uint256"},{"internalType":"bytes32[]","name":"configHashes","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"getService","outputs":[{"components":[{"internalType":"uint96","name":"securityDeposit","type":"uint96"},{"internalType":"address","name":"multisig","type":"address"},{"internalType":"bytes32","name":"configHash","type":"bytes32"},{"internalType":"uint32","name":"threshold","type":"uint32"},{"internalType":"uint32","name":"maxNumAgentInstances","type":"uint32"},{"internalType":"uint32","name":"numAgentInstances","type":"uint32"},{"internalType":"enum ServiceRegistryL2.ServiceState","name":"state","type":"uint8"},{"internalType":"uint32[]","name":"agentIds","type":"uint32[]"}],"internalType":"struct ServiceRegistryL2.Service","name":"service","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapAgentInstanceOperators","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapConfigHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapMultisigs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapOperatorAndServiceIdAgentInstances","outputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"uint32","name":"agentId","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapOperatorAndServiceIdOperatorBalances","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapServiceAndAgentIdAgentInstances","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapServiceAndAgentIdAgentParams","outputs":[{"internalType":"uint32","name":"slots","type":"uint32"},{"internalType":"uint96","name":"bond","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapServices","outputs":[{"internalType":"uint96","name":"securityDeposit","type":"uint96"},{"internalType":"address","name":"multisig","type":"address"},{"internalType":"bytes32","name":"configHash","type":"bytes32"},{"internalType":"uint32","name":"threshold","type":"uint32"},{"internalType":"uint32","name":"maxNumAgentInstances","type":"uint32"},{"internalType":"uint32","name":"numAgentInstances","type":"uint32"},{"internalType":"enum ServiceRegistryL2.ServiceState","name":"state","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"serviceId","type":"uint256"},{"internalType":"address[]","name":"agentInstances","type":"address[]"},{"internalType":"uint32[]","name":"agentIds","type":"uint32[]"}],"name":"registerAgents","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"bURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"agentInstances","type":"address[]"},{"internalType":"uint96[]","name":"amounts","type":"uint96[]"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"slash","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slashedFunds","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"serviceOwner","type":"address"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"terminate","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"refund","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"unitId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"unitId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"unbond","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"refund","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceOwner","type":"address"},{"internalType":"bytes32","name":"configHash","type":"bytes32"},{"internalType":"uint32[]","name":"agentIds","type":"uint32[]"},{"components":[{"internalType":"uint32","name":"slots","type":"uint32"},{"internalType":"uint96","name":"bond","type":"uint96"}],"internalType":"struct AgentParams[]","name":"agentParams","type":"tuple[]"},{"internalType":"uint32","name":"threshold","type":"uint32"},{"internalType":"uint256","name":"serviceId","type":"uint256"}],"name":"update","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
|
|
|
|
daily_transactions_new.csv
DELETED
@@ -1,334 +0,0 @@
|
|
1 |
-
chain,safe_address,date,transaction_hash,timestamp,from,to,value_eth,agent_address
|
2 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-19,0xb5cdd01edbc80bddf67edea2a88bc71d86372f1cc603c311da4b593e20376048,2024-09-19 00:16:41,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
3 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-19,0x3514a3d2a1e0462a11ebf4a64f2dbeb10405052fbb060d5b62b978ea601b1bd6,2024-09-19 00:17:03,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
4 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-19,0x98385000a78c7b85800e1551ed64d1ef4b31ce7a4e7dfa49a8d0800a3f143fdb,2024-09-19 00:17:23,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
5 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-20,0x583b8737470ba6912c373a03dc2429554f560dd4a5ab98f7449a815c12e7a447,2024-09-20 06:07:35,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
6 |
-
base,0xa13DFc6DdCFF0B5B637e721ee83d6cF7E0676e73,2024-09-19,0x3c9bff22604410db277f50b2a2305ca93bf0b93e91e29ec34f4be15557e4a5bb,2024-09-19 15:48:11,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0xa13dfc6ddcff0b5b637e721ee83d6cf7e0676e73,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
7 |
-
base,0xa13DFc6DdCFF0B5B637e721ee83d6cF7E0676e73,2024-09-19,0xc056887d8d0850dab2414be04894b8137b79f3a1e39185315fc41179564e8880,2024-09-19 15:48:39,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0xa13dfc6ddcff0b5b637e721ee83d6cf7e0676e73,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
8 |
-
base,0xa13DFc6DdCFF0B5B637e721ee83d6cF7E0676e73,2024-09-19,0xdb88168a449551c5d61fab051c683bba16b52a438d0de6d8eab9f724caa1aebb,2024-09-19 18:33:15,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0xa13dfc6ddcff0b5b637e721ee83d6cf7e0676e73,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
9 |
-
ethereum,0xDD58D70646e51eA332aE3Bc2D43CB336A3F50D3C,2024-09-19,0x766bcbe570f81eda83cdedc82574c6f1cfd076d967fcbb0e5aa7e0d530bfa89c,2024-09-19 15:16:11,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0xdd58d70646e51ea332ae3bc2d43cb336a3f50d3c,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
10 |
-
ethereum,0xDD58D70646e51eA332aE3Bc2D43CB336A3F50D3C,2024-09-19,0x06d25b87f3322ac8f7e55f105d1e95a706453b166c36179ea8c595f3375500ec,2024-09-19 15:44:59,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0xdd58d70646e51ea332ae3bc2d43cb336a3f50d3c,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
11 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-26,0x2d77abf9ca4c5430b05b74767158b9d08f5135f985a34a19e4a6221e17959677,2024-09-26 23:26:43,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
12 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-26,0xb143af4766236055e4fb30912eb7c79f171e1a1d9f69936d53bc5bbe7f89108e,2024-09-26 23:27:03,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
13 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-26,0x38af0f7ef29b9b604b18fd68388da25ff04a5230a7d3da96d0e2850e3e5aa380,2024-09-26 23:27:25,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
14 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-26,0xad4bafff9ce4f0eca88928931143d4cda3a750f6e8a2155e3519d10d3f58ab6b,2024-09-26 23:27:47,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
15 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-27,0x6c320f41b7a137430474a785cb0006a189884d75f93e8941d5044b2ace0c6f79,2024-09-27 17:50:57,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
16 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-27,0xe1ca0e0f238a13e94d1b270992584924c87ced3acc666da9f808f4c789a2ae37,2024-09-27 18:16:49,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
17 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-27,0x1a713b1b719b9a64c95d706ef5f339e93d183fa3cfb01ed41f5d7ad3bbbaeee1,2024-09-27 18:17:11,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
18 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-27,0x0cfe8b5333e7bb213629a412e46742bfda3a7206366e4b0a02aa6a9fe1b13602,2024-09-27 18:17:35,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
19 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-27,0xca2b584bc17078eed70a91ad3c371f5b99945a97f1396516968bbcaa57454848,2024-09-27 18:17:57,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
20 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-28,0x4ab554c57c4aec076e3b18cbb57d0d928911ff4b4fb5e6856b5e7e7cd613f783,2024-09-28 17:51:31,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
21 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-28,0xed357b343ca86b7387c53a560568bed89f244f42e765879efb918f26139ed79e,2024-09-28 18:17:21,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
22 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-28,0x7ba1746736b944b47e175f3a87d9766b2e0406204ce228770f89bd5c0c6a1473,2024-09-28 18:17:45,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
23 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-28,0x03c98aef9e44614676d96481d58c3f6a65cc0518dbbe872998107421b73b0c19,2024-09-28 18:18:07,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
24 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-28,0x2a7837f17aafdab94dd4531f131995e53035ddae9a2e841a2175883296d3be89,2024-09-28 18:18:29,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
25 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-29,0x50195e96bf0fffbb03fc107a9dc7c8e6a8e3e56ce66b34ff07c6e9e03e1ff2f9,2024-09-29 17:56:05,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
26 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-29,0x6e8b7cde35dfa4e8685468efc4372a0ddc29dbe6402cdd7aa9558420e99b76d3,2024-09-29 18:21:53,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
27 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-29,0x3dcd18338ae0b8fdee620b5a624403b37acf7c0e9358337f223068ef803f8780,2024-09-29 18:22:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
28 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-29,0xd4cde9b125d7f1fb6a3a643d0f1dcecfedafa35a56b082e45496a57df1e630da,2024-09-29 18:22:39,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
29 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-29,0x58afed267747fd871fcde3d259789b11527c813734c5385f024bfd65c0d80477,2024-09-29 18:23:03,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
30 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-30,0x3603d6513b26de8f6e8fa30c068afd9357543559a44b500770eebb39d70a37bb,2024-09-30 17:59:49,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
31 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-30,0xa5829b7d23f43925c76c444d8b3982e7e36a5c772fa1e52a195f170bec7bdeff,2024-09-30 18:25:43,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
32 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-30,0xaac5a58e3c17589b3fc738875f2ca63d4b8a931cd4d83b605c1c63904b3a8c7b,2024-09-30 18:26:07,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
33 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-30,0x23123c823bcc0bd6e7debb6cf898c09f9633b307fa0362a5b695860fcd26556d,2024-09-30 18:26:29,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
34 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-09-30,0x2ef4002702b6c5e822b7f1eb56ef8868b485cd6133ea75e324f52d9d961e7f39,2024-09-30 18:26:51,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
35 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-01,0x07edf2c1d52bd085b483a4d78d68f66f3b960c2f8b00a116c75f356d395014a2,2024-10-01 18:04:13,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
36 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-01,0x002d1e1a828b3a5bf0b9a1aafea84e3b2aa1baa3821f365f56740d7d2ad7a728,2024-10-01 18:30:05,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
37 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-01,0x1c13d5371972b9483d3fec56a30bc3a3037192077d4aa53dea7ca264fec9713e,2024-10-01 18:30:29,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
38 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-01,0x3b27d64ff2953ecf83ad012f6491c6811c53e4a741d6f001418c2341a72a005c,2024-10-01 18:30:53,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
39 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-01,0xab518b126e28e79cadd4787192bddf14982e53f1147596537020e29b263ea06e,2024-10-01 18:31:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
40 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0x03bed38602800fe269f10de492385ba526a84ec2cc7f9baa23619bd35da85fd7,2024-10-02 18:08:25,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
41 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0xd22d313ad6e3182c458f622bca14d43bb8b9ca9048d26091314120eb89327ae4,2024-10-02 18:34:21,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
42 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0x675ccf60999d108687723fbad766b4fe9c88fc4124922075f4eb66a419069f00,2024-10-02 18:34:45,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
43 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0xae6738f676a6df8468dd35631a84e236196f31781e10f42b59a5f2e06ec8d621,2024-10-02 18:35:11,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
44 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0x2f52592f281c86e3595310037a111a6aaec3a35e0c291197878f5ceffd060e47,2024-10-02 18:35:33,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
45 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0x4177e1d24e370c07740cb39146afb5bb8d94ea86a7cc7d99a91418063a2e51e1,2024-10-02 22:47:59,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
46 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0x67eef64284209d9ac03f57cdfa8f23ee9ad158ae12d92a3d5d70263c76d50311,2024-10-02 22:48:23,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
47 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0xe1b09e4690cad0315a50f6e651a1e4f7e7636f089fc897b92fdf9de3efb88848,2024-10-02 22:48:47,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
48 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-02,0xd716065247d7d17f2d5df0b0884efb1429b9fd8429390ecb8c368139d73269f8,2024-10-02 22:49:09,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
49 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-03,0xbdd16cc721c952ac2db3dacb6084babeb8a13c17ba1dbb44a642f766ef806c40,2024-10-03 18:09:11,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
50 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-03,0x2296dbb131d0a670822fbd3f682d550aa40fdc039759041ba5a178050b0e6e9c,2024-10-03 18:34:59,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
51 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-03,0x15926312822752070924174de37cda4d3d8f03f2f0970b07ab04bc2e153f8f28,2024-10-03 18:35:23,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
52 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-03,0xa8d6ced16e7154fbcbbafb4959cb3ca2a772c5184280e41818c3e0a77ea99cc9,2024-10-03 18:35:45,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
53 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-03,0xd34ce2ec71e543c0d043ab81500450c7ba15784af08cd162041ab9c861dffcd4,2024-10-03 18:36:09,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
54 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-04,0xa2f5c1d49938c2c522053a6e580950e47f13cbd8969b584f759e7455aeab190e,2024-10-04 18:14:23,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
55 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-04,0x255f06717a24abbf83a3e38458b7f319131f49ea78b407f7cc3b730044d0f903,2024-10-04 18:40:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
56 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-04,0x7edc08a131c9c98d38a6ab7f9d8e9f712919ec20cc9d4039b81af0ae3d7b73c7,2024-10-04 18:40:39,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
57 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-04,0xf791d1891ab8c19cd188f36733e7b2283e0d9c03b6eb1fae8ec02cf8ce743ab2,2024-10-04 18:41:01,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
58 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-04,0xb6a6a874ab5990e90df1a82071653b4ae76849945493bfa0c138943bcb4ec27a,2024-10-04 18:41:25,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
59 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-05,0xca9355317dbe951c691cbc00663c285a2f7b2ebe6ba6c97d56323b43d2ca5b4d,2024-10-05 18:16:33,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
60 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-05,0x8bc424a0b63e30bb90eae9f3d8b39331e9eeab3dca931398c55e812daeec67aa,2024-10-05 18:42:27,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
61 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-05,0x67e4281c16ef8943674c5a754bfb9424bedc76cee05cb18689ee6ae00f813c16,2024-10-05 18:42:49,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
62 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-05,0x5727658de3c9c2203db2f902c2ab793acd1743d48c34976f94d69ace7da13c85,2024-10-05 18:43:13,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
63 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-05,0x3d0716682ef361878ec806fcd13312c2bbb3992f6d1579972bcda7f3a071d0c9,2024-10-05 18:43:37,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
64 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-06,0x950db9e6fb2ffef17e18108f78cdee3ea67e50fe1f77bf217ddc2187391878c4,2024-10-06 18:18:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
65 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-06,0x082ee7e680fbe729a6d4762f44937472341f0dbbab0246bd2453e7d6789a7a04,2024-10-06 18:44:09,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
66 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-06,0xb48ca890464e5f5a936a2b37356b45d6d899ba35ac2dd786ed32106979bd182b,2024-10-06 18:44:33,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
67 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-06,0x01249bb16afd6e82b29107db57fb010aa1566e952808826609097850f28d6e95,2024-10-06 18:44:57,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
68 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-06,0xb01eeefc632f63e689de5b5b46cdd98f8ef5c363c1c3ae72c7fb34bdfdecc9b0,2024-10-06 18:45:19,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
69 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-07,0x566a02173d6d0d03acfc0c3d460db03793af4b55465e8ab2af17b4db03e1225b,2024-10-07 18:19:49,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
70 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-07,0xb12acc7e1b984e34b35763ae63b82e651b12b984e8e0a4ef6d4962984f1e59c1,2024-10-07 18:45:37,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
71 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-07,0x9be5b67d4cdf13c079aa44674c30554cbe2d6545463e3afc6327822cd4a6499f,2024-10-07 18:46:01,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
72 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-07,0xdc5c6fd66965fa021891c3914a9d3138bfee598902cf82a7327222193accf47c,2024-10-07 18:46:23,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
73 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-10-07,0xc6ec42440f16143e30decf95356285ff2c996a80b7377324e2db27c28922ac6f,2024-10-07 18:46:45,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050e90bea65c9ba6416996bb6fffa8f925885d40
|
74 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-10-04,0xdf58f14196a0693e1d767996fcec10b487efa8f6758ece46b47af91ecc820249,2024-10-04 19:09:29,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d
|
75 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-26,0x3cffb2e0ad7a1112415619dc7cdf87d4549eaa1eb15f6f349be8ab69aae5cd23,2024-09-26 18:16:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
76 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-26,0x0da11730c3f7bb0cc1ab62939d76cdbbcadb0cebf1af74319fbb5061816aac43,2024-09-26 18:17:17,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
77 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-26,0xa15b9e0cc87e4bb10cdfacc978353396432ff1fe90d6518930e5f0793a8b37a9,2024-09-26 18:17:37,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
78 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-26,0xca171f90a61c0894165d9927c4ecd3353a3e042db4b2c795042be91331d6de2f,2024-09-26 18:17:55,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
79 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-27,0x34ea9a3d8e63d645df4ea9358f8bf66a90a4c8a3725fdfdc235d1b4287ee9c84,2024-09-27 17:51:19,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
80 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-27,0xbebdf9ea646631ff785d04a11b4a1f9f9d34a28d941fa64162a75e11759ceaae,2024-09-27 17:51:37,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
81 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-27,0x74ce4551cc81a4d8a6e550aeb20f321d05bc119383e07587f4cb4b50f288ec01,2024-09-27 17:51:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
82 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-09-27,0x907910b3d3a536beaa703ed074348883356b9226a00d840787afdc9a77cfe3fc,2024-09-27 17:52:17,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
83 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-04,0x54a5d52d4bae5f2a448b6518f70bc804bb12b7094c906ea1069c0533df0ce8a1,2024-10-04 23:12:35,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
84 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-04,0x356719746d140a01e0958320beae6c7d2fd3c665d3735740aea4b37ed94d8e55,2024-10-04 23:12:53,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
85 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-04,0x858c90cfc4558e5cbd1bc5ba9224d38c227a52238e9a01df145021338cef23fb,2024-10-04 23:13:13,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
86 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-04,0xe410d7236f09f4c4f2e520417c5d392b0c90f8e3c146bf59a150fb7cd2b013b4,2024-10-04 23:13:31,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
87 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-10-07,0x64e43a3197333fc6efcd577837649b54e25c47ccbc9d00f91a11d368e25009e9,2024-10-07 11:57:33,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xa0ff35bfbd3c42e3afe29255742c7558498f5544
|
88 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-10-07,0xc0bdf9c0215249d766034fe8999569c6fedbc3e973386731f68e180c03d9a430,2024-10-07 12:12:29,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xa0ff35bfbd3c42e3afe29255742c7558498f5544
|
89 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-10-07,0x426ec7fe2dddc83ebc5ae45163841743465ed4f3a3a3fcd5e29d9224fb35fb1b,2024-10-07 12:13:21,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xa0ff35bfbd3c42e3afe29255742c7558498f5544
|
90 |
-
base,0xaC55EEb3fdAcfdFae78c62cAA58934900Ad54ED2,2024-09-26,0x1927d44a64dcb7d49a853c7aecae452009100433458a575d207b6fe564bcb254,2024-09-26 17:51:17,0x66749af7e077bfa30aca7c671d56f07e95304722,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
91 |
-
base,0xaC55EEb3fdAcfdFae78c62cAA58934900Ad54ED2,2024-09-26,0x60bad359d0e6a3f07979c8370ba1226f6a5effdfe47c901fbb7e4b1f44c805e5,2024-09-26 18:29:31,0x66749af7e077bfa30aca7c671d56f07e95304722,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
92 |
-
base,0xaC55EEb3fdAcfdFae78c62cAA58934900Ad54ED2,2024-09-29,0x5d3f63be96d60a282a0d5b8216e22101dfc384999a5b5a5de59ade764c59367d,2024-09-29 17:33:13,0x66749af7e077bfa30aca7c671d56f07e95304722,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
93 |
-
base,0xaC55EEb3fdAcfdFae78c62cAA58934900Ad54ED2,2024-09-29,0xcd4986fc3a3406e2ae5a3246a72f04b6b3500f6074c64433582947606a202486,2024-09-29 17:33:43,0x66749af7e077bfa30aca7c671d56f07e95304722,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
94 |
-
ethereum,0xe1EC43B9e4aF80c0b50579AB820f0Ca4304D4DB0,2024-09-26,0x44c17afd9cf22261dc7881c0b72453f532d724d87a6b8a0fc41b5ee524223248,2024-09-26 17:49:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0xe1ec43b9e4af80c0b50579ab820f0ca4304d4db0,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
95 |
-
ethereum,0xe1EC43B9e4aF80c0b50579AB820f0Ca4304D4DB0,2024-09-26,0x4e1b99d3a5457ac8e6598dacd0b163217965cc69fe9dbe97fb7f1829e7879a52,2024-09-26 18:28:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0xe1ec43b9e4af80c0b50579ab820f0ca4304d4db0,0.0,0x66749af7e077bfa30aca7c671d56f07e95304722
|
96 |
-
ethereum,0xb0830c65499ff2A25D10D895970b152193b13FCf,2024-10-04,0x2d6cd40bc7862c05d8a1cf26b473a58aab79b322d98fecd304b261eda46ada20,2024-10-04 18:56:35,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0xb0830c65499ff2a25d10d895970b152193b13fcf,0.0,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d
|
97 |
-
ethereum,0x654F17A32fE4ebAEBD6A0669AFD4f7392A7A47BE,2024-10-07,0x7928005ff789c7f3615ab40a8368695be812835ddba4b0645bc4043dd9ec5ae5,2024-10-07 11:45:59,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x654f17a32fe4ebaebd6a0669afd4f7392a7a47be,0.0,0xa0ff35bfbd3c42e3afe29255742c7558498f5544
|
98 |
-
ethereum,0x654F17A32fE4ebAEBD6A0669AFD4f7392A7A47BE,2024-10-07,0xaf3e92969ca37a7999c81c509d33c5b50b2f212574752c22916cde6f7c58c49a,2024-10-07 12:11:11,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x654f17a32fe4ebaebd6a0669afd4f7392a7a47be,0.0,0xa0ff35bfbd3c42e3afe29255742c7558498f5544
|
99 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-08,0xaee13886847dc95d2e608ab7d56f9630dc59122ac807168f9ca952c6163c5a81,2024-10-08 15:32:07,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
100 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-08,0x1d913feaa55fc772cded5a1464e30b1a162d4d81ead9c353498ba272678b71ab,2024-10-08 15:32:27,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
101 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-08,0x9bac7a0e70877600504770e9baab57aca80e605ef154c4023fb58ece09c5cbc3,2024-10-08 15:32:41,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
102 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-08,0x84bde757adfa865b03b5a3aad8c535c80de02e89e679a79408c613ce68f7e53b,2024-10-08 15:32:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
103 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0xdc6264296464eec917a29cfa499671e1101b76493199a9d2d708fac9ed7dc2ad,2024-10-13 00:28:39,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
104 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0x1e64654a1ca673846f73da3af87e9b64aa201794c2739687fe19bc61a1856eee,2024-10-13 00:28:57,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
105 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0x621252dc18c34d105930349c91c717b20b15942ea9cf559f3fd873f9ee4e2a6f,2024-10-13 00:29:19,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
106 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0x9f59766b0e38e91500646912786b19e2e09d1c7ad76834468ae9d83a68fc482d,2024-10-13 00:29:39,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
107 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0x3c322ee250f3fe6a003920d58054e73950706a803f93a3f45bdf87c3cdf89d9b,2024-10-13 18:29:23,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
108 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0x44068297bf896955f23d92757957292f066446efb329d3c9771ba220d5556321,2024-10-13 18:55:27,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
109 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0x3f0b301a85002d1c89e912c5fb59004dbcb425eaa30df4582a672db0b4d4c376,2024-10-13 18:55:45,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
110 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0x2aa1b5207df4b04baec42408893544f59c977e34048b445aa7172def84f89c8a,2024-10-13 18:56:03,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
111 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-13,0x304741cf12f71f523ef9d4f9a166f9f123e251c8e486cd73d0f5ca9152587ea8,2024-10-13 18:56:23,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
112 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-14,0xa2c5c1805397e690208aa98456f20e41718077a151a03fbfddea6b1e870a428e,2024-10-14 09:31:55,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
113 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-16,0x8c5fe6db3b2e873853884d5855f4d495aa7f3740edb15ca38dd1991f350efbf2,2024-10-16 19:44:05,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
114 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-16,0x12f7bff8f9124c87bb5f024d3f6a7408541cba2012ab5cf91307f6bbdebc917a,2024-10-16 19:44:25,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
115 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-16,0x890bab71cb998b2ce20bf726a399935234feaae1634fff1379cd6b176eeedfee,2024-10-16 19:44:45,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
116 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-16,0x456d9007e0d58381f0368c41c83f8ae2e8ac98439decfd91ab401436ac97719b,2024-10-16 19:45:05,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
117 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-17,0x58a8b1331e4f65b3a0500931b968867a89c9c09ea51ca6633fc5ad607535aaa3,2024-10-17 18:43:21,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
118 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-17,0x3cefa7ad4c42a59b536f844f2523bf9b9a083de4ec2e6b1e03fc239aa80f2ab9,2024-10-17 19:09:15,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
119 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-17,0x269a707d5e892bd9970261cc7c46c9fc504b18aecf115f5ebdb274959d0b3ebf,2024-10-17 19:09:35,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
120 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-17,0x7ffeabb33e2e802e21ec2a65e994c020d22b29944bc740f924e549deec34ce26,2024-10-17 19:09:55,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
121 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-17,0x14d3ed4f990013913f74ca3eebcc0ae5e4a2ba1092f11292009761977b202d63,2024-10-17 19:10:15,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
122 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-18,0x532448cdfbeff3df4bb62f481eaffa078b2c5adc72b69642cfb69079665ff522,2024-10-18 18:45:19,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
123 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-18,0x713bc3c78922b7f1106daa1e655472b9b026368545fd768c9ea7b92309947334,2024-10-18 19:11:19,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
124 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-18,0x95a42baa217807385097803f3a143fffb20b746e90696c8a46b047e7c7e6e7f3,2024-10-18 19:11:39,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
125 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-18,0x9367d6e66f04fa982057b71015105a71d62e412a8f15893ee94e4c1acc94a6ee,2024-10-18 19:11:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
126 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-18,0xa0436d809e9fc7181f96389b233e9205cde9b323f0112b228af72d651a81c9d5,2024-10-18 19:12:19,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
127 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-19,0x4bcd3ce86be93a62fb338feadd3a4ea2446de2d8a200ad4c041b141a19c10201,2024-10-19 18:47:51,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
128 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-19,0x740660a2af7e3109e4790e5d63c2044cceda76f63447b6bd0cca721113dc84f7,2024-10-19 19:13:43,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
129 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-19,0xbdf047bc27897dee5bbf00437cb7e03ae9eac0928fd749341c92c10d437d9dd4,2024-10-19 19:14:01,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
130 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-19,0xf34f26b8357cc5ef4d274a68fb7ab4bfa74c0548a8c534304cdaaf0460b204b4,2024-10-19 19:14:17,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
131 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-19,0x6c6747478eda1d352e6f6c7178dbd75123870574047730e418a4f0a3fb6c1cf4,2024-10-19 19:14:35,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
132 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-20,0xa2879a875d64fead59ca4129aa717104c4b33b2a762187e1e48c7bebb6c0b353,2024-10-20 18:49:09,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
133 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-20,0x423585ea66b5b290b569dd8b84f56b7a9e8d330cb06f3701db163791fcff2714,2024-10-20 19:15:05,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
134 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-20,0x672ec755a343763daa8b687f01e71c1b088815a41192c4aff62d68b801c956c5,2024-10-20 19:15:25,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
135 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-20,0x434e1ee73b31f0a559c24f57c6914346d9a44fa388a75bf130204e75800a61cf,2024-10-20 19:15:47,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
136 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-20,0x68f45e463facb02da1963b43646341a90755c539f767e6ee6adf70513d051c03,2024-10-20 19:16:15,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
137 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-21,0xb89c76c2eb8d73b8998decea57c8e3e77730e0aacbb469b7708973ee4bc27cf8,2024-10-21 18:49:31,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
138 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-21,0x90b00da8ae4eb267161baa3e33a98bbdb23749df77e6b66733c5efaa45b1d178,2024-10-21 19:15:27,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
139 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-21,0xa000f5cb6f82557048c04256b173c17ad077524f3adbec9bf011a246d6a0f2e1,2024-10-21 19:15:45,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
140 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-21,0xc222a959b5246a4fd564d3bc5f282b618e2c16960f671b93bb28ab23f23f7fda,2024-10-21 19:16:05,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
141 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-21,0x47c0ab659de596bc52edc299a957ae2504fc203852a9eb697936b5155aff3e3a,2024-10-21 19:16:23,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
142 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-22,0xf4075fb335e25c08d3ef7761e837624ba584391f5c8278ee871d1bffde785ed2,2024-10-22 18:54:15,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
143 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-22,0x8bbfb98576ebcd9d1ce5d3e94624b60daa0b2b4be4aadeb3f1cf3e33c816fe3d,2024-10-22 18:54:33,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
144 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-22,0x913ff32263bace6c07f713c63bc9328d57cabfac0f39d741ad1f31e7770e0e35,2024-10-22 18:54:53,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
145 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-22,0x8b1d52b325e6fc187124a7176a34d2fdf57761890a4d45f13eef99f6111cf7cd,2024-10-22 18:55:11,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
146 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-23,0x93bcad48afc8a95d24eca58f220753f0534e60ad8b4690d022540834471feaba,2024-10-23 18:54:11,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
147 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-23,0x146f693496b5cf221180b709351b7fbc39c5a428637bc06c87f4a5904ce84821,2024-10-23 19:19:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
148 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-23,0x9896ff4ee5456131fc4949f1c4e01acc013751a1763bbf103562caef2515cb1d,2024-10-23 19:20:19,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
149 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-23,0x320182ea16bfb101d94e092338a993ffcfc92e55cc46030e18198e845ba8794c,2024-10-23 19:20:39,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
150 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-23,0x76ba277dfdd9bef45034b33f074da67a8626fab5bb147eb21088a881ecbeef0c,2024-10-23 19:20:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
151 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-24,0x264fa35911f00f1a1b513beb2f32d4d5c281cb00493f96894cf981d881d840b1,2024-10-24 18:58:45,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
152 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-24,0xe77ee3efdb94a400fbb9e5413561bc9625f676a7bc599a3cbdf62096bcd012dd,2024-10-24 19:24:37,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
153 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-24,0x518f90668a03279ea9a67e57e1f77300aa9e551267e24e3c74d488ef031dec61,2024-10-24 19:24:57,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
154 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-24,0xe74cf41e7d6809c0833ebd576464f0cb3d909689c050b809aeab68eec748c0e0,2024-10-24 19:25:17,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
155 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-24,0x360ef20f43eb93b89ffa27f5c8d8172d7cef3736fa6760c136f3f6c6069d1f15,2024-10-24 19:25:37,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
156 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-25,0x1ef28e781f3d79a97f68f65ee074f4d5fc2017b5cd873de4c9b8aa14481aceba,2024-10-25 18:59:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
157 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-25,0xd236de3085624b6076c806dd047510a045427eaffc2a442fd0f519f9d9634e85,2024-10-25 19:25:49,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
158 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-25,0xee4dabd6cb62b7edcdcab7bd57f6ac5e20d525387a25f16758cc8d1ecd19f73b,2024-10-25 19:26:09,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
159 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-25,0x5b6224dc73111cfd98476df1b0dd985cad877898bbd93b6e5ef08f6f72853c8b,2024-10-25 19:26:29,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
160 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-25,0x05317fd0de5f014271756ba00fb4ee549bda6b04c6990815fdb380cbbbbc6d09,2024-10-25 19:26:47,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
161 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-26,0x217f3af788804ae6e562907d9521f723954a33600f414672653ea27580068465,2024-10-26 19:05:07,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
162 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-26,0xa2b613d431ca658ac1021ff3c23a68a0de4cd0b8a4e66b19b9af3b6150f9d516,2024-10-26 19:30:55,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
163 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-26,0x66c7c50ad857ef0d2a85ef5995c66a03be668354be4cb3d95e45528a21536a38,2024-10-26 19:31:09,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
164 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-26,0xfc2f9428e250fbe061b0654d93d3a11357aded6ab8a77e3909dfa81ef46441ba,2024-10-26 19:31:29,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
165 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-26,0x375a00e2b2a0b054cc05720614d93c507de8e2b5e2172c7a8634e0657ccdc6b8,2024-10-26 19:31:49,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
166 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-27,0xd3cb6bb7d734ffda7fdf1fb5acbf59de43ec0de8029493598ceb66eee64c826e,2024-10-27 19:09:05,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
167 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-27,0x9fb681cfbd404e934da5caa9501ad344f09cbf7392da91e877aa9beaa79f8d5b,2024-10-27 19:34:53,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
168 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-27,0x5531415dba71092cca3d3692f881825c21494b4a805a76fdc2d8cc241ba21671,2024-10-27 19:35:11,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
169 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-27,0x88ebc564c11d0d965d695ccef18b6f74a8f912845cf881b804fe4ac40fca4496,2024-10-27 19:35:31,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
170 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-27,0x0fc54a1c69c596af4e206d8f75785fb20f1a6e2045861f859b7645f5b4f0386e,2024-10-27 19:35:51,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
171 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-28,0xa00031a4011c14d0bbc21708512ef70a5a2a5d375f030382672538a793127589,2024-10-28 19:10:33,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
172 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-28,0x8d02c3c70e6ee4f3b3b87ce24c97c00b0d7e1b6491fde0c57a31a99b27174f99,2024-10-28 19:36:29,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
173 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-28,0xeda6184920bb594ad0449b6fe9762cc3444684df691e722963fefca8f2626fe2,2024-10-28 19:36:55,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
174 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-28,0x95477eafc145e1d5b1f418266041acf086e5ef68d3e9cde3ab04bb3c26d87824,2024-10-28 19:37:15,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
175 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-28,0x2fecdf097c478a3a9c95fe2388690037b4d36deeedc8e43fead5301821216e64,2024-10-28 19:37:35,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
176 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-29,0xe01b84d49c84e01c5715a9f8c4459126758201b57d224a6f82e76e15085a71e4,2024-10-29 19:13:05,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
177 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-29,0xf02f9f552b4034c184b13da263df2fb0d1f2d646df7add4b125a196079b2abd3,2024-10-29 19:38:55,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
178 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-29,0x3938b5bd5b140b0b65d377727634264f1d6bf5406f7541c542151eb5d4bba689,2024-10-29 19:39:15,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
179 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-29,0x9026951710b3a50c1f810aae614d91e36a0cff079a095d5665fe075a9043cc55,2024-10-29 19:39:35,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
180 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-29,0x223eb50fcfe4197559b263fa627e836c3eb34ca5aed52debdc10c1f7cab43c9d,2024-10-29 19:39:53,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
181 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-30,0x8582916cc4cebe710368798b63a258579e191aa8458ef3ab053d6bd94742ca66,2024-10-30 19:15:53,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
182 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-30,0xd0e43873574f9b5d2ebf2e574e8df23b3e28848f38c9d87d05ff4f049e677af4,2024-10-30 19:41:45,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
183 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-30,0x2df7a6b5e288b33fbf5d6d781d303bb38eccd3b524f363ae1af3588c04b0b7aa,2024-10-30 19:42:03,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
184 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-30,0x28c95deb4a724ce96f75db7e571f33f76246c7820c4b6c3c7676b99535abc49a,2024-10-30 19:42:17,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
185 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-30,0x158bb912fb5c9fb2cc0dbe39403ebd89af6c43ce1a4f52967a56aec88d1b75c5,2024-10-30 19:42:37,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
186 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-31,0x040dc97e7862c2c8171404a551e1a384ece5660a57e954eb74854dacf9c61fb4,2024-10-31 19:17:05,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
187 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-31,0x9da0aac3d1fdc020b59a9189477a0da83ed977fffb95621ec44217144cadf551,2024-10-31 19:42:51,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
188 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-31,0x2f33cf3b588fc7c64f35de8fc59037f4d0adf1a0d3eb51d4252a21cc50c8eb7e,2024-10-31 19:43:11,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
189 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-31,0xc31f680881727987cd0acbb1a41cfb4181893e302a8efdca6fe8ea7de0a41099,2024-10-31 19:43:29,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
190 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-10-31,0x85e404a4890a59a6effaecc5264d520c29e390507ac3928ccf2315e3b5fe793e,2024-10-31 19:43:49,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
191 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-01,0x1802f2651936e4546c66de5da6938e44b87264441b7474cd4467550c404eec22,2024-11-01 19:19:17,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
192 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-01,0x7ad26e34cfb57041448e8fe66e13e4b7b4ef455420fb991cc7b80173156c63f3,2024-11-01 19:45:07,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
193 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-01,0x68fb23d59aee63bd0828eeacba23401f9e8f4c3cfe14c4ee68a0770232fd0c6d,2024-11-01 19:45:27,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
194 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-01,0x6782b12f2d402145479c2d924b23f2192cc28785e56be161606081de2fde68bf,2024-11-01 19:45:45,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
195 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-01,0xe07a8e535f1bae4b0a24069cefa0bf27cde63fb62adc6ca60a59b1f497d935a6,2024-11-01 19:46:03,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
196 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-02,0x617248afac580453cc0d28a3f15797f8834e814e07c562c7647418c2717fc3a1,2024-11-02 19:21:25,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
197 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-02,0x85f67b51bca14306a725ea35185273710f3bc67425394c949d96ddd9b58bd3e3,2024-11-02 19:47:19,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
198 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-02,0x5f736fd5a5a858e89a982a294810b0e394d729cf159f69f72a6d4f8bbf819372,2024-11-02 19:47:37,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
199 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-02,0x88d799d9b24ce3b9c2022127b1a9fce4851089fac6b589d35dc1fe636554eb72,2024-11-02 19:47:57,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
200 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-02,0x5318d7a208a8656d937407312e98832708116a215c30b9aa6bcfc02be714e463,2024-11-02 19:48:15,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
201 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-03,0xb4c218e08e15d67bdce233db280b2c39fbb12eaf6868b3f4fc361b60f92dc3cf,2024-11-03 19:23:19,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
202 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-03,0xd2d2cfeb9a5c6cf7a2cdc8598702a45146da4579f800628499e04189ea3de559,2024-11-03 19:49:29,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
203 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-03,0xcd0efd92eefc80a14e8cdfd866fe663625ef810eccd0470399482847551e274f,2024-11-03 19:49:49,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
204 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-03,0x4b776be31cc433cf87cf5b71028711a432a98ad9cef38a9954f9f8c7b30fe0fd,2024-11-03 19:50:09,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
205 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-03,0x403310590961833ed5e0232ccd9e465d0bea968c1ac9ca8eca409c692fa5faba,2024-11-03 19:50:29,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
206 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-04,0x7a53660c46a06ce181c632c18f982bbad090d0c392b14d563c451525120ce91f,2024-11-04 19:27:41,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
207 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-04,0x9f1e5fe60f6582d654d3fc157d7e54ab3c7e90f1a5cb5f9d1bd2fb2da03d7118,2024-11-04 19:53:31,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
208 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-04,0x8b7c93c5f72a7fb1be439f5dcfff758ae7734278c86eb0bb942a30ce6d59d9cc,2024-11-04 19:53:49,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
209 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-04,0xa5d6de28b1f0e6ff99acd54d4d27933b75ef41477e2d3d985fee6d7bad107fb5,2024-11-04 19:54:09,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
210 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-04,0xb27813f63f526a86f3f219c25c2d93a0013fc75b1830647bfec622eeddcf337f,2024-11-04 19:54:27,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
211 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-05,0x6ff2f5c8fdb1ff1cdcc1e2af37c8584f0876fcf2eb08c07913f5b8320f5a98f0,2024-11-05 19:29:29,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
212 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-05,0x31991c9e4c950e833211a6088f1a92fe48beb77aec9ff91d052348982529f0c9,2024-11-05 19:55:23,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
213 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-05,0x6a49f3b11d3b74400e6226377fab2f120e4ae1c612cb543038012449481c9c96,2024-11-05 19:55:41,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
214 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-05,0x74cd714e4161130f3f65722c2d8320119a73b9b4903e35ef4c33262b0c8de825,2024-11-05 19:55:59,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
215 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-05,0xc2dc3ffc66d1c310f93449a456dd3e753940f5468c09daa0788435755a7014bd,2024-11-05 19:56:21,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
216 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-06,0x50bef7a9a824cc2f0bb71f0e18a494d31ddf9940eca724414155cc7337f4fb3a,2024-11-06 19:31:07,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
217 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-06,0xa57c0b6fa67f07d324fa72730e30246915fa2d8ad624c159e3f64b0135707b52,2024-11-06 19:31:25,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
218 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-06,0xfcfadc6d2a48eb5a1ccbe37896c5ad40fab88eb68b54313d2be7270f64cb3606,2024-11-06 19:31:45,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
219 |
-
optimism,0x65F0fDeBCe6E62c195A3Bd5f2447c87991BEbFF1,2024-11-06,0x3818bfd6ec999bf226e75c57b02976bcc96ce3bb0fb1fe7bd8b9c3a4a3b9dd7c,2024-11-06 19:32:05,0x66749af7e077bfa30aca7c671d56f07e95304722,0x65f0fdebce6e62c195a3bd5f2447c87991bebff1,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
220 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-10-08,0xc1cdf7fe5e6cf49304dff2c6f0e21c2efe6eaee974397569a5bf6d8a07f25278,2024-10-08 15:43:15,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xA0fF35Bfbd3C42E3aFE29255742C7558498f5544
|
221 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-10-08,0x4bd5c053da25974ede509aece519ff525c8021498ac001ec733f5f10a8ce2a8d,2024-10-08 15:43:49,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xA0fF35Bfbd3C42E3aFE29255742C7558498f5544
|
222 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-10-16,0x2f2befe741ea2f67d1866ad2391f4449a25a24b282bb55a2671aff77ca4c0f8c,2024-10-16 17:26:29,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xA0fF35Bfbd3C42E3aFE29255742C7558498f5544
|
223 |
-
base,0xaC55EEb3fdAcfdFae78c62cAA58934900Ad54ED2,2024-10-14,0xc0b652ed397ccf290383de61e39564df58c60ff0838e23db7fbb16e39ab92278,2024-10-14 09:31:17,0x66749af7e077bfa30aca7c671d56f07e95304722,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,0.0,0x66749AF7e077Bfa30aca7c671d56F07E95304722
|
224 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-07,0x777101ac049d7178f440dd563d278893224bd45855b2f0dac85018b800e4337b,2024-11-07 19:31:01,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
225 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-07,0x1ce9cb93c284ac98cb42308f7433028d96305324f9445defc30070e6c3b95a47,2024-11-07 19:56:59,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
226 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-07,0xf8a4aafdbc7e2bcc0f72ff24d3c3da0ab2edb09dd21716d2e51741e9a7f5350f,2024-11-07 19:57:21,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
227 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-07,0x01dd25efc5796387f21a4f590344878015b1021c03fb809a8b91752056953f37,2024-11-07 19:57:45,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
228 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-07,0x86a213083f6e577c3a8f9a5d1f594bba22353ced0cf73167b8a34bc4153132fd,2024-11-07 19:58:09,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
229 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-08,0x56c0b7952cbdaf6c5ba89f8977afa051974318d8c93f42c350c97e23f3651d59,2024-11-08 19:33:53,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
230 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-08,0xab1c9ad2d6f3376fff1fb2891850b649730e530ae8202c42d0d0154f5fe4b747,2024-11-08 19:34:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
231 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-08,0x21ccbd21afcccf5afa8fc866bffc76d51baa5c2798ffa279ef0cbab1c259f59a,2024-11-08 19:34:39,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
232 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-08,0xc52544163c4c5a1ff493644ac036b8e5caedd85fd9f4d84ea49e9c2ab5877256,2024-11-08 19:35:03,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
233 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-09,0xd9cd34a677fb622c1440fe476358d404ebe67ebc6117a8ad0834c7ee5713aaa6,2024-11-09 19:32:05,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
234 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-09,0xd07fa7d843ff1796bec23c9e008161850332dcb58407e0500cc7d59f53474dc1,2024-11-09 19:58:09,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
235 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-09,0xc721084ac89d3a22711acd9633724820dd417a2b16b7958d8aa4077a8788e679,2024-11-09 19:58:33,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
236 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-09,0x2071f7a06240e0c2842b565256c18979b700e4c6680185883a67237366fbfffc,2024-11-09 19:58:55,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
237 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-09,0x22034096371502cce1c45cd5ecf19adb3da4719d22e7fb3d9bb70f6ce1fbf817,2024-11-09 19:59:19,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
238 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-10,0xd2020ffab1ee7b67911af3755cc093dc22c374bc4b2acee2c9a3cef80dfa35de,2024-11-10 19:32:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
239 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-10,0xd3216528b367cb9a04872b0796e9eea05169e1dbeabe0dfb4bcca7c5de48e52e,2024-11-10 19:58:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
240 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-10,0x205ce434790c2c5d36e53ee197068b116b2a6d8ef15ac551b687494a8c66725d,2024-11-10 19:58:39,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
241 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-10,0x31683592718cbf103abb6d5b6b77a6167c7913474af170a325942e3ef74b8515,2024-11-10 19:59:03,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
242 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-10,0x12c5980a598ffca619769974276eab2cbb6a7097afa99e0e69148c7c8d80c6d3,2024-11-10 19:59:25,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
243 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-11,0xa9b4a40a6d089564307472fb6c420931ec25e22c9fa5375242fc881eb8f9f2c7,2024-11-11 19:33:37,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
244 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-11,0x9fdaf94fd3ecdd6310afa58d90c1f79870c7baff10b0dd7b70145fa692750c6f,2024-11-11 19:59:33,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
245 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-11,0x10dec24ccf339fff6aef309ac04968b8c80d38a6238849610b5251dc4e786fe6,2024-11-11 19:59:57,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
246 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-11,0x0576b6ff2a0bc3ee6a6baab7de7ceeae1e095c28517c1fbb8f04913223b7047c,2024-11-11 20:00:19,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
247 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-11,0x36f176f26e8cd484be0c2ee53b2c71196f5b3a59651ffc99926f657c94579310,2024-11-11 20:00:43,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
248 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-12,0x3944a2a9969310ce2062cd55008aaaca2e19c7224d011b9962981f8b1bab2e49,2024-11-12 19:36:15,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
249 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-12,0x4a7622409194f23b2c6a883845650e699aaa8a3041c95adc35b004522ad58fdb,2024-11-12 20:02:11,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
250 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-12,0x1613786a3bedaa3bb0a9c4e5689c82f70e915879ee03425c4e3132bfa9ff0baf,2024-11-12 20:02:35,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
251 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-12,0x7690b38342c7ce3b2083e5aaa143f07398fcd9f4142c752509c52e52f3cb58ee,2024-11-12 20:02:59,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
252 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-12,0x8396385dced898d0991a3f14db45fe7f238f05bb8ceb44dac8c1bebf68501e73,2024-11-12 20:03:31,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
253 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-13,0xc330e488ee6344ddf38e525dd4d985ca5f29cce4573bb5ad2cd4cdb287d4ee34,2024-11-13 19:38:15,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
254 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-13,0x79fa8a612cff5c3139388df45c803c1a592d2da541827706e8fe66e438d92fca,2024-11-13 20:04:13,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
255 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-13,0xef31d42f1c4f877cc78d84d50a510685a1d715e93439fc3a991a56e62be65e67,2024-11-13 20:04:35,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
256 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-13,0x729d1797f1710774c3595c02adfa04934efd60df3f89164f10d6826f8ab3c954,2024-11-13 20:04:59,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
257 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-13,0x278e630b6c199be3f8f2fe3c73797b27ad79a9d9fb2ff8016ad5e8849fcf166c,2024-11-13 20:05:21,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
258 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-14,0xe331f57282bf964b830fe5e073aecc528d9b48a26ca78c56ca37338e7c700bfb,2024-11-14 19:42:01,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
259 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-14,0x11995578ec6941fa53d18827cfdbb944e9e2f88b589c70fa0a865d702d44c8df,2024-11-14 20:08:07,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
260 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-14,0x7242a09272ab2bc786fad9303b1997c6eddf328f9bbb32b41912aaae3e480d14,2024-11-14 20:08:31,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
261 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-14,0x51ae1bc6849d27792e8cd3dfff6f34cec86fda63e82c506f28487f5d9641d17c,2024-11-14 20:08:55,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
262 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-14,0xff4b107ff5aaa6c29c31eeeff51000a58d935699598431cfcbea71e1936e9351,2024-11-14 20:09:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
263 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-15,0x204cb142eabe270acb7a687790153791845cbacbb07e8fd79237e05f456fd7ff,2024-11-15 19:46:41,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
264 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-15,0x7a72b3dac5dddd4543bee32be0efd2ab174b25d0cacc59c977285af514bebf61,2024-11-15 20:12:43,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
265 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-15,0x0c25b21a56666d88af1c8f7eaa263a8a922e9a4aea2bfa40d8b6afe503b7457b,2024-11-15 20:13:07,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
266 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-15,0x2550ae44cba79f2ad31e8feb6e923a0da42baadb9b52b37a6f84d14b5410a26d,2024-11-15 20:13:29,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
267 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-15,0x547ffae6c6b3a7fc2c075cb234dab5ddc28faa128cc82692f60cfba0f4c35baa,2024-11-15 20:13:53,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
268 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-16,0xcddac104ebea92f74253beb1244b5c039be5f348bfa08c91a9abc0347b47eb0d,2024-11-16 19:48:27,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
269 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-16,0x02e88c9c1f924a9c1be8a1e5ff5d5ad8bf779677a2000d405dee07facb38c2e2,2024-11-16 20:14:25,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
270 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-16,0x42f9d2f3ebbb9bad2b46da72fe4e0e6301ece9dfbf55d20a7c11dbe376acfff4,2024-11-16 20:14:47,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
271 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-16,0x4ad796b2bc0531e17b225aa504270b08aa1cac6bf359966c9ee53359102a9c0b,2024-11-16 20:15:11,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
272 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-16,0x6951b25e4610da136965392782d7282699d2c6e25246e8684a42c5a4f2c4724f,2024-11-16 20:15:33,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
273 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-17,0xf1d0b6ee4386cf5480047e8558ae039562b9c6c28bea6e7b7ec38afe2adcef1e,2024-11-17 19:50:11,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
274 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-17,0x960f99b7ee419fcc4843112280b0874622e08f5e248a9ed84e3509a2c82ea647,2024-11-17 20:16:09,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
275 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-17,0x8688f3f153ad1770132a3a5d5f8cd52da712f844933b3ca4f13bb5f7b07eafde,2024-11-17 20:16:31,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
276 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-17,0x27c97e66839e3ef9224a9ef654e7db7c41c1e6c150b3557c385a1f69896e1ca7,2024-11-17 20:16:55,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
277 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-17,0xa6011abde4dbfe78da8d177c67e3b7a6884c837f814dad4fcaa86005520ea86c,2024-11-17 20:17:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
278 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-18,0x31db26c6e4b48d276541b9ff1e08d5f14e81481b1d092693a62b84dfe861bd47,2024-11-18 19:52:13,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
279 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-18,0x3f60b62248e059edddcc0c5f7e928b5eb30f42063933562ba710f995c340321a,2024-11-18 20:18:09,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
280 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-18,0xac4bfbfc7b2a78ced844d9d1ae1768c0d762cd439d9bdc7cbc0b034ffc8d4586,2024-11-18 20:18:31,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
281 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-18,0xe07995ae50e683525c7caf75f573744db8330b432d9ac6b5f04cbf78c8de6a57,2024-11-18 20:18:57,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
282 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-18,0x83d1fdcd4e688fbc8621572c79da3ffda205d6846a93344dab272e8320e7ab6b,2024-11-18 20:19:27,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
283 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-19,0x400607f8419e10aa52c380451dc378b4803500a7b7757ad33fb72417b58af531,2024-11-19 19:53:41,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
284 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-19,0xab62b6f5fb23cabb39502daeb68f917e21e71cc881862dbf420b2028f0436d5b,2024-11-19 20:19:39,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
285 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-19,0xed1289ab3a8a3895117de1534edee9581ac32809ac14b4117810bdc75c063c07,2024-11-19 20:20:03,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
286 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-19,0x9d33a422c0617e720946fc6e3d2badcf8f1f36d9d3f310697ddff5fbf54910a5,2024-11-19 20:20:25,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
287 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-19,0x8cd54329d987fcf47a607d0d993e52950feebb3ceaa790cffe9bd3499601968f,2024-11-19 20:20:49,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
288 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-07,0xaaae37299329f78ac559ecc15645c370d0a005418c644ee74fc8e168b1315d5a,2024-11-07 04:09:03,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
289 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-07,0xb2fe13dc01083c55b85fb19839a10088c8b1f17f6c1785dc478103e70615f5b3,2024-11-07 04:09:33,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
290 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-07,0x05961dda08b3e88605517591d5a9f133f611d66d1c80f6ecb229f70c97b9aeb7,2024-11-07 04:10:03,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
291 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-07,0x0095018a7d02defd5c9a1f8fda0f4b3294a3a17d9ae97b1885c5ed0431ffbb16,2024-11-07 04:10:31,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
292 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-08,0xef508c7a5e05e4e18d783af57139a6522869843bb79c81f42b14c843ff134224,2024-11-08 12:15:43,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
293 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-08,0x0437ee97d0339ccdcec63fc82accd7dd8509ed44ab2207d0607272bb211a8d11,2024-11-08 12:16:13,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
294 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-08,0x92cf9d5e93b1a57212ad0719a626048eefdd6259fbcd08ca422f38e3baea2986,2024-11-08 12:16:41,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
295 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-08,0xfe09b2bd2bc210cef538b7d85b63f6a9910fdf68bd4c4d7c2c9c15b84e56cf4c,2024-11-08 12:17:09,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
296 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-08,0x62392be6ff658aa8993f47963cc94c5b4bb0b70ea5c427969812057ea7927828,2024-11-08 19:31:21,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
297 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-11-12,0x23837e7d387b26e30b44178bdb0c6c643b8a5d802d916b4342a95305c762bc5a,2024-11-12 14:27:35,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xA0fF35Bfbd3C42E3aFE29255742C7558498f5544
|
298 |
-
ethereum,0xb0830c65499ff2A25D10D895970b152193b13FCf,2024-11-07,0x6d73ce5cfe1110def67b1dc776b349dec55b61a7ff1680d30c9fc6a2b6353a64,2024-11-07 13:21:59,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0xb0830c65499ff2a25d10d895970b152193b13fcf,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
299 |
-
mode,0xA37e826fF12Af82e5eAed8c981218B78Cc606bac,2024-11-07,0xcd90dd2e5293269ee22f5fc4913f42e6c7f4e43fc42c90c8b716ad865b377ed7,2024-11-07 14:39:39,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D,0xA37e826fF12Af82e5eAed8c981218B78Cc606bac,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
300 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-15,0xe03a65fabb7468ac633dd5edabbb9609eabcf05be6cf1fc27f9841ed12796445,2024-11-15 18:58:13,0xA40c8a3088F892607AD01a24DBCD755EB720F725,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.00033,0x2302548951Ae698370e3C7943A843861641efB92
|
301 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-15,0x14588c9945c3d3f6d13fd58d91205a46dda2479a1403bba5b25c96735913310c,2024-11-15 17:56:05,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
302 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-15,0xc3624bc76dd73f83165c9dc483ad58358e8920b843fb7a46a3940f133f7a73f3,2024-11-15 17:55:41,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
303 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-15,0x450ccd2f3b50c6549890a68273176366357edd22b9bb92fb5732c213208fb37d,2024-11-15 17:55:15,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
304 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-15,0xd46245b2666e83243f782eb96876b30ece19c13af9b48497a5278726be12e338,2024-11-15 17:54:51,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
305 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-15,0x35433b80bc04e7de98a3afb506e2c8132a8cf579867be998c9010d02d4c1b78b,2024-11-15 17:28:33,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
306 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-18,0x5e7a0a4093f5463b8777bc1aee302046f3b7cbfe21cbb986ab2e02d6a714e055,2024-11-18 19:32:25,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
307 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-18,0x92defde2b1254a23adc285185324cf2b3ffeac41265dd70f3ef0476b35072c01,2024-11-18 19:32:01,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
308 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-18,0xd3c777e3522b1135bf3c00856ff892a7232745d68e3e3c78684c1e4e4f940354,2024-11-18 19:31:35,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
309 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-18,0xfbb08b7ec61f9c729a5a47dcba3281042ba435cb63b4ef71e729e4214cb8f7c8,2024-11-18 19:25:45,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
310 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-18,0x9842b8f77e8a3e61b9c7142bbea4af63f159f399b81bf77222f7562cce8b87b0,2024-11-18 09:10:05,0xA40c8a3088F892607AD01a24DBCD755EB720F725,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0051,0x2302548951Ae698370e3C7943A843861641efB92
|
311 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-18,0x2853a70afd78549f97b6d4bbc45952ef6b1d5000847cadb08f508b466aa1a1c9,2024-11-18 08:31:33,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
312 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-19,0x91e86fdb9a5523dd2386e9fa1deeffbb86ac609ac1e5d60795deeddf018409ba,2024-11-19 09:26:05,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
313 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-19,0x9588da03cbd1c6e76e7a90ca7b5ed827552907ca6d537e5cbe26b3b6cb47af45,2024-11-19 09:25:39,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
314 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-19,0xee1a6b8d8b96701221e749c0191d4e3d60cf19c24ac39750a89ba0a1343d25d6,2024-11-19 09:04:49,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
315 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-19,0x6cce2f632f82436fbda196a9fd9e6a14de5ce8c28557f6bb695a5e1c0bd0f40e,2024-11-19 09:04:09,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
316 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-19,0x83523912a0693290f277b265f037ebd5aa953aa550cecfaadbec9013ef624d36,2024-11-19 08:57:57,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
317 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-20,0xcbe5e35f17d1646555c89a95d419f868f7a0682c4540dcaf28311cc4bc583b95,2024-11-20 19:55:53,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
318 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-20,0x348a1064b12184ed4eefca86ae707a3c03f5bb14424d6986f98ec3c71aa71a58,2024-11-20 20:21:55,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
319 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-20,0xf04374541afe9676c6c1be148ad2d361ce343221100d5db91059f3f1f12bf763,2024-11-20 20:22:17,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
320 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-20,0x2878a6586bf53824255d79c4cd45a42b6559f4d11df379c7db99d00da2d0b557,2024-11-20 20:22:41,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
321 |
-
optimism,0x37036d9A0E4aDE3898336a42CC31c71387D48B78,2024-11-20,0xa5d0aa63e6dcc4a7c15df2a2ff27c7852aaa9aaacf41db864cc2bfa01ee7f7d9,2024-11-20 20:23:05,0x050e90bea65c9ba6416996bb6fffa8f925885d40,0x37036d9a0e4ade3898336a42cc31c71387d48b78,0.0,0x050E90BEA65c9Ba6416996bb6fFfa8f925885d40
|
322 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-11-20,0xd880358907e288a44179e4818d853c708df2eed8e6e22f1615ef2745b523c73d,2024-11-20 15:22:37,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xA0fF35Bfbd3C42E3aFE29255742C7558498f5544
|
323 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-11-20,0x73a4bd3298fe8cff0c8fbc7b2a4ed13c6b65487005f1e4941f62ec76c7d722a8,2024-11-20 15:23:05,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xA0fF35Bfbd3C42E3aFE29255742C7558498f5544
|
324 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-11-20,0x1c481b97d2f51165d16c3bb9ab9be3150ef3e9e498d62d505790b1696a1d711a,2024-11-20 15:23:39,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xA0fF35Bfbd3C42E3aFE29255742C7558498f5544
|
325 |
-
optimism,0x5f0C4273Ff97ae91fc8D2fc8621b5E37a741d1b1,2024-11-20,0x1a22efadf88b6963b3a2cd8673eee706031cb7e7e836c1e6285ffae8d4707cde,2024-11-20 15:24:07,0xa0ff35bfbd3c42e3afe29255742c7558498f5544,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,0.0,0xA0fF35Bfbd3C42E3aFE29255742C7558498f5544
|
326 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-20,0xaaae37299329f78ac559ecc15645c370d0a005418c644ee74fc8e168b1315d5a,2024-11-20 04:09:03,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
327 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-20,0xb2fe13dc01083c55b85fb19839a10088c8b1f17f6c1785dc478103e70615f5b3,2024-11-20 04:09:33,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
328 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-20,0x05961dda08b3e88605517591d5a9f133f611d66d1c80f6ecb229f70c97b9aeb7,2024-11-20 04:10:03,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
329 |
-
optimism,0x5EFC7B394A916aC8090a7D6221F798AbFb9F5510,2024-11-20,0x0095018a7d02defd5c9a1f8fda0f4b3294a3a17d9ae97b1885c5ed0431ffbb16,2024-11-20 04:10:31,0x554d1444b6a38fa2eb18d86f2c10f42be630c89d,0x5efc7b394a916ac8090a7d6221f798abfb9f5510,0.0,0x554D1444b6a38fA2eb18d86f2C10F42BE630c89D
|
330 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-20,0xcfb768d0d84ad720cde123add806bac3a926b8c1cc00fd06633e45f4eeb5d299,2024-11-20 09:28:43,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
331 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-20,0xed0d98331f87b174b3e71a2e4a366be444735b8146aabaa73deca121b6672c9d,2024-11-20 09:28:11,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
332 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-20,0x007f6d8ee852a151298131b944e0e26f7c64477f91070399c797bbac4ffdc31f,2024-11-20 09:27:45,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
333 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-20,0xe1243862f190fe30e8daaf89d1e9f499a93d2dbbd2bc717fdfa80437597a8e12,2024-11-20 09:27:13,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
334 |
-
mode,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,2024-11-20,0xb654fa5b7e2ae3e05577cfd7b9ad3b6beb1446463dac5f39ed12e8dc74d65380,2024-11-20 09:00:53,0x2302548951Ae698370e3C7943A843861641efB92,0x602afe99D8CF58ba03794d4C7489f6f08702e4e6,0.0,0x2302548951Ae698370e3C7943A843861641efB92
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
daily_value_locked.csv
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
chain_name,date,event,topic_0,from,to,token_id,token0,token1,liquidity,amount0,amount1,amount0_usd,amount1_usd
|
2 |
-
optimism,2024-10-07,Transfer,0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,0x0000000000000000000000000000000000000000,0x5f0c4273ff97ae91fc8d2fc8621b5e37a741d1b1,826974,0x2218a117083f5B482B0bB821d27056Ba9c04b1D3,0xdFA46478F9e5EA86d57387849598dbFB2e964b02,13516644515555081265,8.98929230571145,20.324144854406946,9.97811445933971,10.184307041674192
|
3 |
-
base,2024-09-19,Transfer,0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,0x0000000000000000000000000000000000000000,0xa13dfc6ddcff0b5b637e721ee83d6cf7e0676e73,963863,0x01CCF4941298a0b5AC4714c0E1799a2dF8387048,0x4200000000000000000000000000000000000006,1210264887099988865,359.58545796548844,0.0040734158306472,9.341785679831974,10.270669941235578
|
4 |
-
base,2024-09-26,Transfer,0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,0x0000000000000000000000000000000000000000,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,978001,0x01CCF4941298a0b5AC4714c0E1799a2dF8387048,0x4200000000000000000000000000000000000006,1524286215726092055,469.7981777244338,0.004945631076533,12.205037194519935,12.469864740059744
|
5 |
-
mode,2024-11-07,Transfer,0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,0x0000000000000000000000000000000000000000,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,978001,0x01CCF4941298a0b5AC4714c0E1799a2dF8387048,0x4200000000000000000000000000000000000006,1524286215726092055,469.7981777244338,0.004945631076533,18.2495,18.3223
|
6 |
-
mode,2024-11-19,Transfer,0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,0x0000000000000000000000000000000000000000,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,978001,0x01CCF4941298a0b5AC4714c0E1799a2dF8387048,0x4200000000000000000000000000000000000006,1524286215726092055,469.7981777244338,0.004945631076533,16.9373,16.9373
|
7 |
-
optimism,2024-10-14,Transfer,0xddf252ad1be2c89b66c2b069fc378daa952ba7f163c4a11628f55a4df523b3ef,0x0000000000000000000000000000000000000000,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,978001,0x01CCF4941298a0b5AC4714c0E1799a2dF8387048,0x4200000000000000000000000000000000000006,1524286215726092055,469.7981777244338,0.004945631076533,12.0644,12.3921
|
8 |
-
optimism,2024-10-04,Transfer,0xddf272ad1be2c89b69c2b068fc378daa956ba7f163c4a11628f55a4df523b3ef,0x0000000000000000000000000000000000000000,0xac55eeb3fdacfdfae78c62caa58934900ad54ed2,978001,0x01CCF4941298a0b5AC4714c0E1799a2dF8387048,0x4200000000000000000000000000000000000006,1524286215726092055,469.7981777244338,0.004945631076533,14.9849,14.9849
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modius_apr_statistics.csv
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
agent_id,agent_name,total_points,apr_points,performance_points,real_apr_points,real_performance_points,avg_apr,avg_performance,max_apr,min_apr,latest_timestamp
|
2 |
-
2,gonma-pronfa59,1,0,1,0,1,,-100.0,,,2025-04-04 14:03:55
|
3 |
-
ALL,All Agents,1,0,1,0,1,,-100.0,,,2025-04-04 14:03:55
|
|
|
|
|
|
|
|
modius_apr_values.csv
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
apr,timestamp,agent_id,is_dummy,agent_name,metric_type
|
2 |
-
-100.0,2025-04-04 14:03:55,2,False,gonma-pronfa59,Performance
|
|
|
|
|
|