envoy-pay 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +99 -0
- package/LICENSE +200 -0
- package/README.md +529 -0
- package/dist/cjs/adapters/base.js +174 -0
- package/dist/cjs/adapters/base.js.map +1 -0
- package/dist/cjs/adapters/evm.js +339 -0
- package/dist/cjs/adapters/evm.js.map +1 -0
- package/dist/cjs/adapters/index.js +15 -0
- package/dist/cjs/adapters/index.js.map +1 -0
- package/dist/cjs/adapters/ows.js +204 -0
- package/dist/cjs/adapters/ows.js.map +1 -0
- package/dist/cjs/adapters/solana.js +210 -0
- package/dist/cjs/adapters/solana.js.map +1 -0
- package/dist/cjs/adapters/stellar.js +173 -0
- package/dist/cjs/adapters/stellar.js.map +1 -0
- package/dist/cjs/adapters/stripe.js +338 -0
- package/dist/cjs/adapters/stripe.js.map +1 -0
- package/dist/cjs/adapters/types.js +3 -0
- package/dist/cjs/adapters/types.js.map +1 -0
- package/dist/cjs/client.js +309 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/contracts/abis/EnvoyFacilitator.js +197 -0
- package/dist/cjs/contracts/abis/EnvoyFacilitator.js.map +1 -0
- package/dist/cjs/contracts/addresses.js +42 -0
- package/dist/cjs/contracts/addresses.js.map +1 -0
- package/dist/cjs/contracts/facilitator.js +225 -0
- package/dist/cjs/contracts/facilitator.js.map +1 -0
- package/dist/cjs/contracts/index.js +21 -0
- package/dist/cjs/contracts/index.js.map +1 -0
- package/dist/cjs/facilitator/facilitator-service.js +305 -0
- package/dist/cjs/facilitator/facilitator-service.js.map +1 -0
- package/dist/cjs/facilitator/fee-calculator.js +134 -0
- package/dist/cjs/facilitator/fee-calculator.js.map +1 -0
- package/dist/cjs/facilitator/index.js +12 -0
- package/dist/cjs/facilitator/index.js.map +1 -0
- package/dist/cjs/facilitator/types.js +99 -0
- package/dist/cjs/facilitator/types.js.map +1 -0
- package/dist/cjs/identity/agent-card.js +143 -0
- package/dist/cjs/identity/agent-card.js.map +1 -0
- package/dist/cjs/identity/agent-identity.js +166 -0
- package/dist/cjs/identity/agent-identity.js.map +1 -0
- package/dist/cjs/identity/did-resolver.js +149 -0
- package/dist/cjs/identity/did-resolver.js.map +1 -0
- package/dist/cjs/identity/erc8004/abis.js +218 -0
- package/dist/cjs/identity/erc8004/abis.js.map +1 -0
- package/dist/cjs/identity/erc8004/identity.js +268 -0
- package/dist/cjs/identity/erc8004/identity.js.map +1 -0
- package/dist/cjs/identity/erc8004/index.js +36 -0
- package/dist/cjs/identity/erc8004/index.js.map +1 -0
- package/dist/cjs/identity/erc8004/reputation.js +110 -0
- package/dist/cjs/identity/erc8004/reputation.js.map +1 -0
- package/dist/cjs/identity/erc8004/types.js +3 -0
- package/dist/cjs/identity/erc8004/types.js.map +1 -0
- package/dist/cjs/identity/index.js +61 -0
- package/dist/cjs/identity/index.js.map +1 -0
- package/dist/cjs/identity/owner-registry.js +140 -0
- package/dist/cjs/identity/owner-registry.js.map +1 -0
- package/dist/cjs/identity/reputation.js +193 -0
- package/dist/cjs/identity/reputation.js.map +1 -0
- package/dist/cjs/identity/types.js +16 -0
- package/dist/cjs/identity/types.js.map +1 -0
- package/dist/cjs/index.js +72 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/logger.js +7 -0
- package/dist/cjs/logger.js.map +1 -0
- package/dist/cjs/monitor/evm-watcher.js +165 -0
- package/dist/cjs/monitor/evm-watcher.js.map +1 -0
- package/dist/cjs/monitor/index.js +32 -0
- package/dist/cjs/monitor/index.js.map +1 -0
- package/dist/cjs/monitor/multi-watcher.js +94 -0
- package/dist/cjs/monitor/multi-watcher.js.map +1 -0
- package/dist/cjs/monitor/solana-watcher.js +172 -0
- package/dist/cjs/monitor/solana-watcher.js.map +1 -0
- package/dist/cjs/monitor/stellar-watcher.js +125 -0
- package/dist/cjs/monitor/stellar-watcher.js.map +1 -0
- package/dist/cjs/mpp.js +187 -0
- package/dist/cjs/mpp.js.map +1 -0
- package/dist/cjs/policy.js +71 -0
- package/dist/cjs/policy.js.map +1 -0
- package/dist/cjs/providers/bridge.js +323 -0
- package/dist/cjs/providers/bridge.js.map +1 -0
- package/dist/cjs/providers/onchainos.js +210 -0
- package/dist/cjs/providers/onchainos.js.map +1 -0
- package/dist/cjs/requests/eip681.js +77 -0
- package/dist/cjs/requests/eip681.js.map +1 -0
- package/dist/cjs/requests/index.js +18 -0
- package/dist/cjs/requests/index.js.map +1 -0
- package/dist/cjs/requests/sep7.js +61 -0
- package/dist/cjs/requests/sep7.js.map +1 -0
- package/dist/cjs/requests/solana-pay.js +51 -0
- package/dist/cjs/requests/solana-pay.js.map +1 -0
- package/dist/cjs/requests/universal.js +40 -0
- package/dist/cjs/requests/universal.js.map +1 -0
- package/dist/cjs/server/index.js +35 -0
- package/dist/cjs/server/index.js.map +1 -0
- package/dist/cjs/server/mpp-gate.js +118 -0
- package/dist/cjs/server/mpp-gate.js.map +1 -0
- package/dist/cjs/server/payment-gate.js +92 -0
- package/dist/cjs/server/payment-gate.js.map +1 -0
- package/dist/cjs/server/receipt.js +52 -0
- package/dist/cjs/server/receipt.js.map +1 -0
- package/dist/cjs/server/webhook.js +122 -0
- package/dist/cjs/server/webhook.js.map +1 -0
- package/dist/cjs/server/x402-gate.js +103 -0
- package/dist/cjs/server/x402-gate.js.map +1 -0
- package/dist/cjs/solana.js +14 -0
- package/dist/cjs/solana.js.map +1 -0
- package/dist/cjs/stellar.js +14 -0
- package/dist/cjs/stellar.js.map +1 -0
- package/dist/cjs/wallet/balance-aggregator.js +149 -0
- package/dist/cjs/wallet/balance-aggregator.js.map +1 -0
- package/dist/cjs/wallet/chain-router.js +254 -0
- package/dist/cjs/wallet/chain-router.js.map +1 -0
- package/dist/cjs/wallet/index.js +15 -0
- package/dist/cjs/wallet/index.js.map +1 -0
- package/dist/cjs/wallet/intent-resolver.js +145 -0
- package/dist/cjs/wallet/intent-resolver.js.map +1 -0
- package/dist/cjs/wallet/session-manager.js +170 -0
- package/dist/cjs/wallet/session-manager.js.map +1 -0
- package/dist/cjs/wallet/types.js +14 -0
- package/dist/cjs/wallet/types.js.map +1 -0
- package/dist/cjs/wallet/unified-wallet.js +253 -0
- package/dist/cjs/wallet/unified-wallet.js.map +1 -0
- package/dist/esm/adapters/base.js +170 -0
- package/dist/esm/adapters/base.js.map +1 -0
- package/dist/esm/adapters/evm.js +334 -0
- package/dist/esm/adapters/evm.js.map +1 -0
- package/dist/esm/adapters/index.js +6 -0
- package/dist/esm/adapters/index.js.map +1 -0
- package/dist/esm/adapters/ows.js +194 -0
- package/dist/esm/adapters/ows.js.map +1 -0
- package/dist/esm/adapters/solana.js +206 -0
- package/dist/esm/adapters/solana.js.map +1 -0
- package/dist/esm/adapters/stellar.js +136 -0
- package/dist/esm/adapters/stellar.js.map +1 -0
- package/dist/esm/adapters/stripe.js +334 -0
- package/dist/esm/adapters/stripe.js.map +1 -0
- package/dist/esm/adapters/types.js +2 -0
- package/dist/esm/adapters/types.js.map +1 -0
- package/dist/esm/client.js +302 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/contracts/abis/EnvoyFacilitator.js +194 -0
- package/dist/esm/contracts/abis/EnvoyFacilitator.js.map +1 -0
- package/dist/esm/contracts/addresses.js +38 -0
- package/dist/esm/contracts/addresses.js.map +1 -0
- package/dist/esm/contracts/facilitator.js +218 -0
- package/dist/esm/contracts/facilitator.js.map +1 -0
- package/dist/esm/contracts/index.js +8 -0
- package/dist/esm/contracts/index.js.map +1 -0
- package/dist/esm/facilitator/facilitator-service.js +301 -0
- package/dist/esm/facilitator/facilitator-service.js.map +1 -0
- package/dist/esm/facilitator/fee-calculator.js +130 -0
- package/dist/esm/facilitator/fee-calculator.js.map +1 -0
- package/dist/esm/facilitator/index.js +5 -0
- package/dist/esm/facilitator/index.js.map +1 -0
- package/dist/esm/facilitator/types.js +96 -0
- package/dist/esm/facilitator/types.js.map +1 -0
- package/dist/esm/identity/agent-card.js +139 -0
- package/dist/esm/identity/agent-card.js.map +1 -0
- package/dist/esm/identity/agent-identity.js +162 -0
- package/dist/esm/identity/agent-identity.js.map +1 -0
- package/dist/esm/identity/did-resolver.js +145 -0
- package/dist/esm/identity/did-resolver.js.map +1 -0
- package/dist/esm/identity/erc8004/abis.js +215 -0
- package/dist/esm/identity/erc8004/abis.js.map +1 -0
- package/dist/esm/identity/erc8004/identity.js +250 -0
- package/dist/esm/identity/erc8004/identity.js.map +1 -0
- package/dist/esm/identity/erc8004/index.js +13 -0
- package/dist/esm/identity/erc8004/index.js.map +1 -0
- package/dist/esm/identity/erc8004/reputation.js +105 -0
- package/dist/esm/identity/erc8004/reputation.js.map +1 -0
- package/dist/esm/identity/erc8004/types.js +2 -0
- package/dist/esm/identity/erc8004/types.js.map +1 -0
- package/dist/esm/identity/index.js +19 -0
- package/dist/esm/identity/index.js.map +1 -0
- package/dist/esm/identity/owner-registry.js +136 -0
- package/dist/esm/identity/owner-registry.js.map +1 -0
- package/dist/esm/identity/reputation.js +189 -0
- package/dist/esm/identity/reputation.js.map +1 -0
- package/dist/esm/identity/types.js +15 -0
- package/dist/esm/identity/types.js.map +1 -0
- package/dist/esm/index.js +37 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/logger.js +3 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/monitor/evm-watcher.js +162 -0
- package/dist/esm/monitor/evm-watcher.js.map +1 -0
- package/dist/esm/monitor/index.js +25 -0
- package/dist/esm/monitor/index.js.map +1 -0
- package/dist/esm/monitor/multi-watcher.js +91 -0
- package/dist/esm/monitor/multi-watcher.js.map +1 -0
- package/dist/esm/monitor/solana-watcher.js +169 -0
- package/dist/esm/monitor/solana-watcher.js.map +1 -0
- package/dist/esm/monitor/stellar-watcher.js +122 -0
- package/dist/esm/monitor/stellar-watcher.js.map +1 -0
- package/dist/esm/mpp.js +175 -0
- package/dist/esm/mpp.js.map +1 -0
- package/dist/esm/policy.js +67 -0
- package/dist/esm/policy.js.map +1 -0
- package/dist/esm/providers/bridge.js +319 -0
- package/dist/esm/providers/bridge.js.map +1 -0
- package/dist/esm/providers/onchainos.js +172 -0
- package/dist/esm/providers/onchainos.js.map +1 -0
- package/dist/esm/requests/eip681.js +74 -0
- package/dist/esm/requests/eip681.js.map +1 -0
- package/dist/esm/requests/index.js +11 -0
- package/dist/esm/requests/index.js.map +1 -0
- package/dist/esm/requests/sep7.js +58 -0
- package/dist/esm/requests/sep7.js.map +1 -0
- package/dist/esm/requests/solana-pay.js +48 -0
- package/dist/esm/requests/solana-pay.js.map +1 -0
- package/dist/esm/requests/universal.js +37 -0
- package/dist/esm/requests/universal.js.map +1 -0
- package/dist/esm/server/index.js +27 -0
- package/dist/esm/server/index.js.map +1 -0
- package/dist/esm/server/mpp-gate.js +115 -0
- package/dist/esm/server/mpp-gate.js.map +1 -0
- package/dist/esm/server/payment-gate.js +89 -0
- package/dist/esm/server/payment-gate.js.map +1 -0
- package/dist/esm/server/receipt.js +48 -0
- package/dist/esm/server/receipt.js.map +1 -0
- package/dist/esm/server/webhook.js +119 -0
- package/dist/esm/server/webhook.js.map +1 -0
- package/dist/esm/server/x402-gate.js +100 -0
- package/dist/esm/server/x402-gate.js.map +1 -0
- package/dist/esm/solana.js +8 -0
- package/dist/esm/solana.js.map +1 -0
- package/dist/esm/stellar.js +8 -0
- package/dist/esm/stellar.js.map +1 -0
- package/dist/esm/wallet/balance-aggregator.js +145 -0
- package/dist/esm/wallet/balance-aggregator.js.map +1 -0
- package/dist/esm/wallet/chain-router.js +250 -0
- package/dist/esm/wallet/chain-router.js.map +1 -0
- package/dist/esm/wallet/index.js +7 -0
- package/dist/esm/wallet/index.js.map +1 -0
- package/dist/esm/wallet/intent-resolver.js +141 -0
- package/dist/esm/wallet/intent-resolver.js.map +1 -0
- package/dist/esm/wallet/session-manager.js +166 -0
- package/dist/esm/wallet/session-manager.js.map +1 -0
- package/dist/esm/wallet/types.js +13 -0
- package/dist/esm/wallet/types.js.map +1 -0
- package/dist/esm/wallet/unified-wallet.js +249 -0
- package/dist/esm/wallet/unified-wallet.js.map +1 -0
- package/dist/types/adapters/base.d.ts +53 -0
- package/dist/types/adapters/base.d.ts.map +1 -0
- package/dist/types/adapters/evm.d.ts +93 -0
- package/dist/types/adapters/evm.d.ts.map +1 -0
- package/dist/types/adapters/index.d.ts +7 -0
- package/dist/types/adapters/index.d.ts.map +1 -0
- package/dist/types/adapters/ows.d.ts +123 -0
- package/dist/types/adapters/ows.d.ts.map +1 -0
- package/dist/types/adapters/solana.d.ts +77 -0
- package/dist/types/adapters/solana.d.ts.map +1 -0
- package/dist/types/adapters/stellar.d.ts +67 -0
- package/dist/types/adapters/stellar.d.ts.map +1 -0
- package/dist/types/adapters/stripe.d.ts +206 -0
- package/dist/types/adapters/stripe.d.ts.map +1 -0
- package/dist/types/adapters/types.d.ts +110 -0
- package/dist/types/adapters/types.d.ts.map +1 -0
- package/dist/types/client.d.ts +89 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/contracts/abis/EnvoyFacilitator.d.ts +296 -0
- package/dist/types/contracts/abis/EnvoyFacilitator.d.ts.map +1 -0
- package/dist/types/contracts/addresses.d.ts +24 -0
- package/dist/types/contracts/addresses.d.ts.map +1 -0
- package/dist/types/contracts/facilitator.d.ts +172 -0
- package/dist/types/contracts/facilitator.d.ts.map +1 -0
- package/dist/types/contracts/index.d.ts +6 -0
- package/dist/types/contracts/index.d.ts.map +1 -0
- package/dist/types/facilitator/facilitator-service.d.ts +69 -0
- package/dist/types/facilitator/facilitator-service.d.ts.map +1 -0
- package/dist/types/facilitator/fee-calculator.d.ts +48 -0
- package/dist/types/facilitator/fee-calculator.d.ts.map +1 -0
- package/dist/types/facilitator/index.d.ts +5 -0
- package/dist/types/facilitator/index.d.ts.map +1 -0
- package/dist/types/facilitator/types.d.ts +221 -0
- package/dist/types/facilitator/types.d.ts.map +1 -0
- package/dist/types/identity/agent-card.d.ts +83 -0
- package/dist/types/identity/agent-card.d.ts.map +1 -0
- package/dist/types/identity/agent-identity.d.ts +102 -0
- package/dist/types/identity/agent-identity.d.ts.map +1 -0
- package/dist/types/identity/did-resolver.d.ts +70 -0
- package/dist/types/identity/did-resolver.d.ts.map +1 -0
- package/dist/types/identity/erc8004/abis.d.ts +336 -0
- package/dist/types/identity/erc8004/abis.d.ts.map +1 -0
- package/dist/types/identity/erc8004/identity.d.ts +109 -0
- package/dist/types/identity/erc8004/identity.d.ts.map +1 -0
- package/dist/types/identity/erc8004/index.d.ts +15 -0
- package/dist/types/identity/erc8004/index.d.ts.map +1 -0
- package/dist/types/identity/erc8004/reputation.d.ts +52 -0
- package/dist/types/identity/erc8004/reputation.d.ts.map +1 -0
- package/dist/types/identity/erc8004/types.d.ts +31 -0
- package/dist/types/identity/erc8004/types.d.ts.map +1 -0
- package/dist/types/identity/index.d.ts +10 -0
- package/dist/types/identity/index.d.ts.map +1 -0
- package/dist/types/identity/owner-registry.d.ts +68 -0
- package/dist/types/identity/owner-registry.d.ts.map +1 -0
- package/dist/types/identity/reputation.d.ts +66 -0
- package/dist/types/identity/reputation.d.ts.map +1 -0
- package/dist/types/identity/types.d.ts +182 -0
- package/dist/types/identity/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logger.d.ts +10 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/monitor/evm-watcher.d.ts +40 -0
- package/dist/types/monitor/evm-watcher.d.ts.map +1 -0
- package/dist/types/monitor/index.d.ts +25 -0
- package/dist/types/monitor/index.d.ts.map +1 -0
- package/dist/types/monitor/multi-watcher.d.ts +48 -0
- package/dist/types/monitor/multi-watcher.d.ts.map +1 -0
- package/dist/types/monitor/solana-watcher.d.ts +36 -0
- package/dist/types/monitor/solana-watcher.d.ts.map +1 -0
- package/dist/types/monitor/stellar-watcher.d.ts +34 -0
- package/dist/types/monitor/stellar-watcher.d.ts.map +1 -0
- package/dist/types/mpp.d.ts +153 -0
- package/dist/types/mpp.d.ts.map +1 -0
- package/dist/types/policy.d.ts +40 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/providers/bridge.d.ts +162 -0
- package/dist/types/providers/bridge.d.ts.map +1 -0
- package/dist/types/providers/onchainos.d.ts +128 -0
- package/dist/types/providers/onchainos.d.ts.map +1 -0
- package/dist/types/requests/eip681.d.ts +51 -0
- package/dist/types/requests/eip681.d.ts.map +1 -0
- package/dist/types/requests/index.d.ts +11 -0
- package/dist/types/requests/index.d.ts.map +1 -0
- package/dist/types/requests/sep7.d.ts +56 -0
- package/dist/types/requests/sep7.d.ts.map +1 -0
- package/dist/types/requests/solana-pay.d.ts +50 -0
- package/dist/types/requests/solana-pay.d.ts.map +1 -0
- package/dist/types/requests/universal.d.ts +28 -0
- package/dist/types/requests/universal.d.ts.map +1 -0
- package/dist/types/server/index.d.ts +27 -0
- package/dist/types/server/index.d.ts.map +1 -0
- package/dist/types/server/mpp-gate.d.ts +66 -0
- package/dist/types/server/mpp-gate.d.ts.map +1 -0
- package/dist/types/server/payment-gate.d.ts +33 -0
- package/dist/types/server/payment-gate.d.ts.map +1 -0
- package/dist/types/server/receipt.d.ts +52 -0
- package/dist/types/server/receipt.d.ts.map +1 -0
- package/dist/types/server/webhook.d.ts +46 -0
- package/dist/types/server/webhook.d.ts.map +1 -0
- package/dist/types/server/x402-gate.d.ts +70 -0
- package/dist/types/server/x402-gate.d.ts.map +1 -0
- package/dist/types/solana.d.ts +7 -0
- package/dist/types/solana.d.ts.map +1 -0
- package/dist/types/stellar.d.ts +7 -0
- package/dist/types/stellar.d.ts.map +1 -0
- package/dist/types/wallet/balance-aggregator.d.ts +51 -0
- package/dist/types/wallet/balance-aggregator.d.ts.map +1 -0
- package/dist/types/wallet/chain-router.d.ts +44 -0
- package/dist/types/wallet/chain-router.d.ts.map +1 -0
- package/dist/types/wallet/index.d.ts +7 -0
- package/dist/types/wallet/index.d.ts.map +1 -0
- package/dist/types/wallet/intent-resolver.d.ts +39 -0
- package/dist/types/wallet/intent-resolver.d.ts.map +1 -0
- package/dist/types/wallet/session-manager.d.ts +57 -0
- package/dist/types/wallet/session-manager.d.ts.map +1 -0
- package/dist/types/wallet/types.d.ts +161 -0
- package/dist/types/wallet/types.d.ts.map +1 -0
- package/dist/types/wallet/unified-wallet.d.ts +122 -0
- package/dist/types/wallet/unified-wallet.d.ts.map +1 -0
- package/package.json +194 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentIdentity — Main facade for the identity layer.
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates DIDResolver, AgentCard, Reputation, and OwnerRegistry
|
|
5
|
+
* into a single, cohesive interface. This is the primary object that
|
|
6
|
+
* agents and the EnvoyClient interact with.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const identity = new AgentIdentity({
|
|
11
|
+
* metadata: {
|
|
12
|
+
* name: 'Trading Bot Alpha',
|
|
13
|
+
* version: '1.0.0',
|
|
14
|
+
* capabilities: ['trade', 'analyze'],
|
|
15
|
+
* owner: '0xOwner...',
|
|
16
|
+
* },
|
|
17
|
+
* signerAddress: '0xAgent...',
|
|
18
|
+
* signerChainId: 'eip155:8453',
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Other agents can verify:
|
|
22
|
+
* const score = identity.getReputationScore();
|
|
23
|
+
* const canTrust = identity.meetsThreshold(70);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import { DIDResolver } from './did-resolver';
|
|
27
|
+
import { AgentCard } from './agent-card';
|
|
28
|
+
import { Reputation } from './reputation';
|
|
29
|
+
import { OwnerRegistry } from './owner-registry';
|
|
30
|
+
import { AgentDID, AgentIdentityOptions, AgentCardData, DIDDocument, ReputationProfile, OwnerRecord, CreateAttestationOptions, ReputationAttestation, ResolvedIdentity, ResolveOptions, DelegationLevel } from './types';
|
|
31
|
+
export declare class AgentIdentity {
|
|
32
|
+
/** The agent's DID. */
|
|
33
|
+
readonly did: AgentDID;
|
|
34
|
+
/** The agent's DID Document. */
|
|
35
|
+
readonly didDocument: DIDDocument;
|
|
36
|
+
/** The agent's card (capabilities, metadata). */
|
|
37
|
+
readonly card: AgentCard;
|
|
38
|
+
/** Shared modules (can be used across multiple agents). */
|
|
39
|
+
readonly didResolver: DIDResolver;
|
|
40
|
+
readonly reputation: Reputation;
|
|
41
|
+
readonly ownerRegistry: OwnerRegistry;
|
|
42
|
+
private log;
|
|
43
|
+
constructor(options: AgentIdentityOptions);
|
|
44
|
+
/**
|
|
45
|
+
* Get the agent's DID string.
|
|
46
|
+
*/
|
|
47
|
+
getDID(): AgentDID;
|
|
48
|
+
/**
|
|
49
|
+
* Get the agent's card data.
|
|
50
|
+
*/
|
|
51
|
+
getCard(): Readonly<AgentCardData>;
|
|
52
|
+
/**
|
|
53
|
+
* Check if this agent has a specific capability.
|
|
54
|
+
*/
|
|
55
|
+
hasCapability(capability: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Get this agent's reputation score (0-100).
|
|
58
|
+
*/
|
|
59
|
+
getReputationScore(): number;
|
|
60
|
+
/**
|
|
61
|
+
* Get this agent's full reputation profile.
|
|
62
|
+
*/
|
|
63
|
+
getReputationProfile(): ReputationProfile;
|
|
64
|
+
/**
|
|
65
|
+
* Check if this agent meets a minimum trust threshold.
|
|
66
|
+
*/
|
|
67
|
+
meetsThreshold(minScore: number): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Create a reputation attestation for ANOTHER agent.
|
|
70
|
+
*/
|
|
71
|
+
attestAgent(options: CreateAttestationOptions): ReputationAttestation;
|
|
72
|
+
/**
|
|
73
|
+
* Get this agent's owner.
|
|
74
|
+
*/
|
|
75
|
+
getOwner(): OwnerRecord | null;
|
|
76
|
+
/**
|
|
77
|
+
* Get this agent's delegation level.
|
|
78
|
+
*/
|
|
79
|
+
getDelegationLevel(): DelegationLevel | null;
|
|
80
|
+
/**
|
|
81
|
+
* Check if this agent can transact (not readonly).
|
|
82
|
+
*/
|
|
83
|
+
canTransact(): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Resolve another agent's identity by DID.
|
|
86
|
+
*/
|
|
87
|
+
resolveAgent(agentDid: AgentDID, options?: ResolveOptions): ResolvedIdentity | null;
|
|
88
|
+
/**
|
|
89
|
+
* Export the full identity as a portable JSON object.
|
|
90
|
+
*/
|
|
91
|
+
toJSON(): {
|
|
92
|
+
did: `did:asg:agent:${string}`;
|
|
93
|
+
didDocument: DIDDocument;
|
|
94
|
+
card: AgentCardData & {
|
|
95
|
+
createdAt: string;
|
|
96
|
+
updatedAt: string;
|
|
97
|
+
};
|
|
98
|
+
reputation: ReputationProfile;
|
|
99
|
+
ownership: OwnerRecord | null;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=agent-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-identity.d.ts","sourceRoot":"","sources":["../../../src/identity/agent-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAa;IACxB,uBAAuB;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAwB;gBAEvB,OAAO,EAAE,oBAAoB;IAkCzC;;OAEG;IACH,MAAM,IAAI,QAAQ;IAIlB;;OAEG;IACH,OAAO,IAAI,QAAQ,CAAC,aAAa,CAAC;IAIlC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAM1C;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAIzC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,qBAAqB;IAUrE;;OAEG;IACH,QAAQ,IAAI,WAAW,GAAG,IAAI;IAI9B;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C;;OAEG;IACH,WAAW,IAAI,OAAO;IAMtB;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,gBAAgB,GAAG,IAAI;IAyBnF;;OAEG;IACH,MAAM;;;;;;;;;;CASP"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DIDResolver — W3C Decentralized Identifier resolution for envoy agents.
|
|
3
|
+
*
|
|
4
|
+
* Implements a custom DID method `did:asg:agent:<chain>:<address>` that
|
|
5
|
+
* resolves to a DID Document containing the agent's public keys,
|
|
6
|
+
* service endpoints, and ownership information.
|
|
7
|
+
*
|
|
8
|
+
* Format: did:asg:agent:<caip2-chain>:<address>
|
|
9
|
+
* @example "did:asg:agent:eip155:8453:0x1234abcd..."
|
|
10
|
+
* @example "did:asg:agent:stellar:pubnet:GABC..."
|
|
11
|
+
* @example "did:asg:agent:solana:mainnet:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp..."
|
|
12
|
+
*
|
|
13
|
+
* @see https://www.w3.org/TR/did-core/
|
|
14
|
+
* @see ERC-8004 — Identity Registry
|
|
15
|
+
*/
|
|
16
|
+
import { AgentDID, DIDDocument, ServiceEndpoint, AgentCardData } from './types';
|
|
17
|
+
/**
|
|
18
|
+
* Parse a DID string into its components.
|
|
19
|
+
*/
|
|
20
|
+
interface ParsedDID {
|
|
21
|
+
method: string;
|
|
22
|
+
submethod: string;
|
|
23
|
+
chain: string;
|
|
24
|
+
address: string;
|
|
25
|
+
}
|
|
26
|
+
export declare class DIDResolver {
|
|
27
|
+
/** In-memory registry (production: on-chain or IPFS). */
|
|
28
|
+
private registry;
|
|
29
|
+
/**
|
|
30
|
+
* Create a DID for an agent.
|
|
31
|
+
*
|
|
32
|
+
* @param address - The agent's primary address
|
|
33
|
+
* @param chainId - CAIP-2 chain identifier
|
|
34
|
+
* @param card - Agent card metadata
|
|
35
|
+
* @returns The generated DID and DID Document
|
|
36
|
+
*/
|
|
37
|
+
create(address: string, chainId: string, card: AgentCardData): {
|
|
38
|
+
did: AgentDID;
|
|
39
|
+
document: DIDDocument;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Resolve a DID to its DID Document.
|
|
43
|
+
*/
|
|
44
|
+
resolve(did: AgentDID): DIDDocument | null;
|
|
45
|
+
/**
|
|
46
|
+
* Parse a DID string into its components.
|
|
47
|
+
*/
|
|
48
|
+
parse(did: string): ParsedDID | null;
|
|
49
|
+
/**
|
|
50
|
+
* Validate that a DID string is well-formed.
|
|
51
|
+
*/
|
|
52
|
+
validate(did: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Update a DID Document's service endpoints.
|
|
55
|
+
*/
|
|
56
|
+
updateServices(did: AgentDID, services: ServiceEndpoint[]): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Deactivate (delete) a DID Document.
|
|
59
|
+
*/
|
|
60
|
+
deactivate(did: AgentDID): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* List all registered DIDs.
|
|
63
|
+
*/
|
|
64
|
+
listAll(): AgentDID[];
|
|
65
|
+
private buildDID;
|
|
66
|
+
private getKeyType;
|
|
67
|
+
private addressToMultibase;
|
|
68
|
+
}
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=did-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did-resolver.d.ts","sourceRoot":"","sources":["../../../src/identity/did-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,QAAQ,EACR,WAAW,EAEX,eAAe,EACf,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,UAAU,SAAS;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,WAAW;IACtB,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;;;;;;OAOG;IACH,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,GAClB;QAAE,GAAG,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAA;KAAE;IAiD3C;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI;IAI1C;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAoBpC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAY9B;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO;IASnE;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAIlC;;OAEG;IACH,OAAO,IAAI,QAAQ,EAAE;IAMrB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,kBAAkB;CAI3B"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal ABI fragments for the canonical ERC-8004 contracts on Celo.
|
|
3
|
+
*
|
|
4
|
+
* Sourced from the upstream Solidity at:
|
|
5
|
+
* https://github.com/erc-8004/erc-8004-contracts/blob/main/contracts/
|
|
6
|
+
*
|
|
7
|
+
* We deliberately do NOT vendor the full ABI — only the function and event
|
|
8
|
+
* signatures the SDK touches. If you need a method that's not here, add it
|
|
9
|
+
* (it's an additive change) rather than swapping in the full upstream ABI.
|
|
10
|
+
*
|
|
11
|
+
* Marked `as const` so viem can infer return types from the ABI shape.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ERC8004_IDENTITY_ABI: readonly [{
|
|
14
|
+
readonly type: "function";
|
|
15
|
+
readonly name: "register";
|
|
16
|
+
readonly stateMutability: "nonpayable";
|
|
17
|
+
readonly inputs: readonly [];
|
|
18
|
+
readonly outputs: readonly [{
|
|
19
|
+
readonly name: "agentId";
|
|
20
|
+
readonly type: "uint256";
|
|
21
|
+
}];
|
|
22
|
+
}, {
|
|
23
|
+
readonly type: "function";
|
|
24
|
+
readonly name: "register";
|
|
25
|
+
readonly stateMutability: "nonpayable";
|
|
26
|
+
readonly inputs: readonly [{
|
|
27
|
+
readonly name: "agentURI";
|
|
28
|
+
readonly type: "string";
|
|
29
|
+
}];
|
|
30
|
+
readonly outputs: readonly [{
|
|
31
|
+
readonly name: "agentId";
|
|
32
|
+
readonly type: "uint256";
|
|
33
|
+
}];
|
|
34
|
+
}, {
|
|
35
|
+
readonly type: "function";
|
|
36
|
+
readonly name: "register";
|
|
37
|
+
readonly stateMutability: "nonpayable";
|
|
38
|
+
readonly inputs: readonly [{
|
|
39
|
+
readonly name: "agentURI";
|
|
40
|
+
readonly type: "string";
|
|
41
|
+
}, {
|
|
42
|
+
readonly name: "metadata";
|
|
43
|
+
readonly type: "tuple[]";
|
|
44
|
+
readonly components: readonly [{
|
|
45
|
+
readonly name: "metadataKey";
|
|
46
|
+
readonly type: "string";
|
|
47
|
+
}, {
|
|
48
|
+
readonly name: "metadataValue";
|
|
49
|
+
readonly type: "bytes";
|
|
50
|
+
}];
|
|
51
|
+
}];
|
|
52
|
+
readonly outputs: readonly [{
|
|
53
|
+
readonly name: "agentId";
|
|
54
|
+
readonly type: "uint256";
|
|
55
|
+
}];
|
|
56
|
+
}, {
|
|
57
|
+
readonly type: "function";
|
|
58
|
+
readonly name: "setAgentURI";
|
|
59
|
+
readonly stateMutability: "nonpayable";
|
|
60
|
+
readonly inputs: readonly [{
|
|
61
|
+
readonly name: "agentId";
|
|
62
|
+
readonly type: "uint256";
|
|
63
|
+
}, {
|
|
64
|
+
readonly name: "newURI";
|
|
65
|
+
readonly type: "string";
|
|
66
|
+
}];
|
|
67
|
+
readonly outputs: readonly [];
|
|
68
|
+
}, {
|
|
69
|
+
readonly type: "function";
|
|
70
|
+
readonly name: "setMetadata";
|
|
71
|
+
readonly stateMutability: "nonpayable";
|
|
72
|
+
readonly inputs: readonly [{
|
|
73
|
+
readonly name: "agentId";
|
|
74
|
+
readonly type: "uint256";
|
|
75
|
+
}, {
|
|
76
|
+
readonly name: "metadataKey";
|
|
77
|
+
readonly type: "string";
|
|
78
|
+
}, {
|
|
79
|
+
readonly name: "metadataValue";
|
|
80
|
+
readonly type: "bytes";
|
|
81
|
+
}];
|
|
82
|
+
readonly outputs: readonly [];
|
|
83
|
+
}, {
|
|
84
|
+
readonly type: "function";
|
|
85
|
+
readonly name: "setAgentWallet";
|
|
86
|
+
readonly stateMutability: "nonpayable";
|
|
87
|
+
readonly inputs: readonly [{
|
|
88
|
+
readonly name: "agentId";
|
|
89
|
+
readonly type: "uint256";
|
|
90
|
+
}, {
|
|
91
|
+
readonly name: "newWallet";
|
|
92
|
+
readonly type: "address";
|
|
93
|
+
}, {
|
|
94
|
+
readonly name: "deadline";
|
|
95
|
+
readonly type: "uint256";
|
|
96
|
+
}, {
|
|
97
|
+
readonly name: "signature";
|
|
98
|
+
readonly type: "bytes";
|
|
99
|
+
}];
|
|
100
|
+
readonly outputs: readonly [];
|
|
101
|
+
}, {
|
|
102
|
+
readonly type: "function";
|
|
103
|
+
readonly name: "unsetAgentWallet";
|
|
104
|
+
readonly stateMutability: "nonpayable";
|
|
105
|
+
readonly inputs: readonly [{
|
|
106
|
+
readonly name: "agentId";
|
|
107
|
+
readonly type: "uint256";
|
|
108
|
+
}];
|
|
109
|
+
readonly outputs: readonly [];
|
|
110
|
+
}, {
|
|
111
|
+
readonly type: "function";
|
|
112
|
+
readonly name: "getAgentWallet";
|
|
113
|
+
readonly stateMutability: "view";
|
|
114
|
+
readonly inputs: readonly [{
|
|
115
|
+
readonly name: "agentId";
|
|
116
|
+
readonly type: "uint256";
|
|
117
|
+
}];
|
|
118
|
+
readonly outputs: readonly [{
|
|
119
|
+
readonly name: "";
|
|
120
|
+
readonly type: "address";
|
|
121
|
+
}];
|
|
122
|
+
}, {
|
|
123
|
+
readonly type: "function";
|
|
124
|
+
readonly name: "getMetadata";
|
|
125
|
+
readonly stateMutability: "view";
|
|
126
|
+
readonly inputs: readonly [{
|
|
127
|
+
readonly name: "agentId";
|
|
128
|
+
readonly type: "uint256";
|
|
129
|
+
}, {
|
|
130
|
+
readonly name: "metadataKey";
|
|
131
|
+
readonly type: "string";
|
|
132
|
+
}];
|
|
133
|
+
readonly outputs: readonly [{
|
|
134
|
+
readonly name: "";
|
|
135
|
+
readonly type: "bytes";
|
|
136
|
+
}];
|
|
137
|
+
}, {
|
|
138
|
+
readonly type: "function";
|
|
139
|
+
readonly name: "isAuthorizedOrOwner";
|
|
140
|
+
readonly stateMutability: "view";
|
|
141
|
+
readonly inputs: readonly [{
|
|
142
|
+
readonly name: "spender";
|
|
143
|
+
readonly type: "address";
|
|
144
|
+
}, {
|
|
145
|
+
readonly name: "agentId";
|
|
146
|
+
readonly type: "uint256";
|
|
147
|
+
}];
|
|
148
|
+
readonly outputs: readonly [{
|
|
149
|
+
readonly name: "";
|
|
150
|
+
readonly type: "bool";
|
|
151
|
+
}];
|
|
152
|
+
}, {
|
|
153
|
+
readonly type: "function";
|
|
154
|
+
readonly name: "ownerOf";
|
|
155
|
+
readonly stateMutability: "view";
|
|
156
|
+
readonly inputs: readonly [{
|
|
157
|
+
readonly name: "tokenId";
|
|
158
|
+
readonly type: "uint256";
|
|
159
|
+
}];
|
|
160
|
+
readonly outputs: readonly [{
|
|
161
|
+
readonly name: "";
|
|
162
|
+
readonly type: "address";
|
|
163
|
+
}];
|
|
164
|
+
}, {
|
|
165
|
+
readonly type: "function";
|
|
166
|
+
readonly name: "tokenURI";
|
|
167
|
+
readonly stateMutability: "view";
|
|
168
|
+
readonly inputs: readonly [{
|
|
169
|
+
readonly name: "tokenId";
|
|
170
|
+
readonly type: "uint256";
|
|
171
|
+
}];
|
|
172
|
+
readonly outputs: readonly [{
|
|
173
|
+
readonly name: "";
|
|
174
|
+
readonly type: "string";
|
|
175
|
+
}];
|
|
176
|
+
}, {
|
|
177
|
+
readonly type: "event";
|
|
178
|
+
readonly name: "Registered";
|
|
179
|
+
readonly inputs: readonly [{
|
|
180
|
+
readonly name: "agentId";
|
|
181
|
+
readonly type: "uint256";
|
|
182
|
+
readonly indexed: true;
|
|
183
|
+
}, {
|
|
184
|
+
readonly name: "agentURI";
|
|
185
|
+
readonly type: "string";
|
|
186
|
+
readonly indexed: false;
|
|
187
|
+
}, {
|
|
188
|
+
readonly name: "owner";
|
|
189
|
+
readonly type: "address";
|
|
190
|
+
readonly indexed: true;
|
|
191
|
+
}];
|
|
192
|
+
}, {
|
|
193
|
+
readonly type: "event";
|
|
194
|
+
readonly name: "URIUpdated";
|
|
195
|
+
readonly inputs: readonly [{
|
|
196
|
+
readonly name: "agentId";
|
|
197
|
+
readonly type: "uint256";
|
|
198
|
+
readonly indexed: true;
|
|
199
|
+
}, {
|
|
200
|
+
readonly name: "newURI";
|
|
201
|
+
readonly type: "string";
|
|
202
|
+
readonly indexed: false;
|
|
203
|
+
}, {
|
|
204
|
+
readonly name: "updatedBy";
|
|
205
|
+
readonly type: "address";
|
|
206
|
+
readonly indexed: true;
|
|
207
|
+
}];
|
|
208
|
+
}, {
|
|
209
|
+
readonly type: "event";
|
|
210
|
+
readonly name: "MetadataSet";
|
|
211
|
+
readonly inputs: readonly [{
|
|
212
|
+
readonly name: "agentId";
|
|
213
|
+
readonly type: "uint256";
|
|
214
|
+
readonly indexed: true;
|
|
215
|
+
}, {
|
|
216
|
+
readonly name: "indexedMetadataKey";
|
|
217
|
+
readonly type: "string";
|
|
218
|
+
readonly indexed: true;
|
|
219
|
+
}, {
|
|
220
|
+
readonly name: "metadataKey";
|
|
221
|
+
readonly type: "string";
|
|
222
|
+
readonly indexed: false;
|
|
223
|
+
}, {
|
|
224
|
+
readonly name: "metadataValue";
|
|
225
|
+
readonly type: "bytes";
|
|
226
|
+
readonly indexed: false;
|
|
227
|
+
}];
|
|
228
|
+
}];
|
|
229
|
+
export declare const ERC8004_REPUTATION_ABI: readonly [{
|
|
230
|
+
readonly type: "function";
|
|
231
|
+
readonly name: "giveFeedback";
|
|
232
|
+
readonly stateMutability: "nonpayable";
|
|
233
|
+
readonly inputs: readonly [{
|
|
234
|
+
readonly name: "agentId";
|
|
235
|
+
readonly type: "uint256";
|
|
236
|
+
}, {
|
|
237
|
+
readonly name: "value";
|
|
238
|
+
readonly type: "int128";
|
|
239
|
+
}, {
|
|
240
|
+
readonly name: "valueDecimals";
|
|
241
|
+
readonly type: "uint8";
|
|
242
|
+
}, {
|
|
243
|
+
readonly name: "tag1";
|
|
244
|
+
readonly type: "string";
|
|
245
|
+
}, {
|
|
246
|
+
readonly name: "tag2";
|
|
247
|
+
readonly type: "string";
|
|
248
|
+
}, {
|
|
249
|
+
readonly name: "endpoint";
|
|
250
|
+
readonly type: "string";
|
|
251
|
+
}, {
|
|
252
|
+
readonly name: "feedbackURI";
|
|
253
|
+
readonly type: "string";
|
|
254
|
+
}, {
|
|
255
|
+
readonly name: "feedbackHash";
|
|
256
|
+
readonly type: "bytes32";
|
|
257
|
+
}];
|
|
258
|
+
readonly outputs: readonly [];
|
|
259
|
+
}, {
|
|
260
|
+
readonly type: "function";
|
|
261
|
+
readonly name: "revokeFeedback";
|
|
262
|
+
readonly stateMutability: "nonpayable";
|
|
263
|
+
readonly inputs: readonly [{
|
|
264
|
+
readonly name: "agentId";
|
|
265
|
+
readonly type: "uint256";
|
|
266
|
+
}, {
|
|
267
|
+
readonly name: "feedbackIndex";
|
|
268
|
+
readonly type: "uint64";
|
|
269
|
+
}];
|
|
270
|
+
readonly outputs: readonly [];
|
|
271
|
+
}, {
|
|
272
|
+
readonly type: "event";
|
|
273
|
+
readonly name: "NewFeedback";
|
|
274
|
+
readonly inputs: readonly [{
|
|
275
|
+
readonly name: "agentId";
|
|
276
|
+
readonly type: "uint256";
|
|
277
|
+
readonly indexed: true;
|
|
278
|
+
}, {
|
|
279
|
+
readonly name: "clientAddress";
|
|
280
|
+
readonly type: "address";
|
|
281
|
+
readonly indexed: true;
|
|
282
|
+
}, {
|
|
283
|
+
readonly name: "feedbackIndex";
|
|
284
|
+
readonly type: "uint64";
|
|
285
|
+
readonly indexed: false;
|
|
286
|
+
}, {
|
|
287
|
+
readonly name: "value";
|
|
288
|
+
readonly type: "int128";
|
|
289
|
+
readonly indexed: false;
|
|
290
|
+
}, {
|
|
291
|
+
readonly name: "valueDecimals";
|
|
292
|
+
readonly type: "uint8";
|
|
293
|
+
readonly indexed: false;
|
|
294
|
+
}, {
|
|
295
|
+
readonly name: "indexedTag1";
|
|
296
|
+
readonly type: "string";
|
|
297
|
+
readonly indexed: true;
|
|
298
|
+
}, {
|
|
299
|
+
readonly name: "tag1";
|
|
300
|
+
readonly type: "string";
|
|
301
|
+
readonly indexed: false;
|
|
302
|
+
}, {
|
|
303
|
+
readonly name: "tag2";
|
|
304
|
+
readonly type: "string";
|
|
305
|
+
readonly indexed: false;
|
|
306
|
+
}, {
|
|
307
|
+
readonly name: "endpoint";
|
|
308
|
+
readonly type: "string";
|
|
309
|
+
readonly indexed: false;
|
|
310
|
+
}, {
|
|
311
|
+
readonly name: "feedbackURI";
|
|
312
|
+
readonly type: "string";
|
|
313
|
+
readonly indexed: false;
|
|
314
|
+
}, {
|
|
315
|
+
readonly name: "feedbackHash";
|
|
316
|
+
readonly type: "bytes32";
|
|
317
|
+
readonly indexed: false;
|
|
318
|
+
}];
|
|
319
|
+
}, {
|
|
320
|
+
readonly type: "event";
|
|
321
|
+
readonly name: "FeedbackRevoked";
|
|
322
|
+
readonly inputs: readonly [{
|
|
323
|
+
readonly name: "agentId";
|
|
324
|
+
readonly type: "uint256";
|
|
325
|
+
readonly indexed: true;
|
|
326
|
+
}, {
|
|
327
|
+
readonly name: "clientAddress";
|
|
328
|
+
readonly type: "address";
|
|
329
|
+
readonly indexed: true;
|
|
330
|
+
}, {
|
|
331
|
+
readonly name: "feedbackIndex";
|
|
332
|
+
readonly type: "uint64";
|
|
333
|
+
readonly indexed: true;
|
|
334
|
+
}];
|
|
335
|
+
}];
|
|
336
|
+
//# sourceMappingURL=abis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../../../src/identity/erc8004/abis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiJvB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDzB,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers around the canonical Celo ERC-8004 Identity Registry.
|
|
3
|
+
*
|
|
4
|
+
* The Identity Registry is the source of truth for who an agent is:
|
|
5
|
+
*
|
|
6
|
+
* - Registration mints an ERC-721 NFT to `msg.sender`. The tokenId is the
|
|
7
|
+
* agentId we use everywhere else.
|
|
8
|
+
* - `getAgentWallet(agentId)` returns the address authorized to *sign on the
|
|
9
|
+
* agent's behalf* — separate from `ownerOf(agentId)` which holds the NFT.
|
|
10
|
+
* - On NFT transfer the canonical contract clears `agentWallet`, so the new
|
|
11
|
+
* holder must re-register their signing wallet (via `setAgentWallet`).
|
|
12
|
+
*
|
|
13
|
+
* All helpers take a viem `Client` and the canonical Identity Registry
|
|
14
|
+
* `address` for the chain you're targeting. Pull the address from
|
|
15
|
+
* `getEnvoyAddresses(chainId).identityRegistry`.
|
|
16
|
+
*/
|
|
17
|
+
import { type Address, type Hash, type Hex, type PublicClient, type WalletClient, encodePacked, hexToBytes } from 'viem';
|
|
18
|
+
import type { AgentId, CanonicalAgent, MetadataEntry } from './types';
|
|
19
|
+
export interface RegisterAgentArgs {
|
|
20
|
+
/** Optional URI of the agent card JSON (name, capabilities, endpoints, ...). */
|
|
21
|
+
agentURI?: string;
|
|
22
|
+
/** Optional additional key/value metadata. Reserved key `"agentWallet"` is rejected on-chain. */
|
|
23
|
+
metadata?: MetadataEntry[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Register a new agent on the canonical Identity Registry. The caller's address
|
|
27
|
+
* becomes the NFT owner AND the initial `agentWallet`. Returns the minted
|
|
28
|
+
* `agentId` (parsed from the `Registered` event in the receipt).
|
|
29
|
+
*
|
|
30
|
+
* Three overloads are exposed on the contract; this helper picks the one whose
|
|
31
|
+
* input shape matches the arguments you pass (no URI / URI only / URI + metadata).
|
|
32
|
+
*/
|
|
33
|
+
export declare function registerAgent(walletClient: WalletClient, publicClient: PublicClient, registryAddress: Address, args?: RegisterAgentArgs): Promise<{
|
|
34
|
+
agentId: AgentId;
|
|
35
|
+
txHash: Hash;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Rotate the agent's operational signing wallet. The new wallet (or its owner, in
|
|
39
|
+
* the ERC-1271 case) must produce a signature over the EIP-712 `AgentWalletSet`
|
|
40
|
+
* struct: `(uint256 agentId, address newWallet, address owner, uint256 deadline)`.
|
|
41
|
+
*
|
|
42
|
+
* The canonical contract verifies both ECDSA (EOA / 7702) and ERC-1271 paths.
|
|
43
|
+
* Build the signature off-chain with `signAgentWalletRotation` below.
|
|
44
|
+
*/
|
|
45
|
+
export declare function setAgentWallet(walletClient: WalletClient, registryAddress: Address, args: {
|
|
46
|
+
agentId: AgentId;
|
|
47
|
+
newWallet: Address;
|
|
48
|
+
deadline: bigint;
|
|
49
|
+
signature: Hex;
|
|
50
|
+
}): Promise<Hash>;
|
|
51
|
+
/** Clear the agent's operational signing wallet. Effectively pauses on-chain payments. */
|
|
52
|
+
export declare function unsetAgentWallet(walletClient: WalletClient, registryAddress: Address, agentId: AgentId): Promise<Hash>;
|
|
53
|
+
/** Update the agent's URI (e.g. when the agent card moves IPFS gateways). */
|
|
54
|
+
export declare function setAgentURI(walletClient: WalletClient, registryAddress: Address, agentId: AgentId, newURI: string): Promise<Hash>;
|
|
55
|
+
/** Set a single metadata key/value pair. Reserved key `"agentWallet"` is rejected on-chain. */
|
|
56
|
+
export declare function setMetadata(walletClient: WalletClient, registryAddress: Address, agentId: AgentId, key: string, value: Hex): Promise<Hash>;
|
|
57
|
+
export declare function getAgentWallet(publicClient: PublicClient, registryAddress: Address, agentId: AgentId): Promise<Address>;
|
|
58
|
+
export declare function getAgentOwner(publicClient: PublicClient, registryAddress: Address, agentId: AgentId): Promise<Address>;
|
|
59
|
+
export declare function getAgentURI(publicClient: PublicClient, registryAddress: Address, agentId: AgentId): Promise<string>;
|
|
60
|
+
export declare function getMetadata(publicClient: PublicClient, registryAddress: Address, agentId: AgentId, key: string): Promise<Hex>;
|
|
61
|
+
export declare function isAuthorizedOrOwner(publicClient: PublicClient, registryAddress: Address, spender: Address, agentId: AgentId): Promise<boolean>;
|
|
62
|
+
/** Aggregate read — one round-trip per field. Convenience wrapper. */
|
|
63
|
+
export declare function getAgent(publicClient: PublicClient, registryAddress: Address, agentId: AgentId): Promise<CanonicalAgent>;
|
|
64
|
+
/**
|
|
65
|
+
* EIP-712 typed-data payload the new wallet must sign before `setAgentWallet`
|
|
66
|
+
* can be called. The canonical contract's domain is
|
|
67
|
+
* `EIP712Domain("ERC8004IdentityRegistry","1",chainId,verifyingContract)`.
|
|
68
|
+
*
|
|
69
|
+
* Pass the result to `walletClient.signTypedData(...)` from the *new* wallet (or
|
|
70
|
+
* its ERC-1271 owner), then pass the signature into `setAgentWallet`.
|
|
71
|
+
*/
|
|
72
|
+
export declare function agentWalletRotationTypedData(args: {
|
|
73
|
+
chainId: number;
|
|
74
|
+
registryAddress: Address;
|
|
75
|
+
agentId: AgentId;
|
|
76
|
+
newWallet: Address;
|
|
77
|
+
/** Current ERC-721 owner of the agent NFT. */
|
|
78
|
+
owner: Address;
|
|
79
|
+
deadline: bigint;
|
|
80
|
+
}): {
|
|
81
|
+
domain: {
|
|
82
|
+
name: string;
|
|
83
|
+
version: string;
|
|
84
|
+
chainId: number;
|
|
85
|
+
verifyingContract: `0x${string}`;
|
|
86
|
+
};
|
|
87
|
+
types: {
|
|
88
|
+
AgentWalletSet: {
|
|
89
|
+
name: string;
|
|
90
|
+
type: string;
|
|
91
|
+
}[];
|
|
92
|
+
};
|
|
93
|
+
primaryType: "AgentWalletSet";
|
|
94
|
+
message: {
|
|
95
|
+
agentId: bigint;
|
|
96
|
+
newWallet: `0x${string}`;
|
|
97
|
+
owner: `0x${string}`;
|
|
98
|
+
deadline: bigint;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
/** Encode a UTF-8 string as a metadata value. Use for `setMetadata(...)`. */
|
|
102
|
+
export declare const encodeStringMetadata: (s: string) => Hex;
|
|
103
|
+
/** Encode raw bytes as a metadata value. */
|
|
104
|
+
export declare const encodeBytesMetadata: (b: Uint8Array) => Hex;
|
|
105
|
+
/** Compute the keccak256 hash an agent card URI's contents would have. Useful for `feedbackHash` etc. */
|
|
106
|
+
export declare function contentHash(bytes: Uint8Array): Hex;
|
|
107
|
+
/** Re-export viem encoder so callers don't have to import viem directly for trivial work. */
|
|
108
|
+
export { encodePacked, hexToBytes };
|
|
109
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../src/identity/erc8004/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Celo ERC-8004 helpers — Identity + Reputation registries.
|
|
3
|
+
*
|
|
4
|
+
* These wrap the read/write surface envoy needs from the canonical contracts
|
|
5
|
+
* deployed on Celo (mainnet + Sepolia). All helpers are pure functions taking
|
|
6
|
+
* a viem client; no global state, no hidden singletons.
|
|
7
|
+
*
|
|
8
|
+
* Pull the registry addresses from `getEnvoyAddresses(chainId)`.
|
|
9
|
+
*/
|
|
10
|
+
export { registerAgent, setAgentWallet, unsetAgentWallet, setAgentURI, setMetadata, getAgentWallet, getAgentOwner, getAgentURI, getMetadata, isAuthorizedOrOwner, getAgent, agentWalletRotationTypedData, encodeStringMetadata, encodeBytesMetadata, contentHash, } from './identity';
|
|
11
|
+
export type { RegisterAgentArgs } from './identity';
|
|
12
|
+
export { giveFeedback, revokeFeedback, makeScoreFeedback } from './reputation';
|
|
13
|
+
export { ERC8004_IDENTITY_ABI, ERC8004_REPUTATION_ABI } from './abis';
|
|
14
|
+
export type { AgentId, CanonicalAgent, MetadataEntry, FeedbackArgs } from './types';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/identity/erc8004/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AACtE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|