@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,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TransactionExecutor — Kit-native transaction pipeline.
|
|
3
|
+
*
|
|
4
|
+
* Steps:
|
|
5
|
+
* 9. Compose versioned transaction (blockhash + compile)
|
|
6
|
+
* 10. Simulate (fail-closed)
|
|
7
|
+
* 11. Sign
|
|
8
|
+
* 12. Send + confirm, parse events
|
|
9
|
+
*/
|
|
10
|
+
import { getBase64EncodedWireTransaction } from "@solana/kit";
|
|
11
|
+
import { composeSigilTransaction, measureTransactionSize, MAX_TX_SIZE, } from "./composer.js";
|
|
12
|
+
import { AltCache } from "./alt-loader.js";
|
|
13
|
+
import { simulateBeforeSend, adjustCU, RISK_FLAG_FULL_DRAIN, } from "./simulation.js";
|
|
14
|
+
import { parseSigilEvents } from "./events.js";
|
|
15
|
+
import { BlockhashCache, signAndEncode, sendAndConfirmTransaction, } from "./rpc-helpers.js";
|
|
16
|
+
import { estimateComposedCU } from "./priority-fees.js";
|
|
17
|
+
// ─── TransactionExecutor ────────────────────────────────────────────────────
|
|
18
|
+
export class TransactionExecutor {
|
|
19
|
+
rpc;
|
|
20
|
+
agent;
|
|
21
|
+
blockhashCache;
|
|
22
|
+
confirmOptions;
|
|
23
|
+
_skipSimulation;
|
|
24
|
+
_drainThresholds;
|
|
25
|
+
altCache;
|
|
26
|
+
constructor(rpc, agent, options) {
|
|
27
|
+
this.rpc = rpc;
|
|
28
|
+
this.agent = agent;
|
|
29
|
+
this.blockhashCache = new BlockhashCache(options?.blockhashCacheTtlMs);
|
|
30
|
+
this.confirmOptions = options?.confirmOptions ?? {};
|
|
31
|
+
this._skipSimulation = options?.skipSimulation ?? false;
|
|
32
|
+
this._drainThresholds = options?.drainThresholds;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resolve ALT addresses via cached RPC fetch.
|
|
36
|
+
* Returns a map of ALT address → resolved addresses.
|
|
37
|
+
*/
|
|
38
|
+
async resolveAlts(rpc, altAddresses) {
|
|
39
|
+
if (!this.altCache)
|
|
40
|
+
this.altCache = new AltCache();
|
|
41
|
+
return this.altCache.resolve(rpc, altAddresses);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Step 9: Compose a versioned transaction from instructions + cached blockhash.
|
|
45
|
+
*/
|
|
46
|
+
async composeTransaction(params) {
|
|
47
|
+
const blockhash = await this.blockhashCache.get(this.rpc);
|
|
48
|
+
const computeUnits = params.computeUnits ?? estimateComposedCU(params.defiInstructions);
|
|
49
|
+
const compiledTx = composeSigilTransaction({
|
|
50
|
+
feePayer: params.feePayer,
|
|
51
|
+
validateIx: params.validateIx,
|
|
52
|
+
defiInstructions: params.defiInstructions,
|
|
53
|
+
finalizeIx: params.finalizeIx,
|
|
54
|
+
blockhash,
|
|
55
|
+
computeUnits,
|
|
56
|
+
priorityFeeMicroLamports: params.priorityFeeMicroLamports,
|
|
57
|
+
addressLookupTables: params.addressLookupTables,
|
|
58
|
+
});
|
|
59
|
+
// Check wire size after compose (with or without ALTs)
|
|
60
|
+
const { byteLength, withinLimit } = measureTransactionSize(compiledTx);
|
|
61
|
+
if (!withinLimit) {
|
|
62
|
+
const altsApplied = params.addressLookupTables != null &&
|
|
63
|
+
Object.keys(params.addressLookupTables).length > 0;
|
|
64
|
+
const err = Object.assign(new Error(altsApplied
|
|
65
|
+
? `Transaction ${byteLength}B exceeds ${MAX_TX_SIZE}B limit even with ALTs applied. Simplify the DeFi route.`
|
|
66
|
+
: `Transaction ${byteLength}B exceeds ${MAX_TX_SIZE}B limit. ALT fetch may have failed — retry, or simplify the route.`), {
|
|
67
|
+
code: 7033,
|
|
68
|
+
context: { byteLength, limit: MAX_TX_SIZE, altsApplied },
|
|
69
|
+
});
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
return { compiledTx, computeUnits, blockhash };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Step 10: Simulate the transaction. Fail-closed — failure blocks sending.
|
|
76
|
+
* If CU consumed differs >20% from estimate, re-composes.
|
|
77
|
+
*/
|
|
78
|
+
async simulate(params, compiledTx, estimatedCU, blockhash) {
|
|
79
|
+
const wireBase64 = getBase64EncodedWireTransaction(compiledTx);
|
|
80
|
+
// Build simulation options from vault monitoring context + drain thresholds
|
|
81
|
+
const simOptions = params.vaultMonitoring ? {
|
|
82
|
+
monitorAccounts: params.vaultMonitoring.monitorAccounts,
|
|
83
|
+
preBalances: params.vaultMonitoring.preBalances,
|
|
84
|
+
vaultAddress: params.vaultMonitoring.vaultAddress,
|
|
85
|
+
totalVaultBalance: params.vaultMonitoring.totalVaultBalance,
|
|
86
|
+
knownRecipients: params.vaultMonitoring.knownRecipients,
|
|
87
|
+
drainThresholds: this._drainThresholds,
|
|
88
|
+
} : undefined;
|
|
89
|
+
const simulation = await simulateBeforeSend(this.rpc, wireBase64, simOptions);
|
|
90
|
+
if (!simulation.success) {
|
|
91
|
+
return { simulation, finalCU: estimatedCU };
|
|
92
|
+
}
|
|
93
|
+
// Check if CU adjustment is needed
|
|
94
|
+
const adjustedCU = adjustCU(estimatedCU, simulation.unitsConsumed);
|
|
95
|
+
if (adjustedCU !== estimatedCU) {
|
|
96
|
+
// Re-compose with adjusted CU — reuse blockhash from initial compose
|
|
97
|
+
const recomposedTx = composeSigilTransaction({
|
|
98
|
+
feePayer: params.feePayer,
|
|
99
|
+
validateIx: params.validateIx,
|
|
100
|
+
defiInstructions: params.defiInstructions,
|
|
101
|
+
finalizeIx: params.finalizeIx,
|
|
102
|
+
blockhash,
|
|
103
|
+
computeUnits: adjustedCU,
|
|
104
|
+
priorityFeeMicroLamports: params.priorityFeeMicroLamports,
|
|
105
|
+
addressLookupTables: params.addressLookupTables,
|
|
106
|
+
});
|
|
107
|
+
return { simulation, recomposedTx, finalCU: adjustedCU };
|
|
108
|
+
}
|
|
109
|
+
return { simulation, finalCU: estimatedCU };
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Steps 11+12: Sign, send, and confirm the transaction.
|
|
113
|
+
*/
|
|
114
|
+
async signSendConfirm(compiledTx) {
|
|
115
|
+
const wireBase64 = await signAndEncode(this.agent, compiledTx);
|
|
116
|
+
const signature = await sendAndConfirmTransaction(this.rpc, wireBase64, this.confirmOptions);
|
|
117
|
+
return { signature };
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Full pipeline: compose → simulate → sign → send → parse events.
|
|
121
|
+
* Steps 9-12 in one call.
|
|
122
|
+
*/
|
|
123
|
+
async executeTransaction(params) {
|
|
124
|
+
// Step 9: Compose
|
|
125
|
+
const { compiledTx, computeUnits, blockhash } = await this.composeTransaction(params);
|
|
126
|
+
// Step 10: Simulate (unless skipped)
|
|
127
|
+
let txToSign = compiledTx;
|
|
128
|
+
let simLogs;
|
|
129
|
+
let unitsConsumed;
|
|
130
|
+
const riskWarnings = [];
|
|
131
|
+
if (!this._skipSimulation) {
|
|
132
|
+
const { simulation, recomposedTx } = await this.simulate(params, compiledTx, computeUnits, blockhash);
|
|
133
|
+
if (!simulation.success) {
|
|
134
|
+
const errMsg = simulation.error?.suggestion ??
|
|
135
|
+
simulation.error?.message ??
|
|
136
|
+
"Simulation failed";
|
|
137
|
+
throw new Error(`Simulation failed: ${errMsg}`);
|
|
138
|
+
}
|
|
139
|
+
// Drain detection: FULL_DRAIN blocks TX, others are warnings
|
|
140
|
+
if (simulation.riskFlags.length > 0) {
|
|
141
|
+
if (simulation.riskFlags.includes(RISK_FLAG_FULL_DRAIN)) {
|
|
142
|
+
throw new Error(`Transaction blocked: drain detection triggered (${simulation.riskFlags.join(", ")})`);
|
|
143
|
+
}
|
|
144
|
+
riskWarnings.push(...simulation.riskFlags);
|
|
145
|
+
}
|
|
146
|
+
simLogs = simulation.logs;
|
|
147
|
+
unitsConsumed = simulation.unitsConsumed;
|
|
148
|
+
if (recomposedTx) {
|
|
149
|
+
txToSign = recomposedTx;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Steps 11+12: Sign, send, confirm
|
|
153
|
+
const { signature } = await this.signSendConfirm(txToSign);
|
|
154
|
+
// Parse events from simulation logs (best-effort)
|
|
155
|
+
const events = simLogs ? parseSigilEvents(simLogs) : [];
|
|
156
|
+
return {
|
|
157
|
+
signature,
|
|
158
|
+
unitsConsumed,
|
|
159
|
+
logs: simLogs,
|
|
160
|
+
events,
|
|
161
|
+
warnings: riskWarnings.length > 0 ? riskWarnings : undefined,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=transaction-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-executor.js","sourceRoot":"","sources":["../src/transaction-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kit-native type constants + permission helpers for Sigil.
|
|
3
|
+
*
|
|
4
|
+
* All types use Kit's `Address` (branded string) instead of web3.js `PublicKey`,
|
|
5
|
+
* and `bigint` instead of `BN`.
|
|
6
|
+
*/
|
|
7
|
+
import type { Address, Instruction } from "@solana/kit";
|
|
8
|
+
export { SIGIL_PROGRAM_ADDRESS } from "./generated/programs/sigil.js";
|
|
9
|
+
export type { ActionType } from "./generated/types/actionType.js";
|
|
10
|
+
export type { VaultStatus } from "./generated/types/vaultStatus.js";
|
|
11
|
+
export type { EscrowStatus } from "./generated/types/escrowStatus.js";
|
|
12
|
+
export type { AgentEntry } from "./generated/types/agentEntry.js";
|
|
13
|
+
export type { EpochBucket } from "./generated/types/epochBucket.js";
|
|
14
|
+
export type { ConstraintEntry } from "./generated/types/constraintEntry.js";
|
|
15
|
+
export type { DataConstraint } from "./generated/types/dataConstraint.js";
|
|
16
|
+
export type { AccountConstraint } from "./generated/types/accountConstraint.js";
|
|
17
|
+
export type { ConstraintOperator } from "./generated/types/constraintOperator.js";
|
|
18
|
+
export declare const FEE_RATE_DENOMINATOR = 1000000;
|
|
19
|
+
export declare const PROTOCOL_FEE_RATE = 200;
|
|
20
|
+
export declare const MAX_DEVELOPER_FEE_RATE = 500;
|
|
21
|
+
export declare const PROTOCOL_TREASURY: Address;
|
|
22
|
+
export declare const USD_DECIMALS = 6;
|
|
23
|
+
/** Scaling factor for stablecoin-to-USD conversion.
|
|
24
|
+
* USDC/USDT both use 6 decimals: amount / STABLECOIN_USD_FACTOR = USD.
|
|
25
|
+
* This assumption is load-bearing — if a stablecoin with different decimals
|
|
26
|
+
* is added to isStablecoinMint(), this factor must be updated. */
|
|
27
|
+
export declare const STABLECOIN_USD_FACTOR: bigint;
|
|
28
|
+
export declare const MAX_AGENTS_PER_VAULT = 10;
|
|
29
|
+
/** Permission bitmask with all 21 bits set (18 base + 3 escrow ActionType variants) */
|
|
30
|
+
export declare const FULL_PERMISSIONS: bigint;
|
|
31
|
+
export declare const SWAP_ONLY: bigint;
|
|
32
|
+
export declare const PERPS_ONLY: bigint;
|
|
33
|
+
export declare const TRANSFER_ONLY: bigint;
|
|
34
|
+
export declare const ESCROW_ONLY: bigint;
|
|
35
|
+
/** Full perps permission set: open, close, increase, decrease, deposit, withdraw, add/remove collateral, triggers, limits */
|
|
36
|
+
export declare const PERPS_FULL: bigint;
|
|
37
|
+
export declare const MAX_ESCROW_DURATION = 2592000;
|
|
38
|
+
/** Maximum u64 value — used for BigInt clamping to match on-chain Rust math. */
|
|
39
|
+
export declare const U64_MAX: bigint;
|
|
40
|
+
export declare const MAX_SLIPPAGE_BPS = 5000;
|
|
41
|
+
export declare const EPOCH_DURATION = 600;
|
|
42
|
+
export declare const NUM_EPOCHS = 144;
|
|
43
|
+
export declare const OVERLAY_EPOCH_DURATION = 3600;
|
|
44
|
+
export declare const OVERLAY_NUM_EPOCHS = 24;
|
|
45
|
+
export declare const ROLLING_WINDOW_SECONDS = 86400;
|
|
46
|
+
export declare const PROTOCOL_MODE_ALL = 0;
|
|
47
|
+
export declare const PROTOCOL_MODE_ALLOWLIST = 1;
|
|
48
|
+
export declare const PROTOCOL_MODE_DENYLIST = 2;
|
|
49
|
+
export declare const USDC_MINT_DEVNET: Address;
|
|
50
|
+
export declare const USDC_MINT_MAINNET: Address;
|
|
51
|
+
export declare const USDT_MINT_DEVNET: Address;
|
|
52
|
+
export declare const USDT_MINT_MAINNET: Address;
|
|
53
|
+
export declare const JUPITER_PROGRAM_ADDRESS: Address;
|
|
54
|
+
/** The 5 recognized DeFi programs for instruction count enforcement.
|
|
55
|
+
* Must stay in sync with on-chain validate_and_authorize.rs:325-329. */
|
|
56
|
+
export declare const RECOGNIZED_DEFI_PROGRAMS: ReadonlySet<string>;
|
|
57
|
+
export type Network = "devnet" | "mainnet-beta";
|
|
58
|
+
/** Validate that a string is a recognized Network value. */
|
|
59
|
+
export declare function validateNetwork(network: string): asserts network is Network;
|
|
60
|
+
/** Short-form network accepted by public APIs. Normalized internally. */
|
|
61
|
+
export type NetworkInput = "devnet" | "mainnet" | "mainnet-beta";
|
|
62
|
+
/** Convert short-form network to canonical Network type.
|
|
63
|
+
* "mainnet" → "mainnet-beta", all others pass through. */
|
|
64
|
+
export declare function normalizeNetwork(network: NetworkInput): Network;
|
|
65
|
+
/** Type-safe instruction conversion from Codama builders. */
|
|
66
|
+
export declare function toInstruction(ix: {
|
|
67
|
+
programAddress: Address;
|
|
68
|
+
accounts?: readonly unknown[];
|
|
69
|
+
data?: unknown;
|
|
70
|
+
}): Instruction;
|
|
71
|
+
/** Check if a mint address is a recognized stablecoin (network-aware). */
|
|
72
|
+
export declare function isStablecoinMint(mint: Address, network: Network): boolean;
|
|
73
|
+
/** Permission bit mapping for each ActionType variant (21 total) */
|
|
74
|
+
export declare const ACTION_PERMISSION_MAP: Record<string, bigint>;
|
|
75
|
+
/** Check if a permission bitmask includes the permission for a given action type */
|
|
76
|
+
export declare function hasPermission(permissions: bigint, actionType: string): boolean;
|
|
77
|
+
/** Convert a permission bitmask to an array of action type strings */
|
|
78
|
+
export declare function permissionsToStrings(permissions: bigint): string[];
|
|
79
|
+
/**
|
|
80
|
+
* Convert an array of action type strings to a permission bitmask.
|
|
81
|
+
* Inverse of permissionsToStrings().
|
|
82
|
+
*
|
|
83
|
+
* @throws Error if any string is not a recognized action type.
|
|
84
|
+
* @example stringsToPermissions(["swap", "deposit"]) // => 33n (bit 0 + bit 5)
|
|
85
|
+
*/
|
|
86
|
+
export declare function stringsToPermissions(strings: string[]): bigint;
|
|
87
|
+
/**
|
|
88
|
+
* Parse an action type to its string key.
|
|
89
|
+
* Accepts either a numeric ActionType enum value or an Anchor-style { Swap: {} } object.
|
|
90
|
+
*/
|
|
91
|
+
export declare function parseActionType(actionType: number | Record<string, unknown>): string | undefined;
|
|
92
|
+
/** Builder for constructing permission bitmasks */
|
|
93
|
+
export declare class PermissionBuilder {
|
|
94
|
+
private permissions;
|
|
95
|
+
add(actionType: string): this;
|
|
96
|
+
remove(actionType: string): this;
|
|
97
|
+
build(): bigint;
|
|
98
|
+
}
|
|
99
|
+
export type PositionEffect = "increment" | "decrement" | "none";
|
|
100
|
+
export declare function isSpendingAction(actionType: string): boolean;
|
|
101
|
+
export declare function getPositionEffect(actionType: string): PositionEffect;
|
|
102
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,YAAY,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAIlF,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAC9C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,iBAAiB,EACsB,OAAO,CAAC;AAI5D,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B;;;mEAGmE;AACnE,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AAIjE,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AACjD,eAAO,MAAM,SAAS,QAAW,CAAC;AAClC,eAAO,MAAM,UAAU,QAAoD,CAAC;AAC5E,eAAO,MAAM,aAAa,QAAW,CAAC;AACtC,eAAO,MAAM,WAAW,QAA0C,CAAC;AAEnE,6HAA6H;AAC7H,eAAO,MAAM,UAAU,QAaV,CAAC;AAId,eAAO,MAAM,mBAAmB,UAAY,CAAC;AAI7C,gFAAgF;AAChF,eAAO,MAAM,OAAO,QAAiC,CAAC;AAItD,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AAItC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,UAAU,MAAM,CAAC;AAI9B,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAI7C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAMxC,eAAO,MAAM,gBAAgB,EACuB,OAAO,CAAC;AAC5D,eAAO,MAAM,iBAAiB,EACsB,OAAO,CAAC;AAC5D,eAAO,MAAM,gBAAgB,EACuB,OAAO,CAAC;AAC5D,eAAO,MAAM,iBAAiB,EACsB,OAAO,CAAC;AAE5D,eAAO,MAAM,uBAAuB,EACe,OAAO,CAAC;AAE3D;yEACyE;AACzE,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAMvD,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC;AAEhD,4DAA4D;AAC5D,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAK3E;AAED,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;AAEjE;2DAC2D;AAC3D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAE/D;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,EAAE,EAAE;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,WAAW,CAEzH;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAKzE;AAID,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsBxD,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAIT;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAQlE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAW9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,MAAM,GAAG,SAAS,CAMpB;AAED,mDAAmD;AACnD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAM;IAEzB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ7B,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQhC,KAAK,IAAI,MAAM;CAGhB;AAID,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAY5D;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAgBpE"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kit-native type constants + permission helpers for Sigil.
|
|
3
|
+
*
|
|
4
|
+
* All types use Kit's `Address` (branded string) instead of web3.js `PublicKey`,
|
|
5
|
+
* and `bigint` instead of `BN`.
|
|
6
|
+
*/
|
|
7
|
+
// Re-export the program address from generated code
|
|
8
|
+
export { SIGIL_PROGRAM_ADDRESS } from "./generated/programs/sigil.js";
|
|
9
|
+
// ─── Fee Constants ────────────────────────────────────────────────────────────
|
|
10
|
+
export const FEE_RATE_DENOMINATOR = 1_000_000;
|
|
11
|
+
export const PROTOCOL_FEE_RATE = 200; // 2 BPS
|
|
12
|
+
export const MAX_DEVELOPER_FEE_RATE = 500; // 5 BPS
|
|
13
|
+
export const PROTOCOL_TREASURY = "ASHie1dFTnDSnrHMPGmniJhMgfJVGPm3rAaEPnrtWDiT";
|
|
14
|
+
// ─── USD Constants ────────────────────────────────────────────────────────────
|
|
15
|
+
export const USD_DECIMALS = 6;
|
|
16
|
+
/** Scaling factor for stablecoin-to-USD conversion.
|
|
17
|
+
* USDC/USDT both use 6 decimals: amount / STABLECOIN_USD_FACTOR = USD.
|
|
18
|
+
* This assumption is load-bearing — if a stablecoin with different decimals
|
|
19
|
+
* is added to isStablecoinMint(), this factor must be updated. */
|
|
20
|
+
export const STABLECOIN_USD_FACTOR = 10n ** BigInt(USD_DECIMALS);
|
|
21
|
+
// ─── Multi-agent Constants ────────────────────────────────────────────────────
|
|
22
|
+
export const MAX_AGENTS_PER_VAULT = 10;
|
|
23
|
+
/** Permission bitmask with all 21 bits set (18 base + 3 escrow ActionType variants) */
|
|
24
|
+
export const FULL_PERMISSIONS = (1n << 21n) - 1n;
|
|
25
|
+
export const SWAP_ONLY = 1n << 0n;
|
|
26
|
+
export const PERPS_ONLY = (1n << 1n) | (1n << 2n) | (1n << 3n) | (1n << 4n);
|
|
27
|
+
export const TRANSFER_ONLY = 1n << 7n;
|
|
28
|
+
export const ESCROW_ONLY = (1n << 18n) | (1n << 19n) | (1n << 20n);
|
|
29
|
+
/** Full perps permission set: open, close, increase, decrease, deposit, withdraw, add/remove collateral, triggers, limits */
|
|
30
|
+
export const PERPS_FULL = PERPS_ONLY |
|
|
31
|
+
(1n << 5n) |
|
|
32
|
+
(1n << 6n) |
|
|
33
|
+
(1n << 8n) |
|
|
34
|
+
(1n << 9n) |
|
|
35
|
+
(1n << 10n) |
|
|
36
|
+
(1n << 11n) |
|
|
37
|
+
(1n << 12n) |
|
|
38
|
+
(1n << 13n) |
|
|
39
|
+
(1n << 14n) |
|
|
40
|
+
(1n << 15n) |
|
|
41
|
+
(1n << 16n) |
|
|
42
|
+
(1n << 17n);
|
|
43
|
+
// ─── Escrow Constants ─────────────────────────────────────────────────────────
|
|
44
|
+
export const MAX_ESCROW_DURATION = 2_592_000; // 30 days in seconds
|
|
45
|
+
// ─── u64 Boundary ────────────────────────────────────────────────────────────
|
|
46
|
+
/** Maximum u64 value — used for BigInt clamping to match on-chain Rust math. */
|
|
47
|
+
export const U64_MAX = BigInt("18446744073709551615");
|
|
48
|
+
// ─── Slippage Constants ───────────────────────────────────────────────────────
|
|
49
|
+
export const MAX_SLIPPAGE_BPS = 5_000; // 50%
|
|
50
|
+
// ─── SpendTracker Constants ───────────────────────────────────────────────────
|
|
51
|
+
export const EPOCH_DURATION = 600; // 10 minutes in seconds
|
|
52
|
+
export const NUM_EPOCHS = 144; // 144 × 10 min = 24h
|
|
53
|
+
// ─── AgentSpendOverlay Constants ─────────────────────────────────────────────
|
|
54
|
+
export const OVERLAY_EPOCH_DURATION = 3600; // 1 hour in seconds
|
|
55
|
+
export const OVERLAY_NUM_EPOCHS = 24; // 24 × 1h = 24h
|
|
56
|
+
export const ROLLING_WINDOW_SECONDS = 86_400; // 24 hours in seconds
|
|
57
|
+
// ─── Protocol Mode ────────────────────────────────────────────────────────────
|
|
58
|
+
export const PROTOCOL_MODE_ALL = 0;
|
|
59
|
+
export const PROTOCOL_MODE_ALLOWLIST = 1;
|
|
60
|
+
export const PROTOCOL_MODE_DENYLIST = 2;
|
|
61
|
+
// ─── Stablecoin Mints ─────────────────────────────────────────────────────────
|
|
62
|
+
// Devnet mints: test-controlled keypairs matching on-chain state/mod.rs
|
|
63
|
+
// (we own the mint authority for devnet testing)
|
|
64
|
+
export const USDC_MINT_DEVNET = "DMFEQFCRsvGrYzoL2gfwTEd9J8eVBQEjg7HjbJHd6oGH";
|
|
65
|
+
export const USDC_MINT_MAINNET = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
|
|
66
|
+
export const USDT_MINT_DEVNET = "43cd9ma7P968BssTtAKNs5qu6zgsErupwxwdjkiuMHze";
|
|
67
|
+
export const USDT_MINT_MAINNET = "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB";
|
|
68
|
+
export const JUPITER_PROGRAM_ADDRESS = "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4";
|
|
69
|
+
/** The 5 recognized DeFi programs for instruction count enforcement.
|
|
70
|
+
* Must stay in sync with on-chain validate_and_authorize.rs:325-329. */
|
|
71
|
+
export const RECOGNIZED_DEFI_PROGRAMS = new Set([
|
|
72
|
+
"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", // Jupiter V6
|
|
73
|
+
"FLASH6Lo6h3iasJKWDs2F8TkW2UKf3s15C8PMGuVfgBn", // Flash Trade
|
|
74
|
+
"JLend2fEim9xUFcaHsyGePEoBzFLvkjMi3MnPcSuCdu", // Jupiter Lend
|
|
75
|
+
"jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9", // Jupiter Earn
|
|
76
|
+
"jupr81YtYssSyPt8jbnGuiWon5f6x9TcDEFxYe3Bdzi", // Jupiter Borrow
|
|
77
|
+
]);
|
|
78
|
+
/** Validate that a string is a recognized Network value. */
|
|
79
|
+
export function validateNetwork(network) {
|
|
80
|
+
const normalized = network === "mainnet" ? "mainnet-beta" : network;
|
|
81
|
+
if (normalized !== "devnet" && normalized !== "mainnet-beta") {
|
|
82
|
+
throw new Error(`Invalid network: "${network}". Must be "devnet", "mainnet", or "mainnet-beta".`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** Convert short-form network to canonical Network type.
|
|
86
|
+
* "mainnet" → "mainnet-beta", all others pass through. */
|
|
87
|
+
export function normalizeNetwork(network) {
|
|
88
|
+
return network === "mainnet" ? "mainnet-beta" : network;
|
|
89
|
+
}
|
|
90
|
+
/** Type-safe instruction conversion from Codama builders. */
|
|
91
|
+
export function toInstruction(ix) {
|
|
92
|
+
return ix;
|
|
93
|
+
}
|
|
94
|
+
/** Check if a mint address is a recognized stablecoin (network-aware). */
|
|
95
|
+
export function isStablecoinMint(mint, network) {
|
|
96
|
+
if (network === "devnet") {
|
|
97
|
+
return mint === USDC_MINT_DEVNET || mint === USDT_MINT_DEVNET;
|
|
98
|
+
}
|
|
99
|
+
return mint === USDC_MINT_MAINNET || mint === USDT_MINT_MAINNET;
|
|
100
|
+
}
|
|
101
|
+
// ─── Permission System ────────────────────────────────────────────────────────
|
|
102
|
+
/** Permission bit mapping for each ActionType variant (21 total) */
|
|
103
|
+
export const ACTION_PERMISSION_MAP = {
|
|
104
|
+
swap: 1n << 0n,
|
|
105
|
+
openPosition: 1n << 1n,
|
|
106
|
+
closePosition: 1n << 2n,
|
|
107
|
+
increasePosition: 1n << 3n,
|
|
108
|
+
decreasePosition: 1n << 4n,
|
|
109
|
+
deposit: 1n << 5n,
|
|
110
|
+
withdraw: 1n << 6n,
|
|
111
|
+
transfer: 1n << 7n,
|
|
112
|
+
addCollateral: 1n << 8n,
|
|
113
|
+
removeCollateral: 1n << 9n,
|
|
114
|
+
placeTriggerOrder: 1n << 10n,
|
|
115
|
+
editTriggerOrder: 1n << 11n,
|
|
116
|
+
cancelTriggerOrder: 1n << 12n,
|
|
117
|
+
placeLimitOrder: 1n << 13n,
|
|
118
|
+
editLimitOrder: 1n << 14n,
|
|
119
|
+
cancelLimitOrder: 1n << 15n,
|
|
120
|
+
swapAndOpenPosition: 1n << 16n,
|
|
121
|
+
closeAndSwapPosition: 1n << 17n,
|
|
122
|
+
createEscrow: 1n << 18n,
|
|
123
|
+
settleEscrow: 1n << 19n,
|
|
124
|
+
refundEscrow: 1n << 20n,
|
|
125
|
+
};
|
|
126
|
+
/** Check if a permission bitmask includes the permission for a given action type */
|
|
127
|
+
export function hasPermission(permissions, actionType) {
|
|
128
|
+
const bit = ACTION_PERMISSION_MAP[actionType];
|
|
129
|
+
if (bit === undefined)
|
|
130
|
+
return false;
|
|
131
|
+
return (permissions & bit) !== 0n;
|
|
132
|
+
}
|
|
133
|
+
/** Convert a permission bitmask to an array of action type strings */
|
|
134
|
+
export function permissionsToStrings(permissions) {
|
|
135
|
+
const result = [];
|
|
136
|
+
for (const [name, bit] of Object.entries(ACTION_PERMISSION_MAP)) {
|
|
137
|
+
if ((permissions & bit) !== 0n) {
|
|
138
|
+
result.push(name);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Convert an array of action type strings to a permission bitmask.
|
|
145
|
+
* Inverse of permissionsToStrings().
|
|
146
|
+
*
|
|
147
|
+
* @throws Error if any string is not a recognized action type.
|
|
148
|
+
* @example stringsToPermissions(["swap", "deposit"]) // => 33n (bit 0 + bit 5)
|
|
149
|
+
*/
|
|
150
|
+
export function stringsToPermissions(strings) {
|
|
151
|
+
let result = 0n;
|
|
152
|
+
for (const s of strings) {
|
|
153
|
+
const bit = ACTION_PERMISSION_MAP[s];
|
|
154
|
+
if (bit === undefined) {
|
|
155
|
+
const valid = Object.keys(ACTION_PERMISSION_MAP).join(", ");
|
|
156
|
+
throw new Error(`Unknown action type: "${s}". Valid types: ${valid}`);
|
|
157
|
+
}
|
|
158
|
+
result |= bit;
|
|
159
|
+
}
|
|
160
|
+
return result;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Parse an action type to its string key.
|
|
164
|
+
* Accepts either a numeric ActionType enum value or an Anchor-style { Swap: {} } object.
|
|
165
|
+
*/
|
|
166
|
+
export function parseActionType(actionType) {
|
|
167
|
+
if (typeof actionType === "number") {
|
|
168
|
+
const entries = Object.entries(ACTION_PERMISSION_MAP);
|
|
169
|
+
return entries[actionType]?.[0];
|
|
170
|
+
}
|
|
171
|
+
return Object.keys(actionType)[0];
|
|
172
|
+
}
|
|
173
|
+
/** Builder for constructing permission bitmasks */
|
|
174
|
+
export class PermissionBuilder {
|
|
175
|
+
permissions = 0n;
|
|
176
|
+
add(actionType) {
|
|
177
|
+
const bit = ACTION_PERMISSION_MAP[actionType];
|
|
178
|
+
if (bit !== undefined) {
|
|
179
|
+
this.permissions |= bit;
|
|
180
|
+
}
|
|
181
|
+
return this;
|
|
182
|
+
}
|
|
183
|
+
remove(actionType) {
|
|
184
|
+
const bit = ACTION_PERMISSION_MAP[actionType];
|
|
185
|
+
if (bit !== undefined) {
|
|
186
|
+
this.permissions &= ~bit;
|
|
187
|
+
}
|
|
188
|
+
return this;
|
|
189
|
+
}
|
|
190
|
+
build() {
|
|
191
|
+
return this.permissions;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
export function isSpendingAction(actionType) {
|
|
195
|
+
return [
|
|
196
|
+
"swap",
|
|
197
|
+
"openPosition",
|
|
198
|
+
"increasePosition",
|
|
199
|
+
"deposit",
|
|
200
|
+
"transfer",
|
|
201
|
+
"addCollateral",
|
|
202
|
+
"placeLimitOrder",
|
|
203
|
+
"swapAndOpenPosition",
|
|
204
|
+
"createEscrow",
|
|
205
|
+
].includes(actionType);
|
|
206
|
+
}
|
|
207
|
+
export function getPositionEffect(actionType) {
|
|
208
|
+
if (["openPosition", "swapAndOpenPosition", "placeLimitOrder"].includes(actionType)) {
|
|
209
|
+
return "increment";
|
|
210
|
+
}
|
|
211
|
+
if (["closePosition", "closeAndSwapPosition", "cancelLimitOrder"].includes(actionType)) {
|
|
212
|
+
return "decrement";
|
|
213
|
+
}
|
|
214
|
+
return "none";
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault analytics — health assessment and one-call summary.
|
|
3
|
+
*
|
|
4
|
+
* getVaultHealth(): Pure function (no RPC) — derives health, cap metrics,
|
|
5
|
+
* security checks from already-resolved vault state.
|
|
6
|
+
*
|
|
7
|
+
* getVaultSummary(): Async function — parallel RPC calls for state, P&L,
|
|
8
|
+
* balances, pending policy. Returns everything a vault detail page needs.
|
|
9
|
+
*/
|
|
10
|
+
import type { Address, Rpc, SolanaRpcApi } from "@solana/kit";
|
|
11
|
+
import type { ResolvedVaultState, ResolvedVaultStateForOwner } from "./state-resolver.js";
|
|
12
|
+
import { type VaultPnL, type TokenBalance } from "./balance-tracker.js";
|
|
13
|
+
import { type Network } from "./types.js";
|
|
14
|
+
export interface VaultSecurityCheck {
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
passed: boolean;
|
|
18
|
+
severity: "critical" | "warning" | "info";
|
|
19
|
+
}
|
|
20
|
+
export interface VaultHealth {
|
|
21
|
+
status: "Active" | "Frozen" | "Closed";
|
|
22
|
+
/** Active + has agents + not approaching caps */
|
|
23
|
+
isHealthy: boolean;
|
|
24
|
+
agentCount: number;
|
|
25
|
+
pausedAgentCount: number;
|
|
26
|
+
openPositions: number;
|
|
27
|
+
activeEscrowCount: number;
|
|
28
|
+
/** 0-100 percentage of daily cap used */
|
|
29
|
+
capUtilization: number;
|
|
30
|
+
/** USD base units remaining in 24h window */
|
|
31
|
+
capRemaining: bigint;
|
|
32
|
+
/** Seconds until the oldest epoch rolls off and frees cap space. */
|
|
33
|
+
capResetsIn: number;
|
|
34
|
+
/** Seconds until cap would be hit at current rate. null = safe. */
|
|
35
|
+
timeToCapAtCurrentRate: number | null;
|
|
36
|
+
hasConstraints: boolean;
|
|
37
|
+
hasTimelock: boolean;
|
|
38
|
+
timelockDuration: number;
|
|
39
|
+
hasPendingPolicyChange: boolean;
|
|
40
|
+
/** Unix timestamp of most recent tracker activity. 0 if none. */
|
|
41
|
+
lastActivityTimestamp: number;
|
|
42
|
+
securityChecks: VaultSecurityCheck[];
|
|
43
|
+
}
|
|
44
|
+
export interface VaultStats {
|
|
45
|
+
totalTransactions: bigint;
|
|
46
|
+
totalVolume: bigint;
|
|
47
|
+
totalFeesCollected: bigint;
|
|
48
|
+
totalDeposited: bigint;
|
|
49
|
+
totalWithdrawn: bigint;
|
|
50
|
+
createdAt: bigint;
|
|
51
|
+
/** Days since vault creation (min 1) */
|
|
52
|
+
ageInDays: number;
|
|
53
|
+
/** totalVolume / ageInDays (0 if vault < 1 day old) */
|
|
54
|
+
avgDailyVolume: bigint;
|
|
55
|
+
/** totalVolume / totalTransactions (0 if no transactions) */
|
|
56
|
+
avgTransactionSize: bigint;
|
|
57
|
+
/** totalFeesCollected as BPS of totalVolume */
|
|
58
|
+
feeRate: number;
|
|
59
|
+
}
|
|
60
|
+
export interface VaultSummary {
|
|
61
|
+
address: Address;
|
|
62
|
+
owner: Address;
|
|
63
|
+
vaultId: bigint;
|
|
64
|
+
health: VaultHealth;
|
|
65
|
+
pnl: VaultPnL;
|
|
66
|
+
tokenBalances: TokenBalance[];
|
|
67
|
+
totalValueUsd: bigint;
|
|
68
|
+
state: ResolvedVaultStateForOwner;
|
|
69
|
+
stats: VaultStats;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Single-call vault health assessment. Pure function — no RPC.
|
|
73
|
+
*
|
|
74
|
+
* Derives isHealthy, capUtilization, capResetsIn, security checks from
|
|
75
|
+
* already-resolved vault state. The dashboard vault card renders this directly.
|
|
76
|
+
*/
|
|
77
|
+
export declare function getVaultHealth(state: ResolvedVaultState | ResolvedVaultStateForOwner, nowUnix: bigint): VaultHealth;
|
|
78
|
+
/**
|
|
79
|
+
* Complete vault summary in one call. Parallel RPC for state, P&L, balances,
|
|
80
|
+
* pending policy. Returns everything the vault detail page header needs.
|
|
81
|
+
*/
|
|
82
|
+
export declare function getVaultSummary(rpc: Rpc<SolanaRpcApi>, vault: Address, network?: Network): Promise<VaultSummary>;
|
|
83
|
+
//# sourceMappingURL=vault-analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-analytics.d.ts","sourceRoot":"","sources":["../src/vault-analytics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAM1F,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;IAChC,iEAAiE;IACjE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,kBAAkB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,QAAQ,CAAC;IACd,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,0BAA0B,CAAC;IAClC,KAAK,EAAE,UAAU,CAAC;CACnB;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,0BAA0B,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAyHnH;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,OAAwB,GAChC,OAAO,CAAC,YAAY,CAAC,CAgDvB"}
|