@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
package/dist/inscribe.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kit-native inscribe() + withVault() — Vault Provisioning
|
|
3
|
+
*
|
|
4
|
+
* inscribe(): Creates on-chain vault + registers agent
|
|
5
|
+
* withVault(): Convenience — shield + inscribe in one call
|
|
6
|
+
*
|
|
7
|
+
* Uses Codama-generated instruction builders directly.
|
|
8
|
+
* No Anchor, no web3.js.
|
|
9
|
+
*/
|
|
10
|
+
import { shield } from "./shield.js";
|
|
11
|
+
import { getVaultPDA, getPolicyPDA, getPendingPolicyPDA, } from "./resolve-accounts.js";
|
|
12
|
+
import { findVaultsByOwner } from "./state-resolver.js";
|
|
13
|
+
import { fetchMaybeAgentVault } from "./generated/accounts/agentVault.js";
|
|
14
|
+
import { SIGIL_PROGRAM_ADDRESS } from "./generated/programs/sigil.js";
|
|
15
|
+
import { validateNetwork } from "./types.js";
|
|
16
|
+
// ─── Policy Mapping ─────────────────────────────────────────────────────────
|
|
17
|
+
/**
|
|
18
|
+
* Map resolved client-side policies to on-chain vault init parameters.
|
|
19
|
+
*
|
|
20
|
+
* Multiple per-token SpendLimits collapse to the largest value as the
|
|
21
|
+
* on-chain dailySpendingCap (conservative ceiling). Per-token granularity
|
|
22
|
+
* is enforced client-side only.
|
|
23
|
+
*/
|
|
24
|
+
export function mapPoliciesToVaultParams(resolved, vaultId, feeDestination, opts) {
|
|
25
|
+
// Collapse multiple spend limits to the largest (ceiling cap)
|
|
26
|
+
let maxCap = 0n;
|
|
27
|
+
for (const limit of resolved.spendLimits) {
|
|
28
|
+
if (limit.amount > maxCap) {
|
|
29
|
+
maxCap = limit.amount;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Allowed protocols (Set<string>), cap at 10
|
|
33
|
+
const protocolArr = resolved.allowedProtocols
|
|
34
|
+
? Array.from(resolved.allowedProtocols)
|
|
35
|
+
: [];
|
|
36
|
+
const protocols = protocolArr.slice(0, 10);
|
|
37
|
+
// Protocol mode: if protocols specified, use allowlist (1); else allow all (0)
|
|
38
|
+
const protocolMode = protocols.length > 0 ? 1 : 0;
|
|
39
|
+
// maxTransactionSize: use resolved value, fall back to dailySpendingCap
|
|
40
|
+
const maxTransactionSize = resolved.maxTransactionSize ?? maxCap;
|
|
41
|
+
return {
|
|
42
|
+
vaultId,
|
|
43
|
+
dailySpendingCap: maxCap,
|
|
44
|
+
maxTransactionSize,
|
|
45
|
+
protocolMode,
|
|
46
|
+
protocols,
|
|
47
|
+
maxLeverageBps: opts?.maxLeverageBps ?? 0,
|
|
48
|
+
maxConcurrentPositions: opts?.maxConcurrentPositions ?? 5,
|
|
49
|
+
feeDestination,
|
|
50
|
+
developerFeeRate: opts?.developerFeeRate ?? 0,
|
|
51
|
+
timelockDuration: opts?.timelockDuration ?? 0,
|
|
52
|
+
allowedDestinations: opts?.allowedDestinations ?? [],
|
|
53
|
+
maxSlippageBps: opts?.maxSlippageBps ?? 100,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// ─── Vault ID Probing ───────────────────────────────────────────────────────
|
|
57
|
+
/**
|
|
58
|
+
* Probe vault PDAs starting from 0 to find the next available vault ID.
|
|
59
|
+
* Returns 0n for a new owner, or the first unused ID.
|
|
60
|
+
*/
|
|
61
|
+
export async function findNextVaultId(rpc, owner, programAddress = SIGIL_PROGRAM_ADDRESS) {
|
|
62
|
+
// Fast path: sequential probe for first 5 slots (common case)
|
|
63
|
+
for (let i = 0n; i < 5n; i++) {
|
|
64
|
+
const [vaultPda] = await getVaultPDA(owner, i, programAddress);
|
|
65
|
+
const account = await fetchMaybeAgentVault(rpc, vaultPda);
|
|
66
|
+
if (!account.exists) {
|
|
67
|
+
return i;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Slow path: owner has 5+ vaults — batch-discover via GPA and find max ID
|
|
71
|
+
const vaults = await findVaultsByOwner(rpc, owner, 100);
|
|
72
|
+
if (vaults.length === 0)
|
|
73
|
+
return 0n;
|
|
74
|
+
let maxId = 0n;
|
|
75
|
+
for (const v of vaults) {
|
|
76
|
+
if (v.vaultId > maxId)
|
|
77
|
+
maxId = v.vaultId;
|
|
78
|
+
}
|
|
79
|
+
const nextId = maxId + 1n;
|
|
80
|
+
if (nextId >= 256n) {
|
|
81
|
+
throw new Error("All 256 vault slots are in use for this owner.");
|
|
82
|
+
}
|
|
83
|
+
return nextId;
|
|
84
|
+
}
|
|
85
|
+
// ─── Inscribe ─────────────────────────────────────────────────────────────────
|
|
86
|
+
/**
|
|
87
|
+
* Create an on-chain vault and register an agent.
|
|
88
|
+
*
|
|
89
|
+
* This provisions the on-chain enforcement layer:
|
|
90
|
+
* 1. Derives vault PDA (auto-probes next ID if not specified)
|
|
91
|
+
* 2. Returns vault info (does NOT send transactions — caller composes)
|
|
92
|
+
*
|
|
93
|
+
* The actual transaction building and sending is the caller's responsibility
|
|
94
|
+
* using the Codama-generated instruction builders:
|
|
95
|
+
* - getInitializeVaultInstructionAsync()
|
|
96
|
+
* - getRegisterAgentInstructionAsync()
|
|
97
|
+
* - getUpdatePolicyInstructionAsync()
|
|
98
|
+
*/
|
|
99
|
+
export async function inscribe(options) {
|
|
100
|
+
const { rpc, network, owner, agent } = options;
|
|
101
|
+
validateNetwork(network);
|
|
102
|
+
// Validate owner ≠ agent
|
|
103
|
+
if (owner.address === agent.address) {
|
|
104
|
+
throw new Error("Owner and agent must be different keys. " +
|
|
105
|
+
"The owner has full vault authority; the agent has constrained execution only.");
|
|
106
|
+
}
|
|
107
|
+
// Resolve vault ID
|
|
108
|
+
const vaultId = options.vaultId ?? (await findNextVaultId(rpc, owner.address));
|
|
109
|
+
// Derive PDAs
|
|
110
|
+
const [vaultAddress] = await getVaultPDA(owner.address, vaultId);
|
|
111
|
+
const [policyAddress] = await getPolicyPDA(vaultAddress);
|
|
112
|
+
const [pendingPolicyAddress] = await getPendingPolicyPDA(vaultAddress);
|
|
113
|
+
return {
|
|
114
|
+
vaultAddress,
|
|
115
|
+
vaultId,
|
|
116
|
+
policyAddress,
|
|
117
|
+
pendingPolicyAddress,
|
|
118
|
+
agentAddress: agent.address,
|
|
119
|
+
ownerAddress: owner.address,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// ─── withVault ──────────────────────────────────────────────────────────────
|
|
123
|
+
/**
|
|
124
|
+
* Convenience: shield + inscribe in one call.
|
|
125
|
+
*
|
|
126
|
+
* Creates both client-side (shield) and on-chain (vault) enforcement.
|
|
127
|
+
* Auto-configures shield's on-chain sync using the derived vault address.
|
|
128
|
+
* This is the primary entry point for the single-product model.
|
|
129
|
+
*/
|
|
130
|
+
export async function withVault(options) {
|
|
131
|
+
// Provision on-chain vault first (derives vault address)
|
|
132
|
+
const inscribeResult = await inscribe(options.inscribe);
|
|
133
|
+
// Auto-configure shield's on-chain sync using the derived vault address
|
|
134
|
+
const shieldOpts = {
|
|
135
|
+
...options.shieldCallbacks,
|
|
136
|
+
onChainSync: {
|
|
137
|
+
rpc: options.inscribe.rpc,
|
|
138
|
+
vaultAddress: inscribeResult.vaultAddress,
|
|
139
|
+
agentAddress: options.inscribe.agent.address,
|
|
140
|
+
network: options.inscribe.network,
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
const shieldCtx = shield(options.policies, shieldOpts);
|
|
144
|
+
return {
|
|
145
|
+
shield: shieldCtx,
|
|
146
|
+
inscribe: inscribeResult,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=inscribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inscribe.js","sourceRoot":"","sources":["../src/inscribe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instruction Inspector — Kit-native
|
|
3
|
+
*
|
|
4
|
+
* Analyzes Kit Instruction[] arrays (pre-compilation) to extract:
|
|
5
|
+
* - Unique program IDs involved
|
|
6
|
+
* - SPL Token transfers (Transfer and TransferChecked)
|
|
7
|
+
* - Estimated USD value of outgoing transfers
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
import type { Address } from "@solana/kit";
|
|
11
|
+
import type { ConstraintEntry } from "./generated/types/constraintEntry.js";
|
|
12
|
+
/**
|
|
13
|
+
* Kit-native instruction shape for inspection.
|
|
14
|
+
* Compatible with Kit's IInstruction interface.
|
|
15
|
+
*/
|
|
16
|
+
export interface InspectableInstruction {
|
|
17
|
+
programAddress: Address;
|
|
18
|
+
accounts?: readonly {
|
|
19
|
+
address: Address;
|
|
20
|
+
}[];
|
|
21
|
+
data?: Uint8Array;
|
|
22
|
+
}
|
|
23
|
+
/** Parsed SPL Token transfer info */
|
|
24
|
+
export interface TokenTransferInfo {
|
|
25
|
+
/** Token mint address (only available for TransferChecked, null for Transfer) */
|
|
26
|
+
mint: Address | null;
|
|
27
|
+
/** Transfer amount in base units */
|
|
28
|
+
amount: bigint;
|
|
29
|
+
/** Source token account */
|
|
30
|
+
source: Address;
|
|
31
|
+
/** Destination token account */
|
|
32
|
+
destination: Address;
|
|
33
|
+
/** Authority (signer) of the transfer */
|
|
34
|
+
authority: Address;
|
|
35
|
+
}
|
|
36
|
+
/** A dangerous SPL Token operation detected by the inspector. */
|
|
37
|
+
export interface DangerousTokenOperation {
|
|
38
|
+
/** Type of dangerous operation */
|
|
39
|
+
type: "approve" | "setAuthority" | "closeAccount" | "revoke";
|
|
40
|
+
/** The token account being affected */
|
|
41
|
+
account: Address;
|
|
42
|
+
}
|
|
43
|
+
/** Result of analyzing a set of instructions */
|
|
44
|
+
export interface InstructionAnalysis {
|
|
45
|
+
/** Unique program IDs referenced across all instructions */
|
|
46
|
+
programIds: Address[];
|
|
47
|
+
/** Detected SPL Token transfers */
|
|
48
|
+
tokenTransfers: TokenTransferInfo[];
|
|
49
|
+
/** Sum of outgoing transfer amounts (where authority === signerAddress) */
|
|
50
|
+
estimatedValue: bigint;
|
|
51
|
+
/** Dangerous SPL Token operations (approve, setAuthority, closeAccount) */
|
|
52
|
+
dangerousOperations: DangerousTokenOperation[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Analyze a set of Kit instructions to extract program IDs, token transfers,
|
|
56
|
+
* and estimated outgoing value.
|
|
57
|
+
*
|
|
58
|
+
* @param instructions - Kit-native instructions to analyze
|
|
59
|
+
* @param signerAddress - The signer's address (to determine transfer direction)
|
|
60
|
+
* @returns Analysis result with program IDs, transfers, and estimated value
|
|
61
|
+
*/
|
|
62
|
+
export declare function analyzeInstructions(instructions: InspectableInstruction[], signerAddress: Address): InstructionAnalysis;
|
|
63
|
+
export interface ConstraintSummary {
|
|
64
|
+
/** 0-based index in the constraints array. */
|
|
65
|
+
index: number;
|
|
66
|
+
/** Protocol program address this constraint targets. */
|
|
67
|
+
program: Address;
|
|
68
|
+
/** Human-readable protocol name (e.g. "Jupiter") or shortened address. */
|
|
69
|
+
programName: string;
|
|
70
|
+
/** Number of data constraints (byte-level rules). */
|
|
71
|
+
dataConstraintCount: number;
|
|
72
|
+
/** Number of account constraints (address-level rules). */
|
|
73
|
+
accountConstraintCount: number;
|
|
74
|
+
/** Human-readable description of each rule. */
|
|
75
|
+
rules: string[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Inspect an InstructionConstraints account and return a human-readable
|
|
79
|
+
* summary of each constraint entry.
|
|
80
|
+
*
|
|
81
|
+
* @param entries - The constraint entries from the InstructionConstraints PDA.
|
|
82
|
+
* Obtain via: `(await resolveVaultState(rpc, vault, agent)).constraints?.entries`
|
|
83
|
+
*/
|
|
84
|
+
export declare function inspectConstraints(entries: ConstraintEntry[]): ConstraintSummary[];
|
|
85
|
+
//# sourceMappingURL=inspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAmB5E;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC7D,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,mCAAmC;IACnC,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;CAChD;AAID;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,sBAAsB,EAAE,EACtC,aAAa,EAAE,OAAO,GACrB,mBAAmB,CAiHrB;AAID,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAYD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EAAE,GACzB,iBAAiB,EAAE,CAmCrB"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instruction Inspector — Kit-native
|
|
3
|
+
*
|
|
4
|
+
* Analyzes Kit Instruction[] arrays (pre-compilation) to extract:
|
|
5
|
+
* - Unique program IDs involved
|
|
6
|
+
* - SPL Token transfers (Transfer and TransferChecked)
|
|
7
|
+
* - Estimated USD value of outgoing transfers
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
import { resolveProtocolName } from "./protocol-names.js";
|
|
11
|
+
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
12
|
+
const TOKEN_PROGRAM_ID = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
13
|
+
const TOKEN_2022_PROGRAM_ID = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
|
|
14
|
+
/** SPL Token instruction discriminators */
|
|
15
|
+
const SPL_TRANSFER_DISCRIMINATOR = 3;
|
|
16
|
+
const SPL_APPROVE_DISCRIMINATOR = 4;
|
|
17
|
+
const SPL_REVOKE_DISCRIMINATOR = 5;
|
|
18
|
+
const SPL_SET_AUTHORITY_DISCRIMINATOR = 6;
|
|
19
|
+
const SPL_CLOSE_ACCOUNT_DISCRIMINATOR = 9;
|
|
20
|
+
const SPL_TRANSFER_CHECKED_DISCRIMINATOR = 12;
|
|
21
|
+
const SPL_APPROVE_CHECKED_DISCRIMINATOR = 13;
|
|
22
|
+
// ─── Core ────────────────────────────────────────────────────────────────────
|
|
23
|
+
/**
|
|
24
|
+
* Analyze a set of Kit instructions to extract program IDs, token transfers,
|
|
25
|
+
* and estimated outgoing value.
|
|
26
|
+
*
|
|
27
|
+
* @param instructions - Kit-native instructions to analyze
|
|
28
|
+
* @param signerAddress - The signer's address (to determine transfer direction)
|
|
29
|
+
* @returns Analysis result with program IDs, transfers, and estimated value
|
|
30
|
+
*/
|
|
31
|
+
export function analyzeInstructions(instructions, signerAddress) {
|
|
32
|
+
const programIdSet = new Set();
|
|
33
|
+
const tokenTransfers = [];
|
|
34
|
+
const dangerousOperations = [];
|
|
35
|
+
let estimatedValue = 0n;
|
|
36
|
+
for (const ix of instructions) {
|
|
37
|
+
// Collect unique program IDs
|
|
38
|
+
programIdSet.add(ix.programAddress);
|
|
39
|
+
// Check for token program instructions
|
|
40
|
+
if (ix.programAddress !== TOKEN_PROGRAM_ID &&
|
|
41
|
+
ix.programAddress !== TOKEN_2022_PROGRAM_ID) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (!ix.data || ix.data.length === 0)
|
|
45
|
+
continue;
|
|
46
|
+
const discriminator = ix.data[0];
|
|
47
|
+
const accounts = ix.accounts ?? [];
|
|
48
|
+
if (discriminator === SPL_TRANSFER_DISCRIMINATOR) {
|
|
49
|
+
// Transfer layout: [1 byte disc][8 bytes amount LE]
|
|
50
|
+
// Accounts: [source, destination, authority]
|
|
51
|
+
if (ix.data.length < 9 || accounts.length < 3)
|
|
52
|
+
continue;
|
|
53
|
+
const amount = readU64LE(ix.data, 1);
|
|
54
|
+
const source = accounts[0].address;
|
|
55
|
+
const destination = accounts[1].address;
|
|
56
|
+
const authority = accounts[2].address;
|
|
57
|
+
const transfer = {
|
|
58
|
+
mint: null, // Not available in Transfer instruction (only TransferChecked provides mint)
|
|
59
|
+
amount,
|
|
60
|
+
source,
|
|
61
|
+
destination,
|
|
62
|
+
authority,
|
|
63
|
+
};
|
|
64
|
+
tokenTransfers.push(transfer);
|
|
65
|
+
// Sum outgoing transfers
|
|
66
|
+
if (authority === signerAddress) {
|
|
67
|
+
estimatedValue += amount;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (discriminator === SPL_TRANSFER_CHECKED_DISCRIMINATOR) {
|
|
71
|
+
// TransferChecked layout: [1 byte disc][8 bytes amount LE][1 byte decimals]
|
|
72
|
+
// Accounts: [source, mint, destination, authority]
|
|
73
|
+
if (ix.data.length < 10 || accounts.length < 4)
|
|
74
|
+
continue;
|
|
75
|
+
const amount = readU64LE(ix.data, 1);
|
|
76
|
+
const source = accounts[0].address;
|
|
77
|
+
const mint = accounts[1].address;
|
|
78
|
+
const destination = accounts[2].address;
|
|
79
|
+
const authority = accounts[3].address;
|
|
80
|
+
const transfer = {
|
|
81
|
+
mint,
|
|
82
|
+
amount,
|
|
83
|
+
source,
|
|
84
|
+
destination,
|
|
85
|
+
authority,
|
|
86
|
+
};
|
|
87
|
+
tokenTransfers.push(transfer);
|
|
88
|
+
// Sum outgoing transfers
|
|
89
|
+
if (authority === signerAddress) {
|
|
90
|
+
estimatedValue += amount;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Detect dangerous token operations (approve, setAuthority, closeAccount, revoke)
|
|
94
|
+
if (discriminator === SPL_APPROVE_DISCRIMINATOR ||
|
|
95
|
+
discriminator === SPL_APPROVE_CHECKED_DISCRIMINATOR) {
|
|
96
|
+
if (accounts.length >= 1) {
|
|
97
|
+
dangerousOperations.push({
|
|
98
|
+
type: "approve",
|
|
99
|
+
account: accounts[0].address,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else if (discriminator === SPL_SET_AUTHORITY_DISCRIMINATOR) {
|
|
104
|
+
if (accounts.length >= 1) {
|
|
105
|
+
dangerousOperations.push({
|
|
106
|
+
type: "setAuthority",
|
|
107
|
+
account: accounts[0].address,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else if (discriminator === SPL_CLOSE_ACCOUNT_DISCRIMINATOR) {
|
|
112
|
+
if (accounts.length >= 1) {
|
|
113
|
+
dangerousOperations.push({
|
|
114
|
+
type: "closeAccount",
|
|
115
|
+
account: accounts[0].address,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else if (discriminator === SPL_REVOKE_DISCRIMINATOR) {
|
|
120
|
+
if (accounts.length >= 1) {
|
|
121
|
+
dangerousOperations.push({
|
|
122
|
+
type: "revoke",
|
|
123
|
+
account: accounts[0].address,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
programIds: Array.from(programIdSet),
|
|
130
|
+
tokenTransfers,
|
|
131
|
+
estimatedValue,
|
|
132
|
+
dangerousOperations,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
const OPERATOR_NAMES = {
|
|
136
|
+
0: "==",
|
|
137
|
+
1: "!=",
|
|
138
|
+
2: "<",
|
|
139
|
+
3: "<=",
|
|
140
|
+
4: ">",
|
|
141
|
+
5: ">=",
|
|
142
|
+
6: "contains",
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Inspect an InstructionConstraints account and return a human-readable
|
|
146
|
+
* summary of each constraint entry.
|
|
147
|
+
*
|
|
148
|
+
* @param entries - The constraint entries from the InstructionConstraints PDA.
|
|
149
|
+
* Obtain via: `(await resolveVaultState(rpc, vault, agent)).constraints?.entries`
|
|
150
|
+
*/
|
|
151
|
+
export function inspectConstraints(entries) {
|
|
152
|
+
return entries
|
|
153
|
+
.map((entry, index) => {
|
|
154
|
+
const program = entry.programId;
|
|
155
|
+
const programName = resolveProtocolName(String(program));
|
|
156
|
+
const rules = [];
|
|
157
|
+
// Data constraints: { offset, operator: ConstraintOperator, value: ReadonlyUint8Array }
|
|
158
|
+
for (const dc of entry.dataConstraints ?? []) {
|
|
159
|
+
const opNum = typeof dc.operator === "number" ? dc.operator : dc.operator.__kind ? 0 : 0;
|
|
160
|
+
const op = OPERATOR_NAMES[opNum] ?? `op(${String(dc.operator)})`;
|
|
161
|
+
const bytes = new Uint8Array(dc.value);
|
|
162
|
+
const valueHex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
163
|
+
rules.push(`data[${dc.offset}..+${bytes.length}] ${op} 0x${valueHex}`);
|
|
164
|
+
}
|
|
165
|
+
// Account constraints: { index, expected: Address }
|
|
166
|
+
for (const ac of entry.accountConstraints ?? []) {
|
|
167
|
+
rules.push(`account[${ac.index}] == ${ac.expected}`);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
index,
|
|
171
|
+
program,
|
|
172
|
+
programName,
|
|
173
|
+
dataConstraintCount: entry.dataConstraints?.length ?? 0,
|
|
174
|
+
accountConstraintCount: entry.accountConstraints?.length ?? 0,
|
|
175
|
+
rules,
|
|
176
|
+
};
|
|
177
|
+
})
|
|
178
|
+
.filter((s) => s.rules.length > 0);
|
|
179
|
+
}
|
|
180
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
181
|
+
/**
|
|
182
|
+
* Read a u64 (8 bytes) in little-endian from a Uint8Array.
|
|
183
|
+
*/
|
|
184
|
+
function readU64LE(data, offset) {
|
|
185
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
186
|
+
return view.getBigUint64(offset, true);
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=inspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector.js","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared math utilities for analytics modules.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Herfindahl-Hirschman Index (0-1) for concentration analysis.
|
|
6
|
+
*
|
|
7
|
+
* H ≈ 1/N: evenly distributed among N entities.
|
|
8
|
+
* H = 1: single entity dominates.
|
|
9
|
+
*
|
|
10
|
+
* Uses bigint-safe computation: share is calculated in bigint space (scaled
|
|
11
|
+
* to 10000 BPS) before converting to Number, avoiding precision loss for
|
|
12
|
+
* values up to ~$900 trillion.
|
|
13
|
+
*/
|
|
14
|
+
export declare function computeHerfindahl(values: bigint[]): number;
|
|
15
|
+
//# sourceMappingURL=math-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-utils.d.ts","sourceRoot":"","sources":["../src/math-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAc1D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared math utilities for analytics modules.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Herfindahl-Hirschman Index (0-1) for concentration analysis.
|
|
6
|
+
*
|
|
7
|
+
* H ≈ 1/N: evenly distributed among N entities.
|
|
8
|
+
* H = 1: single entity dominates.
|
|
9
|
+
*
|
|
10
|
+
* Uses bigint-safe computation: share is calculated in bigint space (scaled
|
|
11
|
+
* to 10000 BPS) before converting to Number, avoiding precision loss for
|
|
12
|
+
* values up to ~$900 trillion.
|
|
13
|
+
*/
|
|
14
|
+
export function computeHerfindahl(values) {
|
|
15
|
+
const total = values.reduce((sum, v) => sum + v, 0n);
|
|
16
|
+
if (total === 0n)
|
|
17
|
+
return 0;
|
|
18
|
+
let sumSquares = 0;
|
|
19
|
+
for (const v of values) {
|
|
20
|
+
if (v === 0n)
|
|
21
|
+
continue;
|
|
22
|
+
// Compute share in bigint space (BPS precision) to avoid Number() on raw bigints
|
|
23
|
+
const shareBps = Number((v * 10000n) / total);
|
|
24
|
+
const share = shareBps / 10000;
|
|
25
|
+
sumSquares += share * share;
|
|
26
|
+
}
|
|
27
|
+
return sumSquares;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=math-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-utils.js","sourceRoot":"","sources":["../src/math-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAgB;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAE3B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE;YAAE,SAAS;QACvB,iFAAiF;QACjF,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;QAC/B,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Owner-side transaction builder for Sigil dashboard.
|
|
3
|
+
*
|
|
4
|
+
* Builds complete versioned transactions for owner-only instructions
|
|
5
|
+
* (freeze, deposit, withdraw, policy changes, agent management, constraints).
|
|
6
|
+
* Returns compiled (unsigned) transactions for wallet adapter signing.
|
|
7
|
+
*
|
|
8
|
+
* Unlike composeSigilTransaction() which builds the agent-side
|
|
9
|
+
* validate→DeFi→finalize sandwich, owner transactions are direct
|
|
10
|
+
* program calls with compute budget and ALT compression.
|
|
11
|
+
*/
|
|
12
|
+
import type { Instruction, Rpc, SolanaRpcApi, TransactionSigner, AddressesByLookupTableAddress } from "@solana/kit";
|
|
13
|
+
import { compileTransaction } from "@solana/kit";
|
|
14
|
+
import { type Blockhash } from "./rpc-helpers.js";
|
|
15
|
+
export interface BuildOwnerTransactionParams {
|
|
16
|
+
/** RPC client for blockhash + ALT resolution. */
|
|
17
|
+
rpc: Rpc<SolanaRpcApi>;
|
|
18
|
+
/** Owner signer (fee payer). */
|
|
19
|
+
owner: TransactionSigner;
|
|
20
|
+
/** One or more Sigil owner instructions. */
|
|
21
|
+
instructions: Instruction[];
|
|
22
|
+
/** Network for ALT resolution. */
|
|
23
|
+
network: "devnet" | "mainnet";
|
|
24
|
+
/** Override compute units. Default: CU_OWNER_ACTION (200,000). */
|
|
25
|
+
computeUnits?: number;
|
|
26
|
+
/** Priority fee in microLamports per CU. Default: 0 (no priority fee). */
|
|
27
|
+
priorityFeeMicroLamports?: number;
|
|
28
|
+
/** Pre-resolved ALTs. If omitted, resolves Sigil ALT automatically. */
|
|
29
|
+
addressLookupTables?: AddressesByLookupTableAddress;
|
|
30
|
+
/** Pre-fetched blockhash. If omitted, fetches via RPC. */
|
|
31
|
+
blockhash?: Blockhash;
|
|
32
|
+
}
|
|
33
|
+
export interface OwnerTransactionResult {
|
|
34
|
+
/** Compiled versioned transaction (caller signs with wallet adapter). */
|
|
35
|
+
transaction: ReturnType<typeof compileTransaction>;
|
|
36
|
+
/** Wire size in bytes. */
|
|
37
|
+
txSizeBytes: number;
|
|
38
|
+
/** Base64-encoded wire transaction (for display/debugging). */
|
|
39
|
+
wireBase64: string;
|
|
40
|
+
}
|
|
41
|
+
export declare function buildOwnerTransaction(params: BuildOwnerTransactionParams): Promise<OwnerTransactionResult>;
|
|
42
|
+
//# sourceMappingURL=owner-transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-transaction.d.ts","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,GAAG,EACH,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAOL,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQlE,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,gCAAgC;IAChC,KAAK,EAAE,iBAAiB,CAAC;IACzB,4CAA4C;IAC5C,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,kCAAkC;IAClC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;IACpD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,WAAW,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACnD,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;CACpB;AASD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAgFjC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Owner-side transaction builder for Sigil dashboard.
|
|
3
|
+
*
|
|
4
|
+
* Builds complete versioned transactions for owner-only instructions
|
|
5
|
+
* (freeze, deposit, withdraw, policy changes, agent management, constraints).
|
|
6
|
+
* Returns compiled (unsigned) transactions for wallet adapter signing.
|
|
7
|
+
*
|
|
8
|
+
* Unlike composeSigilTransaction() which builds the agent-side
|
|
9
|
+
* validate→DeFi→finalize sandwich, owner transactions are direct
|
|
10
|
+
* program calls with compute budget and ALT compression.
|
|
11
|
+
*/
|
|
12
|
+
import { pipe, createTransactionMessage, setTransactionMessageFeePayer, appendTransactionMessageInstructions, setTransactionMessageLifetimeUsingBlockhash, compressTransactionMessageUsingAddressLookupTables, compileTransaction, } from "@solana/kit";
|
|
13
|
+
import { getSetComputeUnitLimitInstruction, getSetComputeUnitPriceInstruction, } from "@solana-program/compute-budget";
|
|
14
|
+
import { measureTransactionSize, MAX_TX_SIZE } from "./composer.js";
|
|
15
|
+
import { BlockhashCache } from "./rpc-helpers.js";
|
|
16
|
+
import { AltCache } from "./alt-loader.js";
|
|
17
|
+
import { getSigilAltAddress } from "./alt-config.js";
|
|
18
|
+
import { CU_OWNER_ACTION } from "./priority-fees.js";
|
|
19
|
+
import { normalizeNetwork } from "./types.js";
|
|
20
|
+
// ─── Module-level caches (same pattern as wrap.ts) ──────────────────────────
|
|
21
|
+
const blockhashCache = new BlockhashCache();
|
|
22
|
+
const altCache = new AltCache();
|
|
23
|
+
// ─── buildOwnerTransaction ──────────────────────────────────────────────────
|
|
24
|
+
export async function buildOwnerTransaction(params) {
|
|
25
|
+
// 1. Validate inputs
|
|
26
|
+
if (!params.instructions.length) {
|
|
27
|
+
throw new Error("At least one instruction is required.");
|
|
28
|
+
}
|
|
29
|
+
// 2. Resolve blockhash + ALTs in parallel (independent RPC calls)
|
|
30
|
+
const net = normalizeNetwork(params.network);
|
|
31
|
+
const [blockhash, addressLookupTables] = await Promise.all([
|
|
32
|
+
params.blockhash
|
|
33
|
+
? Promise.resolve(params.blockhash)
|
|
34
|
+
: blockhashCache.get(params.rpc),
|
|
35
|
+
params.addressLookupTables
|
|
36
|
+
? Promise.resolve(params.addressLookupTables)
|
|
37
|
+
: altCache.resolve(params.rpc, [getSigilAltAddress(net)]),
|
|
38
|
+
]);
|
|
39
|
+
// 3. Build compute budget instructions
|
|
40
|
+
const computeUnits = params.computeUnits ?? CU_OWNER_ACTION;
|
|
41
|
+
const allInstructions = [
|
|
42
|
+
getSetComputeUnitLimitInstruction({ units: computeUnits }),
|
|
43
|
+
];
|
|
44
|
+
if (params.priorityFeeMicroLamports !== undefined &&
|
|
45
|
+
params.priorityFeeMicroLamports > 0) {
|
|
46
|
+
allInstructions.push(getSetComputeUnitPriceInstruction({
|
|
47
|
+
microLamports: params.priorityFeeMicroLamports,
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
// 4. Append owner instructions
|
|
51
|
+
allInstructions.push(...params.instructions);
|
|
52
|
+
// 5. Build transaction message via pipe()
|
|
53
|
+
let txMessage = pipe(createTransactionMessage({ version: 0 }), (tx) => setTransactionMessageFeePayer(params.owner.address, tx), (tx) => setTransactionMessageLifetimeUsingBlockhash(blockhash, tx), (tx) => appendTransactionMessageInstructions(allInstructions, tx));
|
|
54
|
+
// 6. Apply ALT compression
|
|
55
|
+
if (addressLookupTables && Object.keys(addressLookupTables).length > 0) {
|
|
56
|
+
txMessage = compressTransactionMessageUsingAddressLookupTables(txMessage, addressLookupTables);
|
|
57
|
+
}
|
|
58
|
+
// 7. Compile and validate size
|
|
59
|
+
const compiledTx = compileTransaction(txMessage);
|
|
60
|
+
const { wireBase64, byteLength, withinLimit } = measureTransactionSize(compiledTx);
|
|
61
|
+
if (!withinLimit) {
|
|
62
|
+
throw new Error(`Owner transaction size ${byteLength} bytes exceeds limit of ${MAX_TX_SIZE} bytes. ` +
|
|
63
|
+
`Reduce instruction count or use address lookup tables.`);
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
transaction: compiledTx,
|
|
67
|
+
txSizeBytes: byteLength,
|
|
68
|
+
wireBase64,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=owner-transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-transaction.js","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"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"}
|