@oobe-protocol-labs/synapse-sap-sdk 0.13.0 → 0.15.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/dist/cjs/accounts/index.js +286 -0
- package/dist/cjs/accounts/index.js.map +1 -0
- package/dist/cjs/client.js +125 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/constants/seeds.js +9 -9
- package/dist/cjs/constants/seeds.js.map +1 -1
- package/dist/cjs/constants.js +66 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/errors.js +260 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/events/index.js +37 -123
- package/dist/cjs/events/index.js.map +1 -1
- package/dist/cjs/idlTypes.js +4 -0
- package/dist/cjs/idlTypes.js.map +1 -0
- package/dist/cjs/index.js +75 -241
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instructions/agent.js +90 -0
- package/dist/cjs/instructions/agent.js.map +1 -0
- package/dist/cjs/instructions/attestation.js +113 -0
- package/dist/cjs/instructions/attestation.js.map +1 -0
- package/dist/cjs/instructions/digest.js +29 -0
- package/dist/cjs/instructions/digest.js.map +1 -0
- package/dist/cjs/instructions/dispute.js +117 -0
- package/dist/cjs/instructions/dispute.js.map +1 -0
- package/dist/cjs/instructions/escrow.js +102 -0
- package/dist/cjs/instructions/escrow.js.map +1 -0
- package/dist/cjs/instructions/global.js +29 -0
- package/dist/cjs/instructions/global.js.map +1 -0
- package/dist/cjs/instructions/index.js +31 -0
- package/dist/cjs/instructions/index.js.map +1 -0
- package/dist/cjs/instructions/indexing.js +222 -0
- package/dist/cjs/instructions/indexing.js.map +1 -0
- package/dist/cjs/instructions/misc.js +74 -0
- package/dist/cjs/instructions/misc.js.map +1 -0
- package/dist/cjs/instructions/session.js +90 -0
- package/dist/cjs/instructions/session.js.map +1 -0
- package/dist/cjs/instructions/staking.js +133 -0
- package/dist/cjs/instructions/staking.js.map +1 -0
- package/dist/cjs/instructions/subscription.js +81 -0
- package/dist/cjs/instructions/subscription.js.map +1 -0
- package/dist/cjs/instructions/tools.js +110 -0
- package/dist/cjs/instructions/tools.js.map +1 -0
- package/dist/cjs/instructions/vault.js +107 -0
- package/dist/cjs/instructions/vault.js.map +1 -0
- package/dist/cjs/pdas/index.js +120 -0
- package/dist/cjs/pdas/index.js.map +1 -0
- package/dist/cjs/registries/fairscale.js +1 -1
- package/dist/cjs/registries/fairscale.js.map +1 -1
- package/dist/cjs/registries/metaplex-bridge.js +1 -1
- package/dist/cjs/registries/metaplex-bridge.js.map +1 -1
- package/dist/cjs/types.js +45 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/escrow-validation.js +1 -1
- package/dist/cjs/utils/escrow-validation.js.map +1 -1
- package/dist/cjs/utils/index.js +32 -83
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/merchant-validator.js +5 -5
- package/dist/cjs/utils/merchant-validator.js.map +1 -1
- package/dist/cjs/utils/validate.js +236 -0
- package/dist/cjs/utils/validate.js.map +1 -0
- package/dist/cjs/utils/volume-curve.js +1 -1
- package/dist/cjs/utils/volume-curve.js.map +1 -1
- package/dist/esm/accounts/index.d.ts +11 -0
- package/dist/esm/accounts/index.d.ts.map +1 -0
- package/dist/esm/accounts/index.js +273 -0
- package/dist/esm/accounts/index.js.map +1 -0
- package/dist/esm/client.d.ts +55 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +87 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/constants/addresses.d.ts +117 -0
- package/dist/esm/constants/addresses.d.ts.map +1 -0
- package/dist/esm/constants/index.d.ts +31 -0
- package/dist/esm/constants/index.d.ts.map +1 -0
- package/dist/esm/constants/limits.d.ts +149 -0
- package/dist/esm/constants/limits.d.ts.map +1 -0
- package/{src/constants/network.ts → dist/esm/constants/network.d.ts} +23 -31
- package/dist/esm/constants/network.d.ts.map +1 -0
- package/{src/constants/payments.ts → dist/esm/constants/payments.d.ts} +11 -35
- package/dist/esm/constants/payments.d.ts.map +1 -0
- package/{src/constants/programs.ts → dist/esm/constants/programs.d.ts} +6 -20
- package/dist/esm/constants/programs.d.ts.map +1 -0
- package/dist/esm/constants/seeds.d.ts +80 -0
- package/dist/esm/constants/seeds.d.ts.map +1 -0
- package/dist/esm/constants/seeds.js +9 -9
- package/dist/esm/constants/seeds.js.map +1 -1
- package/dist/esm/constants.d.ts +39 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +41 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/core/client.d.ts +452 -0
- package/dist/esm/core/client.d.ts.map +1 -0
- package/dist/esm/core/connection.d.ts +305 -0
- package/dist/esm/core/connection.d.ts.map +1 -0
- package/{src/core/index.ts → dist/esm/core/index.d.ts} +1 -1
- package/dist/esm/core/index.d.ts.map +1 -0
- package/dist/esm/errors/index.d.ts +276 -0
- package/dist/esm/errors/index.d.ts.map +1 -0
- package/dist/esm/errors.d.ts +119 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +252 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/events/geyser.d.ts +150 -0
- package/dist/esm/events/geyser.d.ts.map +1 -0
- package/dist/esm/events/index.d.ts +17 -0
- package/dist/esm/events/index.d.ts.map +1 -0
- package/dist/esm/events/index.js +34 -122
- package/dist/esm/events/index.js.map +1 -1
- package/{src/idl/index.ts → dist/esm/idl/index.d.ts} +9 -15
- package/dist/esm/idl/index.d.ts.map +1 -0
- package/dist/esm/idlTypes.d.ts +925 -0
- package/dist/esm/idlTypes.d.ts.map +1 -0
- package/dist/esm/idlTypes.js +3 -0
- package/dist/esm/idlTypes.js.map +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +15 -88
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instructions/agent.d.ts +71 -0
- package/dist/esm/instructions/agent.d.ts.map +1 -0
- package/dist/esm/instructions/agent.js +86 -0
- package/dist/esm/instructions/agent.js.map +1 -0
- package/dist/esm/instructions/attestation.d.ts +76 -0
- package/dist/esm/instructions/attestation.d.ts.map +1 -0
- package/dist/esm/instructions/attestation.js +109 -0
- package/dist/esm/instructions/attestation.js.map +1 -0
- package/dist/esm/instructions/digest.d.ts +20 -0
- package/dist/esm/instructions/digest.d.ts.map +1 -0
- package/dist/esm/instructions/digest.js +25 -0
- package/dist/esm/instructions/digest.js.map +1 -0
- package/dist/esm/instructions/dispute.d.ts +81 -0
- package/dist/esm/instructions/dispute.d.ts.map +1 -0
- package/dist/esm/instructions/dispute.js +113 -0
- package/dist/esm/instructions/dispute.js.map +1 -0
- package/dist/esm/instructions/escrow.d.ts +79 -0
- package/dist/esm/instructions/escrow.d.ts.map +1 -0
- package/dist/esm/instructions/escrow.js +98 -0
- package/dist/esm/instructions/escrow.js.map +1 -0
- package/dist/esm/instructions/global.d.ts +14 -0
- package/dist/esm/instructions/global.d.ts.map +1 -0
- package/dist/esm/instructions/global.js +25 -0
- package/dist/esm/instructions/global.js.map +1 -0
- package/dist/esm/instructions/index.d.ts +14 -0
- package/dist/esm/instructions/index.d.ts.map +1 -0
- package/dist/esm/instructions/index.js +15 -0
- package/dist/esm/instructions/index.js.map +1 -0
- package/dist/esm/instructions/indexing.d.ts +150 -0
- package/dist/esm/instructions/indexing.d.ts.map +1 -0
- package/dist/esm/instructions/indexing.js +218 -0
- package/dist/esm/instructions/indexing.js.map +1 -0
- package/dist/esm/instructions/memory.d.ts +8 -0
- package/dist/esm/instructions/memory.d.ts.map +1 -0
- package/dist/esm/instructions/memory.js +234 -0
- package/dist/esm/instructions/memory.js.map +1 -0
- package/dist/esm/instructions/misc.d.ts +50 -0
- package/dist/esm/instructions/misc.d.ts.map +1 -0
- package/dist/esm/instructions/misc.js +70 -0
- package/dist/esm/instructions/misc.js.map +1 -0
- package/dist/esm/instructions/session.d.ts +57 -0
- package/dist/esm/instructions/session.d.ts.map +1 -0
- package/dist/esm/instructions/session.js +86 -0
- package/dist/esm/instructions/session.js.map +1 -0
- package/dist/esm/instructions/staking.d.ts +85 -0
- package/dist/esm/instructions/staking.d.ts.map +1 -0
- package/dist/esm/instructions/staking.js +129 -0
- package/dist/esm/instructions/staking.js.map +1 -0
- package/dist/esm/instructions/subscription.d.ts +50 -0
- package/dist/esm/instructions/subscription.d.ts.map +1 -0
- package/dist/esm/instructions/subscription.js +77 -0
- package/dist/esm/instructions/subscription.js.map +1 -0
- package/dist/esm/instructions/tools.d.ts +88 -0
- package/dist/esm/instructions/tools.d.ts.map +1 -0
- package/dist/esm/instructions/tools.js +106 -0
- package/dist/esm/instructions/tools.js.map +1 -0
- package/dist/esm/instructions/vault.d.ts +84 -0
- package/dist/esm/instructions/vault.d.ts.map +1 -0
- package/dist/esm/instructions/vault.js +103 -0
- package/dist/esm/instructions/vault.js.map +1 -0
- package/dist/esm/modules/agent.d.ts +166 -0
- package/dist/esm/modules/agent.d.ts.map +1 -0
- package/dist/esm/modules/attestation.d.ts +96 -0
- package/dist/esm/modules/attestation.d.ts.map +1 -0
- package/dist/esm/modules/base.d.ts +161 -0
- package/dist/esm/modules/base.d.ts.map +1 -0
- package/dist/esm/modules/escrow-v2.d.ts +169 -0
- package/dist/esm/modules/escrow-v2.d.ts.map +1 -0
- package/dist/esm/modules/feedback.d.ts +105 -0
- package/dist/esm/modules/feedback.d.ts.map +1 -0
- package/{src/modules/index.ts → dist/esm/modules/index.d.ts} +1 -1
- package/dist/esm/modules/index.d.ts.map +1 -0
- package/dist/esm/modules/indexing.d.ts +200 -0
- package/dist/esm/modules/indexing.d.ts.map +1 -0
- package/dist/esm/modules/ledger.d.ts +150 -0
- package/dist/esm/modules/ledger.d.ts.map +1 -0
- package/dist/esm/modules/receipt.d.ts +77 -0
- package/dist/esm/modules/receipt.d.ts.map +1 -0
- package/dist/esm/modules/staking.d.ts +51 -0
- package/dist/esm/modules/staking.d.ts.map +1 -0
- package/dist/esm/modules/subscription.d.ts +33 -0
- package/dist/esm/modules/subscription.d.ts.map +1 -0
- package/dist/esm/modules/tools.d.ts +182 -0
- package/dist/esm/modules/tools.d.ts.map +1 -0
- package/dist/esm/modules/vault.d.ts +240 -0
- package/dist/esm/modules/vault.d.ts.map +1 -0
- package/dist/esm/parser/client.d.ts +123 -0
- package/dist/esm/parser/client.d.ts.map +1 -0
- package/dist/esm/parser/complete.d.ts +90 -0
- package/dist/esm/parser/complete.d.ts.map +1 -0
- package/{src/parser/index.ts → dist/esm/parser/index.d.ts} +6 -37
- package/dist/esm/parser/index.d.ts.map +1 -0
- package/dist/esm/parser/inner.d.ts +114 -0
- package/dist/esm/parser/inner.d.ts.map +1 -0
- package/{src/parser/instructions.ts → dist/esm/parser/instructions.d.ts} +4 -63
- package/dist/esm/parser/instructions.d.ts.map +1 -0
- package/dist/esm/parser/transaction.d.ts +77 -0
- package/dist/esm/parser/transaction.d.ts.map +1 -0
- package/dist/esm/parser/types.d.ts +154 -0
- package/dist/esm/parser/types.d.ts.map +1 -0
- package/{src/pda/index.ts → dist/esm/pda/index.d.ts} +33 -442
- package/dist/esm/pda/index.d.ts.map +1 -0
- package/dist/esm/pdas/index.d.ts +37 -0
- package/dist/esm/pdas/index.d.ts.map +1 -0
- package/dist/esm/pdas/index.js +101 -0
- package/dist/esm/pdas/index.js.map +1 -0
- package/dist/esm/plugin/index.d.ts +171 -0
- package/dist/esm/plugin/index.d.ts.map +1 -0
- package/dist/esm/plugin/protocols.d.ts +152 -0
- package/dist/esm/plugin/protocols.d.ts.map +1 -0
- package/dist/esm/plugin/schemas.d.ts +829 -0
- package/dist/esm/plugin/schemas.d.ts.map +1 -0
- package/dist/esm/postgres/adapter.d.ts +355 -0
- package/dist/esm/postgres/adapter.d.ts.map +1 -0
- package/dist/esm/postgres/index.d.ts +24 -0
- package/dist/esm/postgres/index.d.ts.map +1 -0
- package/dist/esm/postgres/serializers.d.ts +30 -0
- package/dist/esm/postgres/serializers.d.ts.map +1 -0
- package/dist/esm/postgres/sync.d.ts +156 -0
- package/dist/esm/postgres/sync.d.ts.map +1 -0
- package/dist/esm/postgres/types.d.ts +167 -0
- package/dist/esm/postgres/types.d.ts.map +1 -0
- package/dist/esm/registries/builder.d.ts +340 -0
- package/dist/esm/registries/builder.d.ts.map +1 -0
- package/dist/esm/registries/discovery.d.ts +333 -0
- package/dist/esm/registries/discovery.d.ts.map +1 -0
- package/dist/esm/registries/fairscale.d.ts +680 -0
- package/dist/esm/registries/fairscale.d.ts.map +1 -0
- package/dist/esm/registries/fairscale.js +1 -1
- package/dist/esm/registries/fairscale.js.map +1 -1
- package/dist/esm/registries/index.d.ts +52 -0
- package/dist/esm/registries/index.d.ts.map +1 -0
- package/dist/esm/registries/metaplex-bridge.d.ts +489 -0
- package/dist/esm/registries/metaplex-bridge.d.ts.map +1 -0
- package/dist/esm/registries/metaplex-bridge.js +1 -1
- package/dist/esm/registries/metaplex-bridge.js.map +1 -1
- package/dist/esm/registries/session.d.ts +323 -0
- package/dist/esm/registries/session.d.ts.map +1 -0
- package/dist/esm/registries/x402.d.ts +530 -0
- package/dist/esm/registries/x402.d.ts.map +1 -0
- package/dist/esm/types/accounts.d.ts +765 -0
- package/dist/esm/types/accounts.d.ts.map +1 -0
- package/dist/esm/types/common.d.ts +166 -0
- package/dist/esm/types/common.d.ts.map +1 -0
- package/dist/esm/types/endpoint.d.ts +161 -0
- package/dist/esm/types/endpoint.d.ts.map +1 -0
- package/dist/esm/types/enums.d.ts +353 -0
- package/dist/esm/types/enums.d.ts.map +1 -0
- package/dist/esm/types/index.d.ts +29 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/instructions.d.ts +400 -0
- package/dist/esm/types/instructions.d.ts.map +1 -0
- package/dist/esm/types.d.ts +236 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +40 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/anchor-errors.d.ts +61 -0
- package/dist/esm/utils/anchor-errors.d.ts.map +1 -0
- package/dist/esm/utils/endpoint-validator.d.ts +110 -0
- package/dist/esm/utils/endpoint-validator.d.ts.map +1 -0
- package/dist/esm/utils/escrow-validation.d.ts +145 -0
- package/dist/esm/utils/escrow-validation.d.ts.map +1 -0
- package/dist/esm/utils/escrow-validation.js +1 -1
- package/dist/esm/utils/escrow-validation.js.map +1 -1
- package/{src/utils/hash.ts → dist/esm/utils/hash.d.ts} +4 -42
- package/dist/esm/utils/hash.d.ts.map +1 -0
- package/dist/esm/utils/index.d.ts +6 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +16 -33
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/merchant-validator.d.ts +176 -0
- package/dist/esm/utils/merchant-validator.d.ts.map +1 -0
- package/dist/esm/utils/merchant-validator.js +1 -1
- package/dist/esm/utils/merchant-validator.js.map +1 -1
- package/dist/esm/utils/network-normalizer.d.ts +120 -0
- package/dist/esm/utils/network-normalizer.d.ts.map +1 -0
- package/dist/esm/utils/priority-fee.d.ts +205 -0
- package/dist/esm/utils/priority-fee.d.ts.map +1 -0
- package/dist/esm/utils/rpc-strategy.d.ts +172 -0
- package/dist/esm/utils/rpc-strategy.d.ts.map +1 -0
- package/dist/esm/utils/schemas.d.ts +351 -0
- package/dist/esm/utils/schemas.d.ts.map +1 -0
- package/{src/utils/serialization.ts → dist/esm/utils/serialization.d.ts} +3 -32
- package/dist/esm/utils/serialization.d.ts.map +1 -0
- package/dist/esm/utils/validate.d.ts +66 -0
- package/dist/esm/utils/validate.d.ts.map +1 -0
- package/dist/esm/utils/validate.js +221 -0
- package/dist/esm/utils/validate.js.map +1 -0
- package/{src/utils/validation.ts → dist/esm/utils/validation.d.ts} +2 -9
- package/dist/esm/utils/validation.d.ts.map +1 -0
- package/{src/utils/volume-curve.ts → dist/esm/utils/volume-curve.d.ts} +2 -73
- package/dist/esm/utils/volume-curve.d.ts.map +1 -0
- package/dist/esm/utils/volume-curve.js +1 -1
- package/dist/esm/utils/volume-curve.js.map +1 -1
- package/dist/esm/utils/x402-direct.d.ts +114 -0
- package/dist/esm/utils/x402-direct.d.ts.map +1 -0
- package/dist/types/constants/seeds.d.ts +2 -0
- package/dist/types/constants/seeds.d.ts.map +1 -1
- package/dist/types/core/client.d.ts +21 -6
- package/dist/types/core/client.d.ts.map +1 -1
- package/dist/types/errors/index.d.ts +59 -0
- package/dist/types/errors/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modules/agent.d.ts +9 -19
- package/dist/types/modules/agent.d.ts.map +1 -1
- package/dist/types/modules/attestation.d.ts.map +1 -1
- package/dist/types/modules/base.d.ts +54 -0
- package/dist/types/modules/base.d.ts.map +1 -1
- package/dist/types/modules/escrow-v2.d.ts +117 -1
- package/dist/types/modules/escrow-v2.d.ts.map +1 -1
- package/dist/types/modules/index.d.ts +1 -2
- package/dist/types/modules/index.d.ts.map +1 -1
- package/dist/types/modules/receipt.d.ts +14 -0
- package/dist/types/modules/receipt.d.ts.map +1 -1
- package/dist/types/modules/subscription.d.ts.map +1 -1
- package/dist/types/modules/tools.d.ts +0 -10
- package/dist/types/modules/tools.d.ts.map +1 -1
- package/dist/types/modules/vault.d.ts.map +1 -1
- package/dist/types/pda/index.d.ts +17 -0
- package/dist/types/pda/index.d.ts.map +1 -1
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/registries/builder.d.ts +2 -9
- package/dist/types/registries/builder.d.ts.map +1 -1
- package/dist/types/registries/metaplex-bridge.d.ts.map +1 -1
- package/dist/types/registries/session.d.ts +3 -9
- package/dist/types/registries/session.d.ts.map +1 -1
- package/dist/types/registries/x402.d.ts +2 -9
- package/dist/types/registries/x402.d.ts.map +1 -1
- package/dist/types/types/accounts.d.ts +52 -0
- package/dist/types/types/accounts.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/rpc-strategy.d.ts +7 -0
- package/dist/types/utils/rpc-strategy.d.ts.map +1 -1
- package/package.json +59 -183
- package/src/constants/addresses.ts +0 -162
- package/src/constants/index.ts +0 -69
- package/src/constants/limits.ts +0 -165
- package/src/constants/seeds.ts +0 -85
- package/src/core/client.ts +0 -583
- package/src/core/connection.ts +0 -461
- package/src/errors/index.ts +0 -346
- package/src/events/geyser.ts +0 -384
- package/src/events/index.ts +0 -335
- package/src/events/yellowstone.d.ts +0 -7
- package/src/idl/synapse_agent_sap.json +0 -14595
- package/src/index.ts +0 -421
- package/src/modules/agent.ts +0 -319
- package/src/modules/attestation.ts +0 -168
- package/src/modules/base.ts +0 -247
- package/src/modules/escrow-v2.ts +0 -871
- package/src/modules/escrow.ts +0 -439
- package/src/modules/feedback.ts +0 -186
- package/src/modules/indexing.ts +0 -444
- package/src/modules/ledger.ts +0 -262
- package/src/modules/receipt.ts +0 -212
- package/src/modules/staking.ts +0 -223
- package/src/modules/subscription.ts +0 -147
- package/src/modules/tools.ts +0 -454
- package/src/modules/vault.ts +0 -558
- package/src/parser/client.ts +0 -211
- package/src/parser/complete.ts +0 -232
- package/src/parser/inner.ts +0 -255
- package/src/parser/transaction.ts +0 -200
- package/src/parser/types.ts +0 -182
- package/src/plugin/index.ts +0 -1224
- package/src/plugin/protocols.ts +0 -404
- package/src/plugin/schemas.ts +0 -941
- package/src/postgres/adapter.ts +0 -904
- package/src/postgres/index.ts +0 -59
- package/src/postgres/schema.sql +0 -683
- package/src/postgres/serializers.ts +0 -485
- package/src/postgres/sync.ts +0 -340
- package/src/postgres/types.ts +0 -245
- package/src/registries/builder.ts +0 -607
- package/src/registries/discovery.ts +0 -572
- package/src/registries/fairscale.ts +0 -1278
- package/src/registries/index.ts +0 -143
- package/src/registries/metaplex-bridge.ts +0 -1199
- package/src/registries/session.ts +0 -613
- package/src/registries/x402.ts +0 -1048
- package/src/types/accounts.ts +0 -858
- package/src/types/common.ts +0 -187
- package/src/types/endpoint.ts +0 -181
- package/src/types/enums.ts +0 -333
- package/src/types/index.ts +0 -121
- package/src/types/instructions.ts +0 -453
- package/src/utils/anchor-errors.ts +0 -461
- package/src/utils/endpoint-validator.ts +0 -300
- package/src/utils/escrow-validation.ts +0 -301
- package/src/utils/index.ts +0 -118
- package/src/utils/merchant-validator.ts +0 -359
- package/src/utils/network-normalizer.ts +0 -240
- package/src/utils/priority-fee.ts +0 -325
- package/src/utils/rpc-strategy.ts +0 -322
- package/src/utils/schemas.ts +0 -359
- package/src/utils/x402-direct.ts +0 -370
- /package/dist/{types → esm}/modules/escrow.d.ts +0 -0
- /package/dist/{types → esm}/modules/escrow.d.ts.map +0 -0
|
@@ -0,0 +1,680 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module registries/fairscale
|
|
3
|
+
* @description FairScale reputation aggregation registry.
|
|
4
|
+
*
|
|
5
|
+
* Wraps both FairScale REST APIs:
|
|
6
|
+
* - **Agent & Credit API** (`agent-api.fairscale.xyz`) — agent trust score,
|
|
7
|
+
* trust gate, batch scoring, composable score, agent profile, score
|
|
8
|
+
* history, directory, leaderboard, credit assessment.
|
|
9
|
+
* - **Human Score API** (`api.fairscale.xyz`) — human wallet fingerprint,
|
|
10
|
+
* FairScore, on-chain features, badges.
|
|
11
|
+
*
|
|
12
|
+
* The killer feature is {@link FairScaleRegistry.aggregate}: it merges
|
|
13
|
+
* SAP's **on-chain** reputation (`AgentAccount.reputationScore` +
|
|
14
|
+
* feedback count + activity signals) with FairScale's **off-chain**
|
|
15
|
+
* trust score into a single normalised, weight-tunable signal. Apps
|
|
16
|
+
* therefore get a multi-source reputation rather than relying on either
|
|
17
|
+
* registry alone.
|
|
18
|
+
*
|
|
19
|
+
* Zero runtime dependencies — uses native `fetch` (Node ≥18, browsers,
|
|
20
|
+
* Edge runtimes). Auth via `fairkey` (or `X-Api-Key` for credit).
|
|
21
|
+
*
|
|
22
|
+
* @category Registries
|
|
23
|
+
* @since v0.11.0
|
|
24
|
+
*
|
|
25
|
+
* @example Standalone usage (just the FairScale wrapper)
|
|
26
|
+
* ```ts
|
|
27
|
+
* const fs = client.fairscale;
|
|
28
|
+
* const score = await fs.score(agentWallet);
|
|
29
|
+
* const allowed = await fs.trustGate(agentWallet, { minScore: 60 });
|
|
30
|
+
* const profile = await fs.agentProfile(agentWallet);
|
|
31
|
+
* const human = await fs.human.score(userWallet);
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example Aggregated reputation (SAP + FairScale)
|
|
35
|
+
* ```ts
|
|
36
|
+
* const merged = await client.fairscale.aggregate(agentWallet, {
|
|
37
|
+
* weights: { sap: 0.4, fairscale: 0.6 },
|
|
38
|
+
* require: { sapMinFeedbacks: 1 },
|
|
39
|
+
* });
|
|
40
|
+
* console.log(merged.combined.score, merged.combined.tier);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
import type { PublicKey } from "@solana/web3.js";
|
|
44
|
+
import { SapError } from "../errors";
|
|
45
|
+
import type { SapProgram } from "../modules/base";
|
|
46
|
+
/**
|
|
47
|
+
* @name FairScaleError
|
|
48
|
+
* @description Thrown for any non-2xx response from a FairScale endpoint
|
|
49
|
+
* or for client-side validation failures (missing API key, invalid
|
|
50
|
+
* weights, etc.).
|
|
51
|
+
* @category Errors
|
|
52
|
+
* @since v0.11.0
|
|
53
|
+
* @extends SapError
|
|
54
|
+
*/
|
|
55
|
+
export declare class FairScaleError extends SapError {
|
|
56
|
+
/** HTTP status from FairScale (0 for client-side errors). */
|
|
57
|
+
readonly status: number;
|
|
58
|
+
/** FairScale error code from the response body, if any. */
|
|
59
|
+
readonly upstreamCode?: string;
|
|
60
|
+
constructor(message: string, status: number, upstreamCode?: string);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @name FAIRSCALE
|
|
64
|
+
* @description Public, documented constants for the FairScale platform.
|
|
65
|
+
* Verified against the docs at https://docs.fairscale.xyz on 2026-04-17.
|
|
66
|
+
* Use these instead of hard-coding strings — guarantees consistency across
|
|
67
|
+
* the SDK and any consumer code.
|
|
68
|
+
* @category Registries
|
|
69
|
+
* @since v0.11.0
|
|
70
|
+
*/
|
|
71
|
+
export declare const FAIRSCALE: Readonly<{
|
|
72
|
+
/** Agent & Credit API host. */
|
|
73
|
+
readonly AGENT_API: "https://agent-api.fairscale.xyz";
|
|
74
|
+
/** Human Score API host. */
|
|
75
|
+
readonly HUMAN_API: "https://api.fairscale.xyz";
|
|
76
|
+
/** Default request timeout matching the official SDK (10s). */
|
|
77
|
+
readonly DEFAULT_TIMEOUT_MS: 10000;
|
|
78
|
+
/** Server-side cache TTL on every endpoint (15 min). */
|
|
79
|
+
readonly CACHE_TTL_SECONDS: number;
|
|
80
|
+
/** Max wallets per `POST /v1/score/batch` request. */
|
|
81
|
+
readonly BATCH_MAX_WALLETS: 25;
|
|
82
|
+
/** API key prefix. */
|
|
83
|
+
readonly API_KEY_PREFIX: "zpka_";
|
|
84
|
+
/** Default `min_score` for `/v1/trust-gate`. */
|
|
85
|
+
readonly DEFAULT_TRUST_GATE_MIN_SCORE: 40;
|
|
86
|
+
/** x402 micropayment metadata (Solana mainnet). */
|
|
87
|
+
readonly X402: Readonly<{
|
|
88
|
+
/** USDC mint on Solana mainnet. */
|
|
89
|
+
USDC_MINT: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
|
|
90
|
+
/** Wallet receiving x402 payments. */
|
|
91
|
+
PAY_TO: "fairAUEuR1SCcHL254Vb3F3XpUWLruJ2a11f6QfANEN";
|
|
92
|
+
/** Solana mainnet x402 network slug. */
|
|
93
|
+
NETWORK: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp";
|
|
94
|
+
/** Facilitator host. */
|
|
95
|
+
FACILITATOR: "https://x402.dexter.cash";
|
|
96
|
+
/** Price in USDC base units (micro-USDC) per agent / trust call. */
|
|
97
|
+
PRICE_AGENT_USDC_BASE: 5000;
|
|
98
|
+
/** Price in USDC base units (micro-USDC) per credit assessment. */
|
|
99
|
+
PRICE_CREDIT_USDC_BASE: 500000;
|
|
100
|
+
/** Default x402 settlement timeout (seconds). */
|
|
101
|
+
MAX_TIMEOUT_SECONDS: 60;
|
|
102
|
+
}>;
|
|
103
|
+
/** Documented agent-tier ranges (inclusive). */
|
|
104
|
+
readonly AGENT_TIER_RANGES: Readonly<{
|
|
105
|
+
readonly bronze: readonly [0, 39];
|
|
106
|
+
readonly silver: readonly [40, 54];
|
|
107
|
+
readonly gold: readonly [55, 69];
|
|
108
|
+
readonly platinum: readonly [70, 84];
|
|
109
|
+
readonly diamond: readonly [85, 100];
|
|
110
|
+
}>;
|
|
111
|
+
/** Documented credit `risk_band` ranges (inclusive). */
|
|
112
|
+
readonly RISK_BAND_RANGES: Readonly<{
|
|
113
|
+
readonly decline: readonly [0, 24];
|
|
114
|
+
readonly deep_subprime: readonly [25, 44];
|
|
115
|
+
readonly subprime: readonly [45, 59];
|
|
116
|
+
readonly near_prime: readonly [60, 74];
|
|
117
|
+
readonly prime: readonly [75, 100];
|
|
118
|
+
}>;
|
|
119
|
+
/** Plan tiers — daily request quota / per-minute rate limit. */
|
|
120
|
+
readonly PLAN_QUOTAS: Readonly<{
|
|
121
|
+
readonly free: {
|
|
122
|
+
readonly dailyRequests: 1000;
|
|
123
|
+
readonly rpm: 10;
|
|
124
|
+
};
|
|
125
|
+
readonly builder: {
|
|
126
|
+
readonly dailyRequests: 20000;
|
|
127
|
+
readonly rpm: 100;
|
|
128
|
+
};
|
|
129
|
+
readonly scale: {
|
|
130
|
+
readonly dailyRequests: 50000;
|
|
131
|
+
readonly rpm: 300;
|
|
132
|
+
};
|
|
133
|
+
readonly pro: {
|
|
134
|
+
readonly dailyRequests: 100000;
|
|
135
|
+
readonly rpm: 600;
|
|
136
|
+
};
|
|
137
|
+
}>;
|
|
138
|
+
/** Pillar weights for `/v1/score/ai` presets, exactly as documented. */
|
|
139
|
+
readonly PRESET_WEIGHTS: Readonly<{
|
|
140
|
+
readonly default: {
|
|
141
|
+
readonly verification: 0.3;
|
|
142
|
+
readonly wallet_history: 0.25;
|
|
143
|
+
readonly work_history: 0.1;
|
|
144
|
+
readonly network_quality: 0.25;
|
|
145
|
+
readonly peer_reputation: 0.1;
|
|
146
|
+
};
|
|
147
|
+
readonly trust_focused: {
|
|
148
|
+
readonly verification: 0.5;
|
|
149
|
+
readonly wallet_history: 0.2;
|
|
150
|
+
readonly work_history: 0.1;
|
|
151
|
+
readonly network_quality: 0.1;
|
|
152
|
+
readonly peer_reputation: 0.1;
|
|
153
|
+
};
|
|
154
|
+
readonly work_focused: {
|
|
155
|
+
readonly verification: 0.2;
|
|
156
|
+
readonly wallet_history: 0.15;
|
|
157
|
+
readonly work_history: 0.4;
|
|
158
|
+
readonly network_quality: 0.15;
|
|
159
|
+
readonly peer_reputation: 0.1;
|
|
160
|
+
};
|
|
161
|
+
readonly defi: {
|
|
162
|
+
readonly verification: 0.25;
|
|
163
|
+
readonly wallet_history: 0.3;
|
|
164
|
+
readonly work_history: 0.1;
|
|
165
|
+
readonly network_quality: 0.25;
|
|
166
|
+
readonly peer_reputation: 0.1;
|
|
167
|
+
};
|
|
168
|
+
readonly hiring: {
|
|
169
|
+
readonly verification: 0.35;
|
|
170
|
+
readonly wallet_history: 0.15;
|
|
171
|
+
readonly work_history: 0.25;
|
|
172
|
+
readonly network_quality: 0.15;
|
|
173
|
+
readonly peer_reputation: 0.1;
|
|
174
|
+
};
|
|
175
|
+
}>;
|
|
176
|
+
/** Allowed sort fields for `/v1/directory` and `/v1/leaderboard`. */
|
|
177
|
+
readonly DIRECTORY_SORT_FIELDS: readonly ["agent_fairscore", "verification", "wallet_history", "work_history", "network_quality", "peer_reputation", "reliability", "track_record", "economic_stake", "ecosystem"];
|
|
178
|
+
/** Documented machine-readable error codes. */
|
|
179
|
+
readonly ERROR_CODES: readonly ["missing_wallet", "invalid_wallet", "invalid_preset", "weights_must_sum_to_1", "missing_weights", "too_many_wallets", "daily_limit_exceeded", "upstream_error"];
|
|
180
|
+
}>;
|
|
181
|
+
/**
|
|
182
|
+
* Agent / Human tier — documented ranges:
|
|
183
|
+
* `bronze 0–39 · silver 40–54 · gold 55–69 · platinum 70–84 · diamond 85–100`.
|
|
184
|
+
*/
|
|
185
|
+
export type FairScaleTier = "bronze" | "silver" | "gold" | "platinum" | "diamond";
|
|
186
|
+
/** Built-in weight presets for `GET /v1/score/ai`. */
|
|
187
|
+
export type FairScalePreset = keyof typeof FAIRSCALE.PRESET_WEIGHTS;
|
|
188
|
+
/** Task profiles accepted by `/v1/score` and `/v1/trust-gate`. */
|
|
189
|
+
export type FairScaleTask = "defi_execution" | "trust_focused" | "work_focused" | "hiring";
|
|
190
|
+
/**
|
|
191
|
+
* `recommendation` block returned by `/v1/score` — qualitative tier
|
|
192
|
+
* with a label and color hint for UI rendering.
|
|
193
|
+
*/
|
|
194
|
+
export type FairScaleRecommendationTier = "trusted" | "caution" | "high_risk" | "unverified";
|
|
195
|
+
/** Sort fields accepted by `/v1/directory` and `/v1/leaderboard`. */
|
|
196
|
+
export type FairScaleDirectorySort = (typeof FAIRSCALE.DIRECTORY_SORT_FIELDS)[number];
|
|
197
|
+
/** Five agent-scoring pillars (0–100 each). */
|
|
198
|
+
export interface FairScalePillars {
|
|
199
|
+
readonly verification: number;
|
|
200
|
+
readonly wallet_history: number;
|
|
201
|
+
readonly work_history: number;
|
|
202
|
+
readonly network_quality: number;
|
|
203
|
+
readonly peer_reputation: number;
|
|
204
|
+
}
|
|
205
|
+
/** Behavioural badge emitted by both agent and human endpoints. */
|
|
206
|
+
export interface FairScaleBadge {
|
|
207
|
+
readonly id: string;
|
|
208
|
+
readonly label: string;
|
|
209
|
+
readonly description?: string;
|
|
210
|
+
readonly tier?: "bronze" | "silver" | "gold" | "platinum";
|
|
211
|
+
}
|
|
212
|
+
/** Recommended action returned by the human `/score` endpoint. */
|
|
213
|
+
export interface FairScaleAction {
|
|
214
|
+
readonly id: string;
|
|
215
|
+
readonly label: string;
|
|
216
|
+
readonly description: string;
|
|
217
|
+
readonly priority: "high" | "medium" | "low";
|
|
218
|
+
readonly cta: string;
|
|
219
|
+
}
|
|
220
|
+
/** Verification flags returned in `score.signals`. */
|
|
221
|
+
export interface FairScaleSignals {
|
|
222
|
+
readonly fairscore_base?: number;
|
|
223
|
+
readonly said_score?: number;
|
|
224
|
+
readonly said_trust_tier?: FairScaleTier;
|
|
225
|
+
readonly attestations?: number;
|
|
226
|
+
readonly is_registered?: boolean;
|
|
227
|
+
readonly is_verified?: boolean;
|
|
228
|
+
readonly is_said_agent?: boolean;
|
|
229
|
+
readonly is_erc8004?: boolean;
|
|
230
|
+
readonly [k: string]: unknown;
|
|
231
|
+
}
|
|
232
|
+
/** Description-alignment block in `/v1/score` response. */
|
|
233
|
+
export interface FairScaleDescriptionAlignment {
|
|
234
|
+
readonly bonus: number;
|
|
235
|
+
readonly label: "verified" | "partial" | "unverified" | string;
|
|
236
|
+
readonly matched: ReadonlyArray<string>;
|
|
237
|
+
readonly claimed: ReadonlyArray<string>;
|
|
238
|
+
}
|
|
239
|
+
/** Red flag returned in `/v1/score` response. */
|
|
240
|
+
export interface FairScaleRedFlag {
|
|
241
|
+
readonly type: string;
|
|
242
|
+
readonly reason: string;
|
|
243
|
+
readonly severity?: "critical" | "warning" | "info";
|
|
244
|
+
}
|
|
245
|
+
/** Verifications block in `/v1/score` response. */
|
|
246
|
+
export interface FairScaleVerifications {
|
|
247
|
+
readonly said_onchain?: boolean;
|
|
248
|
+
readonly erc8004?: boolean;
|
|
249
|
+
readonly sati?: boolean;
|
|
250
|
+
readonly liveness?: boolean;
|
|
251
|
+
readonly x402?: boolean;
|
|
252
|
+
readonly [k: string]: boolean | undefined;
|
|
253
|
+
}
|
|
254
|
+
/** Standard response meta envelope. */
|
|
255
|
+
export interface FairScaleMeta {
|
|
256
|
+
readonly scored_at?: string;
|
|
257
|
+
readonly from_cache?: boolean;
|
|
258
|
+
readonly cached?: boolean;
|
|
259
|
+
readonly provider: string;
|
|
260
|
+
readonly version?: string;
|
|
261
|
+
readonly layer?: string;
|
|
262
|
+
readonly latency_ms?: number;
|
|
263
|
+
readonly amount_assessed?: number;
|
|
264
|
+
}
|
|
265
|
+
/** Response of `GET /v1/score`. */
|
|
266
|
+
export interface AgentScoreResult {
|
|
267
|
+
readonly wallet: string;
|
|
268
|
+
readonly score: number;
|
|
269
|
+
readonly tier: FairScaleTier;
|
|
270
|
+
readonly recommendation?: {
|
|
271
|
+
readonly tier: FairScaleRecommendationTier;
|
|
272
|
+
readonly label: string;
|
|
273
|
+
readonly color: "green" | "yellow" | "red" | "gray" | string;
|
|
274
|
+
};
|
|
275
|
+
readonly pillars: FairScalePillars;
|
|
276
|
+
readonly signals?: FairScaleSignals;
|
|
277
|
+
readonly red_flags?: ReadonlyArray<FairScaleRedFlag>;
|
|
278
|
+
readonly badges?: ReadonlyArray<FairScaleBadge>;
|
|
279
|
+
readonly description_alignment?: FairScaleDescriptionAlignment;
|
|
280
|
+
readonly work_history_sources?: ReadonlyArray<string>;
|
|
281
|
+
readonly verifications?: FairScaleVerifications;
|
|
282
|
+
readonly meta?: FairScaleMeta;
|
|
283
|
+
/** Present only on per-wallet entries inside a batch response. */
|
|
284
|
+
readonly error?: string;
|
|
285
|
+
}
|
|
286
|
+
/** Response of `GET /v1/trust-gate`. */
|
|
287
|
+
export interface TrustGateResult {
|
|
288
|
+
readonly wallet: string;
|
|
289
|
+
readonly allowed: boolean;
|
|
290
|
+
readonly score: number;
|
|
291
|
+
readonly reason: "score_above_threshold" | "score_below_threshold" | "missing_verification" | string;
|
|
292
|
+
readonly meta?: FairScaleMeta;
|
|
293
|
+
}
|
|
294
|
+
/** Response of `POST /v1/score/batch`. */
|
|
295
|
+
export interface BatchScoreResult {
|
|
296
|
+
readonly total: number;
|
|
297
|
+
readonly scored: number;
|
|
298
|
+
readonly results: ReadonlyArray<AgentScoreResult>;
|
|
299
|
+
readonly meta?: FairScaleMeta;
|
|
300
|
+
}
|
|
301
|
+
export interface ScoreOptions {
|
|
302
|
+
/** Apply a built-in scoring profile. */
|
|
303
|
+
readonly task?: FairScaleTask;
|
|
304
|
+
/** Override the API key for this call. */
|
|
305
|
+
readonly apiKey?: string;
|
|
306
|
+
/** Per-call timeout (ms). Defaults to client default. */
|
|
307
|
+
readonly timeoutMs?: number;
|
|
308
|
+
/** AbortSignal for cancellation. */
|
|
309
|
+
readonly signal?: AbortSignal;
|
|
310
|
+
}
|
|
311
|
+
export interface TrustGateOptions extends ScoreOptions {
|
|
312
|
+
/** Minimum score to pass (0–100). Default 40. */
|
|
313
|
+
readonly minScore?: number;
|
|
314
|
+
/** Require at least one registry verification. */
|
|
315
|
+
readonly requireVerification?: boolean;
|
|
316
|
+
}
|
|
317
|
+
export interface ScoreAiOptions extends ScoreOptions {
|
|
318
|
+
/** Use a built-in preset. Mutually exclusive with `weights`. */
|
|
319
|
+
readonly preset?: FairScalePreset;
|
|
320
|
+
/** Custom pillar weights — must sum to 1.0 ± 0.02. */
|
|
321
|
+
readonly weights?: FairScalePillars;
|
|
322
|
+
}
|
|
323
|
+
export interface DirectoryOptions extends ScoreOptions {
|
|
324
|
+
readonly page?: number;
|
|
325
|
+
/** Default 25, max 100. */
|
|
326
|
+
readonly limit?: number;
|
|
327
|
+
readonly sort?: FairScaleDirectorySort;
|
|
328
|
+
readonly minScore?: number;
|
|
329
|
+
readonly verifiedOnly?: boolean;
|
|
330
|
+
readonly recommendation?: FairScaleRecommendationTier;
|
|
331
|
+
readonly source?: "said" | "erc8004" | "sati";
|
|
332
|
+
readonly search?: string;
|
|
333
|
+
readonly hasAttestations?: boolean;
|
|
334
|
+
}
|
|
335
|
+
/** Single entry returned by `/v1/directory.results[]`. */
|
|
336
|
+
export interface DirectoryEntry {
|
|
337
|
+
readonly wallet: string;
|
|
338
|
+
readonly name?: string;
|
|
339
|
+
readonly description?: string;
|
|
340
|
+
readonly score: number;
|
|
341
|
+
readonly tier: FairScaleTier;
|
|
342
|
+
readonly pillars?: FairScalePillars;
|
|
343
|
+
readonly recommendation?: AgentScoreResult["recommendation"];
|
|
344
|
+
readonly verifications?: FairScaleVerifications;
|
|
345
|
+
readonly source?: "said" | "erc8004" | "sati";
|
|
346
|
+
readonly [k: string]: unknown;
|
|
347
|
+
}
|
|
348
|
+
/** Response of `GET /v1/directory`. */
|
|
349
|
+
export interface DirectoryResult {
|
|
350
|
+
readonly total: number;
|
|
351
|
+
readonly page: number;
|
|
352
|
+
readonly limit: number;
|
|
353
|
+
readonly results: ReadonlyArray<DirectoryEntry>;
|
|
354
|
+
readonly meta?: FairScaleMeta;
|
|
355
|
+
}
|
|
356
|
+
/** Response of `GET /v1/leaderboard`. */
|
|
357
|
+
export interface LeaderboardResult {
|
|
358
|
+
readonly metric: string;
|
|
359
|
+
readonly limit: number;
|
|
360
|
+
readonly results: ReadonlyArray<DirectoryEntry>;
|
|
361
|
+
readonly meta?: FairScaleMeta;
|
|
362
|
+
}
|
|
363
|
+
/** Response of `GET /v1/score-history`. */
|
|
364
|
+
export interface ScoreHistoryResult {
|
|
365
|
+
readonly wallet: string;
|
|
366
|
+
readonly history: ReadonlyArray<{
|
|
367
|
+
readonly scored_at: string;
|
|
368
|
+
readonly score: number;
|
|
369
|
+
readonly tier?: FairScaleTier;
|
|
370
|
+
}>;
|
|
371
|
+
readonly meta?: FairScaleMeta;
|
|
372
|
+
}
|
|
373
|
+
export interface CreditOptions extends ScoreOptions {
|
|
374
|
+
/** Loan amount in USD. Default 1000. */
|
|
375
|
+
readonly amount?: number;
|
|
376
|
+
/** Bypass 15-min cache. SDK accepts boolean — wire-format is `0|1`. */
|
|
377
|
+
readonly nocache?: boolean;
|
|
378
|
+
/** Optional social-proof header forwarded as `x-social-identity`. */
|
|
379
|
+
readonly socialIdentity?: string;
|
|
380
|
+
}
|
|
381
|
+
/** Lending terms inside the credit underwriting block. */
|
|
382
|
+
export interface CreditLendingTerms {
|
|
383
|
+
readonly recommendation: string;
|
|
384
|
+
readonly suggested_apr_range: {
|
|
385
|
+
readonly low: number;
|
|
386
|
+
readonly high: number;
|
|
387
|
+
};
|
|
388
|
+
readonly collateral_ratio: number;
|
|
389
|
+
readonly collateral_note: string;
|
|
390
|
+
readonly max_credit_line: number;
|
|
391
|
+
readonly max_term_days: number;
|
|
392
|
+
readonly identity_level: "kyc" | "strong" | "said" | "matrica" | "partial" | "none";
|
|
393
|
+
readonly identity_enhanced: boolean;
|
|
394
|
+
}
|
|
395
|
+
/** Risk flag inside credit underwriting. */
|
|
396
|
+
export interface CreditRiskFlag {
|
|
397
|
+
readonly type: "critical" | "warning" | "positive";
|
|
398
|
+
readonly signal: string;
|
|
399
|
+
readonly detail: string;
|
|
400
|
+
}
|
|
401
|
+
/** Underwriting block. */
|
|
402
|
+
export interface CreditUnderwriting {
|
|
403
|
+
readonly opinion: string;
|
|
404
|
+
readonly lending_terms: CreditLendingTerms;
|
|
405
|
+
readonly risk_flags: ReadonlyArray<CreditRiskFlag>;
|
|
406
|
+
readonly data_confidence?: Record<string, unknown>;
|
|
407
|
+
}
|
|
408
|
+
/** Confidence block. */
|
|
409
|
+
export interface CreditConfidence {
|
|
410
|
+
readonly score: number;
|
|
411
|
+
readonly level: "high" | "medium" | "low";
|
|
412
|
+
readonly summary: string;
|
|
413
|
+
readonly limitations: ReadonlyArray<string>;
|
|
414
|
+
}
|
|
415
|
+
/** Five credit pillars. */
|
|
416
|
+
export interface CreditPillars {
|
|
417
|
+
readonly financial_position: {
|
|
418
|
+
readonly score: number;
|
|
419
|
+
};
|
|
420
|
+
readonly credit_history: {
|
|
421
|
+
readonly score: number;
|
|
422
|
+
};
|
|
423
|
+
readonly income_capacity: {
|
|
424
|
+
readonly score: number;
|
|
425
|
+
};
|
|
426
|
+
readonly behavioural: {
|
|
427
|
+
readonly score: number;
|
|
428
|
+
};
|
|
429
|
+
readonly identity_trust: {
|
|
430
|
+
readonly score: number;
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
/** Attestation envelope (HMAC-SHA256 signed proof). */
|
|
434
|
+
export interface CreditAttestation {
|
|
435
|
+
readonly type: "signed_response" | string;
|
|
436
|
+
readonly payload_hash: string;
|
|
437
|
+
readonly payload_fields: string;
|
|
438
|
+
readonly note?: string;
|
|
439
|
+
}
|
|
440
|
+
/** Response of `GET /v1/credit`. */
|
|
441
|
+
export interface CreditResult {
|
|
442
|
+
readonly wallet: string;
|
|
443
|
+
readonly fairscore: number;
|
|
444
|
+
readonly fairscore_tier: FairScaleTier | "unverified";
|
|
445
|
+
readonly credit_score: number;
|
|
446
|
+
readonly risk_band: "prime" | "near_prime" | "subprime" | "deep_subprime" | "decline";
|
|
447
|
+
readonly confidence: CreditConfidence;
|
|
448
|
+
readonly underwriting: CreditUnderwriting;
|
|
449
|
+
readonly credit_pillars: CreditPillars;
|
|
450
|
+
readonly affordability?: Record<string, unknown>;
|
|
451
|
+
readonly trust_pillars?: Record<string, unknown>;
|
|
452
|
+
readonly credit_data?: Record<string, unknown>;
|
|
453
|
+
readonly flags?: Record<string, unknown>;
|
|
454
|
+
readonly attestation: CreditAttestation;
|
|
455
|
+
readonly meta?: FairScaleMeta;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* 15 on-chain features returned by `/score`. Field names and units match
|
|
459
|
+
* https://docs.fairscale.xyz/docs/api-score#features exactly.
|
|
460
|
+
*/
|
|
461
|
+
export interface HumanScoreFeatures {
|
|
462
|
+
readonly native_sol_percentile: number;
|
|
463
|
+
readonly major_percentile_score: number;
|
|
464
|
+
readonly stable_percentile_score: number;
|
|
465
|
+
readonly lst_percentile_score: number;
|
|
466
|
+
readonly net_sol_flow_30d: number;
|
|
467
|
+
readonly median_hold_days: number;
|
|
468
|
+
readonly conviction_ratio: number;
|
|
469
|
+
readonly no_instant_dumps: 0 | 1;
|
|
470
|
+
readonly tx_count: number;
|
|
471
|
+
readonly active_days: number;
|
|
472
|
+
readonly median_gap_hours: number;
|
|
473
|
+
readonly tempo_cv: number;
|
|
474
|
+
readonly burst_ratio: number;
|
|
475
|
+
readonly platform_diversity: number;
|
|
476
|
+
readonly wallet_age_score: number;
|
|
477
|
+
}
|
|
478
|
+
/** Response of `GET /score` (Human Score API). */
|
|
479
|
+
export interface HumanScoreResult {
|
|
480
|
+
readonly wallet: string;
|
|
481
|
+
/** Final blended score (0–100) — `0.50·base + 0.20·social + 0.30·peer`. */
|
|
482
|
+
readonly fairscore: number;
|
|
483
|
+
/** Raw on-chain neural-network score (features only). */
|
|
484
|
+
readonly fairscore_base: number;
|
|
485
|
+
/** Social reputation (0 if no X handle linked). */
|
|
486
|
+
readonly social_score: number;
|
|
487
|
+
/** Peer-vouch score (0 if no vouches received). */
|
|
488
|
+
readonly peer_score: number;
|
|
489
|
+
readonly verified_human: boolean;
|
|
490
|
+
readonly tier: FairScaleTier;
|
|
491
|
+
readonly badges: ReadonlyArray<FairScaleBadge>;
|
|
492
|
+
readonly actions: ReadonlyArray<FairScaleAction>;
|
|
493
|
+
readonly features: HumanScoreFeatures;
|
|
494
|
+
/** Present only on cache-hit responses. */
|
|
495
|
+
readonly cached?: boolean;
|
|
496
|
+
readonly timestamp: string;
|
|
497
|
+
}
|
|
498
|
+
export interface AggregatedReputation {
|
|
499
|
+
/** Agent wallet. */
|
|
500
|
+
readonly wallet: string;
|
|
501
|
+
/** SAP on-chain reputation snapshot (null if agent not registered). */
|
|
502
|
+
readonly sap: {
|
|
503
|
+
readonly registered: boolean;
|
|
504
|
+
/** 0–100 SAP `reputationScore` (null if no feedback yet). */
|
|
505
|
+
readonly score: number | null;
|
|
506
|
+
readonly totalFeedbacks: number;
|
|
507
|
+
readonly totalCallsServed: string;
|
|
508
|
+
readonly isActive: boolean;
|
|
509
|
+
};
|
|
510
|
+
/** FairScale snapshot (null if FairScale lookup failed). */
|
|
511
|
+
readonly fairscale: AgentScoreResult | null;
|
|
512
|
+
/** Final blended signal. */
|
|
513
|
+
readonly combined: {
|
|
514
|
+
/** 0–100 weighted score. */
|
|
515
|
+
readonly score: number;
|
|
516
|
+
/** Bucket derived from `score`: low <40, medium <60, high <80, elite ≥80. */
|
|
517
|
+
readonly tier: "low" | "medium" | "high" | "elite";
|
|
518
|
+
/**
|
|
519
|
+
* Confidence in the blended signal (0–1). Penalises:
|
|
520
|
+
* - Missing source (only one of the two responded)
|
|
521
|
+
* - Low SAP feedback count
|
|
522
|
+
* - FairScale `from_cache: true`
|
|
523
|
+
*/
|
|
524
|
+
readonly confidence: number;
|
|
525
|
+
/** Effective weights actually applied (after missing-source rebalance). */
|
|
526
|
+
readonly weights: {
|
|
527
|
+
sap: number;
|
|
528
|
+
fairscale: number;
|
|
529
|
+
};
|
|
530
|
+
/** Reasons that affected the score (red flags, gates, etc.). */
|
|
531
|
+
readonly notes: ReadonlyArray<string>;
|
|
532
|
+
};
|
|
533
|
+
readonly meta: {
|
|
534
|
+
readonly provider: "SAP+FairScale";
|
|
535
|
+
readonly computedAt: string;
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
export interface AggregateOptions extends ScoreOptions {
|
|
539
|
+
/**
|
|
540
|
+
* Weights applied to each source. Defaults to `{ sap: 0.5, fairscale: 0.5 }`.
|
|
541
|
+
* Must sum to 1.0 ± 0.01. If one source is missing, the present source's
|
|
542
|
+
* weight is renormalised to 1.0 (and `confidence` is reduced).
|
|
543
|
+
*/
|
|
544
|
+
readonly weights?: {
|
|
545
|
+
sap: number;
|
|
546
|
+
fairscale: number;
|
|
547
|
+
};
|
|
548
|
+
/** Minimum SAP feedbacks required for SAP to count (else SAP weight → 0). */
|
|
549
|
+
readonly require?: {
|
|
550
|
+
sapMinFeedbacks?: number;
|
|
551
|
+
};
|
|
552
|
+
/**
|
|
553
|
+
* If true, throws when both sources are unavailable. Default `false`
|
|
554
|
+
* (returns `combined.score = 0`, `confidence = 0`).
|
|
555
|
+
*/
|
|
556
|
+
readonly strict?: boolean;
|
|
557
|
+
}
|
|
558
|
+
export interface FairScaleConfig {
|
|
559
|
+
/** API key (or read from env `FAIRSCALE_API_KEY`). */
|
|
560
|
+
readonly apiKey?: string;
|
|
561
|
+
/** Override agent-api base URL. */
|
|
562
|
+
readonly baseUrl?: string;
|
|
563
|
+
/** Override human-api base URL. */
|
|
564
|
+
readonly humanBaseUrl?: string;
|
|
565
|
+
/** Default request timeout (ms). Default 10_000. */
|
|
566
|
+
readonly timeoutMs?: number;
|
|
567
|
+
/** Custom fetch implementation (for tests / Edge proxies). */
|
|
568
|
+
readonly fetch?: typeof fetch;
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* @name FairScaleRegistry
|
|
572
|
+
* @description High-level FairScale client + SAP reputation aggregator.
|
|
573
|
+
* Exposed lazily as `client.fairscale`.
|
|
574
|
+
* @category Registries
|
|
575
|
+
* @since v0.11.0
|
|
576
|
+
*/
|
|
577
|
+
export declare class FairScaleRegistry {
|
|
578
|
+
#private;
|
|
579
|
+
constructor(program: SapProgram, config?: FairScaleConfig);
|
|
580
|
+
/** Human Score API namespace (`client.fairscale.human.*`). */
|
|
581
|
+
get human(): HumanScoreNamespace;
|
|
582
|
+
/**
|
|
583
|
+
* @description `GET /v1/score` — composite trust score.
|
|
584
|
+
*/
|
|
585
|
+
score(agent: PublicKey | string, opts?: ScoreOptions): Promise<AgentScoreResult>;
|
|
586
|
+
/**
|
|
587
|
+
* @description `GET /v1/trust-gate` — binary allow/deny.
|
|
588
|
+
*/
|
|
589
|
+
trustGate(agent: PublicKey | string, opts?: TrustGateOptions): Promise<TrustGateResult>;
|
|
590
|
+
/**
|
|
591
|
+
* @description `POST /v1/score/batch` — up to 25 wallets per call.
|
|
592
|
+
* Splits larger inputs into chunks of 25 and merges results.
|
|
593
|
+
*/
|
|
594
|
+
scoreBatch(agents: ReadonlyArray<PublicKey | string>, opts?: ScoreOptions): Promise<BatchScoreResult>;
|
|
595
|
+
/**
|
|
596
|
+
* @description `GET /v1/score/ai` — composable score with preset or custom weights.
|
|
597
|
+
*/
|
|
598
|
+
scoreAI(agent: PublicKey | string, opts: ScoreAiOptions): Promise<AgentScoreResult>;
|
|
599
|
+
/**
|
|
600
|
+
* @description `GET /v1/agent` — full agent profile (registry details + scoring data).
|
|
601
|
+
*/
|
|
602
|
+
agentProfile(agent: PublicKey | string, opts?: ScoreOptions): Promise<AgentScoreResult & {
|
|
603
|
+
profile?: Record<string, unknown>;
|
|
604
|
+
}>;
|
|
605
|
+
/**
|
|
606
|
+
* @description `GET /v1/score-history` — score trend over time.
|
|
607
|
+
*/
|
|
608
|
+
scoreHistory(agent: PublicKey | string, opts?: ScoreOptions): Promise<ScoreHistoryResult>;
|
|
609
|
+
/**
|
|
610
|
+
* @description `GET /v1/directory` — query the indexed agent directory.
|
|
611
|
+
*/
|
|
612
|
+
directory(opts?: DirectoryOptions): Promise<DirectoryResult>;
|
|
613
|
+
/**
|
|
614
|
+
* @description `GET /v1/leaderboard` — top-scoring agents by metric.
|
|
615
|
+
*/
|
|
616
|
+
leaderboard(opts?: {
|
|
617
|
+
metric?: FairScaleDirectorySort;
|
|
618
|
+
limit?: number;
|
|
619
|
+
apiKey?: string;
|
|
620
|
+
timeoutMs?: number;
|
|
621
|
+
signal?: AbortSignal;
|
|
622
|
+
}): Promise<LeaderboardResult>;
|
|
623
|
+
/**
|
|
624
|
+
* @description `GET /v1/credit` — full credit assessment ($0.50 USDC per call).
|
|
625
|
+
* Uses `X-Api-Key` header instead of `fairkey`. Wire-format for `nocache`
|
|
626
|
+
* is `0|1` per the docs; the SDK accepts a boolean and converts it.
|
|
627
|
+
*/
|
|
628
|
+
credit(agent: PublicKey | string, opts?: CreditOptions): Promise<CreditResult>;
|
|
629
|
+
/**
|
|
630
|
+
* @description Merge SAP on-chain reputation with FairScale into a single
|
|
631
|
+
* weighted signal. Falls back gracefully if either source is unavailable.
|
|
632
|
+
*
|
|
633
|
+
* @param agentWallet - The agent's owner wallet (NOT the agent PDA).
|
|
634
|
+
* @param opts - Weights, gating rules, and per-call overrides.
|
|
635
|
+
* @returns {Promise<AggregatedReputation>}
|
|
636
|
+
*
|
|
637
|
+
* @example
|
|
638
|
+
* ```ts
|
|
639
|
+
* const r = await client.fairscale.aggregate(agentWallet, {
|
|
640
|
+
* weights: { sap: 0.4, fairscale: 0.6 },
|
|
641
|
+
* require: { sapMinFeedbacks: 2 },
|
|
642
|
+
* });
|
|
643
|
+
* if (r.combined.tier === "high" || r.combined.tier === "elite") accept();
|
|
644
|
+
* ```
|
|
645
|
+
*/
|
|
646
|
+
aggregate(agentWallet: PublicKey, opts?: AggregateOptions): Promise<AggregatedReputation>;
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* @name HumanScoreNamespace
|
|
650
|
+
* @description Wraps `api.fairscale.xyz` (Human Score API). Accessed via
|
|
651
|
+
* `client.fairscale.human`.
|
|
652
|
+
* @category Registries
|
|
653
|
+
* @since v0.11.0
|
|
654
|
+
*/
|
|
655
|
+
export declare class HumanScoreNamespace {
|
|
656
|
+
#private;
|
|
657
|
+
constructor(baseUrl: string, apiKey: string | undefined, timeoutMs: number, fetchImpl: typeof fetch);
|
|
658
|
+
/**
|
|
659
|
+
* @description `GET /score` — full human wallet analysis.
|
|
660
|
+
*/
|
|
661
|
+
score(wallet: PublicKey | string, opts?: {
|
|
662
|
+
twitter?: string;
|
|
663
|
+
nocache?: boolean;
|
|
664
|
+
} & ScoreOptions): Promise<HumanScoreResult>;
|
|
665
|
+
/** `GET /fairScore` — blended 0–1000 integer. */
|
|
666
|
+
fairScoreOnly(wallet: PublicKey | string, opts?: ScoreOptions): Promise<{
|
|
667
|
+
fair_score: number;
|
|
668
|
+
}>;
|
|
669
|
+
/** `GET /walletScore` — on-chain only 0–1000 integer. */
|
|
670
|
+
walletScoreOnly(wallet: PublicKey | string, opts?: ScoreOptions): Promise<{
|
|
671
|
+
wallet_score: number;
|
|
672
|
+
}>;
|
|
673
|
+
/** `GET /socialScore` — social only 0–1000 integer. */
|
|
674
|
+
socialScoreOnly(wallet: PublicKey | string, opts?: {
|
|
675
|
+
twitter?: string;
|
|
676
|
+
} & ScoreOptions): Promise<{
|
|
677
|
+
social_score: number;
|
|
678
|
+
}>;
|
|
679
|
+
}
|
|
680
|
+
//# sourceMappingURL=fairscale.d.ts.map
|