@oobe-protocol-labs/synapse-sap-sdk 0.13.0 → 0.14.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 +108 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/constants.js +59 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/errors.js +250 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/events/index.js +38 -130
- 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 +89 -0
- package/dist/cjs/instructions/agent.js.map +1 -0
- package/dist/cjs/instructions/attestation.js +112 -0
- package/dist/cjs/instructions/attestation.js.map +1 -0
- package/dist/cjs/instructions/digest.js +28 -0
- package/dist/cjs/instructions/digest.js.map +1 -0
- package/dist/cjs/instructions/dispute.js +116 -0
- package/dist/cjs/instructions/dispute.js.map +1 -0
- package/dist/cjs/instructions/escrow.js +101 -0
- package/dist/cjs/instructions/escrow.js.map +1 -0
- package/dist/cjs/instructions/global.js +28 -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 +221 -0
- package/dist/cjs/instructions/indexing.js.map +1 -0
- package/dist/cjs/instructions/misc.js +73 -0
- package/dist/cjs/instructions/misc.js.map +1 -0
- package/dist/cjs/instructions/session.js +89 -0
- package/dist/cjs/instructions/session.js.map +1 -0
- package/dist/cjs/instructions/staking.js +132 -0
- package/dist/cjs/instructions/staking.js.map +1 -0
- package/dist/cjs/instructions/subscription.js +80 -0
- package/dist/cjs/instructions/subscription.js.map +1 -0
- package/dist/cjs/instructions/tools.js +109 -0
- package/dist/cjs/instructions/tools.js.map +1 -0
- package/dist/cjs/instructions/vault.js +106 -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/types.js +42 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/index.js +29 -86
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/validate.js +236 -0
- package/dist/cjs/utils/validate.js.map +1 -0
- 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 +70 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/constants.d.ts +52 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +56 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/errors.d.ts +111 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +244 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/events/index.d.ts +13 -0
- package/dist/esm/events/index.d.ts.map +1 -0
- package/dist/esm/events/index.js +36 -128
- package/dist/esm/events/index.js.map +1 -1
- 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 +85 -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 +108 -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 +24 -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 +112 -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 +97 -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 +24 -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 +217 -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 +69 -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 +85 -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 +128 -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 +76 -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 +105 -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 +102 -0
- package/dist/esm/instructions/vault.js.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/types.d.ts +208 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +39 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/index.d.ts +4 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +13 -33
- package/dist/esm/utils/index.js.map +1 -1
- 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/package.json +59 -183
- package/LICENSE +0 -21
- package/README.md +0 -986
- package/dist/cjs/constants/addresses.js +0 -143
- package/dist/cjs/constants/addresses.js.map +0 -1
- package/dist/cjs/constants/index.js +0 -64
- package/dist/cjs/constants/index.js.map +0 -1
- package/dist/cjs/constants/limits.js +0 -161
- package/dist/cjs/constants/limits.js.map +0 -1
- package/dist/cjs/constants/network.js +0 -81
- package/dist/cjs/constants/network.js.map +0 -1
- package/dist/cjs/constants/payments.js +0 -137
- package/dist/cjs/constants/payments.js.map +0 -1
- package/dist/cjs/constants/programs.js +0 -78
- package/dist/cjs/constants/programs.js.map +0 -1
- package/dist/cjs/constants/seeds.js +0 -76
- package/dist/cjs/constants/seeds.js.map +0 -1
- package/dist/cjs/core/client.js +0 -546
- package/dist/cjs/core/client.js.map +0 -1
- package/dist/cjs/core/connection.js +0 -350
- package/dist/cjs/core/connection.js.map +0 -1
- package/dist/cjs/core/index.js +0 -25
- package/dist/cjs/core/index.js.map +0 -1
- package/dist/cjs/errors/index.js +0 -334
- package/dist/cjs/errors/index.js.map +0 -1
- package/dist/cjs/events/geyser.js +0 -295
- package/dist/cjs/events/geyser.js.map +0 -1
- package/dist/cjs/idl/index.js +0 -63
- package/dist/cjs/idl/index.js.map +0 -1
- package/dist/cjs/idl/synapse_agent_sap.json +0 -14595
- package/dist/cjs/modules/agent.js +0 -272
- package/dist/cjs/modules/agent.js.map +0 -1
- package/dist/cjs/modules/attestation.js +0 -147
- package/dist/cjs/modules/attestation.js.map +0 -1
- package/dist/cjs/modules/base.js +0 -189
- package/dist/cjs/modules/base.js.map +0 -1
- package/dist/cjs/modules/escrow-v2.js +0 -607
- package/dist/cjs/modules/escrow-v2.js.map +0 -1
- package/dist/cjs/modules/escrow.js +0 -336
- package/dist/cjs/modules/escrow.js.map +0 -1
- package/dist/cjs/modules/feedback.js +0 -166
- package/dist/cjs/modules/feedback.js.map +0 -1
- package/dist/cjs/modules/index.js +0 -43
- package/dist/cjs/modules/index.js.map +0 -1
- package/dist/cjs/modules/indexing.js +0 -375
- package/dist/cjs/modules/indexing.js.map +0 -1
- package/dist/cjs/modules/ledger.js +0 -234
- package/dist/cjs/modules/ledger.js.map +0 -1
- package/dist/cjs/modules/receipt.js +0 -148
- package/dist/cjs/modules/receipt.js.map +0 -1
- package/dist/cjs/modules/staking.js +0 -159
- package/dist/cjs/modules/staking.js.map +0 -1
- package/dist/cjs/modules/subscription.js +0 -96
- package/dist/cjs/modules/subscription.js.map +0 -1
- package/dist/cjs/modules/tools.js +0 -345
- package/dist/cjs/modules/tools.js.map +0 -1
- package/dist/cjs/modules/vault.js +0 -427
- package/dist/cjs/modules/vault.js.map +0 -1
- package/dist/cjs/parser/client.js +0 -146
- package/dist/cjs/parser/client.js.map +0 -1
- package/dist/cjs/parser/complete.js +0 -177
- package/dist/cjs/parser/complete.js.map +0 -1
- package/dist/cjs/parser/index.js +0 -57
- package/dist/cjs/parser/index.js.map +0 -1
- package/dist/cjs/parser/inner.js +0 -185
- package/dist/cjs/parser/inner.js.map +0 -1
- package/dist/cjs/parser/instructions.js +0 -114
- package/dist/cjs/parser/instructions.js.map +0 -1
- package/dist/cjs/parser/transaction.js +0 -153
- package/dist/cjs/parser/transaction.js.map +0 -1
- package/dist/cjs/parser/types.js +0 -14
- package/dist/cjs/parser/types.js.map +0 -1
- package/dist/cjs/pda/index.js +0 -672
- package/dist/cjs/pda/index.js.map +0 -1
- package/dist/cjs/plugin/index.js +0 -952
- package/dist/cjs/plugin/index.js.map +0 -1
- package/dist/cjs/plugin/protocols.js +0 -282
- package/dist/cjs/plugin/protocols.js.map +0 -1
- package/dist/cjs/plugin/schemas.js +0 -863
- package/dist/cjs/plugin/schemas.js.map +0 -1
- package/dist/cjs/postgres/adapter.js +0 -715
- package/dist/cjs/postgres/adapter.js.map +0 -1
- package/dist/cjs/postgres/index.js +0 -50
- package/dist/cjs/postgres/index.js.map +0 -1
- package/dist/cjs/postgres/serializers.js +0 -381
- package/dist/cjs/postgres/serializers.js.map +0 -1
- package/dist/cjs/postgres/sync.js +0 -289
- package/dist/cjs/postgres/sync.js.map +0 -1
- package/dist/cjs/postgres/types.js +0 -44
- package/dist/cjs/postgres/types.js.map +0 -1
- package/dist/cjs/registries/builder.js +0 -414
- package/dist/cjs/registries/builder.js.map +0 -1
- package/dist/cjs/registries/discovery.js +0 -362
- package/dist/cjs/registries/discovery.js.map +0 -1
- package/dist/cjs/registries/fairscale.js +0 -639
- package/dist/cjs/registries/fairscale.js.map +0 -1
- package/dist/cjs/registries/index.js +0 -58
- package/dist/cjs/registries/index.js.map +0 -1
- package/dist/cjs/registries/metaplex-bridge.js +0 -743
- package/dist/cjs/registries/metaplex-bridge.js.map +0 -1
- package/dist/cjs/registries/session.js +0 -433
- package/dist/cjs/registries/session.js.map +0 -1
- package/dist/cjs/registries/x402.js +0 -668
- package/dist/cjs/registries/x402.js.map +0 -1
- package/dist/cjs/types/accounts.js +0 -13
- package/dist/cjs/types/accounts.js.map +0 -1
- package/dist/cjs/types/common.js +0 -13
- package/dist/cjs/types/common.js.map +0 -1
- package/dist/cjs/types/endpoint.js +0 -15
- package/dist/cjs/types/endpoint.js.map +0 -1
- package/dist/cjs/types/enums.js +0 -269
- package/dist/cjs/types/enums.js.map +0 -1
- package/dist/cjs/types/index.js +0 -41
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/instructions.js +0 -92
- package/dist/cjs/types/instructions.js.map +0 -1
- package/dist/cjs/utils/anchor-errors.js +0 -453
- package/dist/cjs/utils/anchor-errors.js.map +0 -1
- package/dist/cjs/utils/endpoint-validator.js +0 -232
- package/dist/cjs/utils/endpoint-validator.js.map +0 -1
- package/dist/cjs/utils/escrow-validation.js +0 -219
- package/dist/cjs/utils/escrow-validation.js.map +0 -1
- package/dist/cjs/utils/hash.js +0 -109
- package/dist/cjs/utils/hash.js.map +0 -1
- package/dist/cjs/utils/merchant-validator.js +0 -246
- package/dist/cjs/utils/merchant-validator.js.map +0 -1
- package/dist/cjs/utils/network-normalizer.js +0 -236
- package/dist/cjs/utils/network-normalizer.js.map +0 -1
- package/dist/cjs/utils/priority-fee.js +0 -215
- package/dist/cjs/utils/priority-fee.js.map +0 -1
- package/dist/cjs/utils/rpc-strategy.js +0 -239
- package/dist/cjs/utils/rpc-strategy.js.map +0 -1
- package/dist/cjs/utils/schemas.js +0 -331
- package/dist/cjs/utils/schemas.js.map +0 -1
- package/dist/cjs/utils/serialization.js +0 -105
- package/dist/cjs/utils/serialization.js.map +0 -1
- package/dist/cjs/utils/validation.js +0 -36
- package/dist/cjs/utils/validation.js.map +0 -1
- package/dist/cjs/utils/volume-curve.js +0 -117
- package/dist/cjs/utils/volume-curve.js.map +0 -1
- package/dist/cjs/utils/x402-direct.js +0 -231
- package/dist/cjs/utils/x402-direct.js.map +0 -1
- package/dist/esm/constants/addresses.js +0 -140
- package/dist/esm/constants/addresses.js.map +0 -1
- package/dist/esm/constants/index.js +0 -35
- package/dist/esm/constants/index.js.map +0 -1
- package/dist/esm/constants/limits.js +0 -158
- package/dist/esm/constants/limits.js.map +0 -1
- package/dist/esm/constants/network.js +0 -78
- package/dist/esm/constants/network.js.map +0 -1
- package/dist/esm/constants/payments.js +0 -131
- package/dist/esm/constants/payments.js.map +0 -1
- package/dist/esm/constants/programs.js +0 -75
- package/dist/esm/constants/programs.js.map +0 -1
- package/dist/esm/constants/seeds.js +0 -73
- package/dist/esm/constants/seeds.js.map +0 -1
- package/dist/esm/core/client.js +0 -539
- package/dist/esm/core/client.js.map +0 -1
- package/dist/esm/core/connection.js +0 -345
- package/dist/esm/core/connection.js.map +0 -1
- package/dist/esm/core/index.js +0 -19
- package/dist/esm/core/index.js.map +0 -1
- package/dist/esm/errors/index.js +0 -325
- package/dist/esm/errors/index.js.map +0 -1
- package/dist/esm/events/geyser.js +0 -258
- package/dist/esm/events/geyser.js.map +0 -1
- package/dist/esm/idl/index.js +0 -57
- package/dist/esm/idl/index.js.map +0 -1
- package/dist/esm/idl/synapse_agent_sap.json +0 -14595
- package/dist/esm/modules/agent.js +0 -268
- package/dist/esm/modules/agent.js.map +0 -1
- package/dist/esm/modules/attestation.js +0 -143
- package/dist/esm/modules/attestation.js.map +0 -1
- package/dist/esm/modules/base.js +0 -185
- package/dist/esm/modules/base.js.map +0 -1
- package/dist/esm/modules/escrow-v2.js +0 -603
- package/dist/esm/modules/escrow-v2.js.map +0 -1
- package/dist/esm/modules/escrow.js +0 -332
- package/dist/esm/modules/escrow.js.map +0 -1
- package/dist/esm/modules/feedback.js +0 -162
- package/dist/esm/modules/feedback.js.map +0 -1
- package/dist/esm/modules/index.js +0 -27
- package/dist/esm/modules/index.js.map +0 -1
- package/dist/esm/modules/indexing.js +0 -371
- package/dist/esm/modules/indexing.js.map +0 -1
- package/dist/esm/modules/ledger.js +0 -230
- package/dist/esm/modules/ledger.js.map +0 -1
- package/dist/esm/modules/receipt.js +0 -144
- package/dist/esm/modules/receipt.js.map +0 -1
- package/dist/esm/modules/staking.js +0 -155
- package/dist/esm/modules/staking.js.map +0 -1
- package/dist/esm/modules/subscription.js +0 -92
- package/dist/esm/modules/subscription.js.map +0 -1
- package/dist/esm/modules/tools.js +0 -341
- package/dist/esm/modules/tools.js.map +0 -1
- package/dist/esm/modules/vault.js +0 -423
- package/dist/esm/modules/vault.js.map +0 -1
- package/dist/esm/parser/client.js +0 -142
- package/dist/esm/parser/client.js.map +0 -1
- package/dist/esm/parser/complete.js +0 -173
- package/dist/esm/parser/complete.js.map +0 -1
- package/dist/esm/parser/index.js +0 -43
- package/dist/esm/parser/index.js.map +0 -1
- package/dist/esm/parser/inner.js +0 -180
- package/dist/esm/parser/inner.js.map +0 -1
- package/dist/esm/parser/instructions.js +0 -109
- package/dist/esm/parser/instructions.js.map +0 -1
- package/dist/esm/parser/transaction.js +0 -149
- package/dist/esm/parser/transaction.js.map +0 -1
- package/dist/esm/parser/types.js +0 -13
- package/dist/esm/parser/types.js.map +0 -1
- package/dist/esm/pda/index.js +0 -638
- package/dist/esm/pda/index.js.map +0 -1
- package/dist/esm/plugin/index.js +0 -945
- package/dist/esm/plugin/index.js.map +0 -1
- package/dist/esm/plugin/protocols.js +0 -279
- package/dist/esm/plugin/protocols.js.map +0 -1
- package/dist/esm/plugin/schemas.js +0 -860
- package/dist/esm/plugin/schemas.js.map +0 -1
- package/dist/esm/postgres/adapter.js +0 -678
- package/dist/esm/postgres/adapter.js.map +0 -1
- package/dist/esm/postgres/index.js +0 -27
- package/dist/esm/postgres/index.js.map +0 -1
- package/dist/esm/postgres/serializers.js +0 -362
- package/dist/esm/postgres/serializers.js.map +0 -1
- package/dist/esm/postgres/sync.js +0 -285
- package/dist/esm/postgres/sync.js.map +0 -1
- package/dist/esm/postgres/types.js +0 -41
- package/dist/esm/postgres/types.js.map +0 -1
- package/dist/esm/registries/builder.js +0 -410
- package/dist/esm/registries/builder.js.map +0 -1
- package/dist/esm/registries/discovery.js +0 -358
- package/dist/esm/registries/discovery.js.map +0 -1
- package/dist/esm/registries/fairscale.js +0 -633
- package/dist/esm/registries/fairscale.js.map +0 -1
- package/dist/esm/registries/index.js +0 -46
- package/dist/esm/registries/index.js.map +0 -1
- package/dist/esm/registries/metaplex-bridge.js +0 -706
- package/dist/esm/registries/metaplex-bridge.js.map +0 -1
- package/dist/esm/registries/session.js +0 -429
- package/dist/esm/registries/session.js.map +0 -1
- package/dist/esm/registries/x402.js +0 -664
- package/dist/esm/registries/x402.js.map +0 -1
- package/dist/esm/types/accounts.js +0 -12
- package/dist/esm/types/accounts.js.map +0 -1
- package/dist/esm/types/common.js +0 -12
- package/dist/esm/types/common.js.map +0 -1
- package/dist/esm/types/endpoint.js +0 -14
- package/dist/esm/types/endpoint.js.map +0 -1
- package/dist/esm/types/enums.js +0 -266
- package/dist/esm/types/enums.js.map +0 -1
- package/dist/esm/types/index.js +0 -25
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/instructions.js +0 -89
- package/dist/esm/types/instructions.js.map +0 -1
- package/dist/esm/utils/anchor-errors.js +0 -447
- package/dist/esm/utils/anchor-errors.js.map +0 -1
- package/dist/esm/utils/endpoint-validator.js +0 -226
- package/dist/esm/utils/endpoint-validator.js.map +0 -1
- package/dist/esm/utils/escrow-validation.js +0 -212
- package/dist/esm/utils/escrow-validation.js.map +0 -1
- package/dist/esm/utils/hash.js +0 -103
- package/dist/esm/utils/hash.js.map +0 -1
- package/dist/esm/utils/merchant-validator.js +0 -241
- package/dist/esm/utils/merchant-validator.js.map +0 -1
- package/dist/esm/utils/network-normalizer.js +0 -229
- package/dist/esm/utils/network-normalizer.js.map +0 -1
- package/dist/esm/utils/priority-fee.js +0 -209
- package/dist/esm/utils/priority-fee.js.map +0 -1
- package/dist/esm/utils/rpc-strategy.js +0 -231
- package/dist/esm/utils/rpc-strategy.js.map +0 -1
- package/dist/esm/utils/schemas.js +0 -320
- package/dist/esm/utils/schemas.js.map +0 -1
- package/dist/esm/utils/serialization.js +0 -98
- package/dist/esm/utils/serialization.js.map +0 -1
- package/dist/esm/utils/validation.js +0 -33
- package/dist/esm/utils/validation.js.map +0 -1
- package/dist/esm/utils/volume-curve.js +0 -114
- package/dist/esm/utils/volume-curve.js.map +0 -1
- package/dist/esm/utils/x402-direct.js +0 -228
- package/dist/esm/utils/x402-direct.js.map +0 -1
- package/dist/types/constants/addresses.d.ts +0 -117
- package/dist/types/constants/addresses.d.ts.map +0 -1
- package/dist/types/constants/index.d.ts +0 -31
- package/dist/types/constants/index.d.ts.map +0 -1
- package/dist/types/constants/limits.d.ts +0 -149
- package/dist/types/constants/limits.d.ts.map +0 -1
- package/dist/types/constants/network.d.ts +0 -81
- package/dist/types/constants/network.d.ts.map +0 -1
- package/dist/types/constants/payments.d.ts +0 -121
- package/dist/types/constants/payments.d.ts.map +0 -1
- package/dist/types/constants/programs.d.ts +0 -69
- package/dist/types/constants/programs.d.ts.map +0 -1
- package/dist/types/constants/seeds.d.ts +0 -80
- package/dist/types/constants/seeds.d.ts.map +0 -1
- package/dist/types/core/client.d.ts +0 -452
- package/dist/types/core/client.d.ts.map +0 -1
- package/dist/types/core/connection.d.ts +0 -305
- package/dist/types/core/connection.d.ts.map +0 -1
- package/dist/types/core/index.d.ts +0 -20
- package/dist/types/core/index.d.ts.map +0 -1
- package/dist/types/errors/index.d.ts +0 -276
- package/dist/types/errors/index.d.ts.map +0 -1
- package/dist/types/events/geyser.d.ts +0 -150
- package/dist/types/events/geyser.d.ts.map +0 -1
- package/dist/types/events/index.d.ts +0 -248
- package/dist/types/events/index.d.ts.map +0 -1
- package/dist/types/idl/index.d.ts +0 -70
- package/dist/types/idl/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -85
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/modules/agent.d.ts +0 -166
- package/dist/types/modules/agent.d.ts.map +0 -1
- package/dist/types/modules/attestation.d.ts +0 -96
- package/dist/types/modules/attestation.d.ts.map +0 -1
- package/dist/types/modules/base.d.ts +0 -161
- package/dist/types/modules/base.d.ts.map +0 -1
- package/dist/types/modules/escrow-v2.d.ts +0 -169
- package/dist/types/modules/escrow-v2.d.ts.map +0 -1
- package/dist/types/modules/escrow.d.ts +0 -168
- package/dist/types/modules/escrow.d.ts.map +0 -1
- package/dist/types/modules/feedback.d.ts +0 -105
- package/dist/types/modules/feedback.d.ts.map +0 -1
- package/dist/types/modules/index.d.ts +0 -28
- package/dist/types/modules/index.d.ts.map +0 -1
- package/dist/types/modules/indexing.d.ts +0 -200
- package/dist/types/modules/indexing.d.ts.map +0 -1
- package/dist/types/modules/ledger.d.ts +0 -150
- package/dist/types/modules/ledger.d.ts.map +0 -1
- package/dist/types/modules/receipt.d.ts +0 -77
- package/dist/types/modules/receipt.d.ts.map +0 -1
- package/dist/types/modules/staking.d.ts +0 -51
- package/dist/types/modules/staking.d.ts.map +0 -1
- package/dist/types/modules/subscription.d.ts +0 -33
- package/dist/types/modules/subscription.d.ts.map +0 -1
- package/dist/types/modules/tools.d.ts +0 -182
- package/dist/types/modules/tools.d.ts.map +0 -1
- package/dist/types/modules/vault.d.ts +0 -240
- package/dist/types/modules/vault.d.ts.map +0 -1
- package/dist/types/parser/client.d.ts +0 -123
- package/dist/types/parser/client.d.ts.map +0 -1
- package/dist/types/parser/complete.d.ts +0 -90
- package/dist/types/parser/complete.d.ts.map +0 -1
- package/dist/types/parser/index.d.ts +0 -40
- package/dist/types/parser/index.d.ts.map +0 -1
- package/dist/types/parser/inner.d.ts +0 -114
- package/dist/types/parser/inner.d.ts.map +0 -1
- package/dist/types/parser/instructions.d.ts +0 -76
- package/dist/types/parser/instructions.d.ts.map +0 -1
- package/dist/types/parser/transaction.d.ts +0 -77
- package/dist/types/parser/transaction.d.ts.map +0 -1
- package/dist/types/parser/types.d.ts +0 -154
- package/dist/types/parser/types.d.ts.map +0 -1
- package/dist/types/pda/index.d.ts +0 -510
- package/dist/types/pda/index.d.ts.map +0 -1
- package/dist/types/plugin/index.d.ts +0 -171
- package/dist/types/plugin/index.d.ts.map +0 -1
- package/dist/types/plugin/protocols.d.ts +0 -152
- package/dist/types/plugin/protocols.d.ts.map +0 -1
- package/dist/types/plugin/schemas.d.ts +0 -829
- package/dist/types/plugin/schemas.d.ts.map +0 -1
- package/dist/types/postgres/adapter.d.ts +0 -355
- package/dist/types/postgres/adapter.d.ts.map +0 -1
- package/dist/types/postgres/index.d.ts +0 -24
- package/dist/types/postgres/index.d.ts.map +0 -1
- package/dist/types/postgres/serializers.d.ts +0 -30
- package/dist/types/postgres/serializers.d.ts.map +0 -1
- package/dist/types/postgres/sync.d.ts +0 -156
- package/dist/types/postgres/sync.d.ts.map +0 -1
- package/dist/types/postgres/types.d.ts +0 -167
- package/dist/types/postgres/types.d.ts.map +0 -1
- package/dist/types/registries/builder.d.ts +0 -340
- package/dist/types/registries/builder.d.ts.map +0 -1
- package/dist/types/registries/discovery.d.ts +0 -333
- package/dist/types/registries/discovery.d.ts.map +0 -1
- package/dist/types/registries/fairscale.d.ts +0 -680
- package/dist/types/registries/fairscale.d.ts.map +0 -1
- package/dist/types/registries/index.d.ts +0 -52
- package/dist/types/registries/index.d.ts.map +0 -1
- package/dist/types/registries/metaplex-bridge.d.ts +0 -488
- package/dist/types/registries/metaplex-bridge.d.ts.map +0 -1
- package/dist/types/registries/session.d.ts +0 -323
- package/dist/types/registries/session.d.ts.map +0 -1
- package/dist/types/registries/x402.d.ts +0 -530
- package/dist/types/registries/x402.d.ts.map +0 -1
- package/dist/types/types/accounts.d.ts +0 -765
- package/dist/types/types/accounts.d.ts.map +0 -1
- package/dist/types/types/common.d.ts +0 -166
- package/dist/types/types/common.d.ts.map +0 -1
- package/dist/types/types/endpoint.d.ts +0 -161
- package/dist/types/types/endpoint.d.ts.map +0 -1
- package/dist/types/types/enums.d.ts +0 -353
- package/dist/types/types/enums.d.ts.map +0 -1
- package/dist/types/types/index.d.ts +0 -29
- package/dist/types/types/index.d.ts.map +0 -1
- package/dist/types/types/instructions.d.ts +0 -400
- package/dist/types/types/instructions.d.ts.map +0 -1
- package/dist/types/utils/anchor-errors.d.ts +0 -61
- package/dist/types/utils/anchor-errors.d.ts.map +0 -1
- package/dist/types/utils/endpoint-validator.d.ts +0 -110
- package/dist/types/utils/endpoint-validator.d.ts.map +0 -1
- package/dist/types/utils/escrow-validation.d.ts +0 -145
- package/dist/types/utils/escrow-validation.d.ts.map +0 -1
- package/dist/types/utils/hash.d.ts +0 -75
- package/dist/types/utils/hash.d.ts.map +0 -1
- package/dist/types/utils/index.d.ts +0 -36
- package/dist/types/utils/index.d.ts.map +0 -1
- package/dist/types/utils/merchant-validator.d.ts +0 -176
- package/dist/types/utils/merchant-validator.d.ts.map +0 -1
- package/dist/types/utils/network-normalizer.d.ts +0 -120
- package/dist/types/utils/network-normalizer.d.ts.map +0 -1
- package/dist/types/utils/priority-fee.d.ts +0 -205
- package/dist/types/utils/priority-fee.d.ts.map +0 -1
- package/dist/types/utils/rpc-strategy.d.ts +0 -172
- package/dist/types/utils/rpc-strategy.d.ts.map +0 -1
- package/dist/types/utils/schemas.d.ts +0 -351
- package/dist/types/utils/schemas.d.ts.map +0 -1
- package/dist/types/utils/serialization.d.ts +0 -69
- package/dist/types/utils/serialization.d.ts.map +0 -1
- package/dist/types/utils/validation.d.ts +0 -29
- package/dist/types/utils/validation.d.ts.map +0 -1
- package/dist/types/utils/volume-curve.d.ts +0 -60
- package/dist/types/utils/volume-curve.d.ts.map +0 -1
- package/dist/types/utils/x402-direct.d.ts +0 -114
- package/dist/types/utils/x402-direct.d.ts.map +0 -1
- package/src/constants/addresses.ts +0 -162
- package/src/constants/index.ts +0 -69
- package/src/constants/limits.ts +0 -165
- package/src/constants/network.ts +0 -89
- package/src/constants/payments.ts +0 -145
- package/src/constants/programs.ts +0 -83
- package/src/constants/seeds.ts +0 -85
- package/src/core/client.ts +0 -583
- package/src/core/connection.ts +0 -461
- package/src/core/index.ts +0 -20
- 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/index.ts +0 -76
- 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/index.ts +0 -28
- 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/index.ts +0 -71
- package/src/parser/inner.ts +0 -255
- package/src/parser/instructions.ts +0 -135
- package/src/parser/transaction.ts +0 -200
- package/src/parser/types.ts +0 -182
- package/src/pda/index.ts +0 -919
- 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/hash.ts +0 -113
- 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/serialization.ts +0 -98
- package/src/utils/validation.ts +0 -36
- package/src/utils/volume-curve.ts +0 -131
- package/src/utils/x402-direct.ts +0 -370
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module utils/schemas
|
|
3
|
-
* @description Zod schemas for runtime validation of environment variables,
|
|
4
|
-
* tool arguments, agent manifests, and x402 payment parameters.
|
|
5
|
-
*
|
|
6
|
-
* These schemas enforce correctness at the boundary: CLI scripts refuse
|
|
7
|
-
* to run if required fields are missing or mis-typed, and SDK methods
|
|
8
|
-
* validate inputs before hitting the chain.
|
|
9
|
-
*
|
|
10
|
-
* Zod is a peer dependency — these schemas are tree-shaken if not imported.
|
|
11
|
-
*
|
|
12
|
-
* @category Utils
|
|
13
|
-
* @since v0.6.0
|
|
14
|
-
*/
|
|
15
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
16
|
-
// Dynamic Zod import (peer dependency)
|
|
17
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
18
|
-
// We use a lazy getter pattern to avoid hard failures when zod is not installed
|
|
19
|
-
let _z = null;
|
|
20
|
-
function getZod() {
|
|
21
|
-
if (!_z) {
|
|
22
|
-
try {
|
|
23
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
24
|
-
_z = require("zod");
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
throw new Error("[SAP SDK] Zod is required for schema validation. Install it: npm install zod");
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return _z;
|
|
31
|
-
}
|
|
32
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
33
|
-
// Environment Schemas
|
|
34
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
35
|
-
/**
|
|
36
|
-
* @name createEnvSchema
|
|
37
|
-
* @description Create a Zod schema for SAP SDK environment variables.
|
|
38
|
-
* Validates that all required env vars are present and correctly typed.
|
|
39
|
-
*
|
|
40
|
-
* @returns A Zod schema object for env validation.
|
|
41
|
-
*
|
|
42
|
-
* @category Utils
|
|
43
|
-
* @since v0.6.0
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* ```ts
|
|
47
|
-
* import { createEnvSchema } from "@synapse-sap/sdk";
|
|
48
|
-
*
|
|
49
|
-
* const schema = createEnvSchema();
|
|
50
|
-
* const env = schema.parse(process.env);
|
|
51
|
-
* // env.SOLANA_CLUSTER is typed as "mainnet-beta" | "devnet" | "localnet"
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
export function createEnvSchema() {
|
|
55
|
-
const z = getZod();
|
|
56
|
-
return z.object({
|
|
57
|
-
SOLANA_CLUSTER: z
|
|
58
|
-
.enum(["mainnet-beta", "devnet", "localnet"])
|
|
59
|
-
.default("devnet")
|
|
60
|
-
.describe("Solana cluster"),
|
|
61
|
-
SOLANA_RPC_URL: z
|
|
62
|
-
.string()
|
|
63
|
-
.url()
|
|
64
|
-
.optional()
|
|
65
|
-
.describe("Primary RPC endpoint URL"),
|
|
66
|
-
SOLANA_FALLBACK_RPC_URL: z
|
|
67
|
-
.string()
|
|
68
|
-
.url()
|
|
69
|
-
.optional()
|
|
70
|
-
.describe("Fallback RPC for SPL token ops"),
|
|
71
|
-
SOLANA_WS_URL: z
|
|
72
|
-
.string()
|
|
73
|
-
.url()
|
|
74
|
-
.optional()
|
|
75
|
-
.describe("WebSocket endpoint URL"),
|
|
76
|
-
WALLET_KEYPAIR_PATH: z
|
|
77
|
-
.string()
|
|
78
|
-
.optional()
|
|
79
|
-
.describe("Path to keypair JSON file"),
|
|
80
|
-
WALLET_PRIVATE_KEY: z
|
|
81
|
-
.string()
|
|
82
|
-
.optional()
|
|
83
|
-
.describe("Base58 private key (alternative to file)"),
|
|
84
|
-
SAP_PROGRAM_ID: z
|
|
85
|
-
.string()
|
|
86
|
-
.optional()
|
|
87
|
-
.describe("Custom SAP program ID override"),
|
|
88
|
-
DATABASE_URL: z
|
|
89
|
-
.string()
|
|
90
|
-
.optional()
|
|
91
|
-
.describe("PostgreSQL connection URL"),
|
|
92
|
-
LOG_LEVEL: z
|
|
93
|
-
.enum(["debug", "info", "warn", "error"])
|
|
94
|
-
.default("info")
|
|
95
|
-
.describe("Log level"),
|
|
96
|
-
X402_ENDPOINT: z
|
|
97
|
-
.string()
|
|
98
|
-
.url()
|
|
99
|
-
.optional()
|
|
100
|
-
.describe("Agent x402 payment endpoint"),
|
|
101
|
-
AGENT_URI: z
|
|
102
|
-
.string()
|
|
103
|
-
.url()
|
|
104
|
-
.optional()
|
|
105
|
-
.describe("Agent public API URI"),
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
109
|
-
// Endpoint Schemas
|
|
110
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
111
|
-
/**
|
|
112
|
-
* @name createEndpointDescriptorSchema
|
|
113
|
-
* @description Zod schema for {@link EndpointDescriptor}.
|
|
114
|
-
* @returns A Zod schema for endpoint descriptor validation.
|
|
115
|
-
* @category Utils
|
|
116
|
-
* @since v0.6.0
|
|
117
|
-
*/
|
|
118
|
-
export function createEndpointDescriptorSchema() {
|
|
119
|
-
const z = getZod();
|
|
120
|
-
return z.object({
|
|
121
|
-
url: z.string().url(),
|
|
122
|
-
method: z.enum(["GET", "POST", "PUT", "DELETE"]).default("POST"),
|
|
123
|
-
contentType: z.string().default("application/json"),
|
|
124
|
-
requiresAuth: z.boolean().default(false),
|
|
125
|
-
authType: z.enum(["bearer", "api-key", "x402", "none"]).optional(),
|
|
126
|
-
requiresCSRF: z.boolean().default(false),
|
|
127
|
-
requiresCookies: z.boolean().default(false),
|
|
128
|
-
corsOrigins: z.array(z.string()).optional(),
|
|
129
|
-
requiredHeaders: z.record(z.string(), z.string()).optional(),
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* @name createHealthCheckSchema
|
|
134
|
-
* @description Zod schema for {@link HealthCheckDescriptor}.
|
|
135
|
-
* @returns A Zod schema for health check validation.
|
|
136
|
-
* @category Utils
|
|
137
|
-
* @since v0.6.0
|
|
138
|
-
*/
|
|
139
|
-
export function createHealthCheckSchema() {
|
|
140
|
-
const z = getZod();
|
|
141
|
-
return z.object({
|
|
142
|
-
url: z.string().url(),
|
|
143
|
-
expectedStatus: z.number().int().min(100).max(599).default(200),
|
|
144
|
-
timeoutMs: z.number().int().min(100).max(60_000).default(5000),
|
|
145
|
-
method: z.enum(["GET", "HEAD"]).default("GET"),
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
149
|
-
// Tool Manifest Schemas
|
|
150
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
151
|
-
/**
|
|
152
|
-
* @name createToolManifestEntrySchema
|
|
153
|
-
* @description Zod schema for a single tool in an agent manifest.
|
|
154
|
-
* @returns A Zod schema for tool manifest entry validation.
|
|
155
|
-
* @category Utils
|
|
156
|
-
* @since v0.6.0
|
|
157
|
-
*/
|
|
158
|
-
export function createToolManifestEntrySchema() {
|
|
159
|
-
const z = getZod();
|
|
160
|
-
return z.object({
|
|
161
|
-
name: z.string().min(1).max(64),
|
|
162
|
-
description: z.string().max(256),
|
|
163
|
-
protocol: z.string().min(1).max(64),
|
|
164
|
-
category: z.string().min(1),
|
|
165
|
-
inputSchema: z.record(z.string(), z.unknown()),
|
|
166
|
-
outputSchema: z.record(z.string(), z.unknown()),
|
|
167
|
-
httpMethod: z.enum(["GET", "POST", "PUT", "DELETE", "COMPOUND"]).default("POST"),
|
|
168
|
-
paymentMode: z.enum(["x402", "free", "prepaid", "subscription"]).default("x402"),
|
|
169
|
-
pricePerCall: z.number().int().min(0).default(0),
|
|
170
|
-
requiredArgs: z.array(z.string()).default([]),
|
|
171
|
-
prerequisites: z.array(z.string()).default([]),
|
|
172
|
-
endpointOverride: createEndpointDescriptorSchema().optional(),
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* @name createAgentManifestSchema
|
|
177
|
-
* @description Zod schema for a complete agent manifest.
|
|
178
|
-
* @returns A Zod schema for manifest validation.
|
|
179
|
-
* @category Utils
|
|
180
|
-
* @since v0.6.0
|
|
181
|
-
*
|
|
182
|
-
* @example
|
|
183
|
-
* ```ts
|
|
184
|
-
* import { createAgentManifestSchema } from "@synapse-sap/sdk";
|
|
185
|
-
*
|
|
186
|
-
* const schema = createAgentManifestSchema();
|
|
187
|
-
* const manifest = schema.parse(JSON.parse(fs.readFileSync("manifest.json", "utf-8")));
|
|
188
|
-
* ```
|
|
189
|
-
*/
|
|
190
|
-
export function createAgentManifestSchema() {
|
|
191
|
-
const z = getZod();
|
|
192
|
-
return z.object({
|
|
193
|
-
version: z.literal("1.0.0"),
|
|
194
|
-
wallet: z.string().min(32).max(50),
|
|
195
|
-
name: z.string().min(1).max(64),
|
|
196
|
-
description: z.string().max(256),
|
|
197
|
-
endpoint: createEndpointDescriptorSchema(),
|
|
198
|
-
healthCheck: createHealthCheckSchema().optional(),
|
|
199
|
-
tools: z.array(createToolManifestEntrySchema()),
|
|
200
|
-
supportedNetworks: z.array(z.string()).min(1),
|
|
201
|
-
generatedAt: z.string().datetime(),
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
205
|
-
// x402 Payment Schemas
|
|
206
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
207
|
-
/**
|
|
208
|
-
* @name createPreparePaymentSchema
|
|
209
|
-
* @description Zod schema for x402 payment preparation parameters.
|
|
210
|
-
* @returns A Zod schema for payment option validation.
|
|
211
|
-
* @category Utils
|
|
212
|
-
* @since v0.6.0
|
|
213
|
-
*/
|
|
214
|
-
export function createPreparePaymentSchema() {
|
|
215
|
-
const z = getZod();
|
|
216
|
-
return z.object({
|
|
217
|
-
pricePerCall: z.union([z.number(), z.string(), z.bigint()]),
|
|
218
|
-
maxCalls: z.union([z.number(), z.string(), z.bigint()]).optional(),
|
|
219
|
-
deposit: z.union([z.number(), z.string(), z.bigint()]),
|
|
220
|
-
expiresAt: z.union([z.number(), z.string(), z.bigint()]).optional(),
|
|
221
|
-
volumeCurve: z
|
|
222
|
-
.array(z.object({
|
|
223
|
-
afterCalls: z.number().int().min(1),
|
|
224
|
-
pricePerCall: z.union([z.number(), z.string(), z.bigint()]),
|
|
225
|
-
}))
|
|
226
|
-
.optional(),
|
|
227
|
-
tokenMint: z.string().optional(),
|
|
228
|
-
tokenDecimals: z.number().int().min(0).max(18).default(9),
|
|
229
|
-
networkIdentifier: z.string().optional(),
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
233
|
-
// Agent Registration Schemas
|
|
234
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
235
|
-
/**
|
|
236
|
-
* @name createRegisterAgentSchema
|
|
237
|
-
* @description Zod schema for agent registration arguments.
|
|
238
|
-
* @returns A Zod schema for registration validation.
|
|
239
|
-
* @category Utils
|
|
240
|
-
* @since v0.6.0
|
|
241
|
-
*/
|
|
242
|
-
export function createRegisterAgentSchema() {
|
|
243
|
-
const z = getZod();
|
|
244
|
-
return z.object({
|
|
245
|
-
name: z.string().min(1).max(64),
|
|
246
|
-
description: z.string().min(1).max(256),
|
|
247
|
-
agentId: z.string().max(128).optional().nullable(),
|
|
248
|
-
agentUri: z.string().max(256).optional().nullable(),
|
|
249
|
-
x402Endpoint: z.string().url().max(256).optional().nullable(),
|
|
250
|
-
capabilities: z
|
|
251
|
-
.array(z.object({
|
|
252
|
-
id: z.string().min(1),
|
|
253
|
-
description: z.string().nullable().optional(),
|
|
254
|
-
protocolId: z.string().nullable().optional(),
|
|
255
|
-
version: z.string().nullable().optional(),
|
|
256
|
-
}))
|
|
257
|
-
.max(10)
|
|
258
|
-
.default([]),
|
|
259
|
-
protocols: z.array(z.string()).max(5).default([]),
|
|
260
|
-
pricing: z
|
|
261
|
-
.array(z.object({
|
|
262
|
-
tierId: z.string().min(1),
|
|
263
|
-
pricePerCall: z.union([z.number(), z.string()]),
|
|
264
|
-
rateLimit: z.number().int().min(0),
|
|
265
|
-
tokenType: z.enum(["sol", "usdc", "spl"]).default("sol"),
|
|
266
|
-
settlementMode: z.enum(["instant", "escrow", "batched", "x402"]).default("x402"),
|
|
267
|
-
}))
|
|
268
|
-
.max(5)
|
|
269
|
-
.default([]),
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
273
|
-
// CLI Script Argument Schemas
|
|
274
|
-
// ═══════════════════════════════════════════════════════════════════
|
|
275
|
-
/**
|
|
276
|
-
* @name createCallArgsSchema
|
|
277
|
-
* @description Zod schema for `npm run call` script arguments.
|
|
278
|
-
* Ensures all required fields are present before executing an x402 call.
|
|
279
|
-
*
|
|
280
|
-
* @returns A Zod schema for call argument validation.
|
|
281
|
-
* @category Utils
|
|
282
|
-
* @since v0.6.0
|
|
283
|
-
*/
|
|
284
|
-
export function createCallArgsSchema() {
|
|
285
|
-
const z = getZod();
|
|
286
|
-
return z.object({
|
|
287
|
-
agentWallet: z.string().min(32).max(50).describe("Agent wallet (base58)"),
|
|
288
|
-
tool: z.string().min(1).describe("Tool name to invoke"),
|
|
289
|
-
args: z.record(z.string(), z.unknown()).default({}).describe("Tool arguments (JSON)"),
|
|
290
|
-
endpoint: z.string().url().optional().describe("Endpoint URL override"),
|
|
291
|
-
network: z.string().optional().describe("Network identifier override"),
|
|
292
|
-
maxRetries: z.number().int().min(0).max(10).default(2),
|
|
293
|
-
timeoutMs: z.number().int().min(1000).max(120_000).default(30_000),
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* @name validateOrThrow
|
|
298
|
-
* @description Validate a value against a Zod schema, throwing a SapValidationError
|
|
299
|
-
* with a friendly message if validation fails.
|
|
300
|
-
*
|
|
301
|
-
* @param schema - A Zod schema.
|
|
302
|
-
* @param value - The value to validate.
|
|
303
|
-
* @param label - A label for error messages (e.g. "environment", "call args").
|
|
304
|
-
* @returns The parsed and typed value.
|
|
305
|
-
* @throws {Error} With formatted validation errors.
|
|
306
|
-
*
|
|
307
|
-
* @category Utils
|
|
308
|
-
* @since v0.6.0
|
|
309
|
-
*/
|
|
310
|
-
export function validateOrThrow(schema, value, label) {
|
|
311
|
-
const result = schema.safeParse(value);
|
|
312
|
-
if (result.success)
|
|
313
|
-
return schema.parse(value);
|
|
314
|
-
const issues = result.error?.issues ?? [];
|
|
315
|
-
const formatted = issues
|
|
316
|
-
.map((i) => ` • ${i.path.join(".")}: ${i.message}`)
|
|
317
|
-
.join("\n");
|
|
318
|
-
throw new Error(`[SAP SDK] Invalid ${label}:\n${formatted}`);
|
|
319
|
-
}
|
|
320
|
-
//# sourceMappingURL=schemas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/utils/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module utils/serialization
|
|
3
|
-
* @description JSON-safe serialization helpers for on-chain account data.
|
|
4
|
-
*
|
|
5
|
-
* On-chain Anchor account objects contain `PublicKey` and `BN` instances
|
|
6
|
-
* that are not JSON-serializable. These helpers convert them to plain
|
|
7
|
-
* strings (`base58` and decimal `string`) recursively.
|
|
8
|
-
*
|
|
9
|
-
* @category Utils
|
|
10
|
-
* @since v0.1.0
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* import { serializeAccount } from "@synapse-sap/sdk/utils";
|
|
15
|
-
*
|
|
16
|
-
* const raw = await program.account.agent.fetch(pda);
|
|
17
|
-
* const json = serializeAccount(raw);
|
|
18
|
-
* // { authority: "GBL...", totalCalls: "42", ... }
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
import { PublicKey } from "@solana/web3.js";
|
|
22
|
-
import BN from "bn.js";
|
|
23
|
-
/**
|
|
24
|
-
* Recursively convert a single value for JSON serialization.
|
|
25
|
-
*
|
|
26
|
-
* - `PublicKey` → base58 string
|
|
27
|
-
* - `BN` → decimal string
|
|
28
|
-
* - `Uint8Array` / `Buffer` → hex string
|
|
29
|
-
* - `Array` → recursed
|
|
30
|
-
* - plain `object` → recursed via {@link serializeAccount}
|
|
31
|
-
* - primitives → identity
|
|
32
|
-
*
|
|
33
|
-
* @name serializeValue
|
|
34
|
-
* @description Transforms a single Anchor-typed value into its JSON-safe equivalent.
|
|
35
|
-
* @param value - The value to serialize.
|
|
36
|
-
* @returns The JSON-safe representation of `value`.
|
|
37
|
-
* @category Utils
|
|
38
|
-
* @since v0.1.0
|
|
39
|
-
* @example
|
|
40
|
-
* ```ts
|
|
41
|
-
* import { serializeValue } from "@synapse-sap/sdk/utils";
|
|
42
|
-
*
|
|
43
|
-
* serializeValue(new PublicKey("11111111111111111111111111111111")); // "1111..."
|
|
44
|
-
* serializeValue(new BN(42)); // "42"
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
-
export function serializeValue(value) {
|
|
49
|
-
if (value === null || value === undefined)
|
|
50
|
-
return null;
|
|
51
|
-
if (value instanceof PublicKey)
|
|
52
|
-
return value.toBase58();
|
|
53
|
-
if (BN.isBN(value))
|
|
54
|
-
return value.toString();
|
|
55
|
-
if (value instanceof Uint8Array || Buffer.isBuffer(value))
|
|
56
|
-
return Buffer.from(value).toString("hex");
|
|
57
|
-
if (Array.isArray(value))
|
|
58
|
-
return value.map(serializeValue);
|
|
59
|
-
if (typeof value === "object") {
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
-
return serializeAccount(value);
|
|
62
|
-
}
|
|
63
|
-
return value;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Serialize an entire on-chain account object to a JSON-safe shape.
|
|
67
|
-
*
|
|
68
|
-
* Iterates over each key and delegates to {@link serializeValue}.
|
|
69
|
-
* Handles `PublicKey` → base58, `BN` → string, and nested
|
|
70
|
-
* objects / arrays recursively.
|
|
71
|
-
*
|
|
72
|
-
* @name serializeAccount
|
|
73
|
-
* @description Converts all non-primitive fields in an Anchor account record to JSON-safe strings.
|
|
74
|
-
* @param obj - The raw account object returned by `program.account.<name>.fetch()`.
|
|
75
|
-
* @returns A new plain object with all values converted.
|
|
76
|
-
* @category Utils
|
|
77
|
-
* @since v0.1.0
|
|
78
|
-
* @example
|
|
79
|
-
* ```ts
|
|
80
|
-
* import { serializeAccount } from "@synapse-sap/sdk/utils";
|
|
81
|
-
*
|
|
82
|
-
* const raw = await program.account.agent.fetch(pda);
|
|
83
|
-
* const safe = serializeAccount(raw);
|
|
84
|
-
* console.log(JSON.stringify(safe));
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
87
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
|
-
export function serializeAccount(
|
|
89
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
90
|
-
obj) {
|
|
91
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
92
|
-
const result = {};
|
|
93
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
94
|
-
result[key] = serializeValue(value);
|
|
95
|
-
}
|
|
96
|
-
return result;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=serialization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/utils/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,KAAK,YAAY,SAAS;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IACxD,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,KAAK,YAAY,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,8DAA8D;QAC9D,OAAO,gBAAgB,CAAC,KAA4B,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB;AAC9B,8DAA8D;AAC9D,GAAwB;IAGxB,8DAA8D;IAC9D,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module utils/validation
|
|
3
|
-
* @description Runtime assertion helpers.
|
|
4
|
-
*
|
|
5
|
-
* @category Utils
|
|
6
|
-
* @since v0.1.0
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Assert that a condition holds, throwing a descriptive error otherwise.
|
|
10
|
-
*
|
|
11
|
-
* Uses TypeScript’s `asserts condition` return type so the compiler
|
|
12
|
-
* narrows the guarded value after the call.
|
|
13
|
-
*
|
|
14
|
-
* @name assert
|
|
15
|
-
* @description Runtime guard — throws `RangeError` with a `[SAP SDK]` prefix when the condition is falsy.
|
|
16
|
-
* @param condition - The boolean expression to verify.
|
|
17
|
-
* @param message - Human-readable message included in the thrown error.
|
|
18
|
-
* @throws {RangeError} When `condition` is `false`.
|
|
19
|
-
* @category Utils
|
|
20
|
-
* @since v0.1.0
|
|
21
|
-
* @example
|
|
22
|
-
* ```ts
|
|
23
|
-
* import { assert } from "@synapse-sap/sdk/utils";
|
|
24
|
-
*
|
|
25
|
-
* assert(name.length <= 64, "Agent name exceeds MAX_NAME_LEN");
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export function assert(condition, message) {
|
|
29
|
-
if (!condition) {
|
|
30
|
-
throw new RangeError(`[SAP SDK] ${message}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,MAAM,CACpB,SAAkB,EAClB,OAAe;IAEf,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module volume-curve
|
|
3
|
-
* @description Client-side mirror of the on-chain `calculate_settle_amount`
|
|
4
|
-
* function from `programs/synapse-agent-sap/src/instructions/escrow_v2.rs`.
|
|
5
|
-
*
|
|
6
|
-
* Used by {@link EscrowV2Module.settle} to pre-compute the settlement
|
|
7
|
-
* `amount` so it can chain `createPendingSettlement` in the same transaction
|
|
8
|
-
* as `settleCallsV2` (DisputeWindow flow). Keeping the math in one place
|
|
9
|
-
* here ensures the SDK stays byte-for-byte aligned with the program; if the
|
|
10
|
-
* on-chain curve algorithm ever changes, this file is the single source of
|
|
11
|
-
* truth on the client.
|
|
12
|
-
*
|
|
13
|
-
* @category Utilities
|
|
14
|
-
* @since v0.13.0
|
|
15
|
-
* @packageDocumentation
|
|
16
|
-
*/
|
|
17
|
-
import { BN } from "@coral-xyz/anchor";
|
|
18
|
-
const U64_MAX = new BN("18446744073709551615");
|
|
19
|
-
function checkedMul(a, b) {
|
|
20
|
-
const r = a.mul(b);
|
|
21
|
-
if (r.gt(U64_MAX)) {
|
|
22
|
-
throw new Error(`volume-curve: u64 overflow on multiply (${a.toString()} * ${b.toString()})`);
|
|
23
|
-
}
|
|
24
|
-
return r;
|
|
25
|
-
}
|
|
26
|
-
function checkedAdd(a, b) {
|
|
27
|
-
const r = a.add(b);
|
|
28
|
-
if (r.gt(U64_MAX)) {
|
|
29
|
-
throw new Error(`volume-curve: u64 overflow on add (${a.toString()} + ${b.toString()})`);
|
|
30
|
-
}
|
|
31
|
-
return r;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* @function calculateSettleAmount
|
|
35
|
-
* @description Compute the lamport (or token base-unit) amount the on-chain
|
|
36
|
-
* `settle_calls_v2` handler will charge for `calls` calls, given the escrow's
|
|
37
|
-
* `pricePerCall`, `volumeCurve`, and the current settled+pending counter.
|
|
38
|
-
*
|
|
39
|
-
* Mirrors the exact algorithm of `calculate_settle_amount` in
|
|
40
|
-
* `escrow_v2.rs` (v0.7+):
|
|
41
|
-
*
|
|
42
|
-
* ```rust
|
|
43
|
-
* if curve.is_empty() { calls * base_price } else { walk-the-curve }
|
|
44
|
-
* ```
|
|
45
|
-
*
|
|
46
|
-
* Walks the curve from `cursor = totalCallsBefore` and at each cursor
|
|
47
|
-
* position picks the breakpoint price whose `afterCalls` threshold the
|
|
48
|
-
* cursor has passed. Calls are charged at the active price up to the next
|
|
49
|
-
* threshold, then the cursor advances and the loop repeats until all
|
|
50
|
-
* `calls` are accounted for.
|
|
51
|
-
*
|
|
52
|
-
* @param basePrice - Escrow's `pricePerCall` (BN, u64 lamports/base-units).
|
|
53
|
-
* @param curve - The escrow's `volumeCurve` array (may be empty).
|
|
54
|
-
* @param totalCallsBefore - `escrow.totalCallsSettled + escrow.pendingCalls`
|
|
55
|
-
* AT THE MOMENT `settleCallsV2` runs on-chain.
|
|
56
|
-
* @param calls - Number of calls being settled in this batch.
|
|
57
|
-
* @returns The amount the on-chain handler will compute (BN, u64).
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* ```ts
|
|
61
|
-
* import { calculateSettleAmount } from "@oobe-protocol-labs/synapse-sap-sdk";
|
|
62
|
-
*
|
|
63
|
-
* const amount = calculateSettleAmount(
|
|
64
|
-
* escrow.pricePerCall,
|
|
65
|
-
* escrow.volumeCurve,
|
|
66
|
-
* escrow.totalCallsSettled.add(escrow.pendingCalls),
|
|
67
|
-
* new BN(5),
|
|
68
|
-
* );
|
|
69
|
-
* ```
|
|
70
|
-
*
|
|
71
|
-
* @since v0.13.0
|
|
72
|
-
*/
|
|
73
|
-
export function calculateSettleAmount(basePrice, curve, totalCallsBefore, calls) {
|
|
74
|
-
if (calls.isZero())
|
|
75
|
-
return new BN(0);
|
|
76
|
-
if (!curve || curve.length === 0) {
|
|
77
|
-
return checkedMul(calls, basePrice);
|
|
78
|
-
}
|
|
79
|
-
let amount = new BN(0);
|
|
80
|
-
let remaining = calls.clone();
|
|
81
|
-
let cursor = totalCallsBefore.clone();
|
|
82
|
-
while (remaining.gtn(0)) {
|
|
83
|
-
let currentPrice = basePrice;
|
|
84
|
-
let nextThreshold = null;
|
|
85
|
-
for (const bp of curve) {
|
|
86
|
-
const threshold = new BN(bp.afterCalls);
|
|
87
|
-
if (cursor.gte(threshold)) {
|
|
88
|
-
currentPrice = bp.pricePerCall;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
nextThreshold = threshold;
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
let callsAtPrice;
|
|
96
|
-
if (nextThreshold) {
|
|
97
|
-
const room = nextThreshold.sub(cursor);
|
|
98
|
-
callsAtPrice = BN.min(remaining, room.isNeg() ? new BN(0) : room);
|
|
99
|
-
if (callsAtPrice.isZero()) {
|
|
100
|
-
// Defensive: shouldn't happen because cursor < nextThreshold by
|
|
101
|
-
// the `else` branch above, but guard anyway.
|
|
102
|
-
callsAtPrice = remaining;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
callsAtPrice = remaining;
|
|
107
|
-
}
|
|
108
|
-
amount = checkedAdd(amount, checkedMul(callsAtPrice, currentPrice));
|
|
109
|
-
remaining = remaining.sub(callsAtPrice);
|
|
110
|
-
cursor = cursor.add(callsAtPrice);
|
|
111
|
-
}
|
|
112
|
-
return amount;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=volume-curve.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"volume-curve.js","sourceRoot":"","sources":["../../../src/utils/volume-curve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAGvC,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,sBAAsB,CAAC,CAAC;AAE/C,SAAS,UAAU,CAAC,CAAK,EAAE,CAAK;IAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,2CAA2C,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,GAAG,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,UAAU,CAAC,CAAK,EAAE,CAAK;IAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,sCAAsC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,GAAG,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAa,EACb,KAA8B,EAC9B,gBAAoB,EACpB,KAAS;IAET,IAAI,KAAK,CAAC,MAAM,EAAE;QAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAEtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,IAAI,YAAY,GAAG,SAAS,CAAC;QAC7B,IAAI,aAAa,GAAc,IAAI,CAAC;QAEpC,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,SAAS,CAAC;gBAC1B,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,YAAgB,CAAC;QACrB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvC,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,gEAAgE;gBAChE,6CAA6C;gBAC7C,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;QAED,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;QACpE,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|