agentwallet-sdk 4.0.5 → 5.0.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/README.md +154 -158
- package/dist/abi.d.ts +396 -46
- package/dist/abi.d.ts.map +1 -1
- package/dist/abi.js +0 -2
- package/dist/abi.js.map +1 -1
- package/dist/ap2/index.d.ts +185 -0
- package/dist/ap2/index.d.ts.map +1 -0
- package/dist/ap2/index.js +255 -0
- package/dist/ap2/index.js.map +1 -0
- package/dist/bridge/abis.d.ts.map +1 -1
- package/dist/bridge/abis.js +0 -2
- package/dist/bridge/abis.js.map +1 -1
- package/dist/bridge/client.d.ts +28 -43
- package/dist/bridge/client.d.ts.map +1 -1
- package/dist/bridge/client.js +0 -2
- package/dist/bridge/client.js.map +1 -1
- package/dist/bridge/index.d.ts +1 -0
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/index.js +0 -2
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/types.d.ts +48 -32
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/bridge/types.js +0 -2
- package/dist/bridge/types.js.map +1 -1
- package/dist/bridge/unified.d.ts +101 -0
- package/dist/bridge/unified.d.ts.map +1 -0
- package/dist/bridge/unified.js +284 -0
- package/dist/bridge/unified.js.map +1 -0
- package/dist/chains.d.ts +62 -0
- package/dist/chains.d.ts.map +1 -0
- package/dist/chains.js +108 -0
- package/dist/chains.js.map +1 -0
- package/dist/escrow/MutualStakeEscrow.d.ts +75 -0
- package/dist/escrow/MutualStakeEscrow.d.ts.map +1 -0
- package/dist/escrow/MutualStakeEscrow.js +339 -0
- package/dist/escrow/MutualStakeEscrow.js.map +1 -0
- package/dist/escrow/types.d.ts +59 -0
- package/dist/escrow/types.d.ts.map +1 -0
- package/dist/escrow/types.js +11 -0
- package/dist/escrow/types.js.map +1 -0
- package/dist/escrow/verifiers.d.ts +26 -0
- package/dist/escrow/verifiers.d.ts.map +1 -0
- package/dist/escrow/verifiers.js +53 -0
- package/dist/escrow/verifiers.js.map +1 -0
- package/dist/fiat/index.d.ts +10 -0
- package/dist/fiat/index.d.ts.map +1 -0
- package/dist/fiat/index.js +9 -0
- package/dist/fiat/index.js.map +1 -0
- package/dist/fiat/onramp.d.ts +101 -0
- package/dist/fiat/onramp.d.ts.map +1 -0
- package/dist/fiat/onramp.js +155 -0
- package/dist/fiat/onramp.js.map +1 -0
- package/dist/fiat/providers/index.d.ts +16 -0
- package/dist/fiat/providers/index.d.ts.map +1 -0
- package/dist/fiat/providers/index.js +30 -0
- package/dist/fiat/providers/index.js.map +1 -0
- package/dist/fiat/providers/moonpay.d.ts +22 -0
- package/dist/fiat/providers/moonpay.d.ts.map +1 -0
- package/dist/fiat/providers/moonpay.js +107 -0
- package/dist/fiat/providers/moonpay.js.map +1 -0
- package/dist/fiat/providers/stripe.d.ts +26 -0
- package/dist/fiat/providers/stripe.d.ts.map +1 -0
- package/dist/fiat/providers/stripe.js +135 -0
- package/dist/fiat/providers/stripe.js.map +1 -0
- package/dist/fiat/providers/transak.d.ts +26 -0
- package/dist/fiat/providers/transak.d.ts.map +1 -0
- package/dist/fiat/providers/transak.js +119 -0
- package/dist/fiat/providers/transak.js.map +1 -0
- package/dist/fiat/types.d.ts +106 -0
- package/dist/fiat/types.d.ts.map +1 -0
- package/dist/fiat/types.js +13 -0
- package/dist/fiat/types.js.map +1 -0
- package/dist/flash/executor.d.ts +119 -0
- package/dist/flash/executor.d.ts.map +1 -0
- package/dist/flash/executor.js +195 -0
- package/dist/flash/executor.js.map +1 -0
- package/dist/flash/index.d.ts +28 -0
- package/dist/flash/index.d.ts.map +1 -0
- package/dist/flash/index.js +29 -0
- package/dist/flash/index.js.map +1 -0
- package/dist/flash/scanner.d.ts +133 -0
- package/dist/flash/scanner.d.ts.map +1 -0
- package/dist/flash/scanner.js +212 -0
- package/dist/flash/scanner.js.map +1 -0
- package/dist/flash/types.d.ts +136 -0
- package/dist/flash/types.d.ts.map +1 -0
- package/dist/flash/types.js +23 -0
- package/dist/flash/types.js.map +1 -0
- package/dist/gas/index.d.ts +4 -0
- package/dist/gas/index.d.ts.map +1 -0
- package/dist/gas/index.js +3 -0
- package/dist/gas/index.js.map +1 -0
- package/dist/gas/sponsor.d.ts +70 -0
- package/dist/gas/sponsor.d.ts.map +1 -0
- package/dist/gas/sponsor.js +193 -0
- package/dist/gas/sponsor.js.map +1 -0
- package/dist/gas/types.d.ts +76 -0
- package/dist/gas/types.d.ts.map +1 -0
- package/dist/gas/types.js +21 -0
- package/dist/gas/types.js.map +1 -0
- package/dist/identity/agent-identity.d.ts +276 -0
- package/dist/identity/agent-identity.d.ts.map +1 -0
- package/dist/identity/agent-identity.js +300 -0
- package/dist/identity/agent-identity.js.map +1 -0
- package/dist/identity/erc6551.d.ts +441 -0
- package/dist/identity/erc6551.d.ts.map +1 -0
- package/dist/identity/erc6551.js +517 -0
- package/dist/identity/erc6551.js.map +1 -0
- package/dist/identity/erc8004.d.ts +296 -141
- package/dist/identity/erc8004.d.ts.map +1 -1
- package/dist/identity/erc8004.js +43 -12
- package/dist/identity/erc8004.js.map +1 -1
- package/dist/identity/index.d.ts +6 -2
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +3 -2
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/reputation.d.ts +318 -0
- package/dist/identity/reputation.d.ts.map +1 -0
- package/dist/identity/reputation.js +272 -0
- package/dist/identity/reputation.js.map +1 -0
- package/dist/identity/validation.d.ts +284 -0
- package/dist/identity/validation.d.ts.map +1 -0
- package/dist/identity/validation.js +226 -0
- package/dist/identity/validation.js.map +1 -0
- package/dist/index.d.ts +32624 -1011
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -12
- package/dist/index.js.map +1 -1
- package/dist/mev/index.d.ts +4 -0
- package/dist/mev/index.d.ts.map +1 -0
- package/dist/mev/index.js +8 -0
- package/dist/mev/index.js.map +1 -0
- package/dist/mev/protection.d.ts +54 -0
- package/dist/mev/protection.d.ts.map +1 -0
- package/dist/mev/protection.js +185 -0
- package/dist/mev/protection.js.map +1 -0
- package/dist/mev/risk.d.ts +19 -0
- package/dist/mev/risk.d.ts.map +1 -0
- package/dist/mev/risk.js +95 -0
- package/dist/mev/risk.js.map +1 -0
- package/dist/mev/types.d.ts +49 -0
- package/dist/mev/types.d.ts.map +1 -0
- package/dist/mev/types.js +2 -0
- package/dist/mev/types.js.map +1 -0
- package/dist/plugins/elizaos.d.ts +26 -14
- package/dist/plugins/elizaos.d.ts.map +1 -1
- package/dist/plugins/elizaos.js +0 -2
- package/dist/plugins/elizaos.js.map +1 -1
- package/dist/policy/SpendingPolicy.d.ts +89 -15
- package/dist/policy/SpendingPolicy.d.ts.map +1 -1
- package/dist/policy/SpendingPolicy.js +0 -2
- package/dist/policy/SpendingPolicy.js.map +1 -1
- package/dist/policy/SpendingPolicy.test.d.ts +2 -0
- package/dist/policy/SpendingPolicy.test.d.ts.map +1 -0
- package/dist/policy/SpendingPolicy.test.js +143 -0
- package/dist/policy/SpendingPolicy.test.js.map +1 -0
- package/dist/settlement/index.d.ts +4 -0
- package/dist/settlement/index.d.ts.map +1 -0
- package/dist/settlement/index.js +3 -0
- package/dist/settlement/index.js.map +1 -0
- package/dist/settlement/types.d.ts +66 -0
- package/dist/settlement/types.d.ts.map +1 -0
- package/dist/settlement/types.js +37 -0
- package/dist/settlement/types.js.map +1 -0
- package/dist/settlement/verifier.d.ts +75 -0
- package/dist/settlement/verifier.d.ts.map +1 -0
- package/dist/settlement/verifier.js +354 -0
- package/dist/settlement/verifier.js.map +1 -0
- package/dist/solana/bridge.d.ts +144 -0
- package/dist/solana/bridge.d.ts.map +1 -0
- package/dist/solana/bridge.js +352 -0
- package/dist/solana/bridge.js.map +1 -0
- package/dist/solana/index.d.ts +8 -0
- package/dist/solana/index.d.ts.map +1 -0
- package/dist/solana/index.js +6 -0
- package/dist/solana/index.js.map +1 -0
- package/dist/solana/swap.d.ts +85 -0
- package/dist/solana/swap.d.ts.map +1 -0
- package/dist/solana/swap.js +173 -0
- package/dist/solana/swap.js.map +1 -0
- package/dist/solana/types.d.ts +126 -0
- package/dist/solana/types.d.ts.map +1 -0
- package/dist/solana/types.js +10 -0
- package/dist/solana/types.js.map +1 -0
- package/dist/solana/wallet.d.ts +83 -0
- package/dist/solana/wallet.d.ts.map +1 -0
- package/dist/solana/wallet.js +164 -0
- package/dist/solana/wallet.js.map +1 -0
- package/dist/solana/x402.d.ts +69 -0
- package/dist/solana/x402.d.ts.map +1 -0
- package/dist/solana/x402.js +154 -0
- package/dist/solana/x402.js.map +1 -0
- package/dist/solver/adapter.d.ts +47 -0
- package/dist/solver/adapter.d.ts.map +1 -0
- package/dist/solver/adapter.js +146 -0
- package/dist/solver/adapter.js.map +1 -0
- package/dist/solver/analyzer.d.ts +48 -0
- package/dist/solver/analyzer.d.ts.map +1 -0
- package/dist/solver/analyzer.js +171 -0
- package/dist/solver/analyzer.js.map +1 -0
- package/dist/solver/builder.d.ts +31 -0
- package/dist/solver/builder.d.ts.map +1 -0
- package/dist/solver/builder.js +60 -0
- package/dist/solver/builder.js.map +1 -0
- package/dist/solver/index.d.ts +22 -0
- package/dist/solver/index.d.ts.map +1 -0
- package/dist/solver/index.js +25 -0
- package/dist/solver/index.js.map +1 -0
- package/dist/solver/types.d.ts +115 -0
- package/dist/solver/types.d.ts.map +1 -0
- package/dist/solver/types.js +10 -0
- package/dist/solver/types.js.map +1 -0
- package/dist/spend-guard/index.d.ts +125 -0
- package/dist/spend-guard/index.d.ts.map +1 -0
- package/dist/spend-guard/index.js +150 -0
- package/dist/spend-guard/index.js.map +1 -0
- package/dist/swap/SwapModule.d.ts +28 -39
- package/dist/swap/SwapModule.d.ts.map +1 -1
- package/dist/swap/SwapModule.js +2 -4
- package/dist/swap/SwapModule.js.map +1 -1
- package/dist/swap/abi.d.ts.map +1 -1
- package/dist/swap/abi.js +0 -2
- package/dist/swap/abi.js.map +1 -1
- package/dist/swap/index.d.ts +1 -0
- package/dist/swap/index.d.ts.map +1 -1
- package/dist/swap/index.js +0 -2
- package/dist/swap/index.js.map +1 -1
- package/dist/swap/router/cache.d.ts +13 -0
- package/dist/swap/router/cache.d.ts.map +1 -0
- package/dist/swap/router/cache.js +30 -0
- package/dist/swap/router/cache.js.map +1 -0
- package/dist/swap/router/flashbots.d.ts +10 -0
- package/dist/swap/router/flashbots.d.ts.map +1 -0
- package/dist/swap/router/flashbots.js +43 -0
- package/dist/swap/router/flashbots.js.map +1 -0
- package/dist/swap/router/health.d.ts +17 -0
- package/dist/swap/router/health.d.ts.map +1 -0
- package/dist/swap/router/health.js +38 -0
- package/dist/swap/router/health.js.map +1 -0
- package/dist/swap/router/index.d.ts +10 -0
- package/dist/swap/router/index.d.ts.map +1 -0
- package/dist/swap/router/index.js +10 -0
- package/dist/swap/router/index.js.map +1 -0
- package/dist/swap/router/providers/cowswap.d.ts +11 -0
- package/dist/swap/router/providers/cowswap.d.ts.map +1 -0
- package/dist/swap/router/providers/cowswap.js +79 -0
- package/dist/swap/router/providers/cowswap.js.map +1 -0
- package/dist/swap/router/providers/index.d.ts +20 -0
- package/dist/swap/router/providers/index.d.ts.map +1 -0
- package/dist/swap/router/providers/index.js +32 -0
- package/dist/swap/router/providers/index.js.map +1 -0
- package/dist/swap/router/providers/jupiter.d.ts +12 -0
- package/dist/swap/router/providers/jupiter.d.ts.map +1 -0
- package/dist/swap/router/providers/jupiter.js +73 -0
- package/dist/swap/router/providers/jupiter.js.map +1 -0
- package/dist/swap/router/providers/lifi.d.ts +11 -0
- package/dist/swap/router/providers/lifi.d.ts.map +1 -0
- package/dist/swap/router/providers/lifi.js +123 -0
- package/dist/swap/router/providers/lifi.js.map +1 -0
- package/dist/swap/router/providers/oneinch.d.ts +13 -0
- package/dist/swap/router/providers/oneinch.d.ts.map +1 -0
- package/dist/swap/router/providers/oneinch.js +71 -0
- package/dist/swap/router/providers/oneinch.js.map +1 -0
- package/dist/swap/router/providers/paraswap.d.ts +11 -0
- package/dist/swap/router/providers/paraswap.d.ts.map +1 -0
- package/dist/swap/router/providers/paraswap.js +73 -0
- package/dist/swap/router/providers/paraswap.js.map +1 -0
- package/dist/swap/router/providers/uniswap.d.ts +31 -0
- package/dist/swap/router/providers/uniswap.d.ts.map +1 -0
- package/dist/swap/router/providers/uniswap.js +237 -0
- package/dist/swap/router/providers/uniswap.js.map +1 -0
- package/dist/swap/router/providers/zerox.d.ts +13 -0
- package/dist/swap/router/providers/zerox.d.ts.map +1 -0
- package/dist/swap/router/providers/zerox.js +94 -0
- package/dist/swap/router/providers/zerox.js.map +1 -0
- package/dist/swap/router/router.d.ts +86 -0
- package/dist/swap/router/router.d.ts.map +1 -0
- package/dist/swap/router/router.js +224 -0
- package/dist/swap/router/router.js.map +1 -0
- package/dist/swap/router/rsi/engine.d.ts +60 -0
- package/dist/swap/router/rsi/engine.d.ts.map +1 -0
- package/dist/swap/router/rsi/engine.js +483 -0
- package/dist/swap/router/rsi/engine.js.map +1 -0
- package/dist/swap/router/rsi/index.d.ts +3 -0
- package/dist/swap/router/rsi/index.d.ts.map +1 -0
- package/dist/swap/router/rsi/index.js +3 -0
- package/dist/swap/router/rsi/index.js.map +1 -0
- package/dist/swap/router/rsi/types.d.ts +106 -0
- package/dist/swap/router/rsi/types.d.ts.map +1 -0
- package/dist/swap/router/rsi/types.js +3 -0
- package/dist/swap/router/rsi/types.js.map +1 -0
- package/dist/swap/router/types.d.ts +120 -0
- package/dist/swap/router/types.d.ts.map +1 -0
- package/dist/swap/router/types.js +16 -0
- package/dist/swap/router/types.js.map +1 -0
- package/dist/swap/types.d.ts +41 -7
- package/dist/swap/types.d.ts.map +1 -1
- package/dist/swap/types.js +1 -3
- package/dist/swap/types.js.map +1 -1
- package/dist/tax/engine.d.ts +131 -0
- package/dist/tax/engine.d.ts.map +1 -0
- package/dist/tax/engine.js +307 -0
- package/dist/tax/engine.js.map +1 -0
- package/dist/tax/index.d.ts +9 -0
- package/dist/tax/index.d.ts.map +1 -0
- package/dist/tax/index.js +12 -0
- package/dist/tax/index.js.map +1 -0
- package/dist/tax/lots.d.ts +60 -0
- package/dist/tax/lots.d.ts.map +1 -0
- package/dist/tax/lots.js +129 -0
- package/dist/tax/lots.js.map +1 -0
- package/dist/tax/types.d.ts +113 -0
- package/dist/tax/types.d.ts.map +1 -0
- package/dist/tax/types.js +18 -0
- package/dist/tax/types.js.map +1 -0
- package/dist/types.d.ts +106 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +1 -1
- package/dist/x402/__tests__/budget.test.d.ts +2 -0
- package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
- package/dist/x402/__tests__/budget.test.js +114 -0
- package/dist/x402/__tests__/budget.test.js.map +1 -0
- package/dist/x402/__tests__/client.test.d.ts +2 -0
- package/dist/x402/__tests__/client.test.d.ts.map +1 -0
- package/dist/x402/__tests__/client.test.js +107 -0
- package/dist/x402/__tests__/client.test.js.map +1 -0
- package/dist/x402/budget.d.ts +23 -15
- package/dist/x402/budget.d.ts.map +1 -1
- package/dist/x402/budget.js +0 -2
- package/dist/x402/budget.js.map +1 -1
- package/dist/x402/chains/abstract/index.d.ts +87 -59
- package/dist/x402/chains/abstract/index.d.ts.map +1 -1
- package/dist/x402/chains/abstract/index.js +0 -2
- package/dist/x402/chains/abstract/index.js.map +1 -1
- package/dist/x402/client.d.ts +27 -13
- package/dist/x402/client.d.ts.map +1 -1
- package/dist/x402/client.js +0 -2
- package/dist/x402/client.js.map +1 -1
- package/dist/x402/index.d.ts +2 -0
- package/dist/x402/index.d.ts.map +1 -1
- package/dist/x402/index.js +0 -2
- package/dist/x402/index.js.map +1 -1
- package/dist/x402/middleware.d.ts +4 -4
- package/dist/x402/middleware.d.ts.map +1 -1
- package/dist/x402/middleware.js +0 -2
- package/dist/x402/middleware.js.map +1 -1
- package/dist/x402/types.d.ts +88 -5
- package/dist/x402/types.d.ts.map +1 -1
- package/dist/x402/types.js +0 -2
- package/dist/x402/types.js.map +1 -1
- package/dist/yield/index.d.ts +26 -0
- package/dist/yield/index.d.ts.map +1 -0
- package/dist/yield/index.js +29 -0
- package/dist/yield/index.js.map +1 -0
- package/dist/yield/rates.d.ts +114 -0
- package/dist/yield/rates.d.ts.map +1 -0
- package/dist/yield/rates.js +351 -0
- package/dist/yield/rates.js.map +1 -0
- package/dist/yield/types.d.ts +134 -0
- package/dist/yield/types.d.ts.map +1 -0
- package/dist/yield/types.js +24 -0
- package/dist/yield/types.js.map +1 -0
- package/dist/yield/vault.d.ts +112 -0
- package/dist/yield/vault.d.ts.map +1 -0
- package/dist/yield/vault.js +264 -0
- package/dist/yield/vault.js.map +1 -0
- package/package.json +18 -32
- package/dist/__tests__/identity.did.test.d.ts +0 -2
- package/dist/__tests__/identity.did.test.d.ts.map +0 -1
- package/dist/__tests__/identity.did.test.js +0 -56
- package/dist/__tests__/identity.did.test.js.map +0 -1
- package/dist/__tests__/staking.test.d.ts +0 -2
- package/dist/__tests__/staking.test.d.ts.map +0 -1
- package/dist/__tests__/staking.test.js +0 -70
- package/dist/__tests__/staking.test.js.map +0 -1
- package/dist/__tests__/verify.test.d.ts +0 -2
- package/dist/__tests__/verify.test.d.ts.map +0 -1
- package/dist/__tests__/verify.test.js +0 -57
- package/dist/__tests__/verify.test.js.map +0 -1
- package/dist/identity/did.d.ts +0 -66
- package/dist/identity/did.d.ts.map +0 -1
- package/dist/identity/did.js +0 -186
- package/dist/identity/did.js.map +0 -1
- package/dist/staking/AgentStakingPool.d.ts +0 -100
- package/dist/staking/AgentStakingPool.d.ts.map +0 -1
- package/dist/staking/AgentStakingPool.js +0 -298
- package/dist/staking/AgentStakingPool.js.map +0 -1
- package/dist/staking/index.d.ts +0 -2
- package/dist/staking/index.d.ts.map +0 -1
- package/dist/staking/index.js +0 -2
- package/dist/staking/index.js.map +0 -1
- package/dist/verify/index.d.ts +0 -2
- package/dist/verify/index.d.ts.map +0 -1
- package/dist/verify/index.js +0 -2
- package/dist/verify/index.js.map +0 -1
- package/dist/verify/verifyAgent.d.ts +0 -42
- package/dist/verify/verifyAgent.d.ts.map +0 -1
- package/dist/verify/verifyAgent.js +0 -216
- package/dist/verify/verifyAgent.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verify.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/verify.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { verifyTrustBundle } from '../verify/verifyAgent.js';
|
|
3
|
-
import { deriveAgentDID, issueCredential, verifyCredential } from '../identity/did.js';
|
|
4
|
-
const TEST_PRIVATE_KEY = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
|
|
5
|
-
describe('verifyTrustBundle', () => {
|
|
6
|
-
it('verifies a valid trust bundle signature', () => {
|
|
7
|
-
// Build a mock bundle that was signed with the same mechanism
|
|
8
|
-
// We'll use the verifyAgent output structure directly via manual construction
|
|
9
|
-
const agentDID = deriveAgentDID(TEST_PRIVATE_KEY);
|
|
10
|
-
// Since verifyAgent makes network calls, we test verifyTrustBundle directly
|
|
11
|
-
// with a crafted bundle that matches the signing logic
|
|
12
|
-
const bundle = {
|
|
13
|
-
did: agentDID.did,
|
|
14
|
-
walletAddress: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
|
|
15
|
-
stakingBalance: 0n,
|
|
16
|
-
reputationScore: 0,
|
|
17
|
-
taskBridgeTasksCompleted: 0,
|
|
18
|
-
walletAgeDays: 0,
|
|
19
|
-
verifiedAt: 1000000,
|
|
20
|
-
signature: 'invalid',
|
|
21
|
-
};
|
|
22
|
-
// Bundle with invalid signature should return false
|
|
23
|
-
expect(verifyTrustBundle(bundle)).toBe(false);
|
|
24
|
-
});
|
|
25
|
-
it('returns false for tampered bundle data', () => {
|
|
26
|
-
const bundle = {
|
|
27
|
-
did: 'did:key:z6MkFakeNotReal',
|
|
28
|
-
walletAddress: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
|
|
29
|
-
stakingBalance: 0n,
|
|
30
|
-
reputationScore: 100, // tampered up
|
|
31
|
-
taskBridgeTasksCompleted: 0,
|
|
32
|
-
walletAgeDays: 0,
|
|
33
|
-
verifiedAt: 1000000,
|
|
34
|
-
signature: 'zFakeSignature',
|
|
35
|
-
};
|
|
36
|
-
expect(verifyTrustBundle(bundle)).toBe(false);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
describe('DID + VC integration', () => {
|
|
40
|
-
it('issues credential with agent-specific claims', () => {
|
|
41
|
-
const agentDID = deriveAgentDID(TEST_PRIVATE_KEY);
|
|
42
|
-
const vc = issueCredential(agentDID, TEST_PRIVATE_KEY, {
|
|
43
|
-
agentVersion: '4.0.0',
|
|
44
|
-
capabilities: ['payment', 'staking', 'bridge'],
|
|
45
|
-
network: 'base',
|
|
46
|
-
});
|
|
47
|
-
expect(vc.credentialSubject.capabilities).toEqual(['payment', 'staking', 'bridge']);
|
|
48
|
-
expect(verifyCredential(vc)).toBe(true);
|
|
49
|
-
});
|
|
50
|
-
it('round-trips DID derivation with hex without 0x prefix', () => {
|
|
51
|
-
const noPrefix = TEST_PRIVATE_KEY.replace('0x', '');
|
|
52
|
-
const did1 = deriveAgentDID(TEST_PRIVATE_KEY);
|
|
53
|
-
const did2 = deriveAgentDID(noPrefix);
|
|
54
|
-
expect(did1.did).toBe(did2.did);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
//# sourceMappingURL=verify.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verify.test.js","sourceRoot":"","sources":["../../src/__tests__/verify.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,MAAM,gBAAgB,GAAG,oEAAoE,CAAC;AAE9F,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,8DAA8D;QAC9D,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAElD,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,aAAa,EAAE,4CAA6D;YAC5E,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,CAAC;YAClB,wBAAwB,EAAE,CAAC;YAC3B,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,SAAS;SACrB,CAAC;QAEF,oDAAoD;QACpD,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,yBAAyB;YAC9B,aAAa,EAAE,4CAA6D;YAC5E,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,GAAG,EAAE,cAAc;YACpC,wBAAwB,EAAE,CAAC;YAC3B,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,gBAAgB;SAC5B,CAAC;QACF,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE;YACrD,YAAY,EAAE,OAAO;YACrB,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;YAC9C,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,QAAyB,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/identity/did.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent DID + Verifiable Credentials
|
|
3
|
-
*
|
|
4
|
-
* Derives deterministic did:key identifiers from agent private keys and issues
|
|
5
|
-
* W3C-compliant Verifiable Credentials. Zero external registry — fully self-sovereign.
|
|
6
|
-
*
|
|
7
|
-
* DID format: did:key:z6Mk... (multibase base58btc-encoded ed25519 public key)
|
|
8
|
-
* VC format: W3C VC Data Model v1.1 with Ed25519Signature2020 proof
|
|
9
|
-
*/
|
|
10
|
-
import type { Hex } from 'viem';
|
|
11
|
-
export interface AgentDID {
|
|
12
|
-
did: string;
|
|
13
|
-
publicKeyHex: string;
|
|
14
|
-
/** Multibase-encoded public key (base58btc, z-prefix) */
|
|
15
|
-
publicKeyMultibase: string;
|
|
16
|
-
}
|
|
17
|
-
export interface DIDDocument {
|
|
18
|
-
'@context': string[];
|
|
19
|
-
id: string;
|
|
20
|
-
verificationMethod: VerificationMethod[];
|
|
21
|
-
authentication: string[];
|
|
22
|
-
assertionMethod: string[];
|
|
23
|
-
capabilityDelegation: string[];
|
|
24
|
-
capabilityInvocation: string[];
|
|
25
|
-
}
|
|
26
|
-
export interface VerificationMethod {
|
|
27
|
-
id: string;
|
|
28
|
-
type: string;
|
|
29
|
-
controller: string;
|
|
30
|
-
publicKeyMultibase: string;
|
|
31
|
-
}
|
|
32
|
-
export interface VerifiableCredential {
|
|
33
|
-
'@context': string[];
|
|
34
|
-
id: string;
|
|
35
|
-
type: string[];
|
|
36
|
-
issuer: string;
|
|
37
|
-
issuanceDate: string;
|
|
38
|
-
credentialSubject: Record<string, unknown>;
|
|
39
|
-
proof: CredentialProof;
|
|
40
|
-
}
|
|
41
|
-
export interface CredentialProof {
|
|
42
|
-
type: string;
|
|
43
|
-
created: string;
|
|
44
|
-
verificationMethod: string;
|
|
45
|
-
proofPurpose: string;
|
|
46
|
-
proofValue: string;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Derive a deterministic did:key from a wallet's private key.
|
|
50
|
-
* The ed25519 public key is derived from the private key, then multibase-encoded.
|
|
51
|
-
*/
|
|
52
|
-
export declare function deriveAgentDID(privateKey: Hex): AgentDID;
|
|
53
|
-
/**
|
|
54
|
-
* Export a W3C DID Document for an AgentDID.
|
|
55
|
-
*/
|
|
56
|
-
export declare function exportDIDDocument(did: AgentDID): DIDDocument;
|
|
57
|
-
/**
|
|
58
|
-
* Issue a W3C Verifiable Credential signed with Ed25519Signature2020.
|
|
59
|
-
*/
|
|
60
|
-
export declare function issueCredential(issuerDID: AgentDID, privateKey: Hex, claims: Record<string, unknown>): VerifiableCredential;
|
|
61
|
-
/**
|
|
62
|
-
* Verify a Verifiable Credential's Ed25519 signature.
|
|
63
|
-
* Returns true if the signature is valid and matches the issuer's DID.
|
|
64
|
-
*/
|
|
65
|
-
export declare function verifyCredential(vc: VerifiableCredential): boolean;
|
|
66
|
-
//# sourceMappingURL=did.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../src/identity/did.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAOhC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IACzC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,GAAG,GAAG,QAAQ,CAaxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAqB5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,QAAQ,EACnB,UAAU,EAAE,GAAG,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,oBAAoB,CAyCtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,GAAG,OAAO,CA2BlE"}
|
package/dist/identity/did.js
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent DID + Verifiable Credentials
|
|
3
|
-
*
|
|
4
|
-
* Derives deterministic did:key identifiers from agent private keys and issues
|
|
5
|
-
* W3C-compliant Verifiable Credentials. Zero external registry — fully self-sovereign.
|
|
6
|
-
*
|
|
7
|
-
* DID format: did:key:z6Mk... (multibase base58btc-encoded ed25519 public key)
|
|
8
|
-
* VC format: W3C VC Data Model v1.1 with Ed25519Signature2020 proof
|
|
9
|
-
*/
|
|
10
|
-
import * as ed from '@noble/ed25519';
|
|
11
|
-
import { sha512 } from '@noble/hashes/sha512';
|
|
12
|
-
import { sha256 } from '@noble/hashes/sha256';
|
|
13
|
-
// @noble/ed25519 v2 requires setting sha512 sync
|
|
14
|
-
ed.etc.sha512Sync = (...m) => sha512(ed.etc.concatBytes(...m));
|
|
15
|
-
// ─── Base58btc encoding (multibase) ──────────────────────────────────────────
|
|
16
|
-
const BASE58_ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
17
|
-
function base58Encode(bytes) {
|
|
18
|
-
let num = BigInt('0x' + Buffer.from(bytes).toString('hex'));
|
|
19
|
-
const result = [];
|
|
20
|
-
while (num > 0n) {
|
|
21
|
-
const mod = num % 58n;
|
|
22
|
-
result.unshift(BASE58_ALPHABET[Number(mod)]);
|
|
23
|
-
num = num / 58n;
|
|
24
|
-
}
|
|
25
|
-
// Leading zeros
|
|
26
|
-
for (let i = 0; i < bytes.length && bytes[i] === 0; i++) {
|
|
27
|
-
result.unshift('1');
|
|
28
|
-
}
|
|
29
|
-
return result.join('');
|
|
30
|
-
}
|
|
31
|
-
function base58Decode(str) {
|
|
32
|
-
let num = 0n;
|
|
33
|
-
for (const char of str) {
|
|
34
|
-
const idx = BASE58_ALPHABET.indexOf(char);
|
|
35
|
-
if (idx === -1)
|
|
36
|
-
throw new Error(`Invalid base58 character: ${char}`);
|
|
37
|
-
num = num * 58n + BigInt(idx);
|
|
38
|
-
}
|
|
39
|
-
const rawHex = num.toString(16);
|
|
40
|
-
const hex = rawHex.length % 2 ? "0" + rawHex : rawHex;
|
|
41
|
-
const bytes = new Uint8Array(hex.length / 2);
|
|
42
|
-
for (let i = 0; i < bytes.length; i++) {
|
|
43
|
-
bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
|
|
44
|
-
}
|
|
45
|
-
// Re-add leading zero bytes
|
|
46
|
-
const leadingZeros = str.split('').findIndex(c => c !== '1');
|
|
47
|
-
const prefix = new Uint8Array(leadingZeros === -1 ? str.length : leadingZeros);
|
|
48
|
-
return new Uint8Array([...prefix, ...bytes]);
|
|
49
|
-
}
|
|
50
|
-
// ─── Multicodec prefix for ed25519-pub (0xed01) ──────────────────────────────
|
|
51
|
-
const ED25519_PUB_MULTICODEC = new Uint8Array([0xed, 0x01]);
|
|
52
|
-
function pubkeyToMultibase(pubkey) {
|
|
53
|
-
const prefixed = new Uint8Array([...ED25519_PUB_MULTICODEC, ...pubkey]);
|
|
54
|
-
return 'z' + base58Encode(prefixed);
|
|
55
|
-
}
|
|
56
|
-
function multibaseToPubkey(multibase) {
|
|
57
|
-
if (!multibase.startsWith('z'))
|
|
58
|
-
throw new Error('Expected base58btc multibase (z prefix)');
|
|
59
|
-
const decoded = base58Decode(multibase.slice(1));
|
|
60
|
-
// Strip the 2-byte multicodec prefix
|
|
61
|
-
return decoded.slice(2);
|
|
62
|
-
}
|
|
63
|
-
// ─── Core Functions ───────────────────────────────────────────────────────────
|
|
64
|
-
/**
|
|
65
|
-
* Derive a deterministic did:key from a wallet's private key.
|
|
66
|
-
* The ed25519 public key is derived from the private key, then multibase-encoded.
|
|
67
|
-
*/
|
|
68
|
-
export function deriveAgentDID(privateKey) {
|
|
69
|
-
// Strip 0x prefix, get raw bytes
|
|
70
|
-
const privKeyBytes = new Uint8Array(Buffer.from(privateKey.startsWith('0x') ? privateKey.slice(2) : privateKey, 'hex'));
|
|
71
|
-
// Derive ed25519 public key
|
|
72
|
-
const pubkey = ed.getPublicKey(privKeyBytes);
|
|
73
|
-
const publicKeyHex = Buffer.from(pubkey).toString('hex');
|
|
74
|
-
const publicKeyMultibase = pubkeyToMultibase(pubkey);
|
|
75
|
-
const did = `did:key:${publicKeyMultibase}`;
|
|
76
|
-
return { did, publicKeyHex, publicKeyMultibase };
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Export a W3C DID Document for an AgentDID.
|
|
80
|
-
*/
|
|
81
|
-
export function exportDIDDocument(did) {
|
|
82
|
-
const vmId = `${did.did}#${did.publicKeyMultibase}`;
|
|
83
|
-
return {
|
|
84
|
-
'@context': [
|
|
85
|
-
'https://www.w3.org/ns/did/v1',
|
|
86
|
-
'https://w3id.org/security/suites/ed25519-2020/v1',
|
|
87
|
-
],
|
|
88
|
-
id: did.did,
|
|
89
|
-
verificationMethod: [
|
|
90
|
-
{
|
|
91
|
-
id: vmId,
|
|
92
|
-
type: 'Ed25519VerificationKey2020',
|
|
93
|
-
controller: did.did,
|
|
94
|
-
publicKeyMultibase: did.publicKeyMultibase,
|
|
95
|
-
},
|
|
96
|
-
],
|
|
97
|
-
authentication: [vmId],
|
|
98
|
-
assertionMethod: [vmId],
|
|
99
|
-
capabilityDelegation: [vmId],
|
|
100
|
-
capabilityInvocation: [vmId],
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Issue a W3C Verifiable Credential signed with Ed25519Signature2020.
|
|
105
|
-
*/
|
|
106
|
-
export function issueCredential(issuerDID, privateKey, claims) {
|
|
107
|
-
const privKeyBytes = new Uint8Array(Buffer.from(privateKey.startsWith('0x') ? privateKey.slice(2) : privateKey, 'hex'));
|
|
108
|
-
const now = new Date().toISOString();
|
|
109
|
-
const credId = `urn:uuid:${generateUUID()}`;
|
|
110
|
-
const vc = {
|
|
111
|
-
'@context': [
|
|
112
|
-
'https://www.w3.org/2018/credentials/v1',
|
|
113
|
-
'https://w3id.org/security/suites/ed25519-2020/v1',
|
|
114
|
-
],
|
|
115
|
-
id: credId,
|
|
116
|
-
type: ['VerifiableCredential', 'AgentCredential'],
|
|
117
|
-
issuer: issuerDID.did,
|
|
118
|
-
issuanceDate: now,
|
|
119
|
-
credentialSubject: {
|
|
120
|
-
id: issuerDID.did,
|
|
121
|
-
...claims,
|
|
122
|
-
},
|
|
123
|
-
};
|
|
124
|
-
// Sign the canonical form of the credential body
|
|
125
|
-
const vcBytes = new TextEncoder().encode(canonicalize(vc));
|
|
126
|
-
const hash = sha256(vcBytes);
|
|
127
|
-
const sig = ed.sign(hash, privKeyBytes);
|
|
128
|
-
const proofValue = 'z' + base58Encode(sig);
|
|
129
|
-
const vmId = `${issuerDID.did}#${issuerDID.publicKeyMultibase}`;
|
|
130
|
-
return {
|
|
131
|
-
...vc,
|
|
132
|
-
proof: {
|
|
133
|
-
type: 'Ed25519Signature2020',
|
|
134
|
-
created: now,
|
|
135
|
-
verificationMethod: vmId,
|
|
136
|
-
proofPurpose: 'assertionMethod',
|
|
137
|
-
proofValue,
|
|
138
|
-
},
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Verify a Verifiable Credential's Ed25519 signature.
|
|
143
|
-
* Returns true if the signature is valid and matches the issuer's DID.
|
|
144
|
-
*/
|
|
145
|
-
export function verifyCredential(vc) {
|
|
146
|
-
try {
|
|
147
|
-
const { proof, ...vcBody } = vc;
|
|
148
|
-
// Extract public key from the verificationMethod DID
|
|
149
|
-
// Format: did:key:z6Mk...#z6Mk...
|
|
150
|
-
const vmParts = proof.verificationMethod.split('#');
|
|
151
|
-
const didPart = vmParts[0];
|
|
152
|
-
const keyPart = vmParts[1] ?? didPart.replace('did:key:', '');
|
|
153
|
-
const pubkey = multibaseToPubkey(keyPart);
|
|
154
|
-
// Verify the issuer DID matches
|
|
155
|
-
const expectedDID = `did:key:${keyPart}`;
|
|
156
|
-
if (vc.issuer !== expectedDID)
|
|
157
|
-
return false;
|
|
158
|
-
// Re-compute the canonical hash
|
|
159
|
-
const vcBytes = new TextEncoder().encode(canonicalize(vcBody));
|
|
160
|
-
const hash = sha256(vcBytes);
|
|
161
|
-
// Decode the signature
|
|
162
|
-
const sigBytes = base58Decode(proof.proofValue.slice(1)); // strip 'z' prefix
|
|
163
|
-
return ed.verify(sigBytes, hash, pubkey);
|
|
164
|
-
}
|
|
165
|
-
catch {
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
170
|
-
/** Deterministic JSON serialization for consistent signing */
|
|
171
|
-
function canonicalize(obj) {
|
|
172
|
-
if (typeof obj !== 'object' || obj === null)
|
|
173
|
-
return JSON.stringify(obj);
|
|
174
|
-
if (Array.isArray(obj))
|
|
175
|
-
return '[' + obj.map(canonicalize).join(',') + ']';
|
|
176
|
-
const keys = Object.keys(obj).sort();
|
|
177
|
-
return '{' + keys.map(k => JSON.stringify(k) + ':' + canonicalize(obj[k])).join(',') + '}';
|
|
178
|
-
}
|
|
179
|
-
function generateUUID() {
|
|
180
|
-
const bytes = crypto.getRandomValues(new Uint8Array(16));
|
|
181
|
-
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
182
|
-
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
183
|
-
const hex = Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
184
|
-
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
185
|
-
}
|
|
186
|
-
//# sourceMappingURL=did.js.map
|
package/dist/identity/did.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"did.js","sourceRoot":"","sources":["../../src/identity/did.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentStakingPool — Agent-Only AAVE V3 USDC Staking Wrapper
|
|
3
|
-
*
|
|
4
|
-
* Wraps AAVE V3's USDC supply/withdraw pool with:
|
|
5
|
-
* - Agent-only access enforced via DID verification
|
|
6
|
-
* - 0.5% annualized management fee deducted from yield before distribution
|
|
7
|
-
* - Non-custodial: AAVE holds all assets, we just wrap the interaction
|
|
8
|
-
*
|
|
9
|
-
* AAVE V3 Pool addresses:
|
|
10
|
-
* Base: 0xA238Dd80C259a72e81d7e4664a9801593F98d1c5
|
|
11
|
-
* Arbitrum: 0x794a61358D6845594F94dc1DB02A252b5b4814aD
|
|
12
|
-
*
|
|
13
|
-
* USDC addresses:
|
|
14
|
-
* Base: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
|
|
15
|
-
* Arbitrum: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831
|
|
16
|
-
*/
|
|
17
|
-
import { type WalletClient, type Address, type Hash } from 'viem';
|
|
18
|
-
import type { AgentDID } from '../identity/did.js';
|
|
19
|
-
export type SupportedStakingChain = 'base' | 'arbitrum';
|
|
20
|
-
export interface DepositResult {
|
|
21
|
-
txHash: Hash;
|
|
22
|
-
agentDID: string;
|
|
23
|
-
amountUsdc: bigint;
|
|
24
|
-
chain: SupportedStakingChain;
|
|
25
|
-
depositedAt: number;
|
|
26
|
-
}
|
|
27
|
-
export interface WithdrawResult {
|
|
28
|
-
txHash: Hash;
|
|
29
|
-
agentDID: string;
|
|
30
|
-
amountUsdc: bigint;
|
|
31
|
-
managementFeeUsdc: bigint;
|
|
32
|
-
chain: SupportedStakingChain;
|
|
33
|
-
withdrawnAt: number;
|
|
34
|
-
}
|
|
35
|
-
export interface StakingBalance {
|
|
36
|
-
agentDID: string;
|
|
37
|
-
principalUsdc: bigint;
|
|
38
|
-
aUsdcBalance: bigint;
|
|
39
|
-
yieldEarned: bigint;
|
|
40
|
-
managementFeeAccrued: bigint;
|
|
41
|
-
netBalanceUsdc: bigint;
|
|
42
|
-
chain: SupportedStakingChain;
|
|
43
|
-
}
|
|
44
|
-
export interface DepositParams {
|
|
45
|
-
agentDID: AgentDID;
|
|
46
|
-
amountUsdc: bigint;
|
|
47
|
-
walletClient: WalletClient;
|
|
48
|
-
chain: SupportedStakingChain;
|
|
49
|
-
}
|
|
50
|
-
export interface WithdrawParams {
|
|
51
|
-
agentDID: AgentDID;
|
|
52
|
-
amountUsdc: bigint;
|
|
53
|
-
walletClient: WalletClient;
|
|
54
|
-
chain: SupportedStakingChain;
|
|
55
|
-
}
|
|
56
|
-
declare const AAVE_POOL_ADDRESS: Record<SupportedStakingChain, Address>;
|
|
57
|
-
declare const USDC_ADDRESS: Record<SupportedStakingChain, Address>;
|
|
58
|
-
declare const AUSDC_ADDRESS: Record<SupportedStakingChain, Address>;
|
|
59
|
-
/** Fee placeholder — replace with multisig before mainnet launch */
|
|
60
|
-
declare const FEE_COLLECTOR: Address;
|
|
61
|
-
export declare class AgentStakingPool {
|
|
62
|
-
/**
|
|
63
|
-
* Deposit USDC into AAVE V3.
|
|
64
|
-
* AGENTS ONLY — verifyAgentOnly enforced on every call.
|
|
65
|
-
*/
|
|
66
|
-
deposit(params: DepositParams): Promise<DepositResult>;
|
|
67
|
-
/**
|
|
68
|
-
* Withdraw USDC + yield from AAVE V3.
|
|
69
|
-
* Management fee is deducted from yield before releasing to agent.
|
|
70
|
-
*/
|
|
71
|
-
withdraw(params: WithdrawParams): Promise<WithdrawResult>;
|
|
72
|
-
/**
|
|
73
|
-
* Get current staking balance (principal + yield - management fee).
|
|
74
|
-
*/
|
|
75
|
-
getBalance(agentDID: AgentDID, chain: SupportedStakingChain): Promise<StakingBalance>;
|
|
76
|
-
/**
|
|
77
|
-
* Verify that the caller is an AI agent, not a human.
|
|
78
|
-
*
|
|
79
|
-
* Enforcement logic:
|
|
80
|
-
* 1. The agentDID must be a valid did:key derived via our deterministic derivation
|
|
81
|
-
* 2. The DID's encoded public key must match a key that can sign for the wallet address
|
|
82
|
-
*
|
|
83
|
-
* Humans cannot spoof this because:
|
|
84
|
-
* - Deriving a valid AgentDID requires access to the private key in raw hex form
|
|
85
|
-
* - The wallet's signing key must match the DID's public key
|
|
86
|
-
* - This creates a cryptographic binding: same private key → wallet + DID
|
|
87
|
-
*
|
|
88
|
-
* In practice, AI agents running our SDK have access to their private key programmatically.
|
|
89
|
-
* Human users of typical EOA wallets (MetaMask, hardware wallets) cannot expose their
|
|
90
|
-
* private key in the required format to derive the DID.
|
|
91
|
-
*/
|
|
92
|
-
private verifyAgentOnly;
|
|
93
|
-
/**
|
|
94
|
-
* Calculate management fee: 0.5% annualized.
|
|
95
|
-
* Formula: principal * 50 / 10000 * daysStaked / 365
|
|
96
|
-
*/
|
|
97
|
-
private calculateManagementFee;
|
|
98
|
-
}
|
|
99
|
-
export { FEE_COLLECTOR, AAVE_POOL_ADDRESS, USDC_ADDRESS, AUSDC_ADDRESS };
|
|
100
|
-
//# sourceMappingURL=AgentStakingPool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentStakingPool.d.ts","sourceRoot":"","sources":["../../src/staking/AgentStakingPool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,IAAI,EACV,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKnD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAID,QAAA,MAAM,iBAAiB,EAAE,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAG7D,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAGxD,CAAC;AAGF,QAAA,MAAM,aAAa,EAAE,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAGzD,CAAC;AAEF,oEAAoE;AACpE,QAAA,MAAM,aAAa,EAAE,OAAsD,CAAC;AAsE5E,qBAAa,gBAAgB;IAC3B;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAmD5D;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAwE/D;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IA+C3F;;;;;;;;;;;;;;;OAeG;YACW,eAAe;IA2B7B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAO/B;AAED,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
|