@andrewkimjoseph/celina-sdk 0.9.8 → 0.9.9
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/build/src/a2a/agent-card.d.ts +37 -0
- package/build/src/a2a/agent-card.js +46 -0
- package/build/src/a2a/agent-card.js.map +1 -0
- package/build/src/a2a/index.d.ts +2 -0
- package/build/src/a2a/index.js +3 -0
- package/build/src/a2a/index.js.map +1 -0
- package/build/src/a2a/skills.d.ts +18 -0
- package/build/src/a2a/skills.js +101 -0
- package/build/src/a2a/skills.js.map +1 -0
- package/build/src/abis/aave-pool.d.ts +37 -0
- package/build/src/abis/aave-pool.js +26 -0
- package/build/src/abis/aave-pool.js.map +1 -0
- package/build/src/abis/accounts.d.ts +13 -0
- package/build/src/abis/accounts.js +10 -0
- package/build/src/abis/accounts.js.map +1 -0
- package/build/src/abis/election.d.ts +124 -0
- package/build/src/abis/election.js +88 -0
- package/build/src/abis/election.js.map +1 -0
- package/build/src/abis/gooddollar-broker.d.ts +77 -0
- package/build/src/abis/gooddollar-broker.js +44 -0
- package/build/src/abis/gooddollar-broker.js.map +1 -0
- package/build/src/abis/gooddollar-identity.d.ts +85 -0
- package/build/src/abis/gooddollar-identity.js +52 -0
- package/build/src/abis/gooddollar-identity.js.map +1 -0
- package/build/src/abis/governance.d.ts +86 -0
- package/build/src/abis/governance.js +68 -0
- package/build/src/abis/governance.js.map +1 -0
- package/build/src/abis/locked-gold.d.ts +10 -0
- package/build/src/abis/locked-gold.js +10 -0
- package/build/src/abis/locked-gold.js.map +1 -0
- package/build/src/abis/nft.d.ts +107 -0
- package/build/src/abis/nft.js +75 -0
- package/build/src/abis/nft.js.map +1 -0
- package/build/src/abis/permit2.d.ts +43 -0
- package/build/src/abis/permit2.js +30 -0
- package/build/src/abis/permit2.js.map +1 -0
- package/build/src/abis/self-registry.d.ts +194 -0
- package/build/src/abis/self-registry.js +120 -0
- package/build/src/abis/self-registry.js.map +1 -0
- package/build/src/abis/ubi-scheme.d.ts +91 -0
- package/build/src/abis/ubi-scheme.js +66 -0
- package/build/src/abis/ubi-scheme.js.map +1 -0
- package/build/src/abis/uniswap-state-view.d.ts +34 -0
- package/build/src/abis/uniswap-state-view.js +22 -0
- package/build/src/abis/uniswap-state-view.js.map +1 -0
- package/build/src/abis/uniswap-v4-quoter.d.ts +86 -0
- package/build/src/abis/uniswap-v4-quoter.js +64 -0
- package/build/src/abis/uniswap-v4-quoter.js.map +1 -0
- package/build/src/abis/universal-router.d.ts +16 -0
- package/build/src/abis/universal-router.js +14 -0
- package/build/src/abis/universal-router.js.map +1 -0
- package/build/src/abis/validators-minimal.d.ts +65 -0
- package/build/src/abis/validators-minimal.js +39 -0
- package/build/src/abis/validators-minimal.js.map +1 -0
- package/build/src/analytics/amplitude.d.ts +11 -0
- package/build/src/analytics/amplitude.js +76 -0
- package/build/src/analytics/amplitude.js.map +1 -0
- package/build/src/analytics/config.d.ts +7 -0
- package/build/src/analytics/config.js +28 -0
- package/build/src/analytics/config.js.map +1 -0
- package/build/src/analytics/consumer-package.d.ts +9 -0
- package/build/src/analytics/consumer-package.js +143 -0
- package/build/src/analytics/consumer-package.js.map +1 -0
- package/build/src/analytics/mcp-tool-events.d.ts +5 -0
- package/build/src/analytics/mcp-tool-events.js +53 -0
- package/build/src/analytics/mcp-tool-events.js.map +1 -0
- package/build/src/analytics/wallet-context.d.ts +11 -0
- package/build/src/analytics/wallet-context.js +81 -0
- package/build/src/analytics/wallet-context.js.map +1 -0
- package/build/src/analytics/wallet-extract.d.ts +9 -0
- package/build/src/analytics/wallet-extract.js +21 -0
- package/build/src/analytics/wallet-extract.js.map +1 -0
- package/build/src/analytics/wrap-service.d.ts +5 -0
- package/build/src/analytics/wrap-service.js +38 -0
- package/build/src/analytics/wrap-service.js.map +1 -0
- package/build/src/clients/celo-client.d.ts +17 -0
- package/build/src/clients/celo-client.js +28 -0
- package/build/src/clients/celo-client.js.map +1 -0
- package/build/src/clients/ens-client.d.ts +17 -0
- package/build/src/clients/ens-client.js +30 -0
- package/build/src/clients/ens-client.js.map +1 -0
- package/build/src/clients/mento-sdk.d.ts +2 -0
- package/build/src/clients/mento-sdk.js +9 -0
- package/build/src/clients/mento-sdk.js.map +1 -0
- package/build/src/clients/self-api.d.ts +82 -0
- package/build/src/clients/self-api.js +242 -0
- package/build/src/clients/self-api.js.map +1 -0
- package/build/src/clients/uniswap-sdk.d.ts +4 -0
- package/build/src/clients/uniswap-sdk.js +13 -0
- package/build/src/clients/uniswap-sdk.js.map +1 -0
- package/build/src/config/aave.d.ts +17 -0
- package/build/src/config/aave.js +77 -0
- package/build/src/config/aave.js.map +1 -0
- package/build/src/config/celina-tag.d.ts +4 -0
- package/build/src/config/celina-tag.js +13 -0
- package/build/src/config/celina-tag.js.map +1 -0
- package/build/src/config/celo-core-contracts.d.ts +8 -0
- package/build/src/config/celo-core-contracts.js +9 -0
- package/build/src/config/celo-core-contracts.js.map +1 -0
- package/build/src/config/chains.d.ts +937 -0
- package/build/src/config/chains.js +319 -0
- package/build/src/config/chains.js.map +1 -0
- package/build/src/config/gooddollar.d.ts +16 -0
- package/build/src/config/gooddollar.js +24 -0
- package/build/src/config/gooddollar.js.map +1 -0
- package/build/src/config/sdk-config.d.ts +33 -0
- package/build/src/config/sdk-config.js +31 -0
- package/build/src/config/sdk-config.js.map +1 -0
- package/build/src/config/self.d.ts +22 -0
- package/build/src/config/self.js +27 -0
- package/build/src/config/self.js.map +1 -0
- package/build/src/config/uniswap.d.ts +42 -0
- package/build/src/config/uniswap.js +76 -0
- package/build/src/config/uniswap.js.map +1 -0
- package/build/src/index.d.ts +90 -0
- package/build/src/index.js +65 -0
- package/build/src/index.js.map +1 -0
- package/build/src/oasf/index.d.ts +2 -0
- package/build/src/oasf/index.js +3 -0
- package/build/src/oasf/index.js.map +1 -0
- package/build/src/oasf/record.d.ts +39 -0
- package/build/src/oasf/record.js +35 -0
- package/build/src/oasf/record.js.map +1 -0
- package/build/src/oasf/taxonomy.d.ts +19 -0
- package/build/src/oasf/taxonomy.js +46 -0
- package/build/src/oasf/taxonomy.js.map +1 -0
- package/build/src/services/aave.service.d.ts +58 -0
- package/build/src/services/aave.service.js +210 -0
- package/build/src/services/aave.service.js.map +1 -0
- package/build/src/services/account.service.d.ts +22 -0
- package/build/src/services/account.service.js +29 -0
- package/build/src/services/account.service.js.map +1 -0
- package/build/src/services/blockchain.service.d.ts +107 -0
- package/build/src/services/blockchain.service.js +151 -0
- package/build/src/services/blockchain.service.js.map +1 -0
- package/build/src/services/contract.service.d.ts +78 -0
- package/build/src/services/contract.service.js +117 -0
- package/build/src/services/contract.service.js.map +1 -0
- package/build/src/services/ens.service.d.ts +44 -0
- package/build/src/services/ens.service.js +92 -0
- package/build/src/services/ens.service.js.map +1 -0
- package/build/src/services/gooddollar.service.d.ts +183 -0
- package/build/src/services/gooddollar.service.js +675 -0
- package/build/src/services/gooddollar.service.js.map +1 -0
- package/build/src/services/governance.service.d.ts +96 -0
- package/build/src/services/governance.service.js +255 -0
- package/build/src/services/governance.service.js.map +1 -0
- package/build/src/services/mento-fx.service.d.ts +80 -0
- package/build/src/services/mento-fx.service.js +319 -0
- package/build/src/services/mento-fx.service.js.map +1 -0
- package/build/src/services/nft.service.d.ts +58 -0
- package/build/src/services/nft.service.js +222 -0
- package/build/src/services/nft.service.js.map +1 -0
- package/build/src/services/self-session-store.d.ts +19 -0
- package/build/src/services/self-session-store.js +28 -0
- package/build/src/services/self-session-store.js.map +1 -0
- package/build/src/services/self.service.d.ts +241 -0
- package/build/src/services/self.service.js +699 -0
- package/build/src/services/self.service.js.map +1 -0
- package/build/src/services/staking.service.d.ts +140 -0
- package/build/src/services/staking.service.js +444 -0
- package/build/src/services/staking.service.js.map +1 -0
- package/build/src/services/token.service.d.ts +110 -0
- package/build/src/services/token.service.js +189 -0
- package/build/src/services/token.service.js.map +1 -0
- package/build/src/services/transaction.service.d.ts +68 -0
- package/build/src/services/transaction.service.js +198 -0
- package/build/src/services/transaction.service.js.map +1 -0
- package/build/src/services/uniswap-path-router.d.ts +40 -0
- package/build/src/services/uniswap-path-router.js +168 -0
- package/build/src/services/uniswap-path-router.js.map +1 -0
- package/build/src/services/uniswap-pool-discovery.d.ts +55 -0
- package/build/src/services/uniswap-pool-discovery.js +198 -0
- package/build/src/services/uniswap-pool-discovery.js.map +1 -0
- package/build/src/services/uniswap.service.d.ts +82 -0
- package/build/src/services/uniswap.service.js +352 -0
- package/build/src/services/uniswap.service.js.map +1 -0
- package/build/src/simulation/index.d.ts +5 -0
- package/build/src/simulation/index.js +2 -0
- package/build/src/simulation/index.js.map +1 -0
- package/build/src/simulation/simulate-prepared-step.d.ts +17 -0
- package/build/src/simulation/simulate-prepared-step.js +42 -0
- package/build/src/simulation/simulate-prepared-step.js.map +1 -0
- package/build/src/tools/catalog.d.ts +11 -0
- package/build/src/tools/catalog.js +43 -0
- package/build/src/tools/catalog.js.map +1 -0
- package/build/src/tools/domains/aave.d.ts +2 -0
- package/build/src/tools/domains/aave.js +115 -0
- package/build/src/tools/domains/aave.js.map +1 -0
- package/build/src/tools/domains/blockchain.d.ts +2 -0
- package/build/src/tools/domains/blockchain.js +86 -0
- package/build/src/tools/domains/blockchain.js.map +1 -0
- package/build/src/tools/domains/browser.d.ts +2 -0
- package/build/src/tools/domains/browser.js +45 -0
- package/build/src/tools/domains/browser.js.map +1 -0
- package/build/src/tools/domains/contract.d.ts +2 -0
- package/build/src/tools/domains/contract.js +67 -0
- package/build/src/tools/domains/contract.js.map +1 -0
- package/build/src/tools/domains/ens.d.ts +2 -0
- package/build/src/tools/domains/ens.js +16 -0
- package/build/src/tools/domains/ens.js.map +1 -0
- package/build/src/tools/domains/gooddollar.d.ts +2 -0
- package/build/src/tools/domains/gooddollar.js +171 -0
- package/build/src/tools/domains/gooddollar.js.map +1 -0
- package/build/src/tools/domains/governance.d.ts +2 -0
- package/build/src/tools/domains/governance.js +41 -0
- package/build/src/tools/domains/governance.js.map +1 -0
- package/build/src/tools/domains/index.d.ts +1 -0
- package/build/src/tools/domains/index.js +31 -0
- package/build/src/tools/domains/index.js.map +1 -0
- package/build/src/tools/domains/mento-fx.d.ts +2 -0
- package/build/src/tools/domains/mento-fx.js +67 -0
- package/build/src/tools/domains/mento-fx.js.map +1 -0
- package/build/src/tools/domains/nft.d.ts +2 -0
- package/build/src/tools/domains/nft.js +38 -0
- package/build/src/tools/domains/nft.js.map +1 -0
- package/build/src/tools/domains/self.d.ts +2 -0
- package/build/src/tools/domains/self.js +187 -0
- package/build/src/tools/domains/self.js.map +1 -0
- package/build/src/tools/domains/staking.d.ts +2 -0
- package/build/src/tools/domains/staking.js +74 -0
- package/build/src/tools/domains/staking.js.map +1 -0
- package/build/src/tools/domains/token.d.ts +2 -0
- package/build/src/tools/domains/token.js +74 -0
- package/build/src/tools/domains/token.js.map +1 -0
- package/build/src/tools/domains/transaction.d.ts +2 -0
- package/build/src/tools/domains/transaction.js +120 -0
- package/build/src/tools/domains/transaction.js.map +1 -0
- package/build/src/tools/domains/uniswap.d.ts +2 -0
- package/build/src/tools/domains/uniswap.js +67 -0
- package/build/src/tools/domains/uniswap.js.map +1 -0
- package/build/src/tools/filter.d.ts +2 -0
- package/build/src/tools/filter.js +50 -0
- package/build/src/tools/filter.js.map +1 -0
- package/build/src/tools/index.d.ts +7 -0
- package/build/src/tools/index.js +7 -0
- package/build/src/tools/index.js.map +1 -0
- package/build/src/tools/schemas/common.d.ts +165 -0
- package/build/src/tools/schemas/common.js +207 -0
- package/build/src/tools/schemas/common.js.map +1 -0
- package/build/src/tools/schemas/wallet-params.d.ts +9 -0
- package/build/src/tools/schemas/wallet-params.js +52 -0
- package/build/src/tools/schemas/wallet-params.js.map +1 -0
- package/build/src/tools/swap-routing.d.ts +25 -0
- package/build/src/tools/swap-routing.js +174 -0
- package/build/src/tools/swap-routing.js.map +1 -0
- package/build/src/tools/types.d.ts +124 -0
- package/build/src/tools/types.js +2 -0
- package/build/src/tools/types.js.map +1 -0
- package/build/src/tools/utils/normalize-token.d.ts +2 -0
- package/build/src/tools/utils/normalize-token.js +12 -0
- package/build/src/tools/utils/normalize-token.js.map +1 -0
- package/build/src/tools/utils/wallet.d.ts +4 -0
- package/build/src/tools/utils/wallet.js +8 -0
- package/build/src/tools/utils/wallet.js.map +1 -0
- package/build/src/tools/website-sync.d.ts +28 -0
- package/build/src/tools/website-sync.js +165 -0
- package/build/src/tools/website-sync.js.map +1 -0
- package/build/src/types/prepared.d.ts +28 -0
- package/build/src/types/prepared.js +12 -0
- package/build/src/types/prepared.js.map +1 -0
- package/build/src/utils/celo-format.d.ts +6 -0
- package/build/src/utils/celo-format.js +17 -0
- package/build/src/utils/celo-format.js.map +1 -0
- package/build/src/utils/erc20-allowance-storage.d.ts +20 -0
- package/build/src/utils/erc20-allowance-storage.js +64 -0
- package/build/src/utils/erc20-allowance-storage.js.map +1 -0
- package/build/src/utils/format-date.d.ts +2 -0
- package/build/src/utils/format-date.js +13 -0
- package/build/src/utils/format-date.js.map +1 -0
- package/build/src/utils/format-duration.d.ts +2 -0
- package/build/src/utils/format-duration.js +17 -0
- package/build/src/utils/format-duration.js.map +1 -0
- package/build/src/utils/format-unix-datetime.d.ts +4 -0
- package/build/src/utils/format-unix-datetime.js +18 -0
- package/build/src/utils/format-unix-datetime.js.map +1 -0
- package/build/src/utils/gooddollar-ubi-period.d.ts +23 -0
- package/build/src/utils/gooddollar-ubi-period.js +23 -0
- package/build/src/utils/gooddollar-ubi-period.js.map +1 -0
- package/build/src/utils/normalize-address.d.ts +7 -0
- package/build/src/utils/normalize-address.js +16 -0
- package/build/src/utils/normalize-address.js.map +1 -0
- package/build/src/utils/self-format.d.ts +28 -0
- package/build/src/utils/self-format.js +79 -0
- package/build/src/utils/self-format.js.map +1 -0
- package/build/src/utils/self-signing.d.ts +4 -0
- package/build/src/utils/self-signing.js +38 -0
- package/build/src/utils/self-signing.js.map +1 -0
- package/build/src/utils/transaction-errors.d.ts +3 -0
- package/build/src/utils/transaction-errors.js +17 -0
- package/build/src/utils/transaction-errors.js.map +1 -0
- package/build/tests/catalog/domains/blockchain.d.ts +2 -0
- package/build/tests/catalog/domains/blockchain.js +127 -0
- package/build/tests/catalog/domains/blockchain.js.map +1 -0
- package/build/tests/catalog/domains/chain-ext.d.ts +5 -0
- package/build/tests/catalog/domains/chain-ext.js +207 -0
- package/build/tests/catalog/domains/chain-ext.js.map +1 -0
- package/build/tests/catalog/domains/defi.d.ts +6 -0
- package/build/tests/catalog/domains/defi.js +581 -0
- package/build/tests/catalog/domains/defi.js.map +1 -0
- package/build/tests/catalog/domains/self.d.ts +2 -0
- package/build/tests/catalog/domains/self.js +208 -0
- package/build/tests/catalog/domains/self.js.map +1 -0
- package/build/tests/catalog/domains/token.d.ts +2 -0
- package/build/tests/catalog/domains/token.js +70 -0
- package/build/tests/catalog/domains/token.js.map +1 -0
- package/build/tests/catalog/domains/transaction.d.ts +2 -0
- package/build/tests/catalog/domains/transaction.js +96 -0
- package/build/tests/catalog/domains/transaction.js.map +1 -0
- package/build/tests/catalog/index.d.ts +2 -0
- package/build/tests/catalog/index.js +2 -0
- package/build/tests/catalog/index.js.map +1 -0
- package/build/tests/catalog/operations.d.ts +12 -0
- package/build/tests/catalog/operations.js +29 -0
- package/build/tests/catalog/operations.js.map +1 -0
- package/build/tests/catalog/types.d.ts +24 -0
- package/build/tests/catalog/types.js +2 -0
- package/build/tests/catalog/types.js.map +1 -0
- package/build/tests/fixtures/mainnet.d.ts +54 -0
- package/build/tests/fixtures/mainnet.js +53 -0
- package/build/tests/fixtures/mainnet.js.map +1 -0
- package/build/tests/helpers/assert.d.ts +4 -0
- package/build/tests/helpers/assert.js +24 -0
- package/build/tests/helpers/assert.js.map +1 -0
- package/build/tests/helpers/env.d.ts +11 -0
- package/build/tests/helpers/env.js +28 -0
- package/build/tests/helpers/env.js.map +1 -0
- package/build/tests/helpers/gating.d.ts +3 -0
- package/build/tests/helpers/gating.js +23 -0
- package/build/tests/helpers/gating.js.map +1 -0
- package/build/tests/testing-entry.d.ts +6 -0
- package/build/tests/testing-entry.js +6 -0
- package/build/tests/testing-entry.js.map +1 -0
- package/package.json +5 -9
- package/tests/README.md +0 -78
- package/tests/catalog/domains/blockchain.ts +0 -133
- package/tests/catalog/domains/chain-ext.ts +0 -219
- package/tests/catalog/domains/defi.ts +0 -647
- package/tests/catalog/domains/self.ts +0 -220
- package/tests/catalog/domains/token.ts +0 -74
- package/tests/catalog/domains/transaction.ts +0 -111
- package/tests/catalog/index.ts +0 -7
- package/tests/catalog/operations.ts +0 -53
- package/tests/catalog/types.ts +0 -27
- package/tests/fixtures/mainnet.ts +0 -93
- package/tests/helpers/assert.ts +0 -30
- package/tests/helpers/env.ts +0 -38
- package/tests/helpers/gating.ts +0 -36
- package/tests/testing-entry.ts +0 -27
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
import { WALLET_EXTRACT_BY_SDK_METHOD } from "./wallet-extract.js";
|
|
3
|
+
const WALLET_RE = /^0x[a-fA-F0-9]{40}$/;
|
|
4
|
+
const analyticsWalletStorage = new AsyncLocalStorage();
|
|
5
|
+
/** Validate and normalize a Celo address for telemetry `user_id`. */
|
|
6
|
+
export function normalizeWalletAddress(value) {
|
|
7
|
+
if (typeof value !== "string") {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
const trimmed = value.trim();
|
|
11
|
+
if (!WALLET_RE.test(trimmed)) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
return trimmed.toLowerCase();
|
|
15
|
+
}
|
|
16
|
+
function walletFromArgValue(value) {
|
|
17
|
+
const direct = normalizeWalletAddress(value);
|
|
18
|
+
if (direct) {
|
|
19
|
+
return direct;
|
|
20
|
+
}
|
|
21
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
22
|
+
for (const key of [
|
|
23
|
+
"address",
|
|
24
|
+
"wallet_address",
|
|
25
|
+
"from",
|
|
26
|
+
"owner",
|
|
27
|
+
"accountAddress",
|
|
28
|
+
"fromAddress",
|
|
29
|
+
]) {
|
|
30
|
+
const nested = normalizeWalletAddress(value[key]);
|
|
31
|
+
if (nested) {
|
|
32
|
+
return nested;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
/** Extract wallet from read args using catalog-generated rules. */
|
|
39
|
+
export function extractWalletFromReadArgs(methodKey, args) {
|
|
40
|
+
const rule = WALLET_EXTRACT_BY_SDK_METHOD[methodKey];
|
|
41
|
+
if (!rule) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
if (rule.positional !== undefined) {
|
|
45
|
+
const fromPos = walletFromArgValue(args[rule.positional]);
|
|
46
|
+
if (fromPos) {
|
|
47
|
+
return fromPos;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (rule.objectKeys) {
|
|
51
|
+
for (const arg of args) {
|
|
52
|
+
if (!arg || typeof arg !== "object" || Array.isArray(arg)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const obj = arg;
|
|
56
|
+
for (const key of rule.objectKeys) {
|
|
57
|
+
const found = normalizeWalletAddress(obj[key]);
|
|
58
|
+
if (found) {
|
|
59
|
+
return found;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/** Run async/sync work with a request-scoped analytics wallet (singleton SDK clients). */
|
|
67
|
+
export function runWithAnalyticsWallet(address, fn) {
|
|
68
|
+
const normalized = normalizeWalletAddress(address);
|
|
69
|
+
return analyticsWalletStorage.run(normalized, fn);
|
|
70
|
+
}
|
|
71
|
+
/** Resolve wallet for telemetry: read args → ALS → config default. */
|
|
72
|
+
export function resolveAnalyticsWallet(methodKey, args, config) {
|
|
73
|
+
return (extractWalletFromReadArgs(methodKey, args) ??
|
|
74
|
+
analyticsWalletStorage.getStore() ??
|
|
75
|
+
normalizeWalletAddress(config.analyticsWalletAddress));
|
|
76
|
+
}
|
|
77
|
+
/** Test-only: clear ALS between cases. */
|
|
78
|
+
export function resetAnalyticsWalletStorageForTests() {
|
|
79
|
+
analyticsWalletStorage.disable();
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=wallet-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-context.js","sourceRoot":"","sources":["../../../src/analytics/wallet-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/generate-mcp-analytics-map.mjs — do not edit by hand.
|
|
3
|
+
* Catalog-derived rules for extracting wallet addresses from SDK read call args.
|
|
4
|
+
*/
|
|
5
|
+
export type WalletExtractRule = {
|
|
6
|
+
positional?: number;
|
|
7
|
+
objectKeys?: readonly string[];
|
|
8
|
+
};
|
|
9
|
+
export declare const WALLET_EXTRACT_BY_SDK_METHOD: Readonly<Record<string, WalletExtractRule>>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const WALLET_EXTRACT_BY_SDK_METHOD = {
|
|
2
|
+
"aave.getBalances": { positional: 0, objectKeys: ["address"] },
|
|
3
|
+
"account.getAccount": { positional: 0, objectKeys: ["address"] },
|
|
4
|
+
"contract.callFunction": { objectKeys: ["address"] },
|
|
5
|
+
"contract.estimateGas": { objectKeys: ["address"] },
|
|
6
|
+
"gooddollar.getIdentityLink": { positional: 0, objectKeys: ["address"] },
|
|
7
|
+
"gooddollar.getUbiClaimEligibility": { positional: 0, objectKeys: ["address"] },
|
|
8
|
+
"gooddollar.getWhitelistingInfo": { positional: 0, objectKeys: ["address"] },
|
|
9
|
+
"nft.getNftBalance": { objectKeys: ["address"] },
|
|
10
|
+
"nft.getNftInfo": { objectKeys: ["address"] },
|
|
11
|
+
"self.verifySelfAgent": { objectKeys: ["address", "agent_address"] },
|
|
12
|
+
"staking.getActivatableStakes": { positional: 0, objectKeys: ["address"] },
|
|
13
|
+
"staking.getStakingBalances": { positional: 0, objectKeys: ["address"] },
|
|
14
|
+
"staking.getValidatorGroupDetails": { objectKeys: ["address"] },
|
|
15
|
+
"token.getBalances": { objectKeys: ["address"] },
|
|
16
|
+
"token.getStablecoinBalances": { positional: 0, objectKeys: ["address"] },
|
|
17
|
+
"token.getTokenBalance": { positional: 1, objectKeys: ["address"] },
|
|
18
|
+
"transaction.estimateSend": { positional: 1 },
|
|
19
|
+
"transaction.estimateTransaction": { objectKeys: ["from"] },
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=wallet-extract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-extract.js","sourceRoot":"","sources":["../../../src/analytics/wallet-extract.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,4BAA4B,GAErC;IACF,kBAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9D,oBAAoB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChE,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACpD,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnD,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,mCAAmC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/E,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC5E,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7C,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,EAAC,eAAe,CAAC,EAAE;IACnE,8BAA8B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC1E,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/D,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,6BAA6B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACzE,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnE,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IAC7C,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;CACnD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SdkConfig } from "../config/sdk-config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Wrap a domain service so catalog-mapped async reads emit Amplitude events (MCP tool names).
|
|
4
|
+
*/
|
|
5
|
+
export declare function wrapServiceForAnalytics<T extends object>(serviceKey: string, service: T, config: SdkConfig): T;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { trackMcpTool } from "./amplitude.js";
|
|
2
|
+
import { isAnalyticsEnabled } from "./config.js";
|
|
3
|
+
import { MCP_TOOL_EVENT_BY_SDK_METHOD } from "./mcp-tool-events.js";
|
|
4
|
+
/**
|
|
5
|
+
* Wrap a domain service so catalog-mapped async reads emit Amplitude events (MCP tool names).
|
|
6
|
+
*/
|
|
7
|
+
export function wrapServiceForAnalytics(serviceKey, service, config) {
|
|
8
|
+
if (!isAnalyticsEnabled(config)) {
|
|
9
|
+
return service;
|
|
10
|
+
}
|
|
11
|
+
return new Proxy(service, {
|
|
12
|
+
get(target, prop, receiver) {
|
|
13
|
+
const value = Reflect.get(target, prop, receiver);
|
|
14
|
+
if (typeof prop !== "string" || typeof value !== "function") {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
const methodKey = `${serviceKey}.${prop}`;
|
|
18
|
+
const eventName = MCP_TOOL_EVENT_BY_SDK_METHOD[methodKey];
|
|
19
|
+
if (!eventName) {
|
|
20
|
+
return value.bind(target);
|
|
21
|
+
}
|
|
22
|
+
const fn = value;
|
|
23
|
+
return (...args) => {
|
|
24
|
+
const result = fn.apply(target, args);
|
|
25
|
+
const context = { methodKey, args };
|
|
26
|
+
if (result !== null && typeof result === "object" && "then" in result) {
|
|
27
|
+
return result.then((resolved) => {
|
|
28
|
+
trackMcpTool(eventName, config, context);
|
|
29
|
+
return resolved;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
trackMcpTool(eventName, config, context);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=wrap-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap-service.js","sourceRoot":"","sources":["../../../src/analytics/wrap-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,OAAU,EACV,MAAiB;IAEjB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC5D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,SAAS,GAAG,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,EAAE,GAAG,KAAwC,CAAC;YACpD,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC5B,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACpC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;oBACtE,OAAQ,MAA2B,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACpD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;wBACzC,OAAO,QAAQ,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACzC,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cached viem public client for Celo mainnet RPC reads.
|
|
3
|
+
*/
|
|
4
|
+
import { type PublicClient } from "viem";
|
|
5
|
+
import type { SdkConfig } from "../config/sdk-config.js";
|
|
6
|
+
/** viem public client bundle for Celo mainnet. */
|
|
7
|
+
export interface CeloClients {
|
|
8
|
+
public: PublicClient;
|
|
9
|
+
}
|
|
10
|
+
/** Lazily constructs and caches a Celo mainnet public client from `SdkConfig`. */
|
|
11
|
+
export declare class CeloClientFactory {
|
|
12
|
+
private readonly config;
|
|
13
|
+
private clients;
|
|
14
|
+
constructor(config: SdkConfig);
|
|
15
|
+
/** Return a shared public client (created on first call). */
|
|
16
|
+
getClients(): CeloClients;
|
|
17
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cached viem public client for Celo mainnet RPC reads.
|
|
3
|
+
*/
|
|
4
|
+
import { createPublicClient, http, } from "viem";
|
|
5
|
+
import { CHAIN, DEFAULT_RPC_URL } from "../config/chains.js";
|
|
6
|
+
/** Lazily constructs and caches a Celo mainnet public client from `SdkConfig`. */
|
|
7
|
+
export class CeloClientFactory {
|
|
8
|
+
config;
|
|
9
|
+
clients = null;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
}
|
|
13
|
+
/** Return a shared public client (created on first call). */
|
|
14
|
+
getClients() {
|
|
15
|
+
if (this.clients) {
|
|
16
|
+
return this.clients;
|
|
17
|
+
}
|
|
18
|
+
const rpcUrl = this.config.rpcUrl ?? DEFAULT_RPC_URL;
|
|
19
|
+
const transport = http(rpcUrl);
|
|
20
|
+
const publicClient = createPublicClient({
|
|
21
|
+
chain: CHAIN,
|
|
22
|
+
transport,
|
|
23
|
+
});
|
|
24
|
+
this.clients = { public: publicClient };
|
|
25
|
+
return this.clients;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=celo-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"celo-client.js","sourceRoot":"","sources":["../../../src/clients/celo-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,IAAI,GAEL,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO7D,kFAAkF;AAClF,MAAM,OAAO,iBAAiB;IAGC;IAFrB,OAAO,GAAuB,IAAI,CAAC;IAE3C,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,6DAA6D;IAC7D,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,KAAK;YACZ,SAAS;SACV,CAAiB,CAAC;QAEnB,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ethereum mainnet public client for ENS resolution (CCIP-read gateway).
|
|
3
|
+
*/
|
|
4
|
+
import { type PublicClient } from "viem";
|
|
5
|
+
import type { SdkConfig } from "../config/sdk-config.js";
|
|
6
|
+
/** Default Ethereum RPC when `ethRpcUrl` is not set in `SdkConfig`. */
|
|
7
|
+
export declare const DEFAULT_ETH_RPC_URL = "https://ethereum.publicnode.com";
|
|
8
|
+
/** CCIP-read gateway used by viem ENS helpers. */
|
|
9
|
+
export declare const ENS_CCIP_GATEWAY = "https://ccip.ens.xyz";
|
|
10
|
+
/** Lazily constructs and caches an Ethereum mainnet client for ENS lookups. */
|
|
11
|
+
export declare class EnsClientFactory {
|
|
12
|
+
private readonly config;
|
|
13
|
+
private client;
|
|
14
|
+
constructor(config: SdkConfig);
|
|
15
|
+
/** Return a shared Ethereum public client (created on first call). */
|
|
16
|
+
getClient(): PublicClient;
|
|
17
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ethereum mainnet public client for ENS resolution (CCIP-read gateway).
|
|
3
|
+
*/
|
|
4
|
+
import { createPublicClient, http } from "viem";
|
|
5
|
+
import { mainnet } from "viem/chains";
|
|
6
|
+
/** Default Ethereum RPC when `ethRpcUrl` is not set in `SdkConfig`. */
|
|
7
|
+
export const DEFAULT_ETH_RPC_URL = "https://ethereum.publicnode.com";
|
|
8
|
+
/** CCIP-read gateway used by viem ENS helpers. */
|
|
9
|
+
export const ENS_CCIP_GATEWAY = "https://ccip.ens.xyz";
|
|
10
|
+
/** Lazily constructs and caches an Ethereum mainnet client for ENS lookups. */
|
|
11
|
+
export class EnsClientFactory {
|
|
12
|
+
config;
|
|
13
|
+
client = null;
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
}
|
|
17
|
+
/** Return a shared Ethereum public client (created on first call). */
|
|
18
|
+
getClient() {
|
|
19
|
+
if (this.client) {
|
|
20
|
+
return this.client;
|
|
21
|
+
}
|
|
22
|
+
const rpcUrl = this.config.ethRpcUrl ?? DEFAULT_ETH_RPC_URL;
|
|
23
|
+
this.client = createPublicClient({
|
|
24
|
+
chain: mainnet,
|
|
25
|
+
transport: http(rpcUrl, { timeout: 15_000 }),
|
|
26
|
+
});
|
|
27
|
+
return this.client;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=ens-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ens-client.js","sourceRoot":"","sources":["../../../src/clients/ens-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AAErE,kDAAkD;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,+EAA+E;AAC/E,MAAM,OAAO,gBAAgB;IAGE;IAFrB,MAAM,GAAwB,IAAI,CAAC;IAE3C,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,sEAAsE;IACtE,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;YAC/B,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const Mento: typeof import("@mento-protocol/mento-sdk").Mento, ChainId: typeof import("@mento-protocol/mento-sdk").ChainId, deadlineFromMinutes: typeof import("@mento-protocol/mento-sdk").deadlineFromMinutes, RouteNotFoundError: typeof import("@mento-protocol/mento-sdk").RouteNotFoundError, FXMarketClosedError: typeof import("@mento-protocol/mento-sdk").FXMarketClosedError;
|
|
2
|
+
export type { CallParams } from "@mento-protocol/mento-sdk";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
/**
|
|
3
|
+
* @mento-protocol/mento-sdk's ESM build omits .js extensions on internal imports.
|
|
4
|
+
* Load the CJS entry via createRequire until upstream fixes exports.
|
|
5
|
+
*/
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const mentoSdk = require("@mento-protocol/mento-sdk");
|
|
8
|
+
export const { Mento, ChainId, deadlineFromMinutes, RouteNotFoundError, FXMarketClosedError, } = mentoSdk;
|
|
9
|
+
//# sourceMappingURL=mento-sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mento-sdk.js","sourceRoot":"","sources":["../../../src/clients/mento-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,QAAQ,GAAG,OAAO,CAAC,2BAA2B,CAA+C,CAAC;AAEpG,MAAM,CAAC,MAAM,EACX,KAAK,EACL,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type SelfRegistrationMode } from "../config/self.js";
|
|
2
|
+
export declare class SelfApiError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class SelfExpiredSessionError extends Error {
|
|
6
|
+
constructor(message?: string);
|
|
7
|
+
}
|
|
8
|
+
export interface SelfRegistrationDisclosures {
|
|
9
|
+
minimumAge?: number;
|
|
10
|
+
ofac?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface SelfRegistrationResult {
|
|
13
|
+
agentId: number;
|
|
14
|
+
agentAddress: string;
|
|
15
|
+
credentials?: unknown;
|
|
16
|
+
txHash?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SelfRefreshResult {
|
|
19
|
+
proofExpiresAt: Date;
|
|
20
|
+
}
|
|
21
|
+
export interface SelfRegistrationSession {
|
|
22
|
+
sessionToken: string;
|
|
23
|
+
stage: string;
|
|
24
|
+
deepLink: string;
|
|
25
|
+
scanUrl?: string;
|
|
26
|
+
agentAddress: string;
|
|
27
|
+
expiresAt: string;
|
|
28
|
+
timeRemainingMs?: number;
|
|
29
|
+
humanInstructions: string[];
|
|
30
|
+
waitForCompletion(opts?: {
|
|
31
|
+
timeoutMs?: number;
|
|
32
|
+
pollIntervalMs?: number;
|
|
33
|
+
}): Promise<SelfRegistrationResult>;
|
|
34
|
+
exportKey(): Promise<string>;
|
|
35
|
+
}
|
|
36
|
+
export interface SelfRefreshSession {
|
|
37
|
+
sessionToken: string;
|
|
38
|
+
stage: string;
|
|
39
|
+
deepLink: string;
|
|
40
|
+
scanUrl?: string;
|
|
41
|
+
expiresAt: string;
|
|
42
|
+
timeRemainingMs?: number;
|
|
43
|
+
humanInstructions: string[];
|
|
44
|
+
waitForCompletion(opts?: {
|
|
45
|
+
timeoutMs?: number;
|
|
46
|
+
pollIntervalMs?: number;
|
|
47
|
+
}): Promise<SelfRefreshResult>;
|
|
48
|
+
}
|
|
49
|
+
export interface SelfDeregistrationSession {
|
|
50
|
+
sessionToken: string;
|
|
51
|
+
stage: string;
|
|
52
|
+
deepLink: string;
|
|
53
|
+
scanUrl?: string;
|
|
54
|
+
expiresAt: string;
|
|
55
|
+
timeRemainingMs?: number;
|
|
56
|
+
humanInstructions: string[];
|
|
57
|
+
waitForCompletion(opts?: {
|
|
58
|
+
timeoutMs?: number;
|
|
59
|
+
pollIntervalMs?: number;
|
|
60
|
+
}): Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
export declare function requestRegistration(opts: {
|
|
63
|
+
mode?: SelfRegistrationMode;
|
|
64
|
+
disclosures?: SelfRegistrationDisclosures;
|
|
65
|
+
humanAddress?: string;
|
|
66
|
+
agentName?: string;
|
|
67
|
+
agentDescription?: string;
|
|
68
|
+
apiBase?: string;
|
|
69
|
+
}): Promise<SelfRegistrationSession>;
|
|
70
|
+
export declare function requestDeregistration(opts: {
|
|
71
|
+
agentAddress: string;
|
|
72
|
+
disclosures?: SelfRegistrationDisclosures;
|
|
73
|
+
apiBase?: string;
|
|
74
|
+
}): Promise<SelfDeregistrationSession>;
|
|
75
|
+
export declare function requestProofRefresh(opts: {
|
|
76
|
+
agentId: number;
|
|
77
|
+
disclosures?: SelfRegistrationDisclosures;
|
|
78
|
+
apiBase?: string;
|
|
79
|
+
}): Promise<SelfRefreshSession>;
|
|
80
|
+
export declare function getAgentInfo(agentId: number, apiBase?: string): Promise<Record<string, unknown>>;
|
|
81
|
+
export declare function getAgentsForHuman(address: string, apiBase?: string): Promise<Record<string, unknown>>;
|
|
82
|
+
export declare function selfQrUrl(sessionToken: string, apiBase?: string): string;
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { SELF_API_BASE, SELF_API_NETWORK, SELF_CHAIN_ID, } from "../config/self.js";
|
|
2
|
+
const DEFAULT_POLL_INTERVAL_MS = 5000;
|
|
3
|
+
const DEFAULT_TIMEOUT_MS = 30 * 60 * 1000;
|
|
4
|
+
export class SelfApiError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "SelfApiError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export class SelfExpiredSessionError extends Error {
|
|
11
|
+
constructor(message = "Session expired. Start a new registration flow.") {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "SelfExpiredSessionError";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function resolveApiBase(apiBase) {
|
|
17
|
+
return (apiBase ?? process.env.SELF_AGENT_API_BASE ?? SELF_API_BASE).replace(/\/+$/, "");
|
|
18
|
+
}
|
|
19
|
+
function sleep(ms) {
|
|
20
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
21
|
+
}
|
|
22
|
+
async function apiFetch(url, init) {
|
|
23
|
+
const res = await fetch(url, init);
|
|
24
|
+
const body = (await res.json());
|
|
25
|
+
if (!res.ok) {
|
|
26
|
+
const errorMsg = typeof body.error === "string" ? body.error : `HTTP ${res.status}`;
|
|
27
|
+
throw new SelfApiError(errorMsg);
|
|
28
|
+
}
|
|
29
|
+
return body;
|
|
30
|
+
}
|
|
31
|
+
function sessionAuthHeaders(sessionToken) {
|
|
32
|
+
return { Authorization: `Bearer ${sessionToken}` };
|
|
33
|
+
}
|
|
34
|
+
async function fetchSessionStatus(apiBase, path, sessionToken) {
|
|
35
|
+
return apiFetch(`${apiBase}${path}?token=${encodeURIComponent(sessionToken)}`, { headers: sessionAuthHeaders(sessionToken) });
|
|
36
|
+
}
|
|
37
|
+
function handleSessionStatusError(error, expiredMessage) {
|
|
38
|
+
if (error instanceof SelfApiError &&
|
|
39
|
+
error.message.toLowerCase().includes("expired")) {
|
|
40
|
+
throw new SelfExpiredSessionError(expiredMessage);
|
|
41
|
+
}
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
function optionalScanUrl(data) {
|
|
45
|
+
return typeof data.scanUrl === "string" ? data.scanUrl : undefined;
|
|
46
|
+
}
|
|
47
|
+
function buildRegistrationSession(data, apiBase) {
|
|
48
|
+
let currentToken = String(data.sessionToken);
|
|
49
|
+
return {
|
|
50
|
+
sessionToken: currentToken,
|
|
51
|
+
stage: String(data.stage),
|
|
52
|
+
deepLink: String(data.deepLink),
|
|
53
|
+
scanUrl: optionalScanUrl(data),
|
|
54
|
+
agentAddress: String(data.agentAddress),
|
|
55
|
+
expiresAt: String(data.expiresAt),
|
|
56
|
+
timeRemainingMs: typeof data.timeRemainingMs === "number" ? data.timeRemainingMs : undefined,
|
|
57
|
+
humanInstructions: Array.isArray(data.humanInstructions)
|
|
58
|
+
? data.humanInstructions.map(String)
|
|
59
|
+
: [],
|
|
60
|
+
async waitForCompletion(opts) {
|
|
61
|
+
const timeout = opts?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
62
|
+
const interval = opts?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
63
|
+
const deadline = Date.now() + timeout;
|
|
64
|
+
while (Date.now() < deadline) {
|
|
65
|
+
await sleep(interval);
|
|
66
|
+
let status;
|
|
67
|
+
try {
|
|
68
|
+
status = await fetchSessionStatus(apiBase, "/api/agent/register/status", currentToken);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
handleSessionStatusError(error, "Session expired. Start a new registration flow.");
|
|
72
|
+
}
|
|
73
|
+
currentToken = String(status.sessionToken);
|
|
74
|
+
if (status.stage === "completed") {
|
|
75
|
+
return {
|
|
76
|
+
agentId: Number(status.agentId),
|
|
77
|
+
agentAddress: String(status.agentAddress ?? data.agentAddress),
|
|
78
|
+
credentials: status.credentials,
|
|
79
|
+
txHash: typeof status.txHash === "string" ? status.txHash : undefined,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (status.stage === "failed") {
|
|
83
|
+
throw new SelfApiError("Registration failed on-chain.");
|
|
84
|
+
}
|
|
85
|
+
if (status.stage === "expired") {
|
|
86
|
+
throw new SelfExpiredSessionError();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
throw new SelfApiError(`Registration did not complete within ${timeout}ms. Call check_self_registration again to resume polling.`);
|
|
90
|
+
},
|
|
91
|
+
async exportKey() {
|
|
92
|
+
const result = await apiFetch(`${apiBase}/api/agent/register/export`, {
|
|
93
|
+
method: "POST",
|
|
94
|
+
headers: {
|
|
95
|
+
"Content-Type": "application/json",
|
|
96
|
+
...sessionAuthHeaders(currentToken),
|
|
97
|
+
},
|
|
98
|
+
body: JSON.stringify({ token: currentToken }),
|
|
99
|
+
});
|
|
100
|
+
return result.privateKey;
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function buildRefreshSession(data, apiBase) {
|
|
105
|
+
let currentToken = String(data.sessionToken);
|
|
106
|
+
return {
|
|
107
|
+
sessionToken: currentToken,
|
|
108
|
+
stage: String(data.stage),
|
|
109
|
+
deepLink: String(data.deepLink),
|
|
110
|
+
scanUrl: optionalScanUrl(data),
|
|
111
|
+
expiresAt: String(data.expiresAt),
|
|
112
|
+
timeRemainingMs: typeof data.timeRemainingMs === "number" ? data.timeRemainingMs : undefined,
|
|
113
|
+
humanInstructions: Array.isArray(data.humanInstructions)
|
|
114
|
+
? data.humanInstructions.map(String)
|
|
115
|
+
: [],
|
|
116
|
+
async waitForCompletion(opts) {
|
|
117
|
+
const timeout = opts?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
118
|
+
const interval = opts?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
119
|
+
const deadline = Date.now() + timeout;
|
|
120
|
+
while (Date.now() < deadline) {
|
|
121
|
+
await sleep(interval);
|
|
122
|
+
let status;
|
|
123
|
+
try {
|
|
124
|
+
status = await fetchSessionStatus(apiBase, "/api/agent/refresh/status", currentToken);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
handleSessionStatusError(error, "Proof refresh session expired. Call refresh_self_proof to start a new session.");
|
|
128
|
+
}
|
|
129
|
+
currentToken = String(status.sessionToken);
|
|
130
|
+
if (status.stage === "completed") {
|
|
131
|
+
const expiresAtRaw = status.proofExpiresAt;
|
|
132
|
+
const proofExpiresAt = typeof expiresAtRaw === "string" || typeof expiresAtRaw === "number"
|
|
133
|
+
? new Date(expiresAtRaw)
|
|
134
|
+
: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000);
|
|
135
|
+
return { proofExpiresAt };
|
|
136
|
+
}
|
|
137
|
+
if (status.stage === "failed") {
|
|
138
|
+
throw new SelfApiError("Proof refresh failed on-chain.");
|
|
139
|
+
}
|
|
140
|
+
if (status.stage === "expired") {
|
|
141
|
+
throw new SelfExpiredSessionError("Proof refresh session expired. Call refresh_self_proof to start a new session.");
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
throw new SelfApiError(`Proof refresh did not complete within ${timeout}ms. Call check_self_registration again to resume polling.`);
|
|
145
|
+
},
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function buildDeregistrationSession(data, apiBase) {
|
|
149
|
+
let currentToken = String(data.sessionToken);
|
|
150
|
+
return {
|
|
151
|
+
sessionToken: currentToken,
|
|
152
|
+
stage: String(data.stage),
|
|
153
|
+
deepLink: String(data.deepLink),
|
|
154
|
+
scanUrl: optionalScanUrl(data),
|
|
155
|
+
expiresAt: String(data.expiresAt),
|
|
156
|
+
timeRemainingMs: typeof data.timeRemainingMs === "number" ? data.timeRemainingMs : undefined,
|
|
157
|
+
humanInstructions: Array.isArray(data.humanInstructions)
|
|
158
|
+
? data.humanInstructions.map(String)
|
|
159
|
+
: [],
|
|
160
|
+
async waitForCompletion(opts) {
|
|
161
|
+
const timeout = opts?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
162
|
+
const interval = opts?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
163
|
+
const deadline = Date.now() + timeout;
|
|
164
|
+
while (Date.now() < deadline) {
|
|
165
|
+
await sleep(interval);
|
|
166
|
+
let status;
|
|
167
|
+
try {
|
|
168
|
+
status = await fetchSessionStatus(apiBase, "/api/agent/deregister/status", currentToken);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
handleSessionStatusError(error, "Deregistration session expired. Call deregister_self_agent to start a new session.");
|
|
172
|
+
}
|
|
173
|
+
currentToken = String(status.sessionToken);
|
|
174
|
+
if (status.stage === "completed") {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (status.stage === "failed") {
|
|
178
|
+
throw new SelfApiError("Deregistration failed on-chain.");
|
|
179
|
+
}
|
|
180
|
+
if (status.stage === "expired") {
|
|
181
|
+
throw new SelfExpiredSessionError("Deregistration session expired. Call deregister_self_agent to start a new session.");
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
throw new SelfApiError(`Deregistration did not complete within ${timeout}ms. Call check_self_registration again to resume polling.`);
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
export async function requestRegistration(opts) {
|
|
189
|
+
const base = resolveApiBase(opts.apiBase);
|
|
190
|
+
const payload = {
|
|
191
|
+
mode: opts.mode ?? "wallet-free",
|
|
192
|
+
network: SELF_API_NETWORK,
|
|
193
|
+
disclosures: opts.disclosures,
|
|
194
|
+
humanAddress: opts.humanAddress,
|
|
195
|
+
agentName: opts.agentName,
|
|
196
|
+
agentDescription: opts.agentDescription,
|
|
197
|
+
};
|
|
198
|
+
const data = await apiFetch(`${base}/api/agent/register`, {
|
|
199
|
+
method: "POST",
|
|
200
|
+
headers: { "Content-Type": "application/json" },
|
|
201
|
+
body: JSON.stringify(payload),
|
|
202
|
+
});
|
|
203
|
+
return buildRegistrationSession(data, base);
|
|
204
|
+
}
|
|
205
|
+
export async function requestDeregistration(opts) {
|
|
206
|
+
const base = resolveApiBase(opts.apiBase);
|
|
207
|
+
const data = await apiFetch(`${base}/api/agent/deregister`, {
|
|
208
|
+
method: "POST",
|
|
209
|
+
headers: { "Content-Type": "application/json" },
|
|
210
|
+
body: JSON.stringify({
|
|
211
|
+
network: SELF_API_NETWORK,
|
|
212
|
+
agentAddress: opts.agentAddress,
|
|
213
|
+
disclosures: opts.disclosures,
|
|
214
|
+
}),
|
|
215
|
+
});
|
|
216
|
+
return buildDeregistrationSession(data, base);
|
|
217
|
+
}
|
|
218
|
+
export async function requestProofRefresh(opts) {
|
|
219
|
+
const base = resolveApiBase(opts.apiBase);
|
|
220
|
+
const data = await apiFetch(`${base}/api/agent/refresh`, {
|
|
221
|
+
method: "POST",
|
|
222
|
+
headers: { "Content-Type": "application/json" },
|
|
223
|
+
body: JSON.stringify({
|
|
224
|
+
agentId: opts.agentId,
|
|
225
|
+
network: SELF_API_NETWORK,
|
|
226
|
+
disclosures: opts.disclosures,
|
|
227
|
+
}),
|
|
228
|
+
});
|
|
229
|
+
return buildRefreshSession(data, base);
|
|
230
|
+
}
|
|
231
|
+
export async function getAgentInfo(agentId, apiBase) {
|
|
232
|
+
const base = resolveApiBase(apiBase);
|
|
233
|
+
return apiFetch(`${base}/api/agent/info/${SELF_CHAIN_ID}/${agentId}`);
|
|
234
|
+
}
|
|
235
|
+
export async function getAgentsForHuman(address, apiBase) {
|
|
236
|
+
const base = resolveApiBase(apiBase);
|
|
237
|
+
return apiFetch(`${base}/api/agent/agents/${SELF_CHAIN_ID}/${address}`);
|
|
238
|
+
}
|
|
239
|
+
export function selfQrUrl(sessionToken, apiBase) {
|
|
240
|
+
return `${resolveApiBase(apiBase)}/scan/${sessionToken}`;
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=self-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-api.js","sourceRoot":"","sources":["../../../src/clients/self-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const Actions: typeof import("@uniswap/v4-sdk").Actions, V4Planner: typeof import("@uniswap/v4-sdk").V4Planner;
|
|
2
|
+
export declare const CommandType: typeof import("@uniswap/universal-router-sdk").CommandType, RoutePlanner: typeof import("@uniswap/universal-router-sdk").RoutePlanner;
|
|
3
|
+
export declare const ChainId: typeof import("@uniswap/sdk-core").ChainId;
|
|
4
|
+
export type { SwapExactInSingle, SwapExactIn } from "@uniswap/v4-sdk";
|