-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathdemo.toml
More file actions
138 lines (113 loc) · 4.14 KB
/
demo.toml
File metadata and controls
138 lines (113 loc) · 4.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# OIF Solver Configuration - Generated File
# Generated with placeholder values for easy regex replacement
include = ["demo/networks.toml", "demo/api.toml", "demo/gas.toml"]
[solver]
id = "oif-solver-demo"
min_profitability_pct = 1.0
monitoring_timeout_seconds = 28800
# ============================================================================
# STORAGE
# ============================================================================
[storage]
primary = "file"
cleanup_interval_seconds = 60
[storage.implementations.memory]
# Memory storage has no configuration
[storage.implementations.file]
storage_path = "./data/storage"
ttl_orders = 300 # 5 minutes
ttl_intents = 120 # 2 minutes
ttl_order_by_tx_hash = 300 # 5 minutes
[storage.implementations.redis]
redis_url = "redis://localhost:6379"
key_prefix = "oif-solver"
connection_timeout_ms = 5000
db = 0
ttl_orders = 300 # 5 minutes
ttl_intents = 120 # 2 minutes
ttl_order_by_tx_hash = 300 # 5 minutes
ttl_quotes = 60 # 1 minute
ttl_settlement_messages = 600 # 10 minutes
# ============================================================================
# ACCOUNT
# ============================================================================
[account]
primary = "local"
[account.implementations.local]
private_key = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"
# ============================================================================
# DELIVERY
# ============================================================================
[delivery]
min_confirmations = 1
[delivery.implementations.evm_alloy]
network_ids = [31337, 31338]
# ============================================================================
# DISCOVERY
# ============================================================================
[discovery]
[discovery.implementations.onchain_eip7683]
network_ids = [31337, 31338]
polling_interval_secs = 0 # Use WebSocket subscriptions instead of polling
[discovery.implementations.offchain_eip7683]
api_host = "127.0.0.1"
api_port = 8081
network_ids = [31337]
# ============================================================================
# ORDER
# ============================================================================
[order]
simulate_callbacks = true
callback_whitelist = [
"0x0001000002210514154c8bb598df835e9617c2cdcb8c84838bd329c6", # MockCallbackExecutor on Base (EIP-7930 format)
]
[order.implementations.eip7683]
[order.strategy]
primary = "simple"
[order.strategy.implementations.simple]
max_gas_price_gwei = 100
# ============================================================================
# PRICING
# ============================================================================
[pricing]
primary = "mock"
[pricing.implementations.mock]
# Uses default ETH/USD price of 4615.16
[pricing.implementations.coingecko]
# Free tier configuration (no API key required)
# api_key = "CG-YOUR-API-KEY-HERE"
cache_duration_seconds = 60
rate_limit_delay_ms = 1200
# Custom prices for demo/test tokens (in USD)
[pricing.implementations.coingecko.custom_prices]
TOKA = "200.00"
TOKB = "195.00"
# ============================================================================
# SETTLEMENT
# ============================================================================
[settlement]
settlement_poll_interval_seconds = 3
[settlement.implementations.direct]
order = "eip7683"
network_ids = [31337, 31338]
dispute_period_seconds = 1
# Oracle selection strategy when multiple oracles are available (First, RoundRobin, Random)
oracle_selection_strategy = "First"
# Oracle configuration with multiple oracle support
[settlement.implementations.direct.oracles]
# Input oracles (on origin chains)
input = { 31337 = [
"0xa513E6E4b8f2a923D98304ec87F64353C4D5C853",
], 31338 = [
"0xa513E6E4b8f2a923D98304ec87F64353C4D5C853",
] }
# Output oracles (on destination chains)
output = { 31337 = [
"0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6",
], 31338 = [
"0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6",
] }
# Valid routes: from origin chain -> to destination chains
[settlement.implementations.direct.routes]
31337 = [31338]
31338 = [31337]