@sherwoodagent/cli 0.6.1 → 0.7.1
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/dist/{chat-2BKH5FCV.js → chat-E5AXULN3.js} +16 -6
- package/dist/chat-E5AXULN3.js.map +1 -0
- package/dist/chunk-DVWORPEY.js +75 -0
- package/dist/chunk-DVWORPEY.js.map +1 -0
- package/dist/{chunk-WAJ6T64Y.js → chunk-FGSXRXCZ.js} +11 -480
- package/dist/chunk-FGSXRXCZ.js.map +1 -0
- package/dist/chunk-JY24QVXN.js +277 -0
- package/dist/chunk-JY24QVXN.js.map +1 -0
- package/dist/chunk-P4OHGJ3Z.js +350 -0
- package/dist/chunk-P4OHGJ3Z.js.map +1 -0
- package/dist/chunk-QMWMT6EH.js +149 -0
- package/dist/chunk-QMWMT6EH.js.map +1 -0
- package/dist/chunk-VADRJDMW.js +401 -0
- package/dist/chunk-VADRJDMW.js.map +1 -0
- package/dist/eas-Y2XAG3C6.js +21 -0
- package/dist/eas-Y2XAG3C6.js.map +1 -0
- package/dist/index.js +42 -268
- package/dist/index.js.map +1 -1
- package/dist/ipfs-P3NVJQCF.js +11 -0
- package/dist/ipfs-P3NVJQCF.js.map +1 -0
- package/dist/research-GWNEE2OU.js +12 -0
- package/dist/research-GWNEE2OU.js.map +1 -0
- package/dist/research-HHMZ63WH.js +308 -0
- package/dist/research-HHMZ63WH.js.map +1 -0
- package/dist/{session-LATHJZ2S.js → session-BBNSJYAQ.js} +10 -6
- package/dist/{session-LATHJZ2S.js.map → session-BBNSJYAQ.js.map} +1 -1
- package/dist/{xmtp-IRIWABDL.js → xmtp-PQ4VJWTW.js} +6 -3
- package/dist/{xmtp-IRIWABDL.js.map → xmtp-PQ4VJWTW.js.map} +1 -1
- package/package.json +3 -1
- package/dist/chat-2BKH5FCV.js.map +0 -1
- package/dist/chunk-WAJ6T64Y.js.map +0 -1
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
function setNetwork(n) {
|
|
5
|
-
_network = n;
|
|
6
|
-
}
|
|
7
|
-
function getNetwork() {
|
|
8
|
-
return _network;
|
|
9
|
-
}
|
|
10
|
-
function getChain() {
|
|
11
|
-
return _network === "base" ? base : baseSepolia;
|
|
12
|
-
}
|
|
13
|
-
function getRpcUrl() {
|
|
14
|
-
if (_network === "base-sepolia") {
|
|
15
|
-
return process.env.BASE_SEPOLIA_RPC_URL || "https://sepolia.base.org";
|
|
16
|
-
}
|
|
17
|
-
return process.env.BASE_RPC_URL || "https://mainnet.base.org";
|
|
18
|
-
}
|
|
19
|
-
function getExplorerUrl(txHash) {
|
|
20
|
-
const host = _network === "base" ? "basescan.org" : "sepolia.basescan.org";
|
|
21
|
-
return `https://${host}/tx/${txHash}`;
|
|
22
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
getNetwork
|
|
3
|
+
} from "./chunk-QMWMT6EH.js";
|
|
23
4
|
|
|
24
5
|
// src/lib/addresses.ts
|
|
25
6
|
var BASE_TOKENS = {
|
|
@@ -124,11 +105,13 @@ var BASE_SEPOLIA_EAS = {
|
|
|
124
105
|
};
|
|
125
106
|
var BASE_EAS_SCHEMAS = {
|
|
126
107
|
SYNDICATE_JOIN_REQUEST: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
127
|
-
AGENT_APPROVED: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
108
|
+
AGENT_APPROVED: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
109
|
+
X402_RESEARCH: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
128
110
|
};
|
|
129
111
|
var BASE_SEPOLIA_EAS_SCHEMAS = {
|
|
130
112
|
SYNDICATE_JOIN_REQUEST: "0x1e7ce17b16233977ba913b156033e98f52029f4bee273a4abefe6c15ce11d5ef",
|
|
131
|
-
AGENT_APPROVED: "0x1013f7b38f433b2a93fc5ac162482813081c64edd67cea9b5a90698531ddb607"
|
|
113
|
+
AGENT_APPROVED: "0x1013f7b38f433b2a93fc5ac162482813081c64edd67cea9b5a90698531ddb607",
|
|
114
|
+
X402_RESEARCH: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
132
115
|
};
|
|
133
116
|
function TOKENS() {
|
|
134
117
|
return getNetwork() === "base" ? BASE_TOKENS : BASE_SEPOLIA_TOKENS;
|
|
@@ -158,110 +141,6 @@ function EAS_SCHEMAS() {
|
|
|
158
141
|
return getNetwork() === "base" ? BASE_EAS_SCHEMAS : BASE_SEPOLIA_EAS_SCHEMAS;
|
|
159
142
|
}
|
|
160
143
|
|
|
161
|
-
// src/lib/config.ts
|
|
162
|
-
import fs from "fs";
|
|
163
|
-
import path from "path";
|
|
164
|
-
var CONFIG_DIR = path.join(process.env.HOME || "~", ".sherwood");
|
|
165
|
-
var CONFIG_PATH = path.join(CONFIG_DIR, "config.json");
|
|
166
|
-
function loadConfig() {
|
|
167
|
-
if (fs.existsSync(CONFIG_PATH)) {
|
|
168
|
-
return JSON.parse(fs.readFileSync(CONFIG_PATH, "utf-8"));
|
|
169
|
-
}
|
|
170
|
-
const config = { groupCache: {} };
|
|
171
|
-
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
172
|
-
fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2));
|
|
173
|
-
return config;
|
|
174
|
-
}
|
|
175
|
-
function saveConfig(config) {
|
|
176
|
-
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
177
|
-
fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2));
|
|
178
|
-
}
|
|
179
|
-
function cacheGroupId(subdomain, groupId) {
|
|
180
|
-
const config = loadConfig();
|
|
181
|
-
config.groupCache[subdomain] = groupId;
|
|
182
|
-
saveConfig(config);
|
|
183
|
-
}
|
|
184
|
-
function getCachedGroupId(subdomain) {
|
|
185
|
-
const config = loadConfig();
|
|
186
|
-
return config.groupCache[subdomain];
|
|
187
|
-
}
|
|
188
|
-
function setVeniceApiKey(apiKey) {
|
|
189
|
-
const config = loadConfig();
|
|
190
|
-
config.veniceApiKey = apiKey;
|
|
191
|
-
saveConfig(config);
|
|
192
|
-
}
|
|
193
|
-
function getVeniceApiKey() {
|
|
194
|
-
return loadConfig().veniceApiKey;
|
|
195
|
-
}
|
|
196
|
-
function setAgentId(agentId) {
|
|
197
|
-
const config = loadConfig();
|
|
198
|
-
config.agentId = agentId;
|
|
199
|
-
saveConfig(config);
|
|
200
|
-
}
|
|
201
|
-
function getAgentId() {
|
|
202
|
-
return loadConfig().agentId;
|
|
203
|
-
}
|
|
204
|
-
function setPrivateKey(key) {
|
|
205
|
-
const config = loadConfig();
|
|
206
|
-
config.privateKey = key.startsWith("0x") ? key : `0x${key}`;
|
|
207
|
-
saveConfig(config);
|
|
208
|
-
}
|
|
209
|
-
function getChainContracts(chainId) {
|
|
210
|
-
const config = loadConfig();
|
|
211
|
-
return config.contracts?.[String(chainId)] ?? {};
|
|
212
|
-
}
|
|
213
|
-
function setChainContract(chainId, key, value) {
|
|
214
|
-
const config = loadConfig();
|
|
215
|
-
if (!config.contracts) config.contracts = {};
|
|
216
|
-
const cid = String(chainId);
|
|
217
|
-
if (!config.contracts[cid]) config.contracts[cid] = {};
|
|
218
|
-
config.contracts[cid][key] = value;
|
|
219
|
-
saveConfig(config);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// src/lib/client.ts
|
|
223
|
-
import { createPublicClient, createWalletClient, http } from "viem";
|
|
224
|
-
import { privateKeyToAccount } from "viem/accounts";
|
|
225
|
-
var _publicClient = null;
|
|
226
|
-
var _walletClient = null;
|
|
227
|
-
function getPrivateKey() {
|
|
228
|
-
const config = loadConfig();
|
|
229
|
-
if (config.privateKey) {
|
|
230
|
-
const k = config.privateKey;
|
|
231
|
-
return k.startsWith("0x") ? k : `0x${k}`;
|
|
232
|
-
}
|
|
233
|
-
const env = process.env.PRIVATE_KEY;
|
|
234
|
-
if (env) {
|
|
235
|
-
return env.startsWith("0x") ? env : `0x${env}`;
|
|
236
|
-
}
|
|
237
|
-
throw new Error(
|
|
238
|
-
"Private key not found. Run 'sherwood config set --private-key <key>' or set PRIVATE_KEY env var."
|
|
239
|
-
);
|
|
240
|
-
}
|
|
241
|
-
function getPublicClient() {
|
|
242
|
-
if (!_publicClient) {
|
|
243
|
-
_publicClient = createPublicClient({
|
|
244
|
-
chain: getChain(),
|
|
245
|
-
transport: http(getRpcUrl())
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
return _publicClient;
|
|
249
|
-
}
|
|
250
|
-
function getWalletClient() {
|
|
251
|
-
if (!_walletClient) {
|
|
252
|
-
const account = privateKeyToAccount(getPrivateKey());
|
|
253
|
-
_walletClient = createWalletClient({
|
|
254
|
-
account,
|
|
255
|
-
chain: getChain(),
|
|
256
|
-
transport: http(getRpcUrl())
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
return _walletClient;
|
|
260
|
-
}
|
|
261
|
-
function getAccount() {
|
|
262
|
-
return privateKeyToAccount(getPrivateKey());
|
|
263
|
-
}
|
|
264
|
-
|
|
265
144
|
// src/lib/abis.ts
|
|
266
145
|
var SYNDICATE_VAULT_ABI = [
|
|
267
146
|
// ERC-4626
|
|
@@ -1041,371 +920,23 @@ var EAS_ABI = [
|
|
|
1041
920
|
}
|
|
1042
921
|
];
|
|
1043
922
|
|
|
1044
|
-
// src/lib/vault.ts
|
|
1045
|
-
import { formatUnits, encodeFunctionData, decodeFunctionResult } from "viem";
|
|
1046
|
-
var _vaultOverride = null;
|
|
1047
|
-
function setVaultAddress(addr) {
|
|
1048
|
-
_vaultOverride = addr;
|
|
1049
|
-
}
|
|
1050
|
-
function getVaultAddress() {
|
|
1051
|
-
if (_vaultOverride) return _vaultOverride;
|
|
1052
|
-
const chainId = getChain().id;
|
|
1053
|
-
const fromConfig = getChainContracts(chainId).vault;
|
|
1054
|
-
if (fromConfig) return fromConfig;
|
|
1055
|
-
throw new Error(
|
|
1056
|
-
"Vault address not found. Pass --vault <addr> or run 'sherwood config set --vault <addr>'."
|
|
1057
|
-
);
|
|
1058
|
-
}
|
|
1059
|
-
async function getAssetAddress() {
|
|
1060
|
-
const client = getPublicClient();
|
|
1061
|
-
return client.readContract({
|
|
1062
|
-
address: getVaultAddress(),
|
|
1063
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1064
|
-
functionName: "asset"
|
|
1065
|
-
});
|
|
1066
|
-
}
|
|
1067
|
-
async function getAssetDecimals() {
|
|
1068
|
-
const client = getPublicClient();
|
|
1069
|
-
const asset = await getAssetAddress();
|
|
1070
|
-
return client.readContract({
|
|
1071
|
-
address: asset,
|
|
1072
|
-
abi: ERC20_ABI,
|
|
1073
|
-
functionName: "decimals"
|
|
1074
|
-
});
|
|
1075
|
-
}
|
|
1076
|
-
async function deposit(amount) {
|
|
1077
|
-
const wallet = getWalletClient();
|
|
1078
|
-
const client = getPublicClient();
|
|
1079
|
-
const vaultAddress = getVaultAddress();
|
|
1080
|
-
const account = getAccount();
|
|
1081
|
-
const asset = await getAssetAddress();
|
|
1082
|
-
const approveHash = await wallet.writeContract({
|
|
1083
|
-
account: getAccount(),
|
|
1084
|
-
chain: getChain(),
|
|
1085
|
-
address: asset,
|
|
1086
|
-
abi: ERC20_ABI,
|
|
1087
|
-
functionName: "approve",
|
|
1088
|
-
args: [vaultAddress, amount]
|
|
1089
|
-
});
|
|
1090
|
-
await client.waitForTransactionReceipt({ hash: approveHash });
|
|
1091
|
-
return wallet.writeContract({
|
|
1092
|
-
account: getAccount(),
|
|
1093
|
-
chain: getChain(),
|
|
1094
|
-
address: vaultAddress,
|
|
1095
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1096
|
-
functionName: "deposit",
|
|
1097
|
-
args: [amount, account.address]
|
|
1098
|
-
});
|
|
1099
|
-
}
|
|
1100
|
-
async function ragequit() {
|
|
1101
|
-
const wallet = getWalletClient();
|
|
1102
|
-
const account = getAccount();
|
|
1103
|
-
return wallet.writeContract({
|
|
1104
|
-
account: getAccount(),
|
|
1105
|
-
chain: getChain(),
|
|
1106
|
-
address: getVaultAddress(),
|
|
1107
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1108
|
-
functionName: "ragequit",
|
|
1109
|
-
args: [account.address]
|
|
1110
|
-
});
|
|
1111
|
-
}
|
|
1112
|
-
async function executeBatch(calls) {
|
|
1113
|
-
const wallet = getWalletClient();
|
|
1114
|
-
return wallet.writeContract({
|
|
1115
|
-
account: getAccount(),
|
|
1116
|
-
chain: getChain(),
|
|
1117
|
-
address: getVaultAddress(),
|
|
1118
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1119
|
-
functionName: "executeBatch",
|
|
1120
|
-
args: [
|
|
1121
|
-
calls.map((c) => ({
|
|
1122
|
-
target: c.target,
|
|
1123
|
-
data: c.data,
|
|
1124
|
-
value: c.value
|
|
1125
|
-
}))
|
|
1126
|
-
]
|
|
1127
|
-
});
|
|
1128
|
-
}
|
|
1129
|
-
async function simulateBatch(calls) {
|
|
1130
|
-
const client = getPublicClient();
|
|
1131
|
-
const vaultAddress = getVaultAddress();
|
|
1132
|
-
const calldata = encodeFunctionData({
|
|
1133
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1134
|
-
functionName: "simulateBatch",
|
|
1135
|
-
args: [
|
|
1136
|
-
calls.map((c) => ({
|
|
1137
|
-
target: c.target,
|
|
1138
|
-
data: c.data,
|
|
1139
|
-
value: c.value
|
|
1140
|
-
}))
|
|
1141
|
-
]
|
|
1142
|
-
});
|
|
1143
|
-
const { data } = await client.call({
|
|
1144
|
-
to: vaultAddress,
|
|
1145
|
-
data: calldata
|
|
1146
|
-
});
|
|
1147
|
-
if (!data) {
|
|
1148
|
-
throw new Error("simulateBatch returned no data");
|
|
1149
|
-
}
|
|
1150
|
-
const decoded = decodeFunctionResult({
|
|
1151
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1152
|
-
functionName: "simulateBatch",
|
|
1153
|
-
data
|
|
1154
|
-
});
|
|
1155
|
-
return decoded.map((r) => ({
|
|
1156
|
-
success: r.success,
|
|
1157
|
-
returnData: r.returnData
|
|
1158
|
-
}));
|
|
1159
|
-
}
|
|
1160
|
-
async function approveDepositor(depositor) {
|
|
1161
|
-
const wallet = getWalletClient();
|
|
1162
|
-
return wallet.writeContract({
|
|
1163
|
-
account: getAccount(),
|
|
1164
|
-
chain: getChain(),
|
|
1165
|
-
address: getVaultAddress(),
|
|
1166
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1167
|
-
functionName: "approveDepositor",
|
|
1168
|
-
args: [depositor]
|
|
1169
|
-
});
|
|
1170
|
-
}
|
|
1171
|
-
async function removeDepositor(depositor) {
|
|
1172
|
-
const wallet = getWalletClient();
|
|
1173
|
-
return wallet.writeContract({
|
|
1174
|
-
account: getAccount(),
|
|
1175
|
-
chain: getChain(),
|
|
1176
|
-
address: getVaultAddress(),
|
|
1177
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1178
|
-
functionName: "removeDepositor",
|
|
1179
|
-
args: [depositor]
|
|
1180
|
-
});
|
|
1181
|
-
}
|
|
1182
|
-
async function isAgent(pkpAddress) {
|
|
1183
|
-
const client = getPublicClient();
|
|
1184
|
-
return client.readContract({
|
|
1185
|
-
address: getVaultAddress(),
|
|
1186
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1187
|
-
functionName: "isAgent",
|
|
1188
|
-
args: [pkpAddress]
|
|
1189
|
-
});
|
|
1190
|
-
}
|
|
1191
|
-
async function getBalance(address) {
|
|
1192
|
-
const client = getPublicClient();
|
|
1193
|
-
const vaultAddress = getVaultAddress();
|
|
1194
|
-
const account = address || getAccount().address;
|
|
1195
|
-
const [shares, totalSupply] = await Promise.all([
|
|
1196
|
-
client.readContract({
|
|
1197
|
-
address: vaultAddress,
|
|
1198
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1199
|
-
functionName: "balanceOf",
|
|
1200
|
-
args: [account]
|
|
1201
|
-
}),
|
|
1202
|
-
client.readContract({
|
|
1203
|
-
address: vaultAddress,
|
|
1204
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1205
|
-
functionName: "totalSupply"
|
|
1206
|
-
})
|
|
1207
|
-
]);
|
|
1208
|
-
let assetsValue = 0n;
|
|
1209
|
-
if (shares > 0n) {
|
|
1210
|
-
assetsValue = await client.readContract({
|
|
1211
|
-
address: vaultAddress,
|
|
1212
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1213
|
-
functionName: "convertToAssets",
|
|
1214
|
-
args: [shares]
|
|
1215
|
-
});
|
|
1216
|
-
}
|
|
1217
|
-
const percent = totalSupply > 0n ? (Number(shares) / Number(totalSupply) * 100).toFixed(2) : "0.00";
|
|
1218
|
-
const decimals = await getAssetDecimals();
|
|
1219
|
-
return {
|
|
1220
|
-
shares,
|
|
1221
|
-
assetsValue: formatUnits(assetsValue, decimals),
|
|
1222
|
-
percentOfVault: `${percent}%`
|
|
1223
|
-
};
|
|
1224
|
-
}
|
|
1225
|
-
async function registerAgent(agentId, pkpAddress, operatorEOA) {
|
|
1226
|
-
const wallet = getWalletClient();
|
|
1227
|
-
const client = getPublicClient();
|
|
1228
|
-
const hash = await wallet.writeContract({
|
|
1229
|
-
account: getAccount(),
|
|
1230
|
-
chain: getChain(),
|
|
1231
|
-
address: getVaultAddress(),
|
|
1232
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1233
|
-
functionName: "registerAgent",
|
|
1234
|
-
args: [agentId, pkpAddress, operatorEOA]
|
|
1235
|
-
});
|
|
1236
|
-
await client.waitForTransactionReceipt({ hash });
|
|
1237
|
-
return hash;
|
|
1238
|
-
}
|
|
1239
|
-
async function getVaultInfo() {
|
|
1240
|
-
const client = getPublicClient();
|
|
1241
|
-
const vaultAddress = getVaultAddress();
|
|
1242
|
-
const [totalAssets, agentCount, redemptionsLocked, managementFeeBps, decimals] = await Promise.all([
|
|
1243
|
-
client.readContract({
|
|
1244
|
-
address: vaultAddress,
|
|
1245
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1246
|
-
functionName: "totalAssets"
|
|
1247
|
-
}),
|
|
1248
|
-
client.readContract({
|
|
1249
|
-
address: vaultAddress,
|
|
1250
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1251
|
-
functionName: "getAgentCount"
|
|
1252
|
-
}),
|
|
1253
|
-
client.readContract({
|
|
1254
|
-
address: vaultAddress,
|
|
1255
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1256
|
-
functionName: "redemptionsLocked"
|
|
1257
|
-
}),
|
|
1258
|
-
client.readContract({
|
|
1259
|
-
address: vaultAddress,
|
|
1260
|
-
abi: SYNDICATE_VAULT_ABI,
|
|
1261
|
-
functionName: "managementFeeBps"
|
|
1262
|
-
}),
|
|
1263
|
-
getAssetDecimals()
|
|
1264
|
-
]);
|
|
1265
|
-
return {
|
|
1266
|
-
address: vaultAddress,
|
|
1267
|
-
totalAssets: formatUnits(totalAssets, decimals),
|
|
1268
|
-
agentCount,
|
|
1269
|
-
redemptionsLocked,
|
|
1270
|
-
managementFeeBps
|
|
1271
|
-
};
|
|
1272
|
-
}
|
|
1273
|
-
|
|
1274
|
-
// src/lib/ens.ts
|
|
1275
|
-
import { encodeFunctionData as encodeFunctionData2 } from "viem";
|
|
1276
|
-
import { namehash } from "viem/ens";
|
|
1277
|
-
var ENS_DOMAIN = "sherwoodagent.eth";
|
|
1278
|
-
function getFactoryAddress() {
|
|
1279
|
-
return SHERWOOD().FACTORY;
|
|
1280
|
-
}
|
|
1281
|
-
async function resolveSyndicate(subdomain) {
|
|
1282
|
-
const client = getPublicClient();
|
|
1283
|
-
const factory = getFactoryAddress();
|
|
1284
|
-
const syndicateId = await client.readContract({
|
|
1285
|
-
address: factory,
|
|
1286
|
-
abi: SYNDICATE_FACTORY_ABI,
|
|
1287
|
-
functionName: "subdomainToSyndicate",
|
|
1288
|
-
args: [subdomain]
|
|
1289
|
-
});
|
|
1290
|
-
if (syndicateId === 0n) {
|
|
1291
|
-
throw new Error(`Syndicate "${subdomain}" not found`);
|
|
1292
|
-
}
|
|
1293
|
-
const result = await client.readContract({
|
|
1294
|
-
address: factory,
|
|
1295
|
-
abi: SYNDICATE_FACTORY_ABI,
|
|
1296
|
-
functionName: "syndicates",
|
|
1297
|
-
args: [syndicateId]
|
|
1298
|
-
});
|
|
1299
|
-
return {
|
|
1300
|
-
id: result[0],
|
|
1301
|
-
vault: result[1],
|
|
1302
|
-
creator: result[2],
|
|
1303
|
-
subdomain: result[6]
|
|
1304
|
-
};
|
|
1305
|
-
}
|
|
1306
|
-
async function resolveVaultSyndicate(vaultAddress) {
|
|
1307
|
-
const client = getPublicClient();
|
|
1308
|
-
const factory = getFactoryAddress();
|
|
1309
|
-
const syndicateId = await client.readContract({
|
|
1310
|
-
address: factory,
|
|
1311
|
-
abi: SYNDICATE_FACTORY_ABI,
|
|
1312
|
-
functionName: "vaultToSyndicate",
|
|
1313
|
-
args: [vaultAddress]
|
|
1314
|
-
});
|
|
1315
|
-
if (syndicateId === 0n) {
|
|
1316
|
-
throw new Error(`No syndicate found for vault ${vaultAddress}`);
|
|
1317
|
-
}
|
|
1318
|
-
const result = await client.readContract({
|
|
1319
|
-
address: factory,
|
|
1320
|
-
abi: SYNDICATE_FACTORY_ABI,
|
|
1321
|
-
functionName: "syndicates",
|
|
1322
|
-
args: [syndicateId]
|
|
1323
|
-
});
|
|
1324
|
-
return {
|
|
1325
|
-
id: result[0],
|
|
1326
|
-
vault: result[1],
|
|
1327
|
-
creator: result[2],
|
|
1328
|
-
subdomain: result[6]
|
|
1329
|
-
};
|
|
1330
|
-
}
|
|
1331
|
-
function getSubdomainNode(subdomain) {
|
|
1332
|
-
return namehash(`${subdomain}.${ENS_DOMAIN}`);
|
|
1333
|
-
}
|
|
1334
|
-
async function setTextRecord(subdomain, key, value, vaultAddress) {
|
|
1335
|
-
const l2Registry = ENS().L2_REGISTRY;
|
|
1336
|
-
const node = getSubdomainNode(subdomain);
|
|
1337
|
-
setVaultAddress(vaultAddress);
|
|
1338
|
-
const setTextData = encodeFunctionData2({
|
|
1339
|
-
abi: L2_REGISTRY_ABI,
|
|
1340
|
-
functionName: "setText",
|
|
1341
|
-
args: [node, key, value]
|
|
1342
|
-
});
|
|
1343
|
-
return executeBatch(
|
|
1344
|
-
[{ target: l2Registry, data: setTextData, value: 0n }]
|
|
1345
|
-
);
|
|
1346
|
-
}
|
|
1347
|
-
async function getTextRecord(subdomain, key) {
|
|
1348
|
-
const client = getPublicClient();
|
|
1349
|
-
const node = getSubdomainNode(subdomain);
|
|
1350
|
-
return client.readContract({
|
|
1351
|
-
address: ENS().L2_REGISTRY,
|
|
1352
|
-
abi: L2_REGISTRY_ABI,
|
|
1353
|
-
functionName: "text",
|
|
1354
|
-
args: [node, key]
|
|
1355
|
-
});
|
|
1356
|
-
}
|
|
1357
|
-
|
|
1358
923
|
export {
|
|
1359
|
-
setNetwork,
|
|
1360
|
-
getNetwork,
|
|
1361
|
-
getChain,
|
|
1362
|
-
getRpcUrl,
|
|
1363
|
-
getExplorerUrl,
|
|
1364
924
|
TOKENS,
|
|
1365
925
|
MOONWELL,
|
|
1366
926
|
UNISWAP,
|
|
927
|
+
ENS,
|
|
1367
928
|
AGENT_REGISTRY,
|
|
1368
929
|
VENICE,
|
|
1369
930
|
SHERWOOD,
|
|
1370
931
|
EAS_CONTRACTS,
|
|
1371
932
|
EAS_SCHEMAS,
|
|
1372
|
-
loadConfig,
|
|
1373
|
-
saveConfig,
|
|
1374
|
-
cacheGroupId,
|
|
1375
|
-
getCachedGroupId,
|
|
1376
|
-
setVeniceApiKey,
|
|
1377
|
-
getVeniceApiKey,
|
|
1378
|
-
setAgentId,
|
|
1379
|
-
getAgentId,
|
|
1380
|
-
setPrivateKey,
|
|
1381
|
-
getChainContracts,
|
|
1382
|
-
setChainContract,
|
|
1383
|
-
getPublicClient,
|
|
1384
|
-
getWalletClient,
|
|
1385
|
-
getAccount,
|
|
1386
933
|
SYNDICATE_VAULT_ABI,
|
|
1387
934
|
UNISWAP_QUOTER_V2_ABI,
|
|
1388
935
|
ERC20_ABI,
|
|
1389
936
|
SYNDICATE_FACTORY_ABI,
|
|
937
|
+
L2_REGISTRY_ABI,
|
|
1390
938
|
STRATEGY_REGISTRY_ABI,
|
|
1391
939
|
VENICE_STAKING_ABI,
|
|
1392
|
-
EAS_ABI
|
|
1393
|
-
setVaultAddress,
|
|
1394
|
-
getVaultAddress,
|
|
1395
|
-
getAssetDecimals,
|
|
1396
|
-
deposit,
|
|
1397
|
-
ragequit,
|
|
1398
|
-
executeBatch,
|
|
1399
|
-
simulateBatch,
|
|
1400
|
-
approveDepositor,
|
|
1401
|
-
removeDepositor,
|
|
1402
|
-
isAgent,
|
|
1403
|
-
getBalance,
|
|
1404
|
-
registerAgent,
|
|
1405
|
-
getVaultInfo,
|
|
1406
|
-
resolveSyndicate,
|
|
1407
|
-
resolveVaultSyndicate,
|
|
1408
|
-
setTextRecord,
|
|
1409
|
-
getTextRecord
|
|
940
|
+
EAS_ABI
|
|
1410
941
|
};
|
|
1411
|
-
//# sourceMappingURL=chunk-
|
|
942
|
+
//# sourceMappingURL=chunk-FGSXRXCZ.js.map
|