web3-tools-mcp 3.0.0 → 3.2.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.
- package/CHANGELOG.md +115 -2
- package/README.md +96 -60
- package/dist/chain-meta.d.ts.map +1 -1
- package/dist/chain-meta.js +19 -8
- package/dist/chain-meta.js.map +1 -1
- package/dist/chains.d.ts +609 -65
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +89 -28
- package/dist/chains.js.map +1 -1
- package/dist/clear-signing.d.ts.map +1 -1
- package/dist/clear-signing.js +17 -6
- package/dist/clear-signing.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -4
- package/dist/client.js.map +1 -1
- package/dist/http-server.d.ts +1 -1
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +12 -5
- package/dist/http-server.js.map +1 -1
- package/dist/index.js +5 -6
- package/dist/index.js.map +1 -1
- package/dist/kv-storage.d.ts +2 -1
- package/dist/kv-storage.d.ts.map +1 -1
- package/dist/kv-storage.js +5 -2
- package/dist/kv-storage.js.map +1 -1
- package/dist/oauth.d.ts +18 -4
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +62 -26
- package/dist/oauth.js.map +1 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +7 -5
- package/dist/preview.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +16 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/read/advanced.d.ts +25 -20
- package/dist/tools/read/advanced.d.ts.map +1 -1
- package/dist/tools/read/advanced.js +45 -33
- package/dist/tools/read/advanced.js.map +1 -1
- package/dist/tools/read/balance.d.ts +6 -6
- package/dist/tools/read/balance.d.ts.map +1 -1
- package/dist/tools/read/balance.js +17 -32
- package/dist/tools/read/balance.js.map +1 -1
- package/dist/tools/read/contract-info.d.ts +14 -12
- package/dist/tools/read/contract-info.d.ts.map +1 -1
- package/dist/tools/read/contract-info.js +53 -122
- package/dist/tools/read/contract-info.js.map +1 -1
- package/dist/tools/read/contract.d.ts +10 -10
- package/dist/tools/read/contract.d.ts.map +1 -1
- package/dist/tools/read/contract.js +2 -1
- package/dist/tools/read/contract.js.map +1 -1
- package/dist/tools/read/defi.d.ts +86 -0
- package/dist/tools/read/defi.d.ts.map +1 -0
- package/dist/tools/read/defi.js +210 -0
- package/dist/tools/read/defi.js.map +1 -0
- package/dist/tools/read/ens.d.ts +20 -40
- package/dist/tools/read/ens.d.ts.map +1 -1
- package/dist/tools/read/ens.js +25 -33
- package/dist/tools/read/ens.js.map +1 -1
- package/dist/tools/read/gas.d.ts +16 -16
- package/dist/tools/read/gas.d.ts.map +1 -1
- package/dist/tools/read/gas.js +13 -48
- package/dist/tools/read/gas.js.map +1 -1
- package/dist/tools/read/logs.d.ts +65 -4
- package/dist/tools/read/logs.d.ts.map +1 -1
- package/dist/tools/read/logs.js +96 -115
- package/dist/tools/read/logs.js.map +1 -1
- package/dist/tools/read/signatures.d.ts.map +1 -1
- package/dist/tools/read/signatures.js +4 -3
- package/dist/tools/read/signatures.js.map +1 -1
- package/dist/tools/read/signing.d.ts.map +1 -1
- package/dist/tools/read/signing.js +8 -2
- package/dist/tools/read/signing.js.map +1 -1
- package/dist/tools/sign/transactions.d.ts +16 -16
- package/dist/tools/sign/transactions.d.ts.map +1 -1
- package/dist/tools/sign/transactions.js +54 -9
- package/dist/tools/sign/transactions.js.map +1 -1
- package/dist/tools/sign/wallet.d.ts +4 -4
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +18 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +43 -2
- package/dist/utils.js.map +1 -1
- package/dist/wallet-client.d.ts +1 -0
- package/dist/wallet-client.d.ts.map +1 -1
- package/dist/wallet-client.js +18 -5
- package/dist/wallet-client.js.map +1 -1
- package/package.json +4 -7
- package/src/chain-meta.ts +16 -7
- package/src/chains.ts +101 -31
- package/src/clear-signing.ts +15 -9
- package/src/client.ts +2 -3
- package/src/http-server.ts +11 -6
- package/src/index.ts +5 -6
- package/src/kv-storage.ts +6 -3
- package/src/oauth.ts +93 -34
- package/src/preview.ts +7 -5
- package/src/tools/index.ts +14 -1
- package/src/tools/read/advanced.ts +63 -34
- package/src/tools/read/balance.ts +18 -33
- package/src/tools/read/contract-info.ts +64 -144
- package/src/tools/read/contract.ts +2 -1
- package/src/tools/read/defi.ts +287 -0
- package/src/tools/read/ens.ts +26 -33
- package/src/tools/read/gas.ts +13 -50
- package/src/tools/read/logs.ts +131 -143
- package/src/tools/read/signatures.ts +4 -4
- package/src/tools/read/signing.ts +8 -2
- package/src/tools/sign/transactions.ts +60 -9
- package/src/types.ts +0 -1
- package/src/utils.ts +47 -2
- package/src/wallet-client.ts +26 -5
package/dist/chains.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"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"}
|
package/dist/chains.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { arbitrum, avalanche, base, bsc, gnosis, linea, localhost, mainnet, optimism, polygon,
|
|
1
|
+
import { arbitrum, arc, avalanche, base, bsc, celo, gnosis, hyperEvm, ink, linea, localhost, mainnet, mantle, monad, optimism, plasma, polygon, robinhood, unichain, zksync } from 'viem/chains';
|
|
2
2
|
import { HOSTED } from './hosted.js';
|
|
3
3
|
const TABLE = {
|
|
4
4
|
mainnet: {
|
|
5
5
|
chain: mainnet,
|
|
6
6
|
alchemy: 'eth-mainnet',
|
|
7
|
-
infura: 'mainnet',
|
|
8
7
|
fallback: 'https://ethereum-rpc.publicnode.com',
|
|
9
8
|
explorer: 'etherscan.io',
|
|
10
|
-
hypersync: 'https://eth.hypersync.xyz'
|
|
9
|
+
hypersync: 'https://eth.hypersync.xyz',
|
|
10
|
+
llama: { coins: 'ethereum', yields: 'Ethereum' }
|
|
11
11
|
},
|
|
12
12
|
arbitrum: {
|
|
13
13
|
chain: arbitrum,
|
|
14
14
|
alchemy: 'arb-mainnet',
|
|
15
|
-
infura: 'arbitrum-mainnet',
|
|
16
15
|
fallback: 'https://arb1.arbitrum.io/rpc',
|
|
17
16
|
explorer: 'arbiscan.io',
|
|
18
|
-
hypersync: 'https://arbitrum.hypersync.xyz'
|
|
17
|
+
hypersync: 'https://arbitrum.hypersync.xyz',
|
|
18
|
+
llama: { coins: 'arbitrum', yields: 'Arbitrum' }
|
|
19
19
|
},
|
|
20
20
|
avalanche: {
|
|
21
21
|
chain: avalanche,
|
|
22
22
|
alchemy: 'avax-mainnet',
|
|
23
|
-
infura: 'avalanche-mainnet',
|
|
24
23
|
fallback: 'https://api.avax.network/ext/bc/C/rpc',
|
|
25
24
|
explorer: 'snowtrace.io',
|
|
26
|
-
hypersync: 'https://avalanche.hypersync.xyz'
|
|
25
|
+
hypersync: 'https://avalanche.hypersync.xyz',
|
|
26
|
+
llama: { coins: 'avax', yields: 'Avalanche' }
|
|
27
27
|
},
|
|
28
28
|
base: {
|
|
29
29
|
chain: base,
|
|
@@ -31,70 +31,131 @@ const TABLE = {
|
|
|
31
31
|
// publicnode refuses receipts and anything else it calls an archive request
|
|
32
32
|
fallback: 'https://mainnet.base.org',
|
|
33
33
|
explorer: 'basescan.org',
|
|
34
|
-
hypersync: 'https://base.hypersync.xyz'
|
|
34
|
+
hypersync: 'https://base.hypersync.xyz',
|
|
35
|
+
llama: { coins: 'base', yields: 'Base' }
|
|
35
36
|
},
|
|
36
37
|
bnb: {
|
|
37
38
|
chain: bsc,
|
|
38
39
|
alchemy: 'bnb-mainnet',
|
|
39
|
-
infura: 'bsc-mainnet',
|
|
40
40
|
fallback: 'https://bsc-dataseed.bnbchain.org',
|
|
41
41
|
explorer: 'bscscan.com',
|
|
42
|
-
hypersync: 'https://bsc.hypersync.xyz'
|
|
42
|
+
hypersync: 'https://bsc.hypersync.xyz',
|
|
43
|
+
llama: { coins: 'bsc', yields: 'BSC' }
|
|
43
44
|
},
|
|
44
45
|
gnosis: {
|
|
45
46
|
chain: gnosis,
|
|
46
47
|
alchemy: 'gnosis-mainnet',
|
|
47
48
|
fallback: 'https://rpc.gnosischain.com',
|
|
48
49
|
explorer: 'gnosisscan.io',
|
|
49
|
-
hypersync: 'https://gnosis.hypersync.xyz'
|
|
50
|
-
|
|
51
|
-
sonic: {
|
|
52
|
-
chain: sonic,
|
|
53
|
-
alchemy: 'sonic-mainnet',
|
|
54
|
-
fallback: 'https://rpc.soniclabs.com',
|
|
55
|
-
explorer: 'sonicscan.org',
|
|
56
|
-
hypersync: 'https://sonic.hypersync.xyz'
|
|
50
|
+
hypersync: 'https://gnosis.hypersync.xyz',
|
|
51
|
+
llama: { coins: 'xdai', yields: 'Gnosis' }
|
|
57
52
|
},
|
|
58
53
|
optimism: {
|
|
59
54
|
chain: optimism,
|
|
60
55
|
alchemy: 'opt-mainnet',
|
|
61
|
-
infura: 'optimism-mainnet',
|
|
62
56
|
fallback: 'https://mainnet.optimism.io',
|
|
63
57
|
explorer: 'optimistic.etherscan.io',
|
|
64
|
-
hypersync: 'https://optimism.hypersync.xyz'
|
|
58
|
+
hypersync: 'https://optimism.hypersync.xyz',
|
|
59
|
+
llama: { coins: 'optimism', yields: 'OP Mainnet' }
|
|
65
60
|
},
|
|
66
61
|
polygon: {
|
|
67
62
|
chain: polygon,
|
|
68
63
|
alchemy: 'polygon-mainnet',
|
|
69
|
-
infura: 'polygon-mainnet',
|
|
70
64
|
// polygon-rpc.com now answers 401 "API key disabled" to anonymous callers
|
|
71
65
|
fallback: 'https://polygon-bor-rpc.publicnode.com',
|
|
72
66
|
explorer: 'polygonscan.com',
|
|
73
|
-
hypersync: 'https://polygon.hypersync.xyz'
|
|
67
|
+
hypersync: 'https://polygon.hypersync.xyz',
|
|
68
|
+
llama: { coins: 'polygon', yields: 'Polygon' }
|
|
74
69
|
},
|
|
75
70
|
zksync: {
|
|
76
71
|
chain: zksync,
|
|
77
72
|
alchemy: 'zksync-mainnet',
|
|
78
|
-
infura: 'zksync-mainnet',
|
|
79
73
|
fallback: 'https://mainnet.era.zksync.io',
|
|
80
74
|
explorer: 'era.zksync.network',
|
|
81
|
-
hypersync: 'https://zksync.hypersync.xyz'
|
|
75
|
+
hypersync: 'https://zksync.hypersync.xyz',
|
|
76
|
+
llama: { coins: 'era', yields: 'ZKsync Era' }
|
|
82
77
|
},
|
|
83
78
|
linea: {
|
|
84
79
|
chain: linea,
|
|
85
80
|
alchemy: 'linea-mainnet',
|
|
86
|
-
infura: 'linea-mainnet',
|
|
87
81
|
fallback: 'https://rpc.linea.build',
|
|
88
82
|
explorer: 'lineascan.build',
|
|
89
|
-
hypersync: 'https://linea.hypersync.xyz'
|
|
83
|
+
hypersync: 'https://linea.hypersync.xyz',
|
|
84
|
+
llama: { coins: 'linea', yields: 'Linea' }
|
|
90
85
|
},
|
|
91
86
|
unichain: {
|
|
92
87
|
chain: unichain,
|
|
93
88
|
alchemy: 'unichain-mainnet',
|
|
94
|
-
infura: 'unichain-mainnet',
|
|
95
89
|
fallback: 'https://mainnet.unichain.org',
|
|
96
90
|
explorer: 'uniscan.xyz',
|
|
97
|
-
hypersync: 'https://unichain.hypersync.xyz'
|
|
91
|
+
hypersync: 'https://unichain.hypersync.xyz',
|
|
92
|
+
llama: { coins: 'unichain', yields: 'Unichain' }
|
|
93
|
+
},
|
|
94
|
+
monad: {
|
|
95
|
+
chain: monad,
|
|
96
|
+
alchemy: 'monad-mainnet',
|
|
97
|
+
fallback: 'https://rpc.monad.xyz',
|
|
98
|
+
explorer: 'monadscan.com',
|
|
99
|
+
hypersync: 'https://monad.hypersync.xyz',
|
|
100
|
+
llama: { coins: 'monad', yields: 'Monad' }
|
|
101
|
+
},
|
|
102
|
+
robinhood: {
|
|
103
|
+
chain: robinhood,
|
|
104
|
+
alchemy: 'robinhood-mainnet',
|
|
105
|
+
fallback: 'https://rpc.mainnet.chain.robinhood.com',
|
|
106
|
+
explorer: 'robinhoodchain.blockscout.com',
|
|
107
|
+
hypersync: 'https://robinhood.hypersync.xyz',
|
|
108
|
+
llama: { coins: 'robinhood', yields: 'Robinhood Chain' }
|
|
109
|
+
},
|
|
110
|
+
arc: {
|
|
111
|
+
chain: arc,
|
|
112
|
+
alchemy: 'arc-mainnet',
|
|
113
|
+
fallback: 'https://rpc.mainnet.arc.io',
|
|
114
|
+
explorer: 'explorer.arc.io',
|
|
115
|
+
hypersync: 'https://arc.hypersync.xyz',
|
|
116
|
+
llama: { coins: 'arc', yields: 'Arc' }
|
|
117
|
+
},
|
|
118
|
+
plasma: {
|
|
119
|
+
chain: plasma,
|
|
120
|
+
alchemy: 'plasma-mainnet',
|
|
121
|
+
alchemyTokenApi: false,
|
|
122
|
+
fallback: 'https://rpc.plasma.to',
|
|
123
|
+
explorer: 'plasmascan.to',
|
|
124
|
+
hypersync: 'https://plasma.hypersync.xyz',
|
|
125
|
+
llama: { coins: 'plasma', yields: 'Plasma' }
|
|
126
|
+
},
|
|
127
|
+
ink: {
|
|
128
|
+
chain: ink,
|
|
129
|
+
alchemy: 'ink-mainnet',
|
|
130
|
+
fallback: 'https://rpc-gel.inkonchain.com',
|
|
131
|
+
explorer: 'explorer.inkonchain.com',
|
|
132
|
+
hypersync: 'https://ink.hypersync.xyz',
|
|
133
|
+
llama: { coins: 'ink', yields: 'Ink' }
|
|
134
|
+
},
|
|
135
|
+
mantle: {
|
|
136
|
+
chain: mantle,
|
|
137
|
+
alchemy: 'mantle-mainnet',
|
|
138
|
+
alchemyTokenApi: false,
|
|
139
|
+
fallback: 'https://rpc.mantle.xyz',
|
|
140
|
+
explorer: 'mantlescan.xyz',
|
|
141
|
+
hypersync: 'https://mantle.hypersync.xyz',
|
|
142
|
+
llama: { coins: 'mantle', yields: 'Mantle' }
|
|
143
|
+
},
|
|
144
|
+
celo: {
|
|
145
|
+
chain: celo,
|
|
146
|
+
alchemy: 'celo-mainnet',
|
|
147
|
+
fallback: 'https://forno.celo.org',
|
|
148
|
+
explorer: 'celoscan.io',
|
|
149
|
+
hypersync: 'https://celo.hypersync.xyz',
|
|
150
|
+
llama: { coins: 'celo', yields: 'Celo' }
|
|
151
|
+
},
|
|
152
|
+
hyperevm: {
|
|
153
|
+
chain: hyperEvm,
|
|
154
|
+
alchemy: 'hyperliquid-mainnet',
|
|
155
|
+
fallback: 'https://rpc.hyperliquid.xyz/evm',
|
|
156
|
+
explorer: 'hyperevmscan.io',
|
|
157
|
+
hypersync: 'https://hyperliquid.hypersync.xyz',
|
|
158
|
+
llama: { coins: 'hyperliquid', yields: 'Hyperliquid L1' }
|
|
98
159
|
},
|
|
99
160
|
localhost: {
|
|
100
161
|
chain: localhost,
|
package/dist/chains.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,GAAG,EACH,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-signing.d.ts","sourceRoot":"","sources":["../src/clear-signing.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C;;;;;;GAMG;AAEH,UAAU,UAAU;IAElB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC7E;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAkCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAiBD,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;
|
|
1
|
+
{"version":3,"file":"clear-signing.d.ts","sourceRoot":"","sources":["../src/clear-signing.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C;;;;;;GAMG;AAEH,UAAU,UAAU;IAElB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC7E;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAkCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAiBD,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAqED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAKxF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAiBlC"}
|
package/dist/clear-signing.js
CHANGED
|
@@ -80,11 +80,22 @@ async function formatField(chain, field, root, tx) {
|
|
|
80
80
|
case 'amount': {
|
|
81
81
|
const amount = typeof raw === 'bigint' ? raw : BigInt(raw);
|
|
82
82
|
const token = field.params?.tokenAddress ?? (field.params?.tokenPath ? resolvePath(root, tx, field.params.tokenPath) : undefined);
|
|
83
|
-
const
|
|
84
|
-
|
|
83
|
+
const tokenAddress = typeof token === 'string' && isAddress(token) ? getAddress(token) : undefined;
|
|
84
|
+
const meta = tokenAddress
|
|
85
|
+
? await tokenMeta(chain, tokenAddress).catch(() => ({ symbol: undefined, decimals: undefined }))
|
|
85
86
|
: { symbol: undefined, decimals: undefined };
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
// `amount` is the native currency, which always has 18 decimals.
|
|
88
|
+
const decimals = meta.decimals ?? (format === 'amount' && !tokenAddress ? 18 : undefined);
|
|
89
|
+
// symbol() is whatever the token contract says it is, so the address always goes with it.
|
|
90
|
+
const symbol = `${meta.symbol ? ` ${meta.symbol}` : ''}${tokenAddress ? ` (${tokenAddress})` : ''}`;
|
|
91
|
+
if (tokenAddress)
|
|
92
|
+
out.address = tokenAddress;
|
|
93
|
+
if (amount > UNLIMITED_THRESHOLD)
|
|
94
|
+
out.value = `Unlimited${symbol}`;
|
|
95
|
+
else if (decimals === undefined)
|
|
96
|
+
out.value = `${amount}${symbol} (decimals unknown)`;
|
|
97
|
+
else
|
|
98
|
+
out.value = `${formatUnits(amount, decimals)}${symbol}`;
|
|
88
99
|
return out;
|
|
89
100
|
}
|
|
90
101
|
case 'addressName':
|
|
@@ -95,10 +106,10 @@ async function formatField(chain, field, root, tx) {
|
|
|
95
106
|
return out;
|
|
96
107
|
}
|
|
97
108
|
const address = getAddress(raw);
|
|
98
|
-
const name =
|
|
109
|
+
const name = lookupContract(chain, address)?.protocol;
|
|
99
110
|
out.address = address;
|
|
100
111
|
out.name = name ? protocolLabel(name) : await addressLabel(chain, address).catch(() => undefined);
|
|
101
|
-
out.value = out.name
|
|
112
|
+
out.value = out.name ? `${out.name} (${address})` : address;
|
|
102
113
|
return out;
|
|
103
114
|
}
|
|
104
115
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-signing.js","sourceRoot":"","sources":["../src/clear-signing.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"clear-signing.js","sourceRoot":"","sources":["../src/clear-signing.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAQ,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAQ,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAY9C,6FAA6F;AAC7F,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEzD,qBAAa,aAAa;IAGZ,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,OAAO,CAAqC;gBAEhC,MAAM,EAAE,MAAM;IAElC,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY;IAc7C,SAAS,IAAI,MAAM;IAInB,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAGvC,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAIxC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IAIzD,yEAAyE;IACzE,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,SAAK,GAAG,MAAM,GAAG,SAAS;CAIjE;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAGrE;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD"}
|
package/dist/client.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { createPublicClient, http } from 'viem';
|
|
2
2
|
import { CHAINS } from './chains.js';
|
|
3
3
|
export { SUPPORTED_CHAINS } from './chains.js';
|
|
4
|
-
/** Custom URL first, then
|
|
4
|
+
/** Custom URL first, then Alchemy when a key is configured, then the public endpoint. */
|
|
5
5
|
function getRpcUrl(chainName, config) {
|
|
6
6
|
const custom = config.customRpcUrls?.[chainName];
|
|
7
7
|
if (custom)
|
|
8
8
|
return custom;
|
|
9
|
-
const { alchemy,
|
|
9
|
+
const { alchemy, fallback } = CHAINS[chainName];
|
|
10
10
|
if (alchemy && config.alchemyApiKey)
|
|
11
11
|
return `https://${alchemy}.g.alchemy.com/v2/${config.alchemyApiKey}`;
|
|
12
|
-
if (infura && config.infuraApiKey)
|
|
13
|
-
return `https://${infura}.infura.io/v3/${config.infuraApiKey}`;
|
|
14
12
|
return fallback;
|
|
15
13
|
}
|
|
16
14
|
export class ClientManager {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAkB,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAkB,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,yFAAyF;AACzF,SAAS,SAAS,CAAC,SAAoB,EAAE,MAAc;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAA;IAChD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IAC/C,IAAI,OAAO,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,WAAW,OAAO,qBAAqB,MAAM,CAAC,aAAa,EAAE,CAAA;IACzG,OAAO,QAAQ,CAAA;AACjB,CAAC;AAKD,MAAM,OAAO,aAAa;IAGJ;IAFZ,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAA;IAEpD,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,SAAS,CAAC,SAAoB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC1C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QAEzB,yFAAyF;QACzF,MAAM,MAAM,GAAG,kBAAkB,CAAC;YAChC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK;YAC9B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC3C,CAAiB,CAAA;QAElB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACnC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,SAAS,CAAC,SAAoB;QAC5B,OAAO,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IACD,UAAU,CAAC,SAAoB;QAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAA;IACnC,CAAC;IAED,eAAe,CAAC,SAAoB;QAClC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAA;IACpC,CAAC;IAED,yEAAyE;IACzE,WAAW,CAAC,SAAoB,EAAE,IAAI,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAA;QACzC,OAAO,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACxD,CAAC;CACF;AAED,IAAI,aAAa,GAAyB,IAAI,CAAA;AAE9C,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IACzC,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
package/dist/http-server.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { OAuthServerProvider } from '@modelcontextprotocol/sdk/server/auth/provider.js';
|
|
2
2
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { type Express } from 'express';
|
|
4
|
-
import type
|
|
4
|
+
import { type WalletRelay } from 'web3-wallet-relay';
|
|
5
5
|
export interface HttpServerOptions {
|
|
6
6
|
port?: number;
|
|
7
7
|
host?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAE5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAE5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAoB/D,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wFAAwF;IACxF,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,eAAe,EAAE,MAAM,SAAS,CAAA;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,gGAAgG;IAChG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAChC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkG5H"}
|
package/dist/http-server.js
CHANGED
|
@@ -2,6 +2,7 @@ import { requireBearerAuth } from '@modelcontextprotocol/sdk/server/auth/middlew
|
|
|
2
2
|
import { getOAuthProtectedResourceMetadataUrl, mcpAuthRouter } from '@modelcontextprotocol/sdk/server/auth/router.js';
|
|
3
3
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
4
4
|
import express from 'express';
|
|
5
|
+
import { SIGN_PATH } from 'web3-wallet-relay';
|
|
5
6
|
import { HOSTED } from './hosted.js';
|
|
6
7
|
import { SingleUserOAuthProvider } from './oauth.js';
|
|
7
8
|
/**
|
|
@@ -25,7 +26,7 @@ export async function startHttpServer(options) {
|
|
|
25
26
|
if (!HOSTED) {
|
|
26
27
|
throw new Error('Serving over HTTP needs MCP_HOSTED=1 (or MCP_HTTP_PORT) in the environment before web3-tools-mcp is imported');
|
|
27
28
|
}
|
|
28
|
-
const port = options.port ?? Number(process.env.MCP_HTTP_PORT)
|
|
29
|
+
const port = options.port ?? (Number(process.env.MCP_HTTP_PORT) || DEFAULT_PORT);
|
|
29
30
|
const host = options.host ?? process.env.MCP_HTTP_HOST ?? '0.0.0.0';
|
|
30
31
|
const token = options.token ?? process.env.MCP_TOKEN;
|
|
31
32
|
// A reachable MCP server with a paired phone can push signing prompts at that phone. It
|
|
@@ -38,6 +39,12 @@ export async function startHttpServer(options) {
|
|
|
38
39
|
const issuer = new URL(publicUrl);
|
|
39
40
|
const provider = options.provider ?? new SingleUserOAuthProvider(token);
|
|
40
41
|
const app = express();
|
|
42
|
+
// The auth routes rate-limit per req.ip, which behind a platform proxy is the proxy's own
|
|
43
|
+
// address — every caller would share one bucket. Only trust as many hops as are really
|
|
44
|
+
// in front, or anyone could pick their own bucket with a forged X-Forwarded-For.
|
|
45
|
+
const proxyHops = Number(process.env.MCP_TRUST_PROXY);
|
|
46
|
+
if (proxyHops)
|
|
47
|
+
app.set('trust proxy', proxyHops);
|
|
41
48
|
app.use(express.json());
|
|
42
49
|
// The login form posts a token, so the authorize route needs form bodies too.
|
|
43
50
|
app.use(express.urlencoded({ extended: false }));
|
|
@@ -81,17 +88,17 @@ export async function startHttpServer(options) {
|
|
|
81
88
|
}
|
|
82
89
|
});
|
|
83
90
|
const server = await new Promise((resolve, reject) => {
|
|
84
|
-
|
|
85
|
-
listening.
|
|
91
|
+
// Express 5 hands a listen error to this callback rather than leaving it to 'error'.
|
|
92
|
+
const listening = app.listen(port, host, (error) => (error ? reject(error) : resolve(listening)));
|
|
86
93
|
});
|
|
87
94
|
// The signing page rides on this same server, so a hosted deployment can offer browser
|
|
88
95
|
// signing without a second service: one platform port serves both /mcp and the page.
|
|
89
96
|
// Mounted last, so the routes above keep their paths — the relay only claims what is
|
|
90
|
-
// left, which is the static page at
|
|
97
|
+
// left, which is the static page at /sign/.
|
|
91
98
|
let walletUrl;
|
|
92
99
|
if (options.walletRelay) {
|
|
93
100
|
options.walletRelay.attach(server, (relayApp) => app.use(relayApp));
|
|
94
|
-
walletUrl = `${publicUrl.replace(/\/$/, '')}
|
|
101
|
+
walletUrl = `${publicUrl.replace(/\/$/, '')}${SIGN_PATH}#t=${options.walletRelay.signerToken}`;
|
|
95
102
|
}
|
|
96
103
|
return { url: `${publicUrl.replace(/\/$/, '')}/mcp`, port: server.address().port, walletUrl };
|
|
97
104
|
}
|
package/dist/http-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gEAAgE,CAAA;AAElG,OAAO,EAAE,oCAAoC,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAA;AAErH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAA;AAClG,OAAO,OAAyB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,6 @@ OPTIONS:
|
|
|
24
24
|
--help, -h Show this help message
|
|
25
25
|
--etherscan-api-key <key> Etherscan API key (for contract ABI retrieval)
|
|
26
26
|
--alchemy-api-key <key> Alchemy API key (for enhanced RPC)
|
|
27
|
-
--infura-api-key <key> Infura API key (for alternative RPC)
|
|
28
27
|
--hypersync-api-key <key> Hypersync API key (for fast event queries)
|
|
29
28
|
--walletconnect-project-id <id>
|
|
30
29
|
WalletConnect project id, to sign from a phone
|
|
@@ -34,11 +33,12 @@ OPTIONS:
|
|
|
34
33
|
ENVIRONMENT VARIABLES:
|
|
35
34
|
ETHERSCAN_API_KEY Alternative to --etherscan-api-key
|
|
36
35
|
ALCHEMY_API_KEY Alternative to --alchemy-api-key
|
|
37
|
-
INFURA_API_KEY Alternative to --infura-api-key
|
|
38
36
|
HYPERSYNC_API_KEY Alternative to --hypersync-api-key
|
|
39
37
|
WALLETCONNECT_PROJECT_ID Alternative to --walletconnect-project-id
|
|
40
38
|
CUSTOM_RPC Alternative to --custom-rpc
|
|
41
39
|
MCP_HTTP_PORT Serve MCP over HTTP on this port instead of stdio
|
|
40
|
+
MCP_HTTP_HOST Interface the HTTP server binds to (default: 0.0.0.0)
|
|
41
|
+
MCP_TRUST_PROXY Proxy hops in front of the server, e.g. 1 on Fly/Render
|
|
42
42
|
MCP_HOSTED Apply the hosted guards without the CLI (library use)
|
|
43
43
|
MCP_TOKEN Bearer token required by the HTTP transport
|
|
44
44
|
MCP_PUBLIC_URL Public URL of this server, advertised in OAuth metadata
|
|
@@ -78,9 +78,6 @@ if (config.etherscanApiKey) {
|
|
|
78
78
|
if (config.alchemyApiKey) {
|
|
79
79
|
console.error('[MCP] Alchemy API key configured');
|
|
80
80
|
}
|
|
81
|
-
if (config.infuraApiKey) {
|
|
82
|
-
console.error('[MCP] Infura API key configured');
|
|
83
|
-
}
|
|
84
81
|
if (config.walletConnectProjectId) {
|
|
85
82
|
console.error('[MCP] WalletConnect project id configured — phone signing available');
|
|
86
83
|
}
|
|
@@ -141,8 +138,10 @@ async function main() {
|
|
|
141
138
|
await wallet.connect().catch((error) => {
|
|
142
139
|
console.error('[MCP] Could not join the wallet relay:', error.message);
|
|
143
140
|
});
|
|
141
|
+
// Without its #t= token: platform logs are read by more people than may sign. The full
|
|
142
|
+
// link comes from wallet_status, which already requires MCP_TOKEN.
|
|
144
143
|
if (walletUrl)
|
|
145
|
-
console.error(`Wallet interface available at ${walletUrl}`);
|
|
144
|
+
console.error(`Wallet interface available at ${walletUrl.split('#')[0]} (link with token via wallet_status)`);
|
|
146
145
|
if (!config.walletConnectProjectId) {
|
|
147
146
|
console.error('[MCP] No WalletConnect project id — phone signing is unavailable on this server');
|
|
148
147
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAE5F,sBAAsB;AACtB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAA;AAErC,yBAAyB;AACzB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC;yBACW,WAAW,CAAC,OAAO;EAC1C,WAAW,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmCrB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;YAcnB,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAClE,WAAW,CAAC,IAAI,CAAC,GAAG;;;CAG/B,CAAC,CAAA;IACA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,yBAAyB;AACzB,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;AACrD,CAAC;AACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;AACnD,CAAC;AACD,IAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/kv-storage.d.ts
CHANGED
|
@@ -12,7 +12,8 @@ export interface KeyValueStorage {
|
|
|
12
12
|
getKeys(): Promise<string[]>;
|
|
13
13
|
getEntries<T = unknown>(): Promise<[string, T][]>;
|
|
14
14
|
getItem<T = unknown>(key: string): Promise<T | undefined>;
|
|
15
|
-
|
|
15
|
+
/** `ttl` (seconds) expires just this field, where the backend can. */
|
|
16
|
+
setItem<T = unknown>(key: string, value: T, ttl?: number): Promise<void>;
|
|
16
17
|
removeItem(key: string): Promise<void>;
|
|
17
18
|
}
|
|
18
19
|
/**
|
package/dist/kv-storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv-storage.d.ts","sourceRoot":"","sources":["../src/kv-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,eAAe;IAC9B,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC5B,UAAU,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IACzD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"kv-storage.d.ts","sourceRoot":"","sources":["../src/kv-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,eAAe;IAC9B,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC5B,UAAU,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IACzD,sEAAsE;IACtE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC;AAwDD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAKhE"}
|
package/dist/kv-storage.js
CHANGED
|
@@ -21,7 +21,8 @@ class RedisKeyValueStorage {
|
|
|
21
21
|
const response = await fetch(this.url, {
|
|
22
22
|
method: 'POST',
|
|
23
23
|
headers: { authorization: `Bearer ${this.token}`, 'content-type': 'application/json' },
|
|
24
|
-
body: JSON.stringify(parts)
|
|
24
|
+
body: JSON.stringify(parts),
|
|
25
|
+
signal: AbortSignal.timeout(5000)
|
|
25
26
|
});
|
|
26
27
|
if (!response.ok) {
|
|
27
28
|
throw new Error(`Upstash request failed (${response.status}): ${await response.text()}`);
|
|
@@ -48,8 +49,10 @@ class RedisKeyValueStorage {
|
|
|
48
49
|
const value = await this.command('HGET', HASH_KEY, key);
|
|
49
50
|
return value == null ? undefined : JSON.parse(value);
|
|
50
51
|
}
|
|
51
|
-
async setItem(key, value) {
|
|
52
|
+
async setItem(key, value, ttl) {
|
|
52
53
|
await this.command('HSET', HASH_KEY, key, JSON.stringify(value));
|
|
54
|
+
if (ttl)
|
|
55
|
+
await this.command('HEXPIRE', HASH_KEY, Math.ceil(ttl), 'FIELDS', 1, key);
|
|
53
56
|
}
|
|
54
57
|
async removeItem(key) {
|
|
55
58
|
await this.command('HDEL', HASH_KEY, key);
|
package/dist/kv-storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv-storage.js","sourceRoot":"","sources":["../src/kv-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,QAAQ,GAAG,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"kv-storage.js","sourceRoot":"","sources":["../src/kv-storage.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth.d.ts
CHANGED
|
@@ -13,8 +13,15 @@ import type { Response } from 'express';
|
|
|
13
13
|
* the deployment rather than anybody in particular.
|
|
14
14
|
*/
|
|
15
15
|
export interface Login {
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The page served at GET /authorize. `hidden` must be placed inside its form. `request`
|
|
18
|
+
* names who is asking and where the code will be sent, so a person can tell a phishing
|
|
19
|
+
* client from their own; like `error`, its values arrive HTML-escaped.
|
|
20
|
+
*/
|
|
21
|
+
page(hidden: string, error?: string, request?: {
|
|
22
|
+
client: string;
|
|
23
|
+
redirectHost: string;
|
|
24
|
+
}): string | Promise<string>;
|
|
18
25
|
/** Reads the posted form. An `error` re-renders the page; an `address` names the person. */
|
|
19
26
|
identify(form: Record<string, string>): Promise<{
|
|
20
27
|
address?: string;
|
|
@@ -25,6 +32,11 @@ export interface Login {
|
|
|
25
32
|
* page, so a credential can never be echoed back into the HTML.
|
|
26
33
|
*/
|
|
27
34
|
owns?: string[];
|
|
35
|
+
/**
|
|
36
|
+
* A shared secret this login checks against, if it has one. Everything issued is bound to
|
|
37
|
+
* it, so rotating the secret revokes every code and token handed out under the old one.
|
|
38
|
+
*/
|
|
39
|
+
credential?: string;
|
|
28
40
|
}
|
|
29
41
|
/** The default: one shared credential, so a self-hoster needs no identity provider. */
|
|
30
42
|
export declare function tokenLogin(accessToken: string): Login;
|
|
@@ -32,6 +44,7 @@ export declare class OAuthProvider implements OAuthServerProvider {
|
|
|
32
44
|
private login;
|
|
33
45
|
private staticToken?;
|
|
34
46
|
private store;
|
|
47
|
+
private credential;
|
|
35
48
|
/**
|
|
36
49
|
* `staticToken` is accepted verbatim in an Authorization header, for clients that can send
|
|
37
50
|
* one and skip the flow entirely. It names no person, so it carries no identity.
|
|
@@ -44,8 +57,9 @@ export declare class OAuthProvider implements OAuthServerProvider {
|
|
|
44
57
|
* route, which is the only place the client will follow a redirect from.
|
|
45
58
|
*/
|
|
46
59
|
authorize(client: OAuthClientInformationFull, params: AuthorizationParams, res: Response): Promise<void>;
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
private validCode;
|
|
61
|
+
challengeForAuthorizationCode(client: OAuthClientInformationFull, authorizationCode: string): Promise<string>;
|
|
62
|
+
exchangeAuthorizationCode(client: OAuthClientInformationFull, authorizationCode: string, _codeVerifier?: string, redirectUri?: string): Promise<OAuthTokens>;
|
|
49
63
|
exchangeRefreshToken(client: OAuthClientInformationFull, refreshToken: string, scopes?: string[]): Promise<OAuthTokens>;
|
|
50
64
|
private issue;
|
|
51
65
|
/** Accepts an issued token, or the static one so a client that can send a header still works. */
|