@morpho-dev/router 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +67 -71
  2. package/dist/cli.js +3208 -1252
  3. package/dist/drizzle/migrations/0017_dusty_the_hunter.sql +1 -0
  4. package/dist/drizzle/migrations/0018_add_chain_collector_constraints.sql +3 -0
  5. package/dist/drizzle/migrations/0019_add-obligation-units-shares.sql +2 -0
  6. package/dist/drizzle/migrations/0020_add-session.sql +1 -0
  7. package/dist/drizzle/migrations/0021_drop_chain_collector_epoch_indexes.sql +2 -0
  8. package/dist/drizzle/migrations/0021_migrate-rate-to-price.sql +15 -0
  9. package/dist/drizzle/migrations/0022_consolidate-price.sql +15 -0
  10. package/dist/drizzle/migrations/meta/0017_snapshot.json +1525 -0
  11. package/dist/drizzle/migrations/meta/0018_snapshot.json +1572 -0
  12. package/dist/drizzle/migrations/meta/0019_snapshot.json +1586 -0
  13. package/dist/drizzle/migrations/meta/_journal.json +42 -0
  14. package/dist/evm/bytecode/erc20.txt +1 -0
  15. package/dist/evm/bytecode/factory.txt +1 -0
  16. package/dist/evm/bytecode/mempool.txt +1 -0
  17. package/dist/evm/bytecode/morpho.txt +1 -0
  18. package/dist/evm/bytecode/multicall3.txt +1 -0
  19. package/dist/evm/bytecode/oracle.txt +1 -0
  20. package/dist/evm/bytecode/terms.txt +1 -0
  21. package/dist/evm/bytecode/vault.txt +1 -0
  22. package/dist/evm/bytecode/vaultV1.txt +1 -0
  23. package/dist/index.browser.d.mts +1327 -816
  24. package/dist/index.browser.d.mts.map +1 -1
  25. package/dist/index.browser.d.ts +1358 -847
  26. package/dist/index.browser.d.ts.map +1 -1
  27. package/dist/index.browser.js +2209 -1668
  28. package/dist/index.browser.js.map +1 -1
  29. package/dist/index.browser.mjs +2173 -1632
  30. package/dist/index.browser.mjs.map +1 -1
  31. package/dist/index.node.d.mts +1885 -1222
  32. package/dist/index.node.d.mts.map +1 -1
  33. package/dist/index.node.d.ts +1885 -1222
  34. package/dist/index.node.d.ts.map +1 -1
  35. package/dist/index.node.js +1984 -1016
  36. package/dist/index.node.js.map +1 -1
  37. package/dist/index.node.mjs +1963 -1014
  38. package/dist/index.node.mjs.map +1 -1
  39. package/docs/integrator.md +78 -0
  40. package/package.json +11 -5
package/README.md CHANGED
@@ -10,26 +10,60 @@ CLI install
10
10
  pnpm add -g @morpho-dev/router
11
11
  ```
12
12
 
13
- - Router starts on http://localhost:7891 by default
14
- - Seed random offers with --seed <n> for testing
15
- - Load offers from JSON file with --file <path>
16
- - Start services using --services indexer,api
17
- - --db-endpoint plugs the router on top of a postgres instance
13
+ - Router configuration is read from a TOML file
14
+ - `router start` only accepts `--config-file` (or `ROUTER_CONFIG_FILE`/`./router.toml`)
15
+ - Seed mock offers with `--mock <n>` for testing
16
+ - Load offers from JSON file with `--file <path>`
18
17
 
19
18
  Examples:
20
19
 
21
20
  ```bash
22
- # Router with postgres database and custom port
23
- router start --db-endpoint <db url> --port 8080
21
+ # Start router from a config file
22
+ router start --config-file ./router.toml
24
23
 
25
- # Start Router indexer (Default indexer,api)
26
- router start --services indexer
24
+ # Start router using the env fallback
25
+ ROUTER_CONFIG_FILE=./router.toml router start
27
26
 
28
- # Router Mock with seeded random offers
29
- router mock --seed 100
27
+ # Start router with mock offers for testing
28
+ router start --config-file ./router.toml --mock 100
30
29
 
31
- # Router with offers loaded from file
32
- router mock --file offers.json
30
+ # Start router with offers loaded from file
31
+ router start --config-file ./router.toml --file offers.json
32
+ ```
33
+
34
+ ### Chain
35
+
36
+ Use `router chain` to manage the anvil chain for dev and E2E workflows.
37
+
38
+ ```bash
39
+ # Start a chain and emit JSON status
40
+ router chain start --output json
41
+
42
+ # Check chain status
43
+ router chain status --output json
44
+
45
+ # Stop the chain and purge state
46
+ router chain stop --purge
47
+ ```
48
+
49
+ Example `router.toml`:
50
+
51
+ ```toml
52
+ [logging]
53
+ level = "info"
54
+
55
+ [database]
56
+ url_env = "DATABASE_URL"
57
+
58
+ [api]
59
+ port = 7891
60
+
61
+ [indexer]
62
+ block_window = 8000
63
+ chains = ["ethereum"]
64
+
65
+ [chains."ethereum"]
66
+ rpc_url_env = "ETHEREUM_RPC_URL"
33
67
  ```
34
68
 
35
69
  <!-- AUTO-GENERATED: CLI-HELP START -->
@@ -43,14 +77,13 @@ Usage: router [options] [command]
43
77
  Router package for Morpho protocol
44
78
 
45
79
  Options:
46
- -V, --version output the version number
47
- -h, --help display help for command
80
+ -V, --version output the version number
81
+ -h, --help display help for command
48
82
 
49
83
  Commands:
50
- start [options] Start Router services.
51
- mempool [options] Start a local chain with the mempool contract
52
- mock [options] Start Router mock.
53
- help [command] display help for command
84
+ start [options] Start Router services.
85
+ chain Manage the anvil chain lifecycle.
86
+ help [command] display help for command
54
87
  ```
55
88
 
56
89
  #### start
@@ -61,66 +94,29 @@ Usage: router start [options]
61
94
  Start Router services.
62
95
 
63
96
  Options:
64
- --port <n> (default: 7891, env: ROUTER_PORT)
65
- --chain <chain> (choices: "ethereum", "base",
66
- "ethereum-virtual-testnet", "anvil", default:
67
- "ethereum", env: ROUTER_CHAIN)
68
- --rpc-url <url> (env: ROUTER_RPC_URL)
69
- --router-url <url> (default: "https://router.morpho.dev", env:
70
- ROUTER_REMOTE_URL)
71
- --db-endpoint <url> (env: DATABASE_URL)
72
- --log-level <level> (choices: "trace", "debug", "info", "warn", "error",
73
- "fatal", "silent", default: "info", env:
74
- ROUTER_LOG_LEVEL)
75
- --log-pretty Enable pretty logs (default: true, env:
76
- ROUTER_LOG_PRETTY)
77
- --block-window <n> Block window to get logs from (default: 8000)
78
- --file <path> Seed offers from a JSON file
79
- --max-block-number <n> Block number at which to stop indexing
80
- --services <list> Comma-separated services to run. Default: api,indexer
81
- (default: ["indexer","api"], env: ROUTER_SERVICES)
82
- -h, --help display help for command
97
+ --config-file <path> Path to router TOML config file
98
+ --mock <n> Number of mock offers to seed
99
+ --file <path> Seed offers from a JSON file
100
+ -h, --help display help for command
83
101
  ```
84
102
 
85
- #### mempool
103
+ #### chain
86
104
 
87
105
  ```text
88
- Usage: router mempool [options]
106
+ Usage: router chain [options] [command]
89
107
 
90
- Start a local chain with the mempool contract
108
+ Manage the anvil chain lifecycle.
91
109
 
92
110
  Options:
93
- --port <port> (default: 8545, env: MEMPOOL_PORT)
94
- --fork-url <url> (default: "https://ethereum-rpc.publicnode.com",
95
- env: MEMPOOL_FORK_URL)
96
- --block-number <number> (default: 0)
97
- -h, --help display help for command
98
- ```
99
-
100
- #### mock
101
-
102
- ```text
103
- Usage: router mock [options]
104
-
105
- Start Router mock.
111
+ -h, --help display help for command
106
112
 
107
- Options:
108
- --port <n> (default: 7891, env: ROUTER_PORT)
109
- --chain <chain> (choices: "ethereum", "base",
110
- "ethereum-virtual-testnet", "anvil", default: "ethereum",
111
- env: ROUTER_CHAIN)
112
- --rpc-url <url> (env: ROUTER_RPC_URL)
113
- --router-url <url> (default: "https://router.morpho.dev", env:
114
- ROUTER_REMOTE_URL)
115
- --db-endpoint <url> (env: DATABASE_URL)
116
- --log-level <level> (choices: "trace", "debug", "info", "warn", "error",
117
- "fatal", "silent", default: "info", env:
118
- ROUTER_LOG_LEVEL)
119
- --log-pretty Enable pretty logs (default: true, env:
120
- ROUTER_LOG_PRETTY)
121
- --seed <n> Seed random offers to router (default: 0)
122
- --file <path> Seed offers from a JSON file
123
- -h, --help display help for command
113
+ Commands:
114
+ start [options] Start an anvil chain.
115
+ status [options] Show chain status.
116
+ stop [options] Stop the chain process.
117
+ restart [options] Restart the chain process.
118
+ logs [options] Read anvil logs.
119
+ help [command] display help for command
124
120
  ```
125
121
 
126
122
  <!-- AUTO-GENERATED: CLI-HELP END -->