@aibtc/mcp-server 1.0.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/README.md +340 -0
- package/dist/api.d.ts +9 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +79 -0
- package/dist/api.js.map +1 -0
- package/dist/config/contracts.d.ts +169 -0
- package/dist/config/contracts.d.ts.map +1 -0
- package/dist/config/contracts.js +250 -0
- package/dist/config/contracts.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/networks.d.ts +11 -0
- package/dist/config/networks.d.ts.map +1 -0
- package/dist/config/networks.js +21 -0
- package/dist/config/networks.js.map +1 -0
- package/dist/endpoints/index.d.ts +2 -0
- package/dist/endpoints/index.d.ts.map +1 -0
- package/dist/endpoints/index.js +2 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/endpoints/registry.d.ts +38 -0
- package/dist/endpoints/registry.d.ts.map +1 -0
- package/dist/endpoints/registry.js +935 -0
- package/dist/endpoints/registry.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/services/bitflow.service.d.ts +159 -0
- package/dist/services/bitflow.service.d.ts.map +1 -0
- package/dist/services/bitflow.service.js +325 -0
- package/dist/services/bitflow.service.js.map +1 -0
- package/dist/services/bns.service.d.ts +87 -0
- package/dist/services/bns.service.d.ts.map +1 -0
- package/dist/services/bns.service.js +312 -0
- package/dist/services/bns.service.js.map +1 -0
- package/dist/services/defi.service.d.ts +146 -0
- package/dist/services/defi.service.d.ts.map +1 -0
- package/dist/services/defi.service.js +461 -0
- package/dist/services/defi.service.js.map +1 -0
- package/dist/services/hiro-api.d.ts +438 -0
- package/dist/services/hiro-api.d.ts.map +1 -0
- package/dist/services/hiro-api.js +376 -0
- package/dist/services/hiro-api.js.map +1 -0
- package/dist/services/nft.service.d.ts +70 -0
- package/dist/services/nft.service.d.ts.map +1 -0
- package/dist/services/nft.service.js +148 -0
- package/dist/services/nft.service.js.map +1 -0
- package/dist/services/sbtc.service.d.ts +44 -0
- package/dist/services/sbtc.service.d.ts.map +1 -0
- package/dist/services/sbtc.service.js +100 -0
- package/dist/services/sbtc.service.js.map +1 -0
- package/dist/services/scaffold.service.d.ts +41 -0
- package/dist/services/scaffold.service.d.ts.map +1 -0
- package/dist/services/scaffold.service.js +1055 -0
- package/dist/services/scaffold.service.js.map +1 -0
- package/dist/services/stacking.service.d.ts +58 -0
- package/dist/services/stacking.service.d.ts.map +1 -0
- package/dist/services/stacking.service.js +153 -0
- package/dist/services/stacking.service.js.map +1 -0
- package/dist/services/tokens.service.d.ts +62 -0
- package/dist/services/tokens.service.d.ts.map +1 -0
- package/dist/services/tokens.service.js +119 -0
- package/dist/services/tokens.service.js.map +1 -0
- package/dist/services/wallet-manager.d.ts +107 -0
- package/dist/services/wallet-manager.d.ts.map +1 -0
- package/dist/services/wallet-manager.js +389 -0
- package/dist/services/wallet-manager.js.map +1 -0
- package/dist/services/x402.service.d.ts +26 -0
- package/dist/services/x402.service.d.ts.map +1 -0
- package/dist/services/x402.service.js +125 -0
- package/dist/services/x402.service.js.map +1 -0
- package/dist/tools/bitflow.tools.d.ts +3 -0
- package/dist/tools/bitflow.tools.d.ts.map +1 -0
- package/dist/tools/bitflow.tools.js +501 -0
- package/dist/tools/bitflow.tools.js.map +1 -0
- package/dist/tools/bns.tools.d.ts +3 -0
- package/dist/tools/bns.tools.d.ts.map +1 -0
- package/dist/tools/bns.tools.js +164 -0
- package/dist/tools/bns.tools.js.map +1 -0
- package/dist/tools/contract.tools.d.ts +3 -0
- package/dist/tools/contract.tools.d.ts.map +1 -0
- package/dist/tools/contract.tools.js +126 -0
- package/dist/tools/contract.tools.js.map +1 -0
- package/dist/tools/defi.tools.d.ts +3 -0
- package/dist/tools/defi.tools.d.ts.map +1 -0
- package/dist/tools/defi.tools.js +425 -0
- package/dist/tools/defi.tools.js.map +1 -0
- package/dist/tools/endpoint.tools.d.ts +3 -0
- package/dist/tools/endpoint.tools.d.ts.map +1 -0
- package/dist/tools/endpoint.tools.js +157 -0
- package/dist/tools/endpoint.tools.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/nft.tools.d.ts +3 -0
- package/dist/tools/nft.tools.d.ts.map +1 -0
- package/dist/tools/nft.tools.js +154 -0
- package/dist/tools/nft.tools.js.map +1 -0
- package/dist/tools/openrouter.tools.d.ts +3 -0
- package/dist/tools/openrouter.tools.d.ts.map +1 -0
- package/dist/tools/openrouter.tools.js +664 -0
- package/dist/tools/openrouter.tools.js.map +1 -0
- package/dist/tools/query.tools.d.ts +3 -0
- package/dist/tools/query.tools.d.ts.map +1 -0
- package/dist/tools/query.tools.js +209 -0
- package/dist/tools/query.tools.js.map +1 -0
- package/dist/tools/sbtc.tools.d.ts +3 -0
- package/dist/tools/sbtc.tools.d.ts.map +1 -0
- package/dist/tools/sbtc.tools.js +103 -0
- package/dist/tools/sbtc.tools.js.map +1 -0
- package/dist/tools/scaffold.tools.d.ts +3 -0
- package/dist/tools/scaffold.tools.d.ts.map +1 -0
- package/dist/tools/scaffold.tools.js +216 -0
- package/dist/tools/scaffold.tools.js.map +1 -0
- package/dist/tools/stacking.tools.d.ts +3 -0
- package/dist/tools/stacking.tools.d.ts.map +1 -0
- package/dist/tools/stacking.tools.js +112 -0
- package/dist/tools/stacking.tools.js.map +1 -0
- package/dist/tools/tokens.tools.d.ts +3 -0
- package/dist/tools/tokens.tools.d.ts.map +1 -0
- package/dist/tools/tokens.tools.js +154 -0
- package/dist/tools/tokens.tools.js.map +1 -0
- package/dist/tools/transfer.tools.d.ts +3 -0
- package/dist/tools/transfer.tools.d.ts.map +1 -0
- package/dist/tools/transfer.tools.js +62 -0
- package/dist/tools/transfer.tools.js.map +1 -0
- package/dist/tools/wallet-management.tools.d.ts +6 -0
- package/dist/tools/wallet-management.tools.d.ts.map +1 -0
- package/dist/tools/wallet-management.tools.js +390 -0
- package/dist/tools/wallet-management.tools.js.map +1 -0
- package/dist/tools/wallet.tools.d.ts +3 -0
- package/dist/tools/wallet.tools.d.ts.map +1 -0
- package/dist/tools/wallet.tools.js +105 -0
- package/dist/tools/wallet.tools.js.map +1 -0
- package/dist/transactions/builder.d.ts +56 -0
- package/dist/transactions/builder.d.ts.map +1 -0
- package/dist/transactions/builder.js +134 -0
- package/dist/transactions/builder.js.map +1 -0
- package/dist/transactions/clarity-values.d.ts +67 -0
- package/dist/transactions/clarity-values.d.ts.map +1 -0
- package/dist/transactions/clarity-values.js +169 -0
- package/dist/transactions/clarity-values.js.map +1 -0
- package/dist/transactions/post-conditions.d.ts +27 -0
- package/dist/transactions/post-conditions.d.ts.map +1 -0
- package/dist/transactions/post-conditions.js +101 -0
- package/dist/transactions/post-conditions.js.map +1 -0
- package/dist/utils/encryption.d.ts +33 -0
- package/dist/utils/encryption.d.ts.map +1 -0
- package/dist/utils/encryption.js +110 -0
- package/dist/utils/encryption.js.map +1 -0
- package/dist/utils/errors.d.ts +84 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +132 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/formatting.d.ts +51 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +114 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/storage.d.ts +90 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/storage.js +196 -0
- package/dist/utils/storage.js.map +1 -0
- package/dist/utils/validation.d.ts +67 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +74 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/wallet.d.ts +86 -0
- package/dist/wallet.d.ts.map +1 -0
- package/dist/wallet.js +279 -0
- package/dist/wallet.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Known contract addresses for mainnet
|
|
3
|
+
*/
|
|
4
|
+
export const MAINNET_CONTRACTS = {
|
|
5
|
+
// sBTC
|
|
6
|
+
SBTC_TOKEN: "SM3VDXK3WZZSA84XXFQ5FDMR6S8N5XQSEK4KMR5E5.sbtc-token",
|
|
7
|
+
SBTC_DEPOSIT: "SM3VDXK3WZZSA84XXFQ5FDMR6S8N5XQSEK4KMR5E5.sbtc-deposit",
|
|
8
|
+
SBTC_REGISTRY: "SM3VDXK3WZZSA84XXFQ5FDMR6S8N5XQSEK4KMR5E5.sbtc-registry",
|
|
9
|
+
// Stablecoins
|
|
10
|
+
USDCX: "SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.token-usdcx",
|
|
11
|
+
// BNS
|
|
12
|
+
BNS: "SP000000000000000000002Q6VF78.bns",
|
|
13
|
+
// Stacking
|
|
14
|
+
POX_4: "SP000000000000000000002Q6VF78.pox-4",
|
|
15
|
+
// ALEX DEX (SDK handles most operations, but we need pool contract for queries)
|
|
16
|
+
ALEX_AMM_POOL: "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.amm-swap-pool-v1-1",
|
|
17
|
+
ALEX_TOKEN: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex",
|
|
18
|
+
ALEX_WSTX: "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2",
|
|
19
|
+
// Zest Protocol
|
|
20
|
+
ZEST_POOL_BORROW: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-borrow-v2-3",
|
|
21
|
+
ZEST_POOL_RESERVE: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve",
|
|
22
|
+
ZEST_FEES_CALCULATOR: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.fees-calculator",
|
|
23
|
+
};
|
|
24
|
+
export const ZEST_ASSETS = {
|
|
25
|
+
sBTC: {
|
|
26
|
+
token: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token",
|
|
27
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zsbtc-v2-0",
|
|
28
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.stx-btc-oracle-v1-4",
|
|
29
|
+
decimals: 8,
|
|
30
|
+
symbol: "sBTC",
|
|
31
|
+
name: "sBTC",
|
|
32
|
+
},
|
|
33
|
+
aeUSDC: {
|
|
34
|
+
token: "SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc",
|
|
35
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zaeusdc-v2-0",
|
|
36
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.aeusdc-oracle-v1-0",
|
|
37
|
+
decimals: 6,
|
|
38
|
+
symbol: "aeUSDC",
|
|
39
|
+
name: "Aave USDC",
|
|
40
|
+
},
|
|
41
|
+
USDH: {
|
|
42
|
+
token: "SPN5AKG35QZSK2M8GAMR4AFX45659RJHDW353HSG.usdh-token-v1",
|
|
43
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zusdh-v2-0",
|
|
44
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.usdh-oracle-v1-0",
|
|
45
|
+
decimals: 8,
|
|
46
|
+
symbol: "USDH",
|
|
47
|
+
name: "USDH Stablecoin",
|
|
48
|
+
},
|
|
49
|
+
stSTX: {
|
|
50
|
+
token: "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.ststx-token",
|
|
51
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zststx-v2-0",
|
|
52
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.stx-btc-oracle-v1-4",
|
|
53
|
+
decimals: 6,
|
|
54
|
+
symbol: "stSTX",
|
|
55
|
+
name: "Stacked STX",
|
|
56
|
+
},
|
|
57
|
+
wSTX: {
|
|
58
|
+
token: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.wstx",
|
|
59
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zwstx-v2-0",
|
|
60
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.stx-btc-oracle-v1-4",
|
|
61
|
+
decimals: 6,
|
|
62
|
+
symbol: "wSTX",
|
|
63
|
+
name: "Wrapped STX",
|
|
64
|
+
},
|
|
65
|
+
sUSDT: {
|
|
66
|
+
token: "SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.token-susdt",
|
|
67
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zsusdt-v2-0",
|
|
68
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.susdt-oracle-v1-0",
|
|
69
|
+
decimals: 6,
|
|
70
|
+
symbol: "sUSDT",
|
|
71
|
+
name: "Stacks USDT",
|
|
72
|
+
},
|
|
73
|
+
USDA: {
|
|
74
|
+
token: "SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.usda-token",
|
|
75
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zusda-v2-0",
|
|
76
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.usda-oracle-v1-1",
|
|
77
|
+
decimals: 6,
|
|
78
|
+
symbol: "USDA",
|
|
79
|
+
name: "USDA Stablecoin",
|
|
80
|
+
},
|
|
81
|
+
DIKO: {
|
|
82
|
+
token: "SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.arkadiko-token",
|
|
83
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zdiko-v2-0",
|
|
84
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.diko-oracle-v1-1",
|
|
85
|
+
decimals: 6,
|
|
86
|
+
symbol: "DIKO",
|
|
87
|
+
name: "Arkadiko Token",
|
|
88
|
+
},
|
|
89
|
+
ALEX: {
|
|
90
|
+
token: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex",
|
|
91
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zalex-v2-0",
|
|
92
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.alex-oracle-v1-1",
|
|
93
|
+
decimals: 8,
|
|
94
|
+
symbol: "ALEX",
|
|
95
|
+
name: "ALEX Token",
|
|
96
|
+
},
|
|
97
|
+
"stSTX-BTC": {
|
|
98
|
+
token: "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.ststxbtc-token-v2",
|
|
99
|
+
lpToken: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.zststxbtc-v2_v2-0",
|
|
100
|
+
oracle: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.stx-btc-oracle-v1-4",
|
|
101
|
+
decimals: 6,
|
|
102
|
+
symbol: "stSTX-BTC",
|
|
103
|
+
name: "Stacked STX BTC",
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Ordered list of Zest assets for building the assets-list parameter
|
|
108
|
+
* Order matters for contract calls
|
|
109
|
+
*/
|
|
110
|
+
export const ZEST_ASSETS_LIST = [
|
|
111
|
+
ZEST_ASSETS.stSTX,
|
|
112
|
+
ZEST_ASSETS.aeUSDC,
|
|
113
|
+
ZEST_ASSETS.wSTX,
|
|
114
|
+
ZEST_ASSETS.DIKO,
|
|
115
|
+
ZEST_ASSETS.USDH,
|
|
116
|
+
ZEST_ASSETS.sUSDT,
|
|
117
|
+
ZEST_ASSETS.USDA,
|
|
118
|
+
ZEST_ASSETS.sBTC,
|
|
119
|
+
ZEST_ASSETS.ALEX,
|
|
120
|
+
ZEST_ASSETS["stSTX-BTC"],
|
|
121
|
+
];
|
|
122
|
+
/**
|
|
123
|
+
* Known contract addresses for testnet
|
|
124
|
+
*/
|
|
125
|
+
export const TESTNET_CONTRACTS = {
|
|
126
|
+
// sBTC (testnet)
|
|
127
|
+
SBTC_TOKEN: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-token",
|
|
128
|
+
SBTC_DEPOSIT: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-deposit",
|
|
129
|
+
SBTC_REGISTRY: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-registry",
|
|
130
|
+
// Stablecoins
|
|
131
|
+
USDCX: "ST2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.token-usdcx",
|
|
132
|
+
// BNS
|
|
133
|
+
BNS: "ST000000000000000000002AMW42H.bns",
|
|
134
|
+
// Stacking
|
|
135
|
+
POX_4: "ST000000000000000000002AMW42H.pox-4",
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Get contract addresses for the specified network
|
|
139
|
+
*/
|
|
140
|
+
export function getContracts(network) {
|
|
141
|
+
return network === "mainnet" ? MAINNET_CONTRACTS : TESTNET_CONTRACTS;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Parse a contract identifier into address and name
|
|
145
|
+
*/
|
|
146
|
+
export function parseContractId(contractId) {
|
|
147
|
+
const [address, name] = contractId.split(".");
|
|
148
|
+
if (!address || !name) {
|
|
149
|
+
throw new Error(`Invalid contract ID: ${contractId}`);
|
|
150
|
+
}
|
|
151
|
+
return { address, name };
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Fallback token contract IDs (used only when dynamic resolution fails)
|
|
155
|
+
* Prefer using resolveTokenSymbol() which checks user balances first
|
|
156
|
+
*/
|
|
157
|
+
export const WELL_KNOWN_TOKENS = {
|
|
158
|
+
mainnet: {
|
|
159
|
+
STX: "native",
|
|
160
|
+
sBTC: MAINNET_CONTRACTS.SBTC_TOKEN,
|
|
161
|
+
USDCx: MAINNET_CONTRACTS.USDCX,
|
|
162
|
+
ALEX: MAINNET_CONTRACTS.ALEX_TOKEN,
|
|
163
|
+
wSTX: MAINNET_CONTRACTS.ALEX_WSTX,
|
|
164
|
+
},
|
|
165
|
+
testnet: {
|
|
166
|
+
STX: "native",
|
|
167
|
+
sBTC: TESTNET_CONTRACTS.SBTC_TOKEN,
|
|
168
|
+
USDCx: TESTNET_CONTRACTS.USDCX,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Get ALEX DEX contract addresses for the network
|
|
173
|
+
* Note: Most ALEX operations use the alex-sdk, but we need the pool contract for queries
|
|
174
|
+
*/
|
|
175
|
+
export function getAlexContracts(network) {
|
|
176
|
+
if (network === "mainnet") {
|
|
177
|
+
return {
|
|
178
|
+
ammPool: MAINNET_CONTRACTS.ALEX_AMM_POOL,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
// ALEX is mainnet-only currently
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get Zest Protocol contract addresses for the network
|
|
186
|
+
*/
|
|
187
|
+
export function getZestContracts(network) {
|
|
188
|
+
if (network === "mainnet") {
|
|
189
|
+
return {
|
|
190
|
+
poolBorrow: MAINNET_CONTRACTS.ZEST_POOL_BORROW,
|
|
191
|
+
poolReserve: MAINNET_CONTRACTS.ZEST_POOL_RESERVE,
|
|
192
|
+
feesCalculator: MAINNET_CONTRACTS.ZEST_FEES_CALCULATOR,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// Zest is mainnet-only currently
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
export function getWellKnownTokens(network) {
|
|
199
|
+
return WELL_KNOWN_TOKENS[network];
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Bitflow DEX contract addresses
|
|
203
|
+
*/
|
|
204
|
+
export const BITFLOW_CONTRACTS = {
|
|
205
|
+
mainnet: {
|
|
206
|
+
// Primary StableSwap and Earn contracts
|
|
207
|
+
PRIMARY: "SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M",
|
|
208
|
+
// XYK pool contracts
|
|
209
|
+
XYK: "SM1793C4R5PZ4NS4VQ4WMP7SKKYVH8JZEWSZ9HCCR",
|
|
210
|
+
},
|
|
211
|
+
testnet: {
|
|
212
|
+
PRIMARY: "STRP7MYBHSMFH5EGN3HGX6KNQ7QBHVTBPF1669DW",
|
|
213
|
+
XYK: null,
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* Get Bitflow configuration from environment
|
|
218
|
+
*
|
|
219
|
+
* TODO: Once API keys are obtained from Bitflow team:
|
|
220
|
+
* 1. Set BITFLOW_API_KEY and BITFLOW_API_HOST environment variables
|
|
221
|
+
* 2. Optionally set BITFLOW_KEEPER_API_KEY and BITFLOW_KEEPER_API_HOST for Keeper features
|
|
222
|
+
* 3. Consider moving keys to Cloudflare Worker proxy for secure npm distribution
|
|
223
|
+
*/
|
|
224
|
+
export function getBitflowConfig() {
|
|
225
|
+
const apiHost = process.env.BITFLOW_API_HOST;
|
|
226
|
+
const apiKey = process.env.BITFLOW_API_KEY;
|
|
227
|
+
const readOnlyCallApiHost = process.env.BITFLOW_READONLY_API_HOST || "https://api.hiro.so";
|
|
228
|
+
// Return null if no API key configured (Bitflow features disabled)
|
|
229
|
+
if (!apiKey) {
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
apiHost: apiHost || "",
|
|
234
|
+
apiKey,
|
|
235
|
+
readOnlyCallApiHost,
|
|
236
|
+
keeperApiHost: process.env.BITFLOW_KEEPER_API_HOST,
|
|
237
|
+
keeperApiKey: process.env.BITFLOW_KEEPER_API_KEY,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Get Bitflow contract addresses for the network
|
|
242
|
+
*/
|
|
243
|
+
export function getBitflowContracts(network) {
|
|
244
|
+
return BITFLOW_CONTRACTS[network];
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Bitflow public API base URL (no API key required)
|
|
248
|
+
*/
|
|
249
|
+
export const BITFLOW_PUBLIC_API = "https://bitflow-sdk-api-gateway-7owjsmt8.uc.gateway.dev";
|
|
250
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StacksNetworkName } from "@stacks/network";
|
|
2
|
+
export type Network = "mainnet" | "testnet";
|
|
3
|
+
export declare const NETWORK: Network;
|
|
4
|
+
export declare const API_URL: string;
|
|
5
|
+
export declare function getStacksNetwork(network: Network): StacksNetworkName;
|
|
6
|
+
export declare function getApiBaseUrl(network: Network): string;
|
|
7
|
+
export declare const EXPLORER_URL = "https://explorer.hiro.so";
|
|
8
|
+
export declare function getExplorerTxUrl(txid: string, network: Network): string;
|
|
9
|
+
export declare function getExplorerAddressUrl(address: string, network: Network): string;
|
|
10
|
+
export declare function getExplorerContractUrl(contractId: string, network: Network): string;
|
|
11
|
+
//# sourceMappingURL=networks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../src/config/networks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5C,eAAO,MAAM,OAAO,EAAE,OACqC,CAAC;AAE5D,eAAO,MAAM,OAAO,QAAkD,CAAC;AAEvE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,CAEpE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAItD;AAED,eAAO,MAAM,YAAY,6BAA6B,CAAC;AAEvD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAEvE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAE/E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAEnF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const NETWORK = process.env.NETWORK === "mainnet" ? "mainnet" : "testnet";
|
|
2
|
+
export const API_URL = process.env.API_URL || "https://x402.biwas.xyz";
|
|
3
|
+
export function getStacksNetwork(network) {
|
|
4
|
+
return network === "mainnet" ? "mainnet" : "testnet";
|
|
5
|
+
}
|
|
6
|
+
export function getApiBaseUrl(network) {
|
|
7
|
+
return network === "mainnet"
|
|
8
|
+
? "https://api.mainnet.hiro.so"
|
|
9
|
+
: "https://api.testnet.hiro.so";
|
|
10
|
+
}
|
|
11
|
+
export const EXPLORER_URL = "https://explorer.hiro.so";
|
|
12
|
+
export function getExplorerTxUrl(txid, network) {
|
|
13
|
+
return `${EXPLORER_URL}/txid/${txid}?chain=${network}`;
|
|
14
|
+
}
|
|
15
|
+
export function getExplorerAddressUrl(address, network) {
|
|
16
|
+
return `${EXPLORER_URL}/address/${address}?chain=${network}`;
|
|
17
|
+
}
|
|
18
|
+
export function getExplorerContractUrl(contractId, network) {
|
|
19
|
+
return `${EXPLORER_URL}/txid/${contractId}?chain=${network}`;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=networks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networks.js","sourceRoot":"","sources":["../../src/config/networks.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,OAAO,GAClB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,wBAAwB,CAAC;AAEvE,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,6BAA6B,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEvD,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAgB;IAC7D,OAAO,GAAG,YAAY,SAAS,IAAI,UAAU,OAAO,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,OAAgB;IACrE,OAAO,GAAG,YAAY,YAAY,OAAO,UAAU,OAAO,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,OAAgB;IACzE,OAAO,GAAG,YAAY,SAAS,UAAU,UAAU,OAAO,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Known x402 endpoints registry
|
|
3
|
+
* Endpoints from x402.biwas.xyz and stx402.com
|
|
4
|
+
*/
|
|
5
|
+
export interface X402Endpoint {
|
|
6
|
+
path: string;
|
|
7
|
+
method: "GET" | "POST" | "PUT" | "DELETE";
|
|
8
|
+
description: string;
|
|
9
|
+
cost: string;
|
|
10
|
+
category: string;
|
|
11
|
+
source: "x402.biwas.xyz" | "stx402.com";
|
|
12
|
+
params?: Record<string, string>;
|
|
13
|
+
body?: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
export declare const PAID_ENDPOINTS: X402Endpoint[];
|
|
16
|
+
export declare const FREE_ENDPOINTS: X402Endpoint[];
|
|
17
|
+
export declare const ALL_ENDPOINTS: X402Endpoint[];
|
|
18
|
+
/**
|
|
19
|
+
* Search endpoints by keyword
|
|
20
|
+
*/
|
|
21
|
+
export declare function searchEndpoints(query: string): X402Endpoint[];
|
|
22
|
+
/**
|
|
23
|
+
* Get endpoints by category
|
|
24
|
+
*/
|
|
25
|
+
export declare function getEndpointsByCategory(category: string): X402Endpoint[];
|
|
26
|
+
/**
|
|
27
|
+
* Get endpoints by source
|
|
28
|
+
*/
|
|
29
|
+
export declare function getEndpointsBySource(source: "x402.biwas.xyz" | "stx402.com"): X402Endpoint[];
|
|
30
|
+
/**
|
|
31
|
+
* Format endpoints for display
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatEndpointsTable(endpoints: X402Endpoint[]): string;
|
|
34
|
+
/**
|
|
35
|
+
* Get all unique categories
|
|
36
|
+
*/
|
|
37
|
+
export declare function getCategories(): string[];
|
|
38
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/endpoints/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,GAAG,YAAY,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAu4BD,eAAO,MAAM,cAAc,gBAAsD,CAAC;AAClF,eAAO,MAAM,cAAc,gBAAsD,CAAC;AAClF,eAAO,MAAM,aAAa,gBAAyC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAQ7D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAIvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,YAAY,GAAG,YAAY,EAAE,CAE5F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CA2BtE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAGxC"}
|