@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,40 @@
|
|
|
1
|
+
// ================================================================
|
|
2
|
+
// synapse-sap-sdk / src/types.ts
|
|
3
|
+
// Shared TypeScript types — 1:1 with on-chain state (v0.13)
|
|
4
|
+
// ================================================================
|
|
5
|
+
// ── Escrow Layer ──
|
|
6
|
+
export var SettlementSecurity;
|
|
7
|
+
(function (SettlementSecurity) {
|
|
8
|
+
SettlementSecurity[SettlementSecurity["SelfReport"] = 0] = "SelfReport";
|
|
9
|
+
SettlementSecurity[SettlementSecurity["CoSigned"] = 1] = "CoSigned";
|
|
10
|
+
SettlementSecurity[SettlementSecurity["DisputeWindow"] = 2] = "DisputeWindow";
|
|
11
|
+
})(SettlementSecurity || (SettlementSecurity = {}));
|
|
12
|
+
// ── Agent Layer ──
|
|
13
|
+
export var Capability;
|
|
14
|
+
(function (Capability) {
|
|
15
|
+
Capability[Capability["None"] = 0] = "None";
|
|
16
|
+
Capability[Capability["Text"] = 1] = "Text";
|
|
17
|
+
Capability[Capability["Code"] = 2] = "Code";
|
|
18
|
+
Capability[Capability["Image"] = 4] = "Image";
|
|
19
|
+
Capability[Capability["Voice"] = 8] = "Voice";
|
|
20
|
+
Capability[Capability["All"] = 15] = "All";
|
|
21
|
+
})(Capability || (Capability = {}));
|
|
22
|
+
// ── Dispute Layer ──
|
|
23
|
+
export var DisputeOutcome;
|
|
24
|
+
(function (DisputeOutcome) {
|
|
25
|
+
DisputeOutcome[DisputeOutcome["Pending"] = 0] = "Pending";
|
|
26
|
+
DisputeOutcome[DisputeOutcome["DepositorWins"] = 1] = "DepositorWins";
|
|
27
|
+
DisputeOutcome[DisputeOutcome["AgentWins"] = 2] = "AgentWins";
|
|
28
|
+
DisputeOutcome[DisputeOutcome["Refunded"] = 3] = "Refunded";
|
|
29
|
+
})(DisputeOutcome || (DisputeOutcome = {}));
|
|
30
|
+
// ── Subscription Layer ──
|
|
31
|
+
export var BillingInterval;
|
|
32
|
+
(function (BillingInterval) {
|
|
33
|
+
BillingInterval[BillingInterval["Hourly"] = 0] = "Hourly";
|
|
34
|
+
BillingInterval[BillingInterval["Daily"] = 1] = "Daily";
|
|
35
|
+
BillingInterval[BillingInterval["Weekly"] = 2] = "Weekly";
|
|
36
|
+
BillingInterval[BillingInterval["Monthly"] = 3] = "Monthly";
|
|
37
|
+
BillingInterval[BillingInterval["Yearly"] = 4] = "Yearly";
|
|
38
|
+
})(BillingInterval || (BillingInterval = {}));
|
|
39
|
+
export { TokenType, SettlementMode } from "./types/enums";
|
|
40
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,kCAAkC;AAClC,6DAA6D;AAC7D,mEAAmE;AAKnE,qBAAqB;AACrB,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,uEAAiB,CAAA;IACjB,mEAAiB,CAAA;IACjB,6EAAiB,CAAA;AACnB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AA+DD,oBAAoB;AACpB,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,2CAAiB,CAAA;IACjB,2CAAiB,CAAA;IACjB,2CAAiB,CAAA;IACjB,6CAAiB,CAAA;IACjB,6CAAiB,CAAA;IACjB,0CAAiB,CAAA;AACnB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB;AAsCD,sBAAsB;AACtB,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,yDAAgB,CAAA;IAChB,qEAAiB,CAAA;IACjB,6DAAgB,CAAA;IAChB,2DAAgB,CAAA;AAClB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAkBD,2BAA2B;AAC3B,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,yDAAW,CAAA;IACX,uDAAW,CAAA;IACX,yDAAW,CAAA;IACX,2DAAW,CAAA;IACX,yDAAW,CAAA;AACb,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAsJD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils/anchor-errors
|
|
3
|
+
* @description Full SAP program error table (147 entries, codes 6000-6146)
|
|
4
|
+
* plus decoder utilities. Mirrors `programs/synapse-agent-sap/src/errors.rs`.
|
|
5
|
+
*
|
|
6
|
+
* Use {@link decodeAnchorError} to extract a structured error from any
|
|
7
|
+
* thrown RPC / simulation error. Use {@link SAP_ERRORS} for direct lookups.
|
|
8
|
+
*
|
|
9
|
+
* @category Utils
|
|
10
|
+
* @since v0.13.0
|
|
11
|
+
*/
|
|
12
|
+
export interface SapErrorEntry {
|
|
13
|
+
readonly code: number;
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly msg: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const SAP_ERRORS: Readonly<Record<number, SapErrorEntry>>;
|
|
18
|
+
export declare const SAP_ERROR_BY_NAME: Readonly<Record<string, number>>;
|
|
19
|
+
/**
|
|
20
|
+
* @name DecodedAnchorError
|
|
21
|
+
* @description Structured error extracted from a thrown RPC/simulation error.
|
|
22
|
+
* @since v0.13.0
|
|
23
|
+
*/
|
|
24
|
+
export interface DecodedAnchorError {
|
|
25
|
+
readonly code: number;
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly msg: string;
|
|
28
|
+
readonly friendly: string;
|
|
29
|
+
readonly logs?: readonly string[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @name decodeAnchorError
|
|
33
|
+
* @description Pull an Anchor / SAP error out of any caught value.
|
|
34
|
+
* Handles: AnchorError, raw RPC SimulateError, `0x...` hex codes,
|
|
35
|
+
* nested `error.errorCode.number`, and direct `code` numbers.
|
|
36
|
+
* @returns Structured {@link DecodedAnchorError} or `null` if not a SAP error.
|
|
37
|
+
* @since v0.13.0
|
|
38
|
+
*/
|
|
39
|
+
export declare function decodeAnchorError(err: unknown): DecodedAnchorError | null;
|
|
40
|
+
/**
|
|
41
|
+
* @name SapPreflightError
|
|
42
|
+
* @description Thrown by SDK preflights when an on-chain check is guaranteed
|
|
43
|
+
* to fail. Carries the predicted error code/name so callers can branch
|
|
44
|
+
* without parsing strings.
|
|
45
|
+
* @since v0.13.0
|
|
46
|
+
*/
|
|
47
|
+
export declare class SapPreflightError extends Error {
|
|
48
|
+
readonly predictedCode: number;
|
|
49
|
+
readonly predictedName: string;
|
|
50
|
+
readonly hint?: string | undefined;
|
|
51
|
+
readonly preflight: true;
|
|
52
|
+
constructor(message: string, predictedCode: number, predictedName: string, hint?: string | undefined);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @name throwPredicted
|
|
56
|
+
* @description Helper for SDK preflights. Throws a {@link SapPreflightError}
|
|
57
|
+
* carrying the on-chain error name + friendly message.
|
|
58
|
+
* @since v0.13.0
|
|
59
|
+
*/
|
|
60
|
+
export declare function throwPredicted(name: keyof typeof SAP_ERROR_BY_NAME, hint?: string): never;
|
|
61
|
+
//# sourceMappingURL=anchor-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor-errors.d.ts","sourceRoot":"","sources":["../../../src/utils/anchor-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,aAAa;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CAAE;AACtG,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAoJ7D,CAAC;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoJ7D,CAAC;AAEH;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAmCD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAwBzE;AAsCD;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAIxC,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IALxB,QAAQ,CAAC,SAAS,EAAG,IAAI,CAAU;gBAEjC,OAAO,EAAE,MAAM,EACN,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,MAAM,YAAA;CAKzB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,OAAO,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAMzF"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils/endpoint-validator
|
|
3
|
+
* @description Endpoint validation utilities for SAP agent discovery.
|
|
4
|
+
*
|
|
5
|
+
* Fetches advertised endpoints and verifies they respond with JSON,
|
|
6
|
+
* proper CORS headers, and SAP-compatible behavior. Designed to
|
|
7
|
+
* fail fast when an endpoint 404s, requires CSRF tokens, or
|
|
8
|
+
* serves HTML instead of JSON.
|
|
9
|
+
*
|
|
10
|
+
* Used by:
|
|
11
|
+
* - CLI `discovery validate` command
|
|
12
|
+
* - SDK programmatic validation before x402 calls
|
|
13
|
+
* - Integration test harnesses
|
|
14
|
+
*
|
|
15
|
+
* @category Utils
|
|
16
|
+
* @since v0.6.0
|
|
17
|
+
*/
|
|
18
|
+
import type { EndpointDescriptor, HealthCheckDescriptor, EndpointValidationResult } from "../types/endpoint";
|
|
19
|
+
/**
|
|
20
|
+
* @interface ValidateEndpointOptions
|
|
21
|
+
* @description Options for endpoint validation.
|
|
22
|
+
* @category Utils
|
|
23
|
+
* @since v0.6.0
|
|
24
|
+
*/
|
|
25
|
+
export interface ValidateEndpointOptions {
|
|
26
|
+
/** Timeout in milliseconds (default: 10000). */
|
|
27
|
+
readonly timeoutMs?: number;
|
|
28
|
+
/** Number of retries on failure (default: 1). */
|
|
29
|
+
readonly retries?: number;
|
|
30
|
+
/** HTTP method override (default: uses descriptor or HEAD). */
|
|
31
|
+
readonly method?: string;
|
|
32
|
+
/** Custom headers to include in the validation request. */
|
|
33
|
+
readonly headers?: Record<string, string>;
|
|
34
|
+
/** If true, also sends a preflight OPTIONS request. */
|
|
35
|
+
readonly checkCors?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @name validateEndpoint
|
|
39
|
+
* @description Validate a single endpoint URL for SAP compatibility.
|
|
40
|
+
*
|
|
41
|
+
* Performs the following checks:
|
|
42
|
+
* 1. URL is reachable (no 4xx/5xx)
|
|
43
|
+
* 2. Response Content-Type is JSON
|
|
44
|
+
* 3. CORS headers are present (if checkCors enabled)
|
|
45
|
+
* 4. No redirect to HTML login pages
|
|
46
|
+
* 5. Measures response latency
|
|
47
|
+
*
|
|
48
|
+
* @param url - The endpoint URL to validate.
|
|
49
|
+
* @param opts - Validation options.
|
|
50
|
+
* @returns An {@link EndpointValidationResult} with detailed check results.
|
|
51
|
+
*
|
|
52
|
+
* @category Utils
|
|
53
|
+
* @since v0.6.0
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* const result = await validateEndpoint("https://api.example.com/x402");
|
|
58
|
+
* if (!result.reachable) console.error(result.error);
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function validateEndpoint(url: string, opts?: ValidateEndpointOptions): Promise<EndpointValidationResult>;
|
|
62
|
+
/**
|
|
63
|
+
* @name validateEndpointDescriptor
|
|
64
|
+
* @description Validate an {@link EndpointDescriptor} with context-aware checks.
|
|
65
|
+
*
|
|
66
|
+
* Uses the descriptor's method, auth requirements, and other metadata to
|
|
67
|
+
* perform a more targeted validation than raw URL checking.
|
|
68
|
+
*
|
|
69
|
+
* @param descriptor - The endpoint descriptor to validate.
|
|
70
|
+
* @param opts - Additional options.
|
|
71
|
+
* @returns An {@link EndpointValidationResult}.
|
|
72
|
+
*
|
|
73
|
+
* @category Utils
|
|
74
|
+
* @since v0.6.0
|
|
75
|
+
*/
|
|
76
|
+
export declare function validateEndpointDescriptor(descriptor: EndpointDescriptor, opts?: ValidateEndpointOptions): Promise<EndpointValidationResult>;
|
|
77
|
+
/**
|
|
78
|
+
* @name validateHealthCheck
|
|
79
|
+
* @description Validate an agent's health-check endpoint.
|
|
80
|
+
*
|
|
81
|
+
* @param health - The health-check descriptor.
|
|
82
|
+
* @returns An {@link EndpointValidationResult}.
|
|
83
|
+
*
|
|
84
|
+
* @category Utils
|
|
85
|
+
* @since v0.6.0
|
|
86
|
+
*/
|
|
87
|
+
export declare function validateHealthCheck(health: HealthCheckDescriptor): Promise<EndpointValidationResult>;
|
|
88
|
+
/**
|
|
89
|
+
* @name validateAgentEndpoints
|
|
90
|
+
* @description Validate all endpoints for an agent (primary + health + tool overrides).
|
|
91
|
+
*
|
|
92
|
+
* @param params - Object containing the endpoints to validate.
|
|
93
|
+
* @param params.endpoint - Primary endpoint descriptor.
|
|
94
|
+
* @param params.healthCheck - Optional health-check descriptor.
|
|
95
|
+
* @param params.toolEndpoints - Optional array of tool-specific endpoint overrides.
|
|
96
|
+
* @param opts - Validation options.
|
|
97
|
+
* @returns A map of `label → EndpointValidationResult`.
|
|
98
|
+
*
|
|
99
|
+
* @category Utils
|
|
100
|
+
* @since v0.6.0
|
|
101
|
+
*/
|
|
102
|
+
export declare function validateAgentEndpoints(params: {
|
|
103
|
+
endpoint: EndpointDescriptor;
|
|
104
|
+
healthCheck?: HealthCheckDescriptor;
|
|
105
|
+
toolEndpoints?: Array<{
|
|
106
|
+
name: string;
|
|
107
|
+
endpoint: EndpointDescriptor;
|
|
108
|
+
}>;
|
|
109
|
+
}, opts?: ValidateEndpointOptions): Promise<Map<string, EndpointValidationResult>>;
|
|
110
|
+
//# sourceMappingURL=endpoint-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-validator.d.ts","sourceRoot":"","sources":["../../../src/utils/endpoint-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAM3B;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,uDAAuD;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,wBAAwB,CAAC,CA+FnC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,kBAAkB,EAC9B,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,wBAAwB,CAAC,CA6BnC;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,CAAC,CAmBnC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE;IACN,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;CACvE,EACD,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAsBhD"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils/escrow-validation
|
|
3
|
+
* @description Server-side escrow validation pipeline.
|
|
4
|
+
*
|
|
5
|
+
* Provides typed helpers to validate escrow state before settlement
|
|
6
|
+
* and to build the correct SPL `AccountMeta[]` for token escrows.
|
|
7
|
+
*
|
|
8
|
+
* @category Utils
|
|
9
|
+
* @since v0.6.4
|
|
10
|
+
*/
|
|
11
|
+
import { PublicKey, type Connection, type AccountMeta } from "@solana/web3.js";
|
|
12
|
+
import { SapError } from "../errors";
|
|
13
|
+
import type { EscrowAccountData } from "../types";
|
|
14
|
+
/**
|
|
15
|
+
* @interface SplAccountMeta
|
|
16
|
+
* @description Typed SPL account metadata for escrow operations.
|
|
17
|
+
* @category Utils
|
|
18
|
+
* @since v0.6.4
|
|
19
|
+
*/
|
|
20
|
+
export interface SplAccountMeta {
|
|
21
|
+
/** Account role in the escrow pipeline. */
|
|
22
|
+
readonly kind: "escrowAta" | "depositorAta" | "tokenMint" | "tokenProgram";
|
|
23
|
+
/** Account public key. */
|
|
24
|
+
readonly pubkey: PublicKey;
|
|
25
|
+
/** Whether this account is writable. */
|
|
26
|
+
readonly writable: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @interface EscrowValidationResult
|
|
30
|
+
* @description Result of server-side escrow state validation.
|
|
31
|
+
* @category Utils
|
|
32
|
+
* @since v0.6.4
|
|
33
|
+
*/
|
|
34
|
+
export interface EscrowValidationResult {
|
|
35
|
+
/** Whether the escrow is valid for settlement. */
|
|
36
|
+
readonly valid: boolean;
|
|
37
|
+
/** Escrow account data (if found). */
|
|
38
|
+
readonly escrow: EscrowAccountData | null;
|
|
39
|
+
/** Escrow PDA address. */
|
|
40
|
+
readonly escrowPda: PublicKey;
|
|
41
|
+
/** Agent PDA address. */
|
|
42
|
+
readonly agentPda: PublicKey;
|
|
43
|
+
/** Whether this is an SPL token escrow (vs SOL). */
|
|
44
|
+
readonly isSplEscrow: boolean;
|
|
45
|
+
/** Generated SPL account metas (empty for SOL escrows). */
|
|
46
|
+
readonly splAccounts: SplAccountMeta[];
|
|
47
|
+
/** Validation errors (empty when valid). */
|
|
48
|
+
readonly errors: string[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @name MissingEscrowAtaError
|
|
52
|
+
* @description Thrown when an SPL escrow operation is missing required
|
|
53
|
+
* Associated Token Accounts.
|
|
54
|
+
* @category Errors
|
|
55
|
+
* @since v0.6.4
|
|
56
|
+
*/
|
|
57
|
+
export declare class MissingEscrowAtaError extends SapError {
|
|
58
|
+
/** The ATA address that is missing. */
|
|
59
|
+
readonly ataAddress: string;
|
|
60
|
+
/** Which side is missing: depositor or escrow. */
|
|
61
|
+
readonly side: "depositor" | "escrow";
|
|
62
|
+
constructor(ataAddress: string, side: "depositor" | "escrow");
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @name validateEscrowState
|
|
66
|
+
* @description Validates that an escrow is in a correct state for settlement.
|
|
67
|
+
*
|
|
68
|
+
* Checks:
|
|
69
|
+
* - Escrow PDA exists on-chain
|
|
70
|
+
* - If SPL: depositor ATA exists, escrow ATA exists, token mint matches
|
|
71
|
+
* - Balance >= requested settlement amount
|
|
72
|
+
* - Escrow is not expired
|
|
73
|
+
* - Max calls not exceeded
|
|
74
|
+
*
|
|
75
|
+
* @param connection - Solana RPC connection.
|
|
76
|
+
* @param agentWallet - The agent's wallet public key.
|
|
77
|
+
* @param depositorWallet - The depositor's wallet public key.
|
|
78
|
+
* @param fetchEscrow - Callback to fetch escrow data (avoids coupling to SapProgram).
|
|
79
|
+
* @param opts
|
|
80
|
+
* @param opts.callsToSettle - Number of calls to validate affordability for.
|
|
81
|
+
*
|
|
82
|
+
* @returns A detailed {@link EscrowValidationResult}.
|
|
83
|
+
*
|
|
84
|
+
* @category Utils
|
|
85
|
+
* @since v0.6.4
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* const result = await validateEscrowState(
|
|
90
|
+
* connection,
|
|
91
|
+
* agentWallet,
|
|
92
|
+
* depositorWallet,
|
|
93
|
+
* (pda) => client.escrow.fetchByPda(pda),
|
|
94
|
+
* { callsToSettle: 5 },
|
|
95
|
+
* );
|
|
96
|
+
*
|
|
97
|
+
* if (!result.valid) {
|
|
98
|
+
* console.error("Escrow validation failed:", result.errors);
|
|
99
|
+
* }
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export declare function validateEscrowState(connection: Connection, agentWallet: PublicKey, depositorWallet: PublicKey, fetchEscrow: (escrowPda: PublicKey) => Promise<EscrowAccountData | null>, opts?: {
|
|
103
|
+
callsToSettle?: number;
|
|
104
|
+
}): Promise<EscrowValidationResult>;
|
|
105
|
+
/**
|
|
106
|
+
* @name attachSplAccounts
|
|
107
|
+
* @description Build the typed `SplAccountMeta[]` for an SPL token escrow operation.
|
|
108
|
+
* Does NOT validate existence — use {@link validateEscrowState} for full validation.
|
|
109
|
+
*
|
|
110
|
+
* @param escrowPda - The escrow PDA address.
|
|
111
|
+
* @param depositorWallet - The depositor's wallet public key.
|
|
112
|
+
* @param tokenMint - The SPL token mint.
|
|
113
|
+
* @returns An array of typed {@link SplAccountMeta} for SPL escrow operations.
|
|
114
|
+
*
|
|
115
|
+
* @category Utils
|
|
116
|
+
* @since v0.6.4
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* const splMetas = attachSplAccounts(escrowPda, depositorWallet, usdcMint);
|
|
121
|
+
*
|
|
122
|
+
* // Convert to Anchor-compatible AccountMeta[]
|
|
123
|
+
* const accountMetas = splMetas.map(m => ({
|
|
124
|
+
* pubkey: m.pubkey,
|
|
125
|
+
* isWritable: m.writable,
|
|
126
|
+
* isSigner: false,
|
|
127
|
+
* }));
|
|
128
|
+
*
|
|
129
|
+
* await client.escrow.settle(depositor, calls, hash, accountMetas);
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare function attachSplAccounts(escrowPda: PublicKey, depositorWallet: PublicKey, tokenMint: PublicKey): SplAccountMeta[];
|
|
133
|
+
/**
|
|
134
|
+
* @name toAccountMetas
|
|
135
|
+
* @description Convert typed {@link SplAccountMeta} to Anchor-compatible
|
|
136
|
+
* `AccountMeta[]` for use with `.remainingAccounts()`.
|
|
137
|
+
*
|
|
138
|
+
* @param splMetas - Array of typed SPL account metas.
|
|
139
|
+
* @returns `AccountMeta[]` compatible with Anchor's `remainingAccounts`.
|
|
140
|
+
*
|
|
141
|
+
* @category Utils
|
|
142
|
+
* @since v0.6.4
|
|
143
|
+
*/
|
|
144
|
+
export declare function toAccountMetas(splMetas: SplAccountMeta[]): AccountMeta[];
|
|
145
|
+
//# sourceMappingURL=escrow-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrow-validation.d.ts","sourceRoot":"","sources":["../../../src/utils/escrow-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAMlD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,cAAc,CAAC;IAC3E,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C,0BAA0B;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC;IACvC,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC3B;AAMD;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;gBAE1B,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,QAAQ;CAU7D;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,SAAS,EACtB,eAAe,EAAE,SAAS,EAC1B,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,EACxE,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,sBAAsB,CAAC,CAgGjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,SAAS,EAC1B,SAAS,EAAE,SAAS,GACnB,cAAc,EAAE,CAOlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAMxE"}
|
|
@@ -31,7 +31,7 @@ export class MissingEscrowAtaError extends SapError {
|
|
|
31
31
|
constructor(ataAddress, side) {
|
|
32
32
|
super(`Missing ${side} ATA: ${ataAddress}. ` +
|
|
33
33
|
`Settlement mode is Escrow/SPL but the Associated Token Account does not exist. ` +
|
|
34
|
-
`The ${side} must create the ATA before escrow operations
|
|
34
|
+
`The ${side} must create the ATA before escrow operations.`);
|
|
35
35
|
this.name = "MissingEscrowAtaError";
|
|
36
36
|
this.ataAddress = ataAddress;
|
|
37
37
|
this.side = side;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escrow-validation.js","sourceRoot":"","sources":["../../../src/utils/escrow-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,SAAS,GAGV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AA6CrC,sEAAsE;AACtE,SAAS;AACT,sEAAsE;AAEtE;;;;;;GAMG;AACH,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IACjD,uCAAuC;IAC9B,UAAU,CAAS;IAC5B,kDAAkD;IACzC,IAAI,CAAyB;IAEtC,YAAY,UAAkB,EAAE,IAA4B;QAC1D,KAAK,CACH,WAAW,IAAI,SAAS,UAAU,IAAI;YACpC,iFAAiF;YACjF,OAAO,IAAI,gDAAgD,
|
|
1
|
+
{"version":3,"file":"escrow-validation.js","sourceRoot":"","sources":["../../../src/utils/escrow-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
* @category Utils
|
|
6
6
|
* @since v0.1.0
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
import { createHash } from "crypto";
|
|
10
|
-
|
|
11
8
|
/**
|
|
12
9
|
* Compute the SHA-256 hash of a UTF-8 string or byte buffer.
|
|
13
10
|
*
|
|
@@ -27,14 +24,7 @@ import { createHash } from "crypto";
|
|
|
27
24
|
* const hash = sha256("jupiter:swap"); // Uint8Array (32 bytes)
|
|
28
25
|
* ```
|
|
29
26
|
*/
|
|
30
|
-
export const sha256
|
|
31
|
-
const hash = createHash("sha256");
|
|
32
|
-
hash.update(
|
|
33
|
-
typeof input === "string" ? Buffer.from(input, "utf-8") : input,
|
|
34
|
-
);
|
|
35
|
-
return new Uint8Array(hash.digest());
|
|
36
|
-
};
|
|
37
|
-
|
|
27
|
+
export declare const sha256: (input: string | Buffer | Uint8Array) => Uint8Array;
|
|
38
28
|
/**
|
|
39
29
|
* Convert a `Uint8Array` hash to a plain `number[]`.
|
|
40
30
|
*
|
|
@@ -54,8 +44,7 @@ export const sha256 = (input: string | Buffer | Uint8Array): Uint8Array => {
|
|
|
54
44
|
* const arr = hashToArray(sha256("jupiter:swap")); // number[]
|
|
55
45
|
* ```
|
|
56
46
|
*/
|
|
57
|
-
export const hashToArray
|
|
58
|
-
|
|
47
|
+
export declare const hashToArray: (hash: Uint8Array) => number[];
|
|
59
48
|
/**
|
|
60
49
|
* Compute the deterministic batch root used by `settle_batch` (v0.10.0).
|
|
61
50
|
*
|
|
@@ -82,32 +71,5 @@ export const hashToArray = (hash: Uint8Array): number[] => Array.from(hash);
|
|
|
82
71
|
* await client.escrow.settleBatch(depositor, settlements, root);
|
|
83
72
|
* ```
|
|
84
73
|
*/
|
|
85
|
-
export const computeBatchRoot
|
|
86
|
-
|
|
87
|
-
): Uint8Array => {
|
|
88
|
-
if (serviceHashes.length === 0) {
|
|
89
|
-
throw new Error("computeBatchRoot: serviceHashes must not be empty");
|
|
90
|
-
}
|
|
91
|
-
const hash = createHash("sha256");
|
|
92
|
-
for (let i = 0; i < serviceHashes.length; i++) {
|
|
93
|
-
const h = serviceHashes[i];
|
|
94
|
-
let buf: Buffer;
|
|
95
|
-
if (h instanceof Uint8Array) {
|
|
96
|
-
buf = Buffer.from(h);
|
|
97
|
-
} else if (Array.isArray(h)) {
|
|
98
|
-
buf = Buffer.from(h);
|
|
99
|
-
} else {
|
|
100
|
-
throw new Error(
|
|
101
|
-
`computeBatchRoot: serviceHashes[${i}] is undefined or unsupported type`,
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
if (buf.length !== 32) {
|
|
105
|
-
throw new Error(
|
|
106
|
-
`computeBatchRoot: serviceHashes[${i}] must be 32 bytes, got ${buf.length}`,
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
hash.update(buf);
|
|
110
|
-
}
|
|
111
|
-
return new Uint8Array(hash.digest());
|
|
112
|
-
};
|
|
113
|
-
|
|
74
|
+
export declare const computeBatchRoot: (serviceHashes: ReadonlyArray<Uint8Array | Buffer | number[]>) => Uint8Array;
|
|
75
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../src/utils/hash.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,UAAU,KAAG,UAM5D,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,UAAU,KAAG,MAAM,EAAsB,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,gBAAgB,GAC3B,eAAe,aAAa,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,KAC3D,UAyBF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./validate";
|
|
2
|
+
export { sha256, hashToArray } from "./hash";
|
|
3
|
+
export declare function hashReceipt(agent: Uint8Array, requestId: Uint8Array, callCount: number, amount: bigint): Uint8Array;
|
|
4
|
+
/** Assert helper */
|
|
5
|
+
export declare function assert(cond: boolean, msg: string): asserts cond;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG7C,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,UAAU,CAEZ;AAED,oBAAoB;AACpB,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAE/D"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1,34 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export { assert } from "./validation";
|
|
18
|
-
export { serializeAccount, serializeValue } from "./serialization";
|
|
19
|
-
// ── v0.6.0 Hardening utilities ─────────────────────
|
|
20
|
-
export { normalizeNetworkId, isNetworkEquivalent, getNetworkGenesisHash, getNetworkClusterName, isKnownNetwork, } from "./network-normalizer";
|
|
21
|
-
export { validateEndpoint, validateEndpointDescriptor, validateHealthCheck, validateAgentEndpoints, } from "./endpoint-validator";
|
|
22
|
-
export { getRpcUrl, getFallbackRpcUrl, createDualConnection, findATA, classifyAnchorError, extractAnchorErrorCode, } from "./rpc-strategy";
|
|
23
|
-
export { createEnvSchema, createEndpointDescriptorSchema, createHealthCheckSchema, createToolManifestEntrySchema, createAgentManifestSchema, createPreparePaymentSchema, createRegisterAgentSchema, createCallArgsSchema, validateOrThrow, } from "./schemas";
|
|
24
|
-
// ── v0.6.2 Priority Fee & Settle Options ───────────
|
|
25
|
-
export { buildPriorityFeeIxs, buildRpcOptions, FAST_SETTLE_OPTIONS, FAST_BATCH_SETTLE_OPTIONS, DEFAULT_SETTLE_PRIORITY_FEE, DEFAULT_SETTLE_COMPUTE_UNITS, DEFAULT_BATCH_SETTLE_COMPUTE_UNITS, computeBatchSettleCu, } from "./priority-fee";
|
|
26
|
-
// ── v0.6.4 Escrow Validation & Merchant Middleware ──
|
|
27
|
-
export { validateEscrowState, attachSplAccounts, toAccountMetas, MissingEscrowAtaError, } from "./escrow-validation";
|
|
28
|
-
export { SapMerchantValidator, parseX402Headers, } from "./merchant-validator";
|
|
29
|
-
export { getX402DirectPayments } from "./x402-direct";
|
|
30
|
-
// ── v0.13.0 Full SAP error table + preflight helpers ─
|
|
31
|
-
export { SAP_ERRORS, SAP_ERROR_BY_NAME, decodeAnchorError, SapPreflightError, throwPredicted, } from "./anchor-errors";
|
|
32
|
-
// ── v0.13.0 Volume-curve mirror for client-side amount preview ──
|
|
33
|
-
export { calculateSettleAmount } from "./volume-curve";
|
|
1
|
+
// ================================================================
|
|
2
|
+
// synapse-sap-sdk / src/utils/index.ts
|
|
3
|
+
// Re-export all utilities
|
|
4
|
+
// ================================================================
|
|
5
|
+
export * from "./validate";
|
|
6
|
+
// ── Merkle helpers for receipt proofs ──
|
|
7
|
+
export { sha256, hashToArray } from "./hash";
|
|
8
|
+
// client-side sha256 for receipt hashing
|
|
9
|
+
export function hashReceipt(agent, requestId, callCount, amount) {
|
|
10
|
+
return new Uint8Array(32); // Stub
|
|
11
|
+
}
|
|
12
|
+
/** Assert helper */
|
|
13
|
+
export function assert(cond, msg) {
|
|
14
|
+
if (!cond)
|
|
15
|
+
throw new Error(msg);
|
|
16
|
+
}
|
|
34
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,wCAAwC;AACxC,2BAA2B;AAC3B,mEAAmE;AAEnE,cAAc,YAAY,CAAC;AAE3B,0CAA0C;AAC1C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE7C,yCAAyC;AACzC,MAAM,UAAU,WAAW,CACzB,KAAiB,EACjB,SAAqB,EACrB,SAAiB,EACjB,MAAc;IAEd,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;AACpC,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,MAAM,CAAC,IAAa,EAAE,GAAW;IAC/C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC"}
|