@usesigil/kit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +190 -0
- package/dist/advanced-analytics.d.ts +118 -0
- package/dist/advanced-analytics.d.ts.map +1 -0
- package/dist/advanced-analytics.js +341 -0
- package/dist/advanced-analytics.js.map +1 -0
- package/dist/agent-analytics.d.ts +76 -0
- package/dist/agent-analytics.d.ts.map +1 -0
- package/dist/agent-analytics.js +179 -0
- package/dist/agent-analytics.js.map +1 -0
- package/dist/agent-errors.d.ts +151 -0
- package/dist/agent-errors.d.ts.map +1 -0
- package/dist/agent-errors.js +2001 -0
- package/dist/agent-errors.js.map +1 -0
- package/dist/alt-config.d.ts +43 -0
- package/dist/alt-config.d.ts.map +1 -0
- package/dist/alt-config.js +78 -0
- package/dist/alt-config.js.map +1 -0
- package/dist/alt-loader.d.ts +47 -0
- package/dist/alt-loader.d.ts.map +1 -0
- package/dist/alt-loader.js +143 -0
- package/dist/alt-loader.js.map +1 -0
- package/dist/balance-tracker.d.ts +87 -0
- package/dist/balance-tracker.d.ts.map +1 -0
- package/dist/balance-tracker.js +181 -0
- package/dist/balance-tracker.js.map +1 -0
- package/dist/composer.d.ts +56 -0
- package/dist/composer.d.ts.map +1 -0
- package/dist/composer.js +77 -0
- package/dist/composer.js.map +1 -0
- package/dist/core/engine.d.ts +17 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +177 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/errors.d.ts +24 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +16 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/policies.d.ts +75 -0
- package/dist/core/policies.d.ts.map +1 -0
- package/dist/core/policies.js +126 -0
- package/dist/core/policies.js.map +1 -0
- package/dist/core/registry.d.ts +29 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +125 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/state.d.ts +71 -0
- package/dist/core/state.d.ts.map +1 -0
- package/dist/core/state.js +169 -0
- package/dist/core/state.js.map +1 -0
- package/dist/create-vault.d.ts +58 -0
- package/dist/create-vault.d.ts.map +1 -0
- package/dist/create-vault.js +90 -0
- package/dist/create-vault.js.map +1 -0
- package/dist/custody-adapter.d.ts +54 -0
- package/dist/custody-adapter.d.ts.map +1 -0
- package/dist/custody-adapter.js +45 -0
- package/dist/custody-adapter.js.map +1 -0
- package/dist/event-analytics.d.ts +45 -0
- package/dist/event-analytics.d.ts.map +1 -0
- package/dist/event-analytics.js +277 -0
- package/dist/event-analytics.js.map +1 -0
- package/dist/events.d.ts +56 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +151 -0
- package/dist/events.js.map +1 -0
- package/dist/formatting.d.ts +103 -0
- package/dist/formatting.d.ts.map +1 -0
- package/dist/formatting.js +244 -0
- package/dist/formatting.js.map +1 -0
- package/dist/generated/accounts/agentSpendOverlay.d.ts +54 -0
- package/dist/generated/accounts/agentSpendOverlay.d.ts.map +1 -0
- package/dist/generated/accounts/agentSpendOverlay.js +74 -0
- package/dist/generated/accounts/agentSpendOverlay.js.map +1 -0
- package/dist/generated/accounts/agentVault.d.ts +95 -0
- package/dist/generated/accounts/agentVault.d.ts.map +1 -0
- package/dist/generated/accounts/agentVault.js +83 -0
- package/dist/generated/accounts/agentVault.js.map +1 -0
- package/dist/generated/accounts/escrowDeposit.d.ts +50 -0
- package/dist/generated/accounts/escrowDeposit.d.ts.map +1 -0
- package/dist/generated/accounts/escrowDeposit.js +76 -0
- package/dist/generated/accounts/escrowDeposit.js.map +1 -0
- package/dist/generated/accounts/index.d.ts +17 -0
- package/dist/generated/accounts/index.d.ts.map +1 -0
- package/dist/generated/accounts/index.js +17 -0
- package/dist/generated/accounts/index.js.map +1 -0
- package/dist/generated/accounts/instructionConstraints.d.ts +37 -0
- package/dist/generated/accounts/instructionConstraints.d.ts.map +1 -0
- package/dist/generated/accounts/instructionConstraints.js +64 -0
- package/dist/generated/accounts/instructionConstraints.js.map +1 -0
- package/dist/generated/accounts/pendingConstraintsUpdate.d.ts +53 -0
- package/dist/generated/accounts/pendingConstraintsUpdate.d.ts.map +1 -0
- package/dist/generated/accounts/pendingConstraintsUpdate.js +68 -0
- package/dist/generated/accounts/pendingConstraintsUpdate.js.map +1 -0
- package/dist/generated/accounts/pendingPolicyUpdate.d.ts +72 -0
- package/dist/generated/accounts/pendingPolicyUpdate.d.ts.map +1 -0
- package/dist/generated/accounts/pendingPolicyUpdate.js +97 -0
- package/dist/generated/accounts/pendingPolicyUpdate.js.map +1 -0
- package/dist/generated/accounts/policyConfig.d.ts +180 -0
- package/dist/generated/accounts/policyConfig.d.ts.map +1 -0
- package/dist/generated/accounts/policyConfig.js +88 -0
- package/dist/generated/accounts/policyConfig.js.map +1 -0
- package/dist/generated/accounts/sessionAuthority.d.ts +104 -0
- package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -0
- package/dist/generated/accounts/sessionAuthority.js +86 -0
- package/dist/generated/accounts/sessionAuthority.js.map +1 -0
- package/dist/generated/accounts/spendTracker.d.ts +60 -0
- package/dist/generated/accounts/spendTracker.d.ts.map +1 -0
- package/dist/generated/accounts/spendTracker.js +74 -0
- package/dist/generated/accounts/spendTracker.js.map +1 -0
- package/dist/generated/errors/index.d.ts +9 -0
- package/dist/generated/errors/index.d.ts.map +1 -0
- package/dist/generated/errors/index.js +9 -0
- package/dist/generated/errors/index.js.map +1 -0
- package/dist/generated/errors/sigil.d.ts +162 -0
- package/dist/generated/errors/sigil.d.ts.map +1 -0
- package/dist/generated/errors/sigil.js +237 -0
- package/dist/generated/errors/sigil.js.map +1 -0
- package/dist/generated/event-discriminators.d.ts +2 -0
- package/dist/generated/event-discriminators.d.ts.map +1 -0
- package/dist/generated/event-discriminators.js +39 -0
- package/dist/generated/event-discriminators.js.map +1 -0
- package/dist/generated/index.d.ts +13 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +13 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/instructions/agentTransfer.d.ts +109 -0
- package/dist/generated/instructions/agentTransfer.d.ts.map +1 -0
- package/dist/generated/instructions/agentTransfer.js +211 -0
- package/dist/generated/instructions/agentTransfer.js.map +1 -0
- package/dist/generated/instructions/applyConstraintsUpdate.d.ts +55 -0
- package/dist/generated/instructions/applyConstraintsUpdate.d.ts.map +1 -0
- package/dist/generated/instructions/applyConstraintsUpdate.js +129 -0
- package/dist/generated/instructions/applyConstraintsUpdate.js.map +1 -0
- package/dist/generated/instructions/applyPendingPolicy.d.ts +55 -0
- package/dist/generated/instructions/applyPendingPolicy.d.ts.map +1 -0
- package/dist/generated/instructions/applyPendingPolicy.js +122 -0
- package/dist/generated/instructions/applyPendingPolicy.js.map +1 -0
- package/dist/generated/instructions/cancelConstraintsUpdate.d.ts +51 -0
- package/dist/generated/instructions/cancelConstraintsUpdate.d.ts.map +1 -0
- package/dist/generated/instructions/cancelConstraintsUpdate.js +115 -0
- package/dist/generated/instructions/cancelConstraintsUpdate.js.map +1 -0
- package/dist/generated/instructions/cancelPendingPolicy.d.ts +55 -0
- package/dist/generated/instructions/cancelPendingPolicy.d.ts.map +1 -0
- package/dist/generated/instructions/cancelPendingPolicy.js +122 -0
- package/dist/generated/instructions/cancelPendingPolicy.js.map +1 -0
- package/dist/generated/instructions/closeInstructionConstraints.d.ts +55 -0
- package/dist/generated/instructions/closeInstructionConstraints.d.ts.map +1 -0
- package/dist/generated/instructions/closeInstructionConstraints.js +120 -0
- package/dist/generated/instructions/closeInstructionConstraints.js.map +1 -0
- package/dist/generated/instructions/closeSettledEscrow.d.ts +72 -0
- package/dist/generated/instructions/closeSettledEscrow.d.ts.map +1 -0
- package/dist/generated/instructions/closeSettledEscrow.js +127 -0
- package/dist/generated/instructions/closeSettledEscrow.js.map +1 -0
- package/dist/generated/instructions/closeVault.d.ts +69 -0
- package/dist/generated/instructions/closeVault.d.ts.map +1 -0
- package/dist/generated/instructions/closeVault.js +142 -0
- package/dist/generated/instructions/closeVault.js.map +1 -0
- package/dist/generated/instructions/createEscrow.d.ts +131 -0
- package/dist/generated/instructions/createEscrow.d.ts.map +1 -0
- package/dist/generated/instructions/createEscrow.js +272 -0
- package/dist/generated/instructions/createEscrow.js.map +1 -0
- package/dist/generated/instructions/createInstructionConstraints.d.ts +69 -0
- package/dist/generated/instructions/createInstructionConstraints.d.ts.map +1 -0
- package/dist/generated/instructions/createInstructionConstraints.js +145 -0
- package/dist/generated/instructions/createInstructionConstraints.js.map +1 -0
- package/dist/generated/instructions/depositFunds.d.ts +82 -0
- package/dist/generated/instructions/depositFunds.d.ts.map +1 -0
- package/dist/generated/instructions/depositFunds.js +198 -0
- package/dist/generated/instructions/depositFunds.js.map +1 -0
- package/dist/generated/instructions/finalizeSession.d.ts +126 -0
- package/dist/generated/instructions/finalizeSession.d.ts.map +1 -0
- package/dist/generated/instructions/finalizeSession.js +218 -0
- package/dist/generated/instructions/finalizeSession.js.map +1 -0
- package/dist/generated/instructions/freezeVault.d.ts +40 -0
- package/dist/generated/instructions/freezeVault.d.ts.map +1 -0
- package/dist/generated/instructions/freezeVault.js +66 -0
- package/dist/generated/instructions/freezeVault.js.map +1 -0
- package/dist/generated/instructions/index.d.ts +37 -0
- package/dist/generated/instructions/index.d.ts.map +1 -0
- package/dist/generated/instructions/index.js +37 -0
- package/dist/generated/instructions/index.js.map +1 -0
- package/dist/generated/instructions/initializeVault.d.ts +122 -0
- package/dist/generated/instructions/initializeVault.d.ts.map +1 -0
- package/dist/generated/instructions/initializeVault.js +187 -0
- package/dist/generated/instructions/initializeVault.js.map +1 -0
- package/dist/generated/instructions/pauseAgent.d.ts +44 -0
- package/dist/generated/instructions/pauseAgent.d.ts.map +1 -0
- package/dist/generated/instructions/pauseAgent.js +72 -0
- package/dist/generated/instructions/pauseAgent.js.map +1 -0
- package/dist/generated/instructions/queueConstraintsUpdate.d.ts +73 -0
- package/dist/generated/instructions/queueConstraintsUpdate.d.ts.map +1 -0
- package/dist/generated/instructions/queueConstraintsUpdate.js +168 -0
- package/dist/generated/instructions/queueConstraintsUpdate.js.map +1 -0
- package/dist/generated/instructions/queuePolicyUpdate.d.ts +116 -0
- package/dist/generated/instructions/queuePolicyUpdate.d.ts.map +1 -0
- package/dist/generated/instructions/queuePolicyUpdate.js +173 -0
- package/dist/generated/instructions/queuePolicyUpdate.js.map +1 -0
- package/dist/generated/instructions/reactivateVault.d.ts +47 -0
- package/dist/generated/instructions/reactivateVault.d.ts.map +1 -0
- package/dist/generated/instructions/reactivateVault.js +74 -0
- package/dist/generated/instructions/reactivateVault.js.map +1 -0
- package/dist/generated/instructions/refundEscrow.d.ts +74 -0
- package/dist/generated/instructions/refundEscrow.d.ts.map +1 -0
- package/dist/generated/instructions/refundEscrow.js +142 -0
- package/dist/generated/instructions/refundEscrow.js.map +1 -0
- package/dist/generated/instructions/registerAgent.d.ts +55 -0
- package/dist/generated/instructions/registerAgent.d.ts.map +1 -0
- package/dist/generated/instructions/registerAgent.js +85 -0
- package/dist/generated/instructions/registerAgent.js.map +1 -0
- package/dist/generated/instructions/revokeAgent.d.ts +49 -0
- package/dist/generated/instructions/revokeAgent.d.ts.map +1 -0
- package/dist/generated/instructions/revokeAgent.js +81 -0
- package/dist/generated/instructions/revokeAgent.js.map +1 -0
- package/dist/generated/instructions/settleEscrow.d.ts +80 -0
- package/dist/generated/instructions/settleEscrow.d.ts.map +1 -0
- package/dist/generated/instructions/settleEscrow.js +173 -0
- package/dist/generated/instructions/settleEscrow.js.map +1 -0
- package/dist/generated/instructions/syncPositions.d.ts +44 -0
- package/dist/generated/instructions/syncPositions.d.ts.map +1 -0
- package/dist/generated/instructions/syncPositions.js +72 -0
- package/dist/generated/instructions/syncPositions.js.map +1 -0
- package/dist/generated/instructions/unpauseAgent.d.ts +44 -0
- package/dist/generated/instructions/unpauseAgent.d.ts.map +1 -0
- package/dist/generated/instructions/unpauseAgent.js +72 -0
- package/dist/generated/instructions/unpauseAgent.js.map +1 -0
- package/dist/generated/instructions/updateAgentPermissions.d.ts +68 -0
- package/dist/generated/instructions/updateAgentPermissions.d.ts.map +1 -0
- package/dist/generated/instructions/updateAgentPermissions.js +139 -0
- package/dist/generated/instructions/updateAgentPermissions.js.map +1 -0
- package/dist/generated/instructions/updateInstructionConstraints.d.ts +65 -0
- package/dist/generated/instructions/updateInstructionConstraints.d.ts.map +1 -0
- package/dist/generated/instructions/updateInstructionConstraints.js +131 -0
- package/dist/generated/instructions/updateInstructionConstraints.js.map +1 -0
- package/dist/generated/instructions/updatePolicy.d.ts +108 -0
- package/dist/generated/instructions/updatePolicy.d.ts.map +1 -0
- package/dist/generated/instructions/updatePolicy.js +143 -0
- package/dist/generated/instructions/updatePolicy.js.map +1 -0
- package/dist/generated/instructions/validateAndAuthorize.d.ts +171 -0
- package/dist/generated/instructions/validateAndAuthorize.d.ts.map +1 -0
- package/dist/generated/instructions/validateAndAuthorize.js +271 -0
- package/dist/generated/instructions/validateAndAuthorize.js.map +1 -0
- package/dist/generated/instructions/withdrawFunds.d.ts +74 -0
- package/dist/generated/instructions/withdrawFunds.d.ts.map +1 -0
- package/dist/generated/instructions/withdrawFunds.js +166 -0
- package/dist/generated/instructions/withdrawFunds.js.map +1 -0
- package/dist/generated/programs/index.d.ts +9 -0
- package/dist/generated/programs/index.d.ts.map +1 -0
- package/dist/generated/programs/index.js +9 -0
- package/dist/generated/programs/index.js.map +1 -0
- package/dist/generated/programs/sigil.d.ts +173 -0
- package/dist/generated/programs/sigil.d.ts.map +1 -0
- package/dist/generated/programs/sigil.js +443 -0
- package/dist/generated/programs/sigil.js.map +1 -0
- package/dist/generated/types/accountConstraint.d.ts +18 -0
- package/dist/generated/types/accountConstraint.d.ts.map +1 -0
- package/dist/generated/types/accountConstraint.js +24 -0
- package/dist/generated/types/accountConstraint.js.map +1 -0
- package/dist/generated/types/actionAuthorized.d.ts +39 -0
- package/dist/generated/types/actionAuthorized.d.ts.map +1 -0
- package/dist/generated/types/actionAuthorized.js +43 -0
- package/dist/generated/types/actionAuthorized.js.map +1 -0
- package/dist/generated/types/actionType.d.ts +37 -0
- package/dist/generated/types/actionType.d.ts.map +1 -0
- package/dist/generated/types/actionType.js +43 -0
- package/dist/generated/types/actionType.js.map +1 -0
- package/dist/generated/types/agentContributionEntry.d.ts +49 -0
- package/dist/generated/types/agentContributionEntry.d.ts.map +1 -0
- package/dist/generated/types/agentContributionEntry.js +26 -0
- package/dist/generated/types/agentContributionEntry.js.map +1 -0
- package/dist/generated/types/agentEntry.d.ts +24 -0
- package/dist/generated/types/agentEntry.d.ts.map +1 -0
- package/dist/generated/types/agentEntry.js +28 -0
- package/dist/generated/types/agentEntry.js.map +1 -0
- package/dist/generated/types/agentPausedEvent.d.ts +22 -0
- package/dist/generated/types/agentPausedEvent.d.ts.map +1 -0
- package/dist/generated/types/agentPausedEvent.js +26 -0
- package/dist/generated/types/agentPausedEvent.js.map +1 -0
- package/dist/generated/types/agentPermissionsUpdated.d.ts +24 -0
- package/dist/generated/types/agentPermissionsUpdated.d.ts.map +1 -0
- package/dist/generated/types/agentPermissionsUpdated.js +28 -0
- package/dist/generated/types/agentPermissionsUpdated.js.map +1 -0
- package/dist/generated/types/agentRegistered.d.ts +26 -0
- package/dist/generated/types/agentRegistered.d.ts.map +1 -0
- package/dist/generated/types/agentRegistered.js +30 -0
- package/dist/generated/types/agentRegistered.js.map +1 -0
- package/dist/generated/types/agentRevoked.d.ts +24 -0
- package/dist/generated/types/agentRevoked.d.ts.map +1 -0
- package/dist/generated/types/agentRevoked.js +28 -0
- package/dist/generated/types/agentRevoked.js.map +1 -0
- package/dist/generated/types/agentSpendLimitChecked.d.ts +28 -0
- package/dist/generated/types/agentSpendLimitChecked.d.ts.map +1 -0
- package/dist/generated/types/agentSpendLimitChecked.js +32 -0
- package/dist/generated/types/agentSpendLimitChecked.js.map +1 -0
- package/dist/generated/types/agentTransferExecuted.d.ts +24 -0
- package/dist/generated/types/agentTransferExecuted.d.ts.map +1 -0
- package/dist/generated/types/agentTransferExecuted.js +28 -0
- package/dist/generated/types/agentTransferExecuted.js.map +1 -0
- package/dist/generated/types/agentUnpausedEvent.d.ts +22 -0
- package/dist/generated/types/agentUnpausedEvent.d.ts.map +1 -0
- package/dist/generated/types/agentUnpausedEvent.js +26 -0
- package/dist/generated/types/agentUnpausedEvent.js.map +1 -0
- package/dist/generated/types/constraintEntry.d.ts +23 -0
- package/dist/generated/types/constraintEntry.d.ts.map +1 -0
- package/dist/generated/types/constraintEntry.js +27 -0
- package/dist/generated/types/constraintEntry.js.map +1 -0
- package/dist/generated/types/constraintOperator.d.ts +22 -0
- package/dist/generated/types/constraintOperator.d.ts.map +1 -0
- package/dist/generated/types/constraintOperator.js +28 -0
- package/dist/generated/types/constraintOperator.js.map +1 -0
- package/dist/generated/types/constraintsChangeApplied.d.ts +20 -0
- package/dist/generated/types/constraintsChangeApplied.d.ts.map +1 -0
- package/dist/generated/types/constraintsChangeApplied.js +24 -0
- package/dist/generated/types/constraintsChangeApplied.js.map +1 -0
- package/dist/generated/types/constraintsChangeCancelled.d.ts +16 -0
- package/dist/generated/types/constraintsChangeCancelled.d.ts.map +1 -0
- package/dist/generated/types/constraintsChangeCancelled.js +18 -0
- package/dist/generated/types/constraintsChangeCancelled.js.map +1 -0
- package/dist/generated/types/constraintsChangeQueued.d.ts +20 -0
- package/dist/generated/types/constraintsChangeQueued.d.ts.map +1 -0
- package/dist/generated/types/constraintsChangeQueued.js +24 -0
- package/dist/generated/types/constraintsChangeQueued.js.map +1 -0
- package/dist/generated/types/dataConstraint.d.ts +23 -0
- package/dist/generated/types/dataConstraint.d.ts.map +1 -0
- package/dist/generated/types/dataConstraint.js +27 -0
- package/dist/generated/types/dataConstraint.js.map +1 -0
- package/dist/generated/types/delegationRevoked.d.ts +22 -0
- package/dist/generated/types/delegationRevoked.d.ts.map +1 -0
- package/dist/generated/types/delegationRevoked.js +26 -0
- package/dist/generated/types/delegationRevoked.js.map +1 -0
- package/dist/generated/types/epochBucket.d.ts +28 -0
- package/dist/generated/types/epochBucket.d.ts.map +1 -0
- package/dist/generated/types/epochBucket.js +24 -0
- package/dist/generated/types/epochBucket.js.map +1 -0
- package/dist/generated/types/escrowCreated.d.ts +30 -0
- package/dist/generated/types/escrowCreated.d.ts.map +1 -0
- package/dist/generated/types/escrowCreated.js +34 -0
- package/dist/generated/types/escrowCreated.js.map +1 -0
- package/dist/generated/types/escrowRefunded.d.ts +26 -0
- package/dist/generated/types/escrowRefunded.d.ts.map +1 -0
- package/dist/generated/types/escrowRefunded.js +30 -0
- package/dist/generated/types/escrowRefunded.js.map +1 -0
- package/dist/generated/types/escrowSettled.d.ts +26 -0
- package/dist/generated/types/escrowSettled.d.ts.map +1 -0
- package/dist/generated/types/escrowSettled.js +30 -0
- package/dist/generated/types/escrowSettled.js.map +1 -0
- package/dist/generated/types/escrowStatus.d.ts +18 -0
- package/dist/generated/types/escrowStatus.d.ts.map +1 -0
- package/dist/generated/types/escrowStatus.js +24 -0
- package/dist/generated/types/escrowStatus.js.map +1 -0
- package/dist/generated/types/feesCollected.d.ts +38 -0
- package/dist/generated/types/feesCollected.d.ts.map +1 -0
- package/dist/generated/types/feesCollected.js +42 -0
- package/dist/generated/types/feesCollected.js.map +1 -0
- package/dist/generated/types/fundsDeposited.d.ts +24 -0
- package/dist/generated/types/fundsDeposited.d.ts.map +1 -0
- package/dist/generated/types/fundsDeposited.js +28 -0
- package/dist/generated/types/fundsDeposited.js.map +1 -0
- package/dist/generated/types/fundsWithdrawn.d.ts +26 -0
- package/dist/generated/types/fundsWithdrawn.d.ts.map +1 -0
- package/dist/generated/types/fundsWithdrawn.js +30 -0
- package/dist/generated/types/fundsWithdrawn.js.map +1 -0
- package/dist/generated/types/index.d.ts +50 -0
- package/dist/generated/types/index.d.ts.map +1 -0
- package/dist/generated/types/index.js +50 -0
- package/dist/generated/types/index.js.map +1 -0
- package/dist/generated/types/instructionConstraintsClosed.d.ts +20 -0
- package/dist/generated/types/instructionConstraintsClosed.d.ts.map +1 -0
- package/dist/generated/types/instructionConstraintsClosed.js +24 -0
- package/dist/generated/types/instructionConstraintsClosed.js.map +1 -0
- package/dist/generated/types/instructionConstraintsCreated.d.ts +24 -0
- package/dist/generated/types/instructionConstraintsCreated.d.ts.map +1 -0
- package/dist/generated/types/instructionConstraintsCreated.js +28 -0
- package/dist/generated/types/instructionConstraintsCreated.js.map +1 -0
- package/dist/generated/types/instructionConstraintsUpdated.d.ts +24 -0
- package/dist/generated/types/instructionConstraintsUpdated.d.ts.map +1 -0
- package/dist/generated/types/instructionConstraintsUpdated.js +28 -0
- package/dist/generated/types/instructionConstraintsUpdated.js.map +1 -0
- package/dist/generated/types/policyChangeApplied.d.ts +20 -0
- package/dist/generated/types/policyChangeApplied.d.ts.map +1 -0
- package/dist/generated/types/policyChangeApplied.js +24 -0
- package/dist/generated/types/policyChangeApplied.js.map +1 -0
- package/dist/generated/types/policyChangeCancelled.d.ts +16 -0
- package/dist/generated/types/policyChangeCancelled.d.ts.map +1 -0
- package/dist/generated/types/policyChangeCancelled.js +18 -0
- package/dist/generated/types/policyChangeCancelled.js.map +1 -0
- package/dist/generated/types/policyChangeQueued.d.ts +20 -0
- package/dist/generated/types/policyChangeQueued.d.ts.map +1 -0
- package/dist/generated/types/policyChangeQueued.js +24 -0
- package/dist/generated/types/policyChangeQueued.js.map +1 -0
- package/dist/generated/types/policyUpdated.d.ts +34 -0
- package/dist/generated/types/policyUpdated.d.ts.map +1 -0
- package/dist/generated/types/policyUpdated.js +38 -0
- package/dist/generated/types/policyUpdated.js.map +1 -0
- package/dist/generated/types/positionsSynced.d.ts +24 -0
- package/dist/generated/types/positionsSynced.d.ts.map +1 -0
- package/dist/generated/types/positionsSynced.js +28 -0
- package/dist/generated/types/positionsSynced.js.map +1 -0
- package/dist/generated/types/protocolSpendCounter.d.ts +33 -0
- package/dist/generated/types/protocolSpendCounter.d.ts.map +1 -0
- package/dist/generated/types/protocolSpendCounter.js +26 -0
- package/dist/generated/types/protocolSpendCounter.js.map +1 -0
- package/dist/generated/types/sessionFinalized.d.ts +32 -0
- package/dist/generated/types/sessionFinalized.d.ts.map +1 -0
- package/dist/generated/types/sessionFinalized.js +36 -0
- package/dist/generated/types/sessionFinalized.js.map +1 -0
- package/dist/generated/types/vaultClosed.d.ts +22 -0
- package/dist/generated/types/vaultClosed.d.ts.map +1 -0
- package/dist/generated/types/vaultClosed.js +26 -0
- package/dist/generated/types/vaultClosed.js.map +1 -0
- package/dist/generated/types/vaultCreated.d.ts +24 -0
- package/dist/generated/types/vaultCreated.d.ts.map +1 -0
- package/dist/generated/types/vaultCreated.js +28 -0
- package/dist/generated/types/vaultCreated.js.map +1 -0
- package/dist/generated/types/vaultFrozen.d.ts +24 -0
- package/dist/generated/types/vaultFrozen.d.ts.map +1 -0
- package/dist/generated/types/vaultFrozen.js +28 -0
- package/dist/generated/types/vaultFrozen.js.map +1 -0
- package/dist/generated/types/vaultReactivated.d.ts +24 -0
- package/dist/generated/types/vaultReactivated.d.ts.map +1 -0
- package/dist/generated/types/vaultReactivated.js +28 -0
- package/dist/generated/types/vaultReactivated.js.map +1 -0
- package/dist/generated/types/vaultStatus.d.ts +19 -0
- package/dist/generated/types/vaultStatus.d.ts.map +1 -0
- package/dist/generated/types/vaultStatus.js +25 -0
- package/dist/generated/types/vaultStatus.js.map +1 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +113 -0
- package/dist/index.js.map +1 -0
- package/dist/inscribe.d.ts +134 -0
- package/dist/inscribe.d.ts.map +1 -0
- package/dist/inscribe.js +149 -0
- package/dist/inscribe.js.map +1 -0
- package/dist/inspector.d.ts +85 -0
- package/dist/inspector.d.ts.map +1 -0
- package/dist/inspector.js +188 -0
- package/dist/inspector.js.map +1 -0
- package/dist/math-utils.d.ts +15 -0
- package/dist/math-utils.d.ts.map +1 -0
- package/dist/math-utils.js +29 -0
- package/dist/math-utils.js.map +1 -0
- package/dist/owner-transaction.d.ts +42 -0
- package/dist/owner-transaction.d.ts.map +1 -0
- package/dist/owner-transaction.js +71 -0
- package/dist/owner-transaction.js.map +1 -0
- package/dist/policies.d.ts +70 -0
- package/dist/policies.d.ts.map +1 -0
- package/dist/policies.js +87 -0
- package/dist/policies.js.map +1 -0
- package/dist/portfolio-analytics.d.ts +82 -0
- package/dist/portfolio-analytics.d.ts.map +1 -0
- package/dist/portfolio-analytics.js +232 -0
- package/dist/portfolio-analytics.js.map +1 -0
- package/dist/presets.d.ts +108 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +110 -0
- package/dist/presets.js.map +1 -0
- package/dist/priority-fees.d.ts +49 -0
- package/dist/priority-fees.d.ts.map +1 -0
- package/dist/priority-fees.js +175 -0
- package/dist/priority-fees.js.map +1 -0
- package/dist/protocol-analytics.d.ts +35 -0
- package/dist/protocol-analytics.d.ts.map +1 -0
- package/dist/protocol-analytics.js +64 -0
- package/dist/protocol-analytics.js.map +1 -0
- package/dist/protocol-names.d.ts +9 -0
- package/dist/protocol-names.d.ts.map +1 -0
- package/dist/protocol-names.js +18 -0
- package/dist/protocol-names.js.map +1 -0
- package/dist/protocol-resolver.d.ts +54 -0
- package/dist/protocol-resolver.d.ts.map +1 -0
- package/dist/protocol-resolver.js +123 -0
- package/dist/protocol-resolver.js.map +1 -0
- package/dist/resolve-accounts.d.ts +38 -0
- package/dist/resolve-accounts.d.ts.map +1 -0
- package/dist/resolve-accounts.js +120 -0
- package/dist/resolve-accounts.js.map +1 -0
- package/dist/rpc-helpers.d.ts +50 -0
- package/dist/rpc-helpers.d.ts.map +1 -0
- package/dist/rpc-helpers.js +119 -0
- package/dist/rpc-helpers.js.map +1 -0
- package/dist/seal.d.ts +211 -0
- package/dist/seal.d.ts.map +1 -0
- package/dist/seal.js +569 -0
- package/dist/seal.js.map +1 -0
- package/dist/security-analytics.d.ts +85 -0
- package/dist/security-analytics.d.ts.map +1 -0
- package/dist/security-analytics.js +510 -0
- package/dist/security-analytics.js.map +1 -0
- package/dist/shield.d.ts +235 -0
- package/dist/shield.d.ts.map +1 -0
- package/dist/shield.js +701 -0
- package/dist/shield.js.map +1 -0
- package/dist/simulation.d.ts +111 -0
- package/dist/simulation.d.ts.map +1 -0
- package/dist/simulation.js +514 -0
- package/dist/simulation.js.map +1 -0
- package/dist/spending-analytics.d.ts +91 -0
- package/dist/spending-analytics.d.ts.map +1 -0
- package/dist/spending-analytics.js +217 -0
- package/dist/spending-analytics.js.map +1 -0
- package/dist/state-resolver.d.ts +173 -0
- package/dist/state-resolver.d.ts.map +1 -0
- package/dist/state-resolver.js +660 -0
- package/dist/state-resolver.js.map +1 -0
- package/dist/tee/cache.d.ts +28 -0
- package/dist/tee/cache.d.ts.map +1 -0
- package/dist/tee/cache.js +75 -0
- package/dist/tee/cache.js.map +1 -0
- package/dist/tee/index.d.ts +9 -0
- package/dist/tee/index.d.ts.map +1 -0
- package/dist/tee/index.js +9 -0
- package/dist/tee/index.js.map +1 -0
- package/dist/tee/nitro-root.d.ts +11 -0
- package/dist/tee/nitro-root.d.ts.map +1 -0
- package/dist/tee/nitro-root.js +24 -0
- package/dist/tee/nitro-root.js.map +1 -0
- package/dist/tee/providers/crossmint.d.ts +12 -0
- package/dist/tee/providers/crossmint.d.ts.map +1 -0
- package/dist/tee/providers/crossmint.js +73 -0
- package/dist/tee/providers/crossmint.js.map +1 -0
- package/dist/tee/providers/privy.d.ts +12 -0
- package/dist/tee/providers/privy.d.ts.map +1 -0
- package/dist/tee/providers/privy.js +73 -0
- package/dist/tee/providers/privy.js.map +1 -0
- package/dist/tee/providers/turnkey.d.ts +34 -0
- package/dist/tee/providers/turnkey.d.ts.map +1 -0
- package/dist/tee/providers/turnkey.js +401 -0
- package/dist/tee/providers/turnkey.js.map +1 -0
- package/dist/tee/types.d.ts +124 -0
- package/dist/tee/types.d.ts.map +1 -0
- package/dist/tee/types.js +51 -0
- package/dist/tee/types.js.map +1 -0
- package/dist/tee/verify.d.ts +34 -0
- package/dist/tee/verify.d.ts.map +1 -0
- package/dist/tee/verify.js +177 -0
- package/dist/tee/verify.js.map +1 -0
- package/dist/tee/wallet-types.d.ts +61 -0
- package/dist/tee/wallet-types.d.ts.map +1 -0
- package/dist/tee/wallet-types.js +42 -0
- package/dist/tee/wallet-types.js.map +1 -0
- package/dist/testing/devnet.d.ts +64 -0
- package/dist/testing/devnet.d.ts.map +1 -0
- package/dist/testing/devnet.js +222 -0
- package/dist/testing/devnet.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +9 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-rpc.d.ts +31 -0
- package/dist/testing/mock-rpc.d.ts.map +1 -0
- package/dist/testing/mock-rpc.js +50 -0
- package/dist/testing/mock-rpc.js.map +1 -0
- package/dist/testing/mock-state.d.ts +35 -0
- package/dist/testing/mock-state.d.ts.map +1 -0
- package/dist/testing/mock-state.js +86 -0
- package/dist/testing/mock-state.js.map +1 -0
- package/dist/tokens.d.ts +35 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +157 -0
- package/dist/tokens.js.map +1 -0
- package/dist/transaction-executor.d.ts +116 -0
- package/dist/transaction-executor.d.ts.map +1 -0
- package/dist/transaction-executor.js +165 -0
- package/dist/transaction-executor.js.map +1 -0
- package/dist/types.d.ts +102 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +216 -0
- package/dist/types.js.map +1 -0
- package/dist/vault-analytics.d.ts +83 -0
- package/dist/vault-analytics.d.ts.map +1 -0
- package/dist/vault-analytics.js +175 -0
- package/dist/vault-analytics.js.map +1 -0
- package/dist/velocity-tracker.d.ts +79 -0
- package/dist/velocity-tracker.d.ts.map +1 -0
- package/dist/velocity-tracker.js +183 -0
- package/dist/velocity-tracker.js.map +1 -0
- package/dist/x402/amount-guard.d.ts +26 -0
- package/dist/x402/amount-guard.d.ts.map +1 -0
- package/dist/x402/amount-guard.js +80 -0
- package/dist/x402/amount-guard.js.map +1 -0
- package/dist/x402/audit-trail.d.ts +26 -0
- package/dist/x402/audit-trail.d.ts.map +1 -0
- package/dist/x402/audit-trail.js +32 -0
- package/dist/x402/audit-trail.js.map +1 -0
- package/dist/x402/codec.d.ts +26 -0
- package/dist/x402/codec.d.ts.map +1 -0
- package/dist/x402/codec.js +95 -0
- package/dist/x402/codec.js.map +1 -0
- package/dist/x402/errors.d.ts +34 -0
- package/dist/x402/errors.d.ts.map +1 -0
- package/dist/x402/errors.js +53 -0
- package/dist/x402/errors.js.map +1 -0
- package/dist/x402/facilitator-verify.d.ts +24 -0
- package/dist/x402/facilitator-verify.d.ts.map +1 -0
- package/dist/x402/facilitator-verify.js +74 -0
- package/dist/x402/facilitator-verify.js.map +1 -0
- package/dist/x402/index.d.ts +14 -0
- package/dist/x402/index.d.ts.map +1 -0
- package/dist/x402/index.js +23 -0
- package/dist/x402/index.js.map +1 -0
- package/dist/x402/nonce-tracker.d.ts +65 -0
- package/dist/x402/nonce-tracker.d.ts.map +1 -0
- package/dist/x402/nonce-tracker.js +123 -0
- package/dist/x402/nonce-tracker.js.map +1 -0
- package/dist/x402/payment-selector.d.ts +20 -0
- package/dist/x402/payment-selector.d.ts.map +1 -0
- package/dist/x402/payment-selector.js +49 -0
- package/dist/x402/payment-selector.js.map +1 -0
- package/dist/x402/policy-bridge.d.ts +23 -0
- package/dist/x402/policy-bridge.d.ts.map +1 -0
- package/dist/x402/policy-bridge.js +67 -0
- package/dist/x402/policy-bridge.js.map +1 -0
- package/dist/x402/shielded-fetch.d.ts +46 -0
- package/dist/x402/shielded-fetch.d.ts.map +1 -0
- package/dist/x402/shielded-fetch.js +342 -0
- package/dist/x402/shielded-fetch.js.map +1 -0
- package/dist/x402/transfer-builder.d.ts +43 -0
- package/dist/x402/transfer-builder.d.ts.map +1 -0
- package/dist/x402/transfer-builder.js +126 -0
- package/dist/x402/transfer-builder.js.map +1 -0
- package/dist/x402/types.d.ts +109 -0
- package/dist/x402/types.d.ts.map +1 -0
- package/dist/x402/types.js +8 -0
- package/dist/x402/types.js.map +1 -0
- package/package.json +98 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/** Policy configuration for the Sigil wrapper (pure string addresses) */
|
|
2
|
+
export interface ShieldPolicies {
|
|
3
|
+
/** Maximum spend per rolling window, per token. e.g. "500 USDC/day" or { mint, amount } */
|
|
4
|
+
maxSpend?: SpendLimit | SpendLimit[] | string | string[];
|
|
5
|
+
/** Maximum single transaction size in lamports-equivalent value */
|
|
6
|
+
maxTransactionSize?: bigint | string;
|
|
7
|
+
/** Allowed protocol program IDs (base58 strings) */
|
|
8
|
+
allowedProtocols?: string[];
|
|
9
|
+
/** Allowed token mints (base58 strings) */
|
|
10
|
+
allowedTokens?: string[];
|
|
11
|
+
/** Block unknown (unregistered) program IDs. Default: true */
|
|
12
|
+
blockUnknownPrograms?: boolean;
|
|
13
|
+
/** Maximum transactions per time window */
|
|
14
|
+
rateLimit?: RateLimitConfig;
|
|
15
|
+
}
|
|
16
|
+
export interface SpendLimit {
|
|
17
|
+
/** SPL token mint address (base58 string) */
|
|
18
|
+
mint: string;
|
|
19
|
+
/** Maximum amount in token's native decimals (e.g. 500_000_000 for 500 USDC) */
|
|
20
|
+
amount: bigint;
|
|
21
|
+
/** Window duration in milliseconds. Default: 86_400_000 (24h) */
|
|
22
|
+
windowMs?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface RateLimitConfig {
|
|
25
|
+
/** Max number of transactions in the window */
|
|
26
|
+
maxTransactions: number;
|
|
27
|
+
/** Window duration in milliseconds. Default: 3_600_000 (1 hour) */
|
|
28
|
+
windowMs?: number;
|
|
29
|
+
}
|
|
30
|
+
/** Result from a custom policy check */
|
|
31
|
+
export interface PolicyCheckResult {
|
|
32
|
+
allowed: boolean;
|
|
33
|
+
reason?: string;
|
|
34
|
+
}
|
|
35
|
+
/** Analysis of a transaction's contents (pure string addresses) */
|
|
36
|
+
export interface TransactionAnalysis {
|
|
37
|
+
/** Program IDs invoked by the transaction (base58 strings) */
|
|
38
|
+
programIds: string[];
|
|
39
|
+
/** Token transfers detected in the transaction */
|
|
40
|
+
transfers: TokenTransfer[];
|
|
41
|
+
/** Total estimated value of outgoing transfers, in lamports-equivalent */
|
|
42
|
+
estimatedValueLamports: bigint;
|
|
43
|
+
}
|
|
44
|
+
export interface TokenTransfer {
|
|
45
|
+
/** Token mint address (base58 string) */
|
|
46
|
+
mint: string;
|
|
47
|
+
/** Amount in native token decimals */
|
|
48
|
+
amount: bigint;
|
|
49
|
+
/** "outgoing" = tokens leaving the wallet, "incoming" = tokens arriving */
|
|
50
|
+
direction: "outgoing" | "incoming" | "unknown";
|
|
51
|
+
/** Destination account (base58 string) */
|
|
52
|
+
destination?: string;
|
|
53
|
+
}
|
|
54
|
+
/** Default secure policies — applied when shield() is called with no config */
|
|
55
|
+
export declare const DEFAULT_POLICIES: Required<Pick<ShieldPolicies, "blockUnknownPrograms" | "rateLimit">> & {
|
|
56
|
+
maxSpend: SpendLimit[];
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Parse a human-readable spend limit string like "500 USDC/day" into a SpendLimit.
|
|
60
|
+
*/
|
|
61
|
+
export declare function parseSpendLimit(input: string): SpendLimit;
|
|
62
|
+
/** Internal resolved policy representation */
|
|
63
|
+
export interface ResolvedPolicies {
|
|
64
|
+
spendLimits: SpendLimit[];
|
|
65
|
+
maxTransactionSize: bigint | undefined;
|
|
66
|
+
allowedProtocols: Set<string> | undefined;
|
|
67
|
+
allowedTokens: Set<string> | undefined;
|
|
68
|
+
blockUnknownPrograms: boolean;
|
|
69
|
+
rateLimit: Required<RateLimitConfig>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Normalize user-provided policies into a resolved internal format.
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolvePolicies(input?: ShieldPolicies): ResolvedPolicies;
|
|
75
|
+
//# sourceMappingURL=policies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/core/policies.ts"],"names":[],"mappings":"AAGA,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IACzD,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kDAAkD;IAClD,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,0EAA0E;IAC1E,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/C,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CACrC,IAAI,CAAC,cAAc,EAAE,sBAAsB,GAAG,WAAW,CAAC,CAC3D,GAAG;IAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;CA0B3B,CAAC;AAUF;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CA4CzD;AAED,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1C,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAyDxE"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { KNOWN_TOKENS } from "./registry.js";
|
|
2
|
+
import { ShieldConfigError } from "./errors.js";
|
|
3
|
+
/** Default secure policies — applied when shield() is called with no config */
|
|
4
|
+
export const DEFAULT_POLICIES = {
|
|
5
|
+
maxSpend: [
|
|
6
|
+
{
|
|
7
|
+
// 1000 USDC/day default cap
|
|
8
|
+
mint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
|
|
9
|
+
amount: BigInt(1_000_000_000), // 1000 * 10^6
|
|
10
|
+
windowMs: 86_400_000,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
// 1000 USDT/day default cap
|
|
14
|
+
mint: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
|
|
15
|
+
amount: BigInt(1_000_000_000),
|
|
16
|
+
windowMs: 86_400_000,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
// 10 SOL/day default cap
|
|
20
|
+
mint: "So11111111111111111111111111111111111111112",
|
|
21
|
+
amount: BigInt(10_000_000_000), // 10 * 10^9
|
|
22
|
+
windowMs: 86_400_000,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
blockUnknownPrograms: true,
|
|
26
|
+
rateLimit: {
|
|
27
|
+
maxTransactions: 60,
|
|
28
|
+
windowMs: 3_600_000, // 1 hour
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
const WINDOW_ALIASES = {
|
|
32
|
+
"/day": 86_400_000,
|
|
33
|
+
"/hour": 3_600_000,
|
|
34
|
+
"/hr": 3_600_000,
|
|
35
|
+
"/min": 60_000,
|
|
36
|
+
"/minute": 60_000,
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Parse a human-readable spend limit string like "500 USDC/day" into a SpendLimit.
|
|
40
|
+
*/
|
|
41
|
+
export function parseSpendLimit(input) {
|
|
42
|
+
const trimmed = input.trim();
|
|
43
|
+
// Match pattern: "<amount> <symbol>/<window>"
|
|
44
|
+
const match = trimmed.match(/^(\d+(?:\.\d+)?)\s+(\w+)(\/\w+)?$/);
|
|
45
|
+
if (!match) {
|
|
46
|
+
throw new ShieldConfigError(`Invalid spend limit format: "${input}". Expected format: "500 USDC/day"`);
|
|
47
|
+
}
|
|
48
|
+
const [, amountStr, symbol, windowStr] = match;
|
|
49
|
+
const windowMs = windowStr ? WINDOW_ALIASES[windowStr] : 86_400_000;
|
|
50
|
+
if (windowStr && !windowMs) {
|
|
51
|
+
throw new ShieldConfigError(`Unknown time window: "${windowStr}". Supported: /day, /hour, /hr, /min, /minute`);
|
|
52
|
+
}
|
|
53
|
+
// Find token by symbol
|
|
54
|
+
let foundMint;
|
|
55
|
+
let foundDecimals;
|
|
56
|
+
for (const [mint, info] of KNOWN_TOKENS) {
|
|
57
|
+
if (info.symbol.toUpperCase() === symbol.toUpperCase()) {
|
|
58
|
+
foundMint = mint;
|
|
59
|
+
foundDecimals = info.decimals;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (!foundMint || foundDecimals === undefined) {
|
|
64
|
+
throw new ShieldConfigError(`Unknown token symbol: "${symbol}". Use a known token (USDC, USDT, SOL, wBTC, wETH, mSOL, jitoSOL, bSOL) or pass a SpendLimit object with the mint address.`);
|
|
65
|
+
}
|
|
66
|
+
const amountFloat = parseFloat(amountStr);
|
|
67
|
+
const amountNative = BigInt(Math.round(amountFloat * 10 ** foundDecimals));
|
|
68
|
+
return {
|
|
69
|
+
mint: foundMint,
|
|
70
|
+
amount: amountNative,
|
|
71
|
+
windowMs,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Normalize user-provided policies into a resolved internal format.
|
|
76
|
+
*/
|
|
77
|
+
export function resolvePolicies(input) {
|
|
78
|
+
const resolved = {
|
|
79
|
+
spendLimits: [...DEFAULT_POLICIES.maxSpend],
|
|
80
|
+
maxTransactionSize: undefined,
|
|
81
|
+
allowedProtocols: undefined,
|
|
82
|
+
allowedTokens: undefined,
|
|
83
|
+
blockUnknownPrograms: DEFAULT_POLICIES.blockUnknownPrograms,
|
|
84
|
+
rateLimit: {
|
|
85
|
+
maxTransactions: DEFAULT_POLICIES.rateLimit.maxTransactions,
|
|
86
|
+
windowMs: DEFAULT_POLICIES.rateLimit.windowMs ?? 3_600_000,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
if (!input)
|
|
90
|
+
return resolved;
|
|
91
|
+
// Parse spend limits
|
|
92
|
+
if (input.maxSpend !== undefined) {
|
|
93
|
+
const limits = Array.isArray(input.maxSpend)
|
|
94
|
+
? input.maxSpend
|
|
95
|
+
: [input.maxSpend];
|
|
96
|
+
resolved.spendLimits = limits.map((l) => typeof l === "string" ? parseSpendLimit(l) : l);
|
|
97
|
+
}
|
|
98
|
+
// Max transaction size
|
|
99
|
+
if (input.maxTransactionSize !== undefined) {
|
|
100
|
+
resolved.maxTransactionSize =
|
|
101
|
+
typeof input.maxTransactionSize === "string"
|
|
102
|
+
? parseSpendLimit(input.maxTransactionSize).amount
|
|
103
|
+
: input.maxTransactionSize;
|
|
104
|
+
}
|
|
105
|
+
// Allowed protocols
|
|
106
|
+
if (input.allowedProtocols !== undefined) {
|
|
107
|
+
resolved.allowedProtocols = new Set(input.allowedProtocols);
|
|
108
|
+
}
|
|
109
|
+
// Allowed tokens
|
|
110
|
+
if (input.allowedTokens !== undefined) {
|
|
111
|
+
resolved.allowedTokens = new Set(input.allowedTokens);
|
|
112
|
+
}
|
|
113
|
+
// Block unknown programs
|
|
114
|
+
if (input.blockUnknownPrograms !== undefined) {
|
|
115
|
+
resolved.blockUnknownPrograms = input.blockUnknownPrograms;
|
|
116
|
+
}
|
|
117
|
+
// Rate limit
|
|
118
|
+
if (input.rateLimit !== undefined) {
|
|
119
|
+
resolved.rateLimit = {
|
|
120
|
+
maxTransactions: input.rateLimit.maxTransactions,
|
|
121
|
+
windowMs: input.rateLimit.windowMs ?? 3_600_000,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
return resolved;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=policies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/core/policies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Known Solana DeFi protocol program IDs */
|
|
2
|
+
export declare const KNOWN_PROTOCOLS: ReadonlyMap<string, string>;
|
|
3
|
+
/** Program IDs that are always allowed (system programs, token programs) */
|
|
4
|
+
export declare const SYSTEM_PROGRAMS: ReadonlySet<string>;
|
|
5
|
+
/** Common SPL token mints on Solana */
|
|
6
|
+
export declare const KNOWN_TOKENS: ReadonlyMap<string, {
|
|
7
|
+
symbol: string;
|
|
8
|
+
decimals: number;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Look up a token's symbol and decimals by mint address.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getTokenInfo(mint: string): {
|
|
14
|
+
symbol: string;
|
|
15
|
+
decimals: number;
|
|
16
|
+
} | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Look up a protocol's name by program ID.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getProtocolName(programId: string): string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Check if a program ID is a known system program (always allowed).
|
|
23
|
+
*/
|
|
24
|
+
export declare function isSystemProgram(programId: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Check if a program ID is a known DeFi protocol.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isKnownProtocol(programId: string): boolean;
|
|
29
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CA8CtD,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAQ9C,CAAC;AAEH,uCAAuC;AACvC,eAAO,MAAM,YAAY,EAAE,WAAW,CACpC,MAAM,EACN;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAmDpC,CAAC;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,GACX;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAElD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/** Known Solana DeFi protocol program IDs */
|
|
2
|
+
export const KNOWN_PROTOCOLS = new Map([
|
|
3
|
+
// DEX Aggregators
|
|
4
|
+
["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", "Jupiter V6"],
|
|
5
|
+
["JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcPX7a", "Jupiter V4"],
|
|
6
|
+
["JUP2jxvXaqu7NQY1GmNF4m1vodw12LVXYxbFL2uN4e7", "Jupiter V2"],
|
|
7
|
+
// Jupiter Extended
|
|
8
|
+
["JLend2fEim9xUFcaHsyGePEoBzFLvkjMi3MnPcSuCdu", "Jupiter Lend"],
|
|
9
|
+
["j1to2GQCsfSHNPfVKMcrUNyRBK8DPYECpEVPLkz1MKv", "Jupiter Trigger"],
|
|
10
|
+
["DCA265Vj8a9CEuX1eb1LWRnDT7uK6q1xMipnNyatn23M", "Jupiter Recurring"],
|
|
11
|
+
// DEXes
|
|
12
|
+
["whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", "Orca Whirlpool"],
|
|
13
|
+
["9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP", "Orca Whirlpool V2"],
|
|
14
|
+
["675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8", "Raydium AMM V4"],
|
|
15
|
+
["CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK", "Raydium CLMM"],
|
|
16
|
+
["CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C", "Raydium CPMM"],
|
|
17
|
+
["LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo", "Meteora DLMM"],
|
|
18
|
+
["Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB", "Meteora Pools"],
|
|
19
|
+
["SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ", "Saber Stable Swap"],
|
|
20
|
+
["DecZY86MU5Gj7kppfUCEmd4LbXXuyZH1yHaP2NTqdiZB", "Openbook V2"],
|
|
21
|
+
// Perpetuals / Leverage
|
|
22
|
+
["FLASH6Lo6h3iasJKWDs2F8TkW2UKf3s15C8PMGuVfgBn", "Flash Trade"],
|
|
23
|
+
["FSWAPViR8ny5K96hezav8jynVubP2dJ2L7SbKzds2hwm", "Flash Composability"],
|
|
24
|
+
["dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH", "Drift Protocol"],
|
|
25
|
+
["MNGOHoFrnGrovWiCc9kHZB8xEBKM1XPYnZCpWFbRCev", "Mango Markets V4"],
|
|
26
|
+
// Lending / Borrowing
|
|
27
|
+
["KLend2g3cP87ber8CzRaqeECGwNvLFM9acPVcRkRHvM", "Kamino Lending"],
|
|
28
|
+
["MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA", "Marginfi V2"],
|
|
29
|
+
["So1endDq2YkqhipRh3WViPa8hFMqDSRbsHTE15WSnBt", "Solend"],
|
|
30
|
+
// Staking / Liquid Staking
|
|
31
|
+
["MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD", "Marinade Finance"],
|
|
32
|
+
["SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy", "Stake Pool Program"],
|
|
33
|
+
["J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn", "Jito Staking"],
|
|
34
|
+
// System Programs (always allowed)
|
|
35
|
+
["11111111111111111111111111111111", "System Program"],
|
|
36
|
+
["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", "Token Program"],
|
|
37
|
+
["ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", "Associated Token"],
|
|
38
|
+
["TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", "Token 2022"],
|
|
39
|
+
["ComputeBudget111111111111111111111111111111", "Compute Budget"],
|
|
40
|
+
["SysvarRent111111111111111111111111111111111", "Sysvar Rent"],
|
|
41
|
+
["SysvarC1ock11111111111111111111111111111111", "Sysvar Clock"],
|
|
42
|
+
]);
|
|
43
|
+
/** Program IDs that are always allowed (system programs, token programs) */
|
|
44
|
+
export const SYSTEM_PROGRAMS = new Set([
|
|
45
|
+
"11111111111111111111111111111111",
|
|
46
|
+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
|
|
47
|
+
"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
|
|
48
|
+
"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",
|
|
49
|
+
"ComputeBudget111111111111111111111111111111",
|
|
50
|
+
"SysvarRent111111111111111111111111111111111",
|
|
51
|
+
"SysvarC1ock11111111111111111111111111111111",
|
|
52
|
+
]);
|
|
53
|
+
/** Common SPL token mints on Solana */
|
|
54
|
+
export const KNOWN_TOKENS = new Map([
|
|
55
|
+
// Stablecoins
|
|
56
|
+
[
|
|
57
|
+
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
|
|
58
|
+
{ symbol: "USDC", decimals: 6 },
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
|
|
62
|
+
{ symbol: "USDT", decimals: 6 },
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
"USDSwr9ApdHk5bvJKMjzff41FfuX8bSxdKcR81vTwcA",
|
|
66
|
+
{ symbol: "USDS", decimals: 6 },
|
|
67
|
+
],
|
|
68
|
+
// SOL
|
|
69
|
+
[
|
|
70
|
+
"So11111111111111111111111111111111111111112",
|
|
71
|
+
{ symbol: "SOL", decimals: 9 },
|
|
72
|
+
],
|
|
73
|
+
// Wrapped BTC
|
|
74
|
+
[
|
|
75
|
+
"3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh",
|
|
76
|
+
{ symbol: "wBTC", decimals: 8 },
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
"cbbtcf3aa214zXHbiAZQwf4122FBYbraNdFqgw4iMij",
|
|
80
|
+
{ symbol: "cbBTC", decimals: 8 },
|
|
81
|
+
],
|
|
82
|
+
// Ethereum
|
|
83
|
+
[
|
|
84
|
+
"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs",
|
|
85
|
+
{ symbol: "wETH", decimals: 8 },
|
|
86
|
+
],
|
|
87
|
+
// Liquid Staking
|
|
88
|
+
[
|
|
89
|
+
"mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
|
|
90
|
+
{ symbol: "mSOL", decimals: 9 },
|
|
91
|
+
],
|
|
92
|
+
[
|
|
93
|
+
"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
|
|
94
|
+
{ symbol: "jitoSOL", decimals: 9 },
|
|
95
|
+
],
|
|
96
|
+
[
|
|
97
|
+
"bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1",
|
|
98
|
+
{ symbol: "bSOL", decimals: 9 },
|
|
99
|
+
],
|
|
100
|
+
]);
|
|
101
|
+
/**
|
|
102
|
+
* Look up a token's symbol and decimals by mint address.
|
|
103
|
+
*/
|
|
104
|
+
export function getTokenInfo(mint) {
|
|
105
|
+
return KNOWN_TOKENS.get(mint);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Look up a protocol's name by program ID.
|
|
109
|
+
*/
|
|
110
|
+
export function getProtocolName(programId) {
|
|
111
|
+
return KNOWN_PROTOCOLS.get(programId);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Check if a program ID is a known system program (always allowed).
|
|
115
|
+
*/
|
|
116
|
+
export function isSystemProgram(programId) {
|
|
117
|
+
return SYSTEM_PROGRAMS.has(programId);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Check if a program ID is a known DeFi protocol.
|
|
121
|
+
*/
|
|
122
|
+
export function isKnownProtocol(programId) {
|
|
123
|
+
return KNOWN_PROTOCOLS.has(programId);
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAgC,IAAI,GAAG,CAAC;IAClE,kBAAkB;IAClB,CAAC,6CAA6C,EAAE,YAAY,CAAC;IAC7D,CAAC,6CAA6C,EAAE,YAAY,CAAC;IAC7D,CAAC,6CAA6C,EAAE,YAAY,CAAC;IAE7D,mBAAmB;IACnB,CAAC,6CAA6C,EAAE,cAAc,CAAC;IAC/D,CAAC,6CAA6C,EAAE,iBAAiB,CAAC;IAClE,CAAC,8CAA8C,EAAE,mBAAmB,CAAC;IAErE,QAAQ;IACR,CAAC,6CAA6C,EAAE,gBAAgB,CAAC;IACjE,CAAC,8CAA8C,EAAE,mBAAmB,CAAC;IACrE,CAAC,8CAA8C,EAAE,gBAAgB,CAAC;IAClE,CAAC,8CAA8C,EAAE,cAAc,CAAC;IAChE,CAAC,8CAA8C,EAAE,cAAc,CAAC;IAChE,CAAC,6CAA6C,EAAE,cAAc,CAAC;IAC/D,CAAC,8CAA8C,EAAE,eAAe,CAAC;IACjE,CAAC,6CAA6C,EAAE,mBAAmB,CAAC;IACpE,CAAC,8CAA8C,EAAE,aAAa,CAAC;IAE/D,wBAAwB;IACxB,CAAC,8CAA8C,EAAE,aAAa,CAAC;IAC/D,CAAC,8CAA8C,EAAE,qBAAqB,CAAC;IACvE,CAAC,6CAA6C,EAAE,gBAAgB,CAAC;IACjE,CAAC,6CAA6C,EAAE,kBAAkB,CAAC;IAEnE,sBAAsB;IACtB,CAAC,6CAA6C,EAAE,gBAAgB,CAAC;IACjE,CAAC,6CAA6C,EAAE,aAAa,CAAC;IAC9D,CAAC,6CAA6C,EAAE,QAAQ,CAAC;IAEzD,2BAA2B;IAC3B,CAAC,6CAA6C,EAAE,kBAAkB,CAAC;IACnE,CAAC,6CAA6C,EAAE,oBAAoB,CAAC;IACrE,CAAC,8CAA8C,EAAE,cAAc,CAAC;IAEhE,mCAAmC;IACnC,CAAC,kCAAkC,EAAE,gBAAgB,CAAC;IACtD,CAAC,6CAA6C,EAAE,eAAe,CAAC;IAChE,CAAC,8CAA8C,EAAE,kBAAkB,CAAC;IACpE,CAAC,6CAA6C,EAAE,YAAY,CAAC;IAC7D,CAAC,6CAA6C,EAAE,gBAAgB,CAAC;IACjE,CAAC,6CAA6C,EAAE,aAAa,CAAC;IAC9D,CAAC,6CAA6C,EAAE,cAAc,CAAC;CAChE,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IAC1D,kCAAkC;IAClC,6CAA6C;IAC7C,8CAA8C;IAC9C,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;CAC9C,CAAC,CAAC;AAEH,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAGrB,IAAI,GAAG,CAAC;IACV,cAAc;IACd;QACE,8CAA8C;QAC9C,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;KAChC;IACD;QACE,8CAA8C;QAC9C,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;KAChC;IACD;QACE,6CAA6C;QAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;KAChC;IAED,MAAM;IACN;QACE,6CAA6C;QAC7C,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;KAC/B;IAED,cAAc;IACd;QACE,8CAA8C;QAC9C,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;KAChC;IACD;QACE,6CAA6C;QAC7C,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE;KACjC;IAED,WAAW;IACX;QACE,8CAA8C;QAC9C,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;KAChC;IAED,iBAAiB;IACjB;QACE,6CAA6C;QAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;KAChC;IACD;QACE,8CAA8C;QAC9C,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;KACnC;IACD;QACE,6CAA6C;QAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;KAChC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY;IAEZ,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side spending state tracker.
|
|
3
|
+
* Maintains rolling windows for spend tracking and rate limiting.
|
|
4
|
+
* Supports optional persistence via a pluggable storage backend.
|
|
5
|
+
*/
|
|
6
|
+
export interface SpendEntry {
|
|
7
|
+
/** Token mint address (base58) */
|
|
8
|
+
mint: string;
|
|
9
|
+
/** Amount in native token decimals */
|
|
10
|
+
amount: bigint;
|
|
11
|
+
/** Unix timestamp in milliseconds */
|
|
12
|
+
timestamp: number;
|
|
13
|
+
}
|
|
14
|
+
export interface TxEntry {
|
|
15
|
+
/** Unix timestamp in milliseconds */
|
|
16
|
+
timestamp: number;
|
|
17
|
+
}
|
|
18
|
+
/** Pluggable storage interface for persistence */
|
|
19
|
+
export interface ShieldStorage {
|
|
20
|
+
getItem(key: string): string | null;
|
|
21
|
+
setItem(key: string, value: string): void;
|
|
22
|
+
}
|
|
23
|
+
export declare class ShieldState {
|
|
24
|
+
private spendEntries;
|
|
25
|
+
private txEntries;
|
|
26
|
+
private storage;
|
|
27
|
+
constructor(storage?: ShieldStorage);
|
|
28
|
+
/**
|
|
29
|
+
* Record a spend event for a token.
|
|
30
|
+
*/
|
|
31
|
+
recordSpend(mint: string, amount: bigint): void;
|
|
32
|
+
/**
|
|
33
|
+
* Record a transaction event for rate limiting.
|
|
34
|
+
*/
|
|
35
|
+
recordTransaction(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Get total spend for a token mint within the given time window.
|
|
38
|
+
*/
|
|
39
|
+
getSpendInWindow(mint: string, windowMs: number): bigint;
|
|
40
|
+
/**
|
|
41
|
+
* Get number of transactions within the given time window.
|
|
42
|
+
*/
|
|
43
|
+
getTransactionCountInWindow(windowMs: number): number;
|
|
44
|
+
/**
|
|
45
|
+
* Remove expired entries older than the given window.
|
|
46
|
+
*/
|
|
47
|
+
pruneExpired(maxWindowMs: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* Save current state for potential rollback (used by signAllTransactions).
|
|
50
|
+
*/
|
|
51
|
+
checkpoint(): {
|
|
52
|
+
spends: SpendEntry[];
|
|
53
|
+
txs: TxEntry[];
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Restore state to a previous checkpoint (undo phantom spends).
|
|
57
|
+
*/
|
|
58
|
+
rollback(cp: {
|
|
59
|
+
spends: SpendEntry[];
|
|
60
|
+
txs: TxEntry[];
|
|
61
|
+
}): void;
|
|
62
|
+
/**
|
|
63
|
+
* Reset all state.
|
|
64
|
+
*/
|
|
65
|
+
reset(): void;
|
|
66
|
+
/** Load state from storage */
|
|
67
|
+
private load;
|
|
68
|
+
/** Persist state to storage */
|
|
69
|
+
private persist;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AASD,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,CAAC,EAAE,aAAa;IAKnC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAe/C;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAUzB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAWxD;;OAEG;IACH,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAWrD;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOvC;;OAEG;IACH,UAAU,IAAI;QAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAAC,GAAG,EAAE,OAAO,EAAE,CAAA;KAAE;IAOtD;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE;QAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAAC,GAAG,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,IAAI;IAM5D;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb,8BAA8B;IAC9B,OAAO,CAAC,IAAI;IA+BZ,+BAA+B;IAC/B,OAAO,CAAC,OAAO;CAmBhB"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side spending state tracker.
|
|
3
|
+
* Maintains rolling windows for spend tracking and rate limiting.
|
|
4
|
+
* Supports optional persistence via a pluggable storage backend.
|
|
5
|
+
*/
|
|
6
|
+
const STORAGE_KEY_SPENDS = "sigil:spends";
|
|
7
|
+
const STORAGE_KEY_TXS = "sigil:txs";
|
|
8
|
+
/** Max entries to keep in each tracker to prevent unbounded growth */
|
|
9
|
+
const MAX_SPEND_ENTRIES = 5000;
|
|
10
|
+
const MAX_TX_ENTRIES = 5000;
|
|
11
|
+
export class ShieldState {
|
|
12
|
+
spendEntries = [];
|
|
13
|
+
txEntries = [];
|
|
14
|
+
storage;
|
|
15
|
+
constructor(storage) {
|
|
16
|
+
this.storage = storage ?? detectStorage();
|
|
17
|
+
this.load();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Record a spend event for a token.
|
|
21
|
+
*/
|
|
22
|
+
recordSpend(mint, amount) {
|
|
23
|
+
this.spendEntries.push({
|
|
24
|
+
mint,
|
|
25
|
+
amount,
|
|
26
|
+
timestamp: Date.now(),
|
|
27
|
+
});
|
|
28
|
+
// Trim to max entries
|
|
29
|
+
if (this.spendEntries.length > MAX_SPEND_ENTRIES) {
|
|
30
|
+
this.spendEntries = this.spendEntries.slice(-MAX_SPEND_ENTRIES);
|
|
31
|
+
}
|
|
32
|
+
this.persist();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Record a transaction event for rate limiting.
|
|
36
|
+
*/
|
|
37
|
+
recordTransaction() {
|
|
38
|
+
this.txEntries.push({ timestamp: Date.now() });
|
|
39
|
+
if (this.txEntries.length > MAX_TX_ENTRIES) {
|
|
40
|
+
this.txEntries = this.txEntries.slice(-MAX_TX_ENTRIES);
|
|
41
|
+
}
|
|
42
|
+
this.persist();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get total spend for a token mint within the given time window.
|
|
46
|
+
*/
|
|
47
|
+
getSpendInWindow(mint, windowMs) {
|
|
48
|
+
const cutoff = Date.now() - windowMs;
|
|
49
|
+
let total = BigInt(0);
|
|
50
|
+
for (const entry of this.spendEntries) {
|
|
51
|
+
if (entry.mint === mint && entry.timestamp >= cutoff) {
|
|
52
|
+
total += entry.amount;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return total;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get number of transactions within the given time window.
|
|
59
|
+
*/
|
|
60
|
+
getTransactionCountInWindow(windowMs) {
|
|
61
|
+
const cutoff = Date.now() - windowMs;
|
|
62
|
+
let count = 0;
|
|
63
|
+
for (const entry of this.txEntries) {
|
|
64
|
+
if (entry.timestamp >= cutoff) {
|
|
65
|
+
count++;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return count;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Remove expired entries older than the given window.
|
|
72
|
+
*/
|
|
73
|
+
pruneExpired(maxWindowMs) {
|
|
74
|
+
const cutoff = Date.now() - maxWindowMs;
|
|
75
|
+
this.spendEntries = this.spendEntries.filter((e) => e.timestamp >= cutoff);
|
|
76
|
+
this.txEntries = this.txEntries.filter((e) => e.timestamp >= cutoff);
|
|
77
|
+
this.persist();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Save current state for potential rollback (used by signAllTransactions).
|
|
81
|
+
*/
|
|
82
|
+
checkpoint() {
|
|
83
|
+
return {
|
|
84
|
+
spends: [...this.spendEntries],
|
|
85
|
+
txs: [...this.txEntries],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Restore state to a previous checkpoint (undo phantom spends).
|
|
90
|
+
*/
|
|
91
|
+
rollback(cp) {
|
|
92
|
+
this.spendEntries = cp.spends;
|
|
93
|
+
this.txEntries = cp.txs;
|
|
94
|
+
this.persist();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Reset all state.
|
|
98
|
+
*/
|
|
99
|
+
reset() {
|
|
100
|
+
this.spendEntries = [];
|
|
101
|
+
this.txEntries = [];
|
|
102
|
+
this.persist();
|
|
103
|
+
}
|
|
104
|
+
/** Load state from storage */
|
|
105
|
+
load() {
|
|
106
|
+
if (!this.storage)
|
|
107
|
+
return;
|
|
108
|
+
try {
|
|
109
|
+
const spendsRaw = this.storage.getItem(STORAGE_KEY_SPENDS);
|
|
110
|
+
if (spendsRaw) {
|
|
111
|
+
const parsed = JSON.parse(spendsRaw);
|
|
112
|
+
this.spendEntries = parsed.map((e) => ({
|
|
113
|
+
mint: e.mint,
|
|
114
|
+
amount: BigInt(e.amount),
|
|
115
|
+
timestamp: e.timestamp,
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
this.spendEntries = [];
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
const txsRaw = this.storage.getItem(STORAGE_KEY_TXS);
|
|
124
|
+
if (txsRaw) {
|
|
125
|
+
this.txEntries = JSON.parse(txsRaw);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
this.txEntries = [];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/** Persist state to storage */
|
|
133
|
+
persist() {
|
|
134
|
+
if (!this.storage)
|
|
135
|
+
return;
|
|
136
|
+
try {
|
|
137
|
+
const spendsJson = JSON.stringify(this.spendEntries.map((e) => ({
|
|
138
|
+
mint: e.mint,
|
|
139
|
+
amount: e.amount.toString(),
|
|
140
|
+
timestamp: e.timestamp,
|
|
141
|
+
})));
|
|
142
|
+
this.storage.setItem(STORAGE_KEY_SPENDS, spendsJson);
|
|
143
|
+
const txsJson = JSON.stringify(this.txEntries);
|
|
144
|
+
this.storage.setItem(STORAGE_KEY_TXS, txsJson);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
// Storage unavailable — continue with in-memory only
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Detect available storage backend.
|
|
153
|
+
* Returns localStorage if available (browser), null otherwise (Node.js).
|
|
154
|
+
*/
|
|
155
|
+
function detectStorage() {
|
|
156
|
+
try {
|
|
157
|
+
if (typeof globalThis !== "undefined") {
|
|
158
|
+
const g = globalThis;
|
|
159
|
+
if (g.localStorage) {
|
|
160
|
+
return g.localStorage;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// localStorage not available
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}
|