@usesigil/kit 0.16.0 → 0.18.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/README.md +56 -0
- package/dist/advanced-analytics.d.ts +3 -2
- package/dist/advanced-analytics.d.ts.map +1 -1
- package/dist/advanced-analytics.js +9 -42
- package/dist/advanced-analytics.js.map +1 -1
- package/dist/agent-bootstrap.d.ts +1 -2
- package/dist/agent-bootstrap.d.ts.map +1 -1
- package/dist/agent-bootstrap.js.map +1 -1
- package/dist/agent-errors.d.ts +20 -4
- package/dist/agent-errors.d.ts.map +1 -1
- package/dist/agent-errors.js +864 -367
- package/dist/agent-errors.js.map +1 -1
- package/dist/audit-log.d.ts +101 -0
- package/dist/audit-log.d.ts.map +1 -0
- package/dist/audit-log.js +145 -0
- package/dist/audit-log.js.map +1 -0
- package/dist/caip2-network.d.ts +171 -0
- package/dist/caip2-network.d.ts.map +1 -0
- package/dist/caip2-network.js +202 -0
- package/dist/caip2-network.js.map +1 -0
- package/dist/canonical-encode.d.ts +59 -0
- package/dist/canonical-encode.d.ts.map +1 -0
- package/dist/canonical-encode.js +141 -0
- package/dist/canonical-encode.js.map +1 -0
- package/dist/cosign-helper.d.ts +264 -0
- package/dist/cosign-helper.d.ts.map +1 -0
- package/dist/cosign-helper.js +147 -0
- package/dist/cosign-helper.js.map +1 -0
- package/dist/create-vault.d.ts +92 -0
- package/dist/create-vault.d.ts.map +1 -1
- package/dist/create-vault.js +108 -7
- package/dist/create-vault.js.map +1 -1
- package/dist/dashboard/close-vault.d.ts +110 -0
- package/dist/dashboard/close-vault.d.ts.map +1 -0
- package/dist/dashboard/close-vault.js +165 -0
- package/dist/dashboard/close-vault.js.map +1 -0
- package/dist/dashboard/errors.d.ts +2 -2
- package/dist/dashboard/errors.d.ts.map +1 -1
- package/dist/dashboard/errors.js +11 -7
- package/dist/dashboard/errors.js.map +1 -1
- package/dist/dashboard/index.d.ts +190 -34
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +282 -52
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/mutations.d.ts +153 -24
- package/dist/dashboard/mutations.d.ts.map +1 -1
- package/dist/dashboard/mutations.js +680 -114
- package/dist/dashboard/mutations.js.map +1 -1
- package/dist/dashboard/post-assertion-validation.d.ts +1 -1
- package/dist/dashboard/post-assertion-validation.d.ts.map +1 -1
- package/dist/dashboard/post-assertion-validation.js +169 -48
- package/dist/dashboard/post-assertion-validation.js.map +1 -1
- package/dist/dashboard/reads.d.ts +3 -4
- package/dist/dashboard/reads.d.ts.map +1 -1
- package/dist/dashboard/reads.js +11 -22
- package/dist/dashboard/reads.js.map +1 -1
- package/dist/dashboard/types.d.ts +56 -19
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/errors/agent-errors.generated.d.ts +21 -0
- package/dist/errors/agent-errors.generated.d.ts.map +1 -0
- package/dist/errors/agent-errors.generated.js +134 -0
- package/dist/errors/agent-errors.generated.js.map +1 -0
- package/dist/errors/codes.d.ts +21 -2
- package/dist/errors/codes.d.ts.map +1 -1
- package/dist/errors/codes.js +19 -0
- package/dist/errors/codes.js.map +1 -1
- package/dist/errors/context.d.ts +9 -1
- package/dist/errors/context.d.ts.map +1 -1
- package/dist/event-analytics.d.ts +1 -3
- package/dist/event-analytics.d.ts.map +1 -1
- package/dist/event-analytics.js +28 -81
- package/dist/event-analytics.js.map +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +23 -14
- package/dist/events.js.map +1 -1
- package/dist/generated/accounts/agentSpendOverlay.d.ts +60 -0
- package/dist/generated/accounts/agentSpendOverlay.d.ts.map +1 -1
- package/dist/generated/accounts/agentSpendOverlay.js +6 -2
- package/dist/generated/accounts/agentSpendOverlay.js.map +1 -1
- package/dist/generated/accounts/agentVault.d.ts +168 -4
- package/dist/generated/accounts/agentVault.d.ts.map +1 -1
- package/dist/generated/accounts/agentVault.js +11 -3
- package/dist/generated/accounts/agentVault.js.map +1 -1
- package/dist/generated/accounts/auditLogRejected.d.ts +66 -0
- package/dist/generated/accounts/auditLogRejected.d.ts.map +1 -0
- package/dist/generated/accounts/auditLogRejected.js +68 -0
- package/dist/generated/accounts/auditLogRejected.js.map +1 -0
- package/dist/generated/accounts/auditLogSuccess.d.ts +78 -0
- package/dist/generated/accounts/auditLogSuccess.d.ts.map +1 -0
- package/dist/generated/accounts/auditLogSuccess.js +68 -0
- package/dist/generated/accounts/auditLogSuccess.js.map +1 -0
- package/dist/generated/accounts/index.d.ts +4 -4
- package/dist/generated/accounts/index.d.ts.map +1 -1
- package/dist/generated/accounts/index.js +4 -4
- package/dist/generated/accounts/index.js.map +1 -1
- package/dist/generated/accounts/pendingAgentGrant.d.ts +199 -0
- package/dist/generated/accounts/pendingAgentGrant.d.ts.map +1 -0
- package/dist/generated/accounts/pendingAgentGrant.js +75 -0
- package/dist/generated/accounts/pendingAgentGrant.js.map +1 -0
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts +64 -0
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts.map +1 -1
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.js +7 -1
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.js.map +1 -1
- package/dist/generated/accounts/pendingOwnershipTransfer.d.ts +131 -0
- package/dist/generated/accounts/pendingOwnershipTransfer.d.ts.map +1 -0
- package/dist/generated/accounts/pendingOwnershipTransfer.js +76 -0
- package/dist/generated/accounts/pendingOwnershipTransfer.js.map +1 -0
- package/dist/generated/accounts/pendingPolicyUpdate.d.ts +200 -4
- package/dist/generated/accounts/pendingPolicyUpdate.d.ts.map +1 -1
- package/dist/generated/accounts/pendingPolicyUpdate.js +19 -1
- package/dist/generated/accounts/pendingPolicyUpdate.js.map +1 -1
- package/dist/generated/accounts/policyConfig.d.ts +479 -36
- package/dist/generated/accounts/policyConfig.d.ts.map +1 -1
- package/dist/generated/accounts/policyConfig.js +30 -3
- package/dist/generated/accounts/policyConfig.js.map +1 -1
- package/dist/generated/accounts/postExecutionAssertions.d.ts +2 -2
- package/dist/generated/accounts/postExecutionAssertions.d.ts.map +1 -1
- package/dist/generated/accounts/postExecutionAssertions.js +3 -3
- package/dist/generated/accounts/sessionAuthority.d.ts +140 -12
- package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -1
- package/dist/generated/accounts/sessionAuthority.js +9 -7
- package/dist/generated/accounts/sessionAuthority.js.map +1 -1
- package/dist/generated/accounts/spendTracker.d.ts +83 -3
- package/dist/generated/accounts/spendTracker.d.ts.map +1 -1
- package/dist/generated/accounts/spendTracker.js +14 -2
- package/dist/generated/accounts/spendTracker.js.map +1 -1
- package/dist/generated/errors/sigil.d.ts +131 -83
- package/dist/generated/errors/sigil.d.ts.map +1 -1
- package/dist/generated/errors/sigil.js +178 -106
- package/dist/generated/errors/sigil.js.map +1 -1
- package/dist/generated/event-discriminators.d.ts.map +1 -1
- package/dist/generated/event-discriminators.js +11 -14
- package/dist/generated/event-discriminators.js.map +1 -1
- package/dist/generated/instructions/acceptOwnershipTransfer.d.ts +142 -0
- package/dist/generated/instructions/acceptOwnershipTransfer.d.ts.map +1 -0
- package/dist/generated/instructions/acceptOwnershipTransfer.js +171 -0
- package/dist/generated/instructions/acceptOwnershipTransfer.js.map +1 -0
- package/dist/generated/instructions/acceptOwnershipTransferMultisig.d.ts +85 -0
- package/dist/generated/instructions/acceptOwnershipTransferMultisig.d.ts.map +1 -0
- package/dist/generated/instructions/acceptOwnershipTransferMultisig.js +171 -0
- package/dist/generated/instructions/acceptOwnershipTransferMultisig.js.map +1 -0
- package/dist/generated/instructions/applyAgentGrant.d.ts +100 -0
- package/dist/generated/instructions/applyAgentGrant.d.ts.map +1 -0
- package/dist/generated/instructions/{applyConstraintsUpdate.js → applyAgentGrant.js} +66 -42
- package/dist/generated/instructions/applyAgentGrant.js.map +1 -0
- package/dist/generated/instructions/applyAgentPermissionsUpdate.d.ts +31 -8
- package/dist/generated/instructions/applyAgentPermissionsUpdate.d.ts.map +1 -1
- package/dist/generated/instructions/applyAgentPermissionsUpdate.js +38 -2
- package/dist/generated/instructions/applyAgentPermissionsUpdate.js.map +1 -1
- package/dist/generated/instructions/applyPendingPolicy.d.ts +18 -7
- package/dist/generated/instructions/applyPendingPolicy.d.ts.map +1 -1
- package/dist/generated/instructions/applyPendingPolicy.js +38 -2
- package/dist/generated/instructions/applyPendingPolicy.js.map +1 -1
- package/dist/generated/instructions/cancelAgentGrant.d.ts +106 -0
- package/dist/generated/instructions/cancelAgentGrant.d.ts.map +1 -0
- package/dist/generated/instructions/{allocatePendingConstraintsPda.js → cancelAgentGrant.js} +54 -42
- package/dist/generated/instructions/cancelAgentGrant.js.map +1 -0
- package/dist/generated/instructions/cancelOwnershipTransfer.d.ts +121 -0
- package/dist/generated/instructions/cancelOwnershipTransfer.d.ts.map +1 -0
- package/dist/generated/instructions/{queueCloseConstraints.js → cancelOwnershipTransfer.js} +58 -44
- package/dist/generated/instructions/cancelOwnershipTransfer.js.map +1 -0
- package/dist/generated/instructions/closePostAssertions.d.ts +6 -1
- package/dist/generated/instructions/closePostAssertions.d.ts.map +1 -1
- package/dist/generated/instructions/closePostAssertions.js +11 -3
- package/dist/generated/instructions/closePostAssertions.js.map +1 -1
- package/dist/generated/instructions/closeVault.d.ts +40 -8
- package/dist/generated/instructions/closeVault.d.ts.map +1 -1
- package/dist/generated/instructions/closeVault.js +40 -2
- package/dist/generated/instructions/closeVault.js.map +1 -1
- package/dist/generated/instructions/createPostAssertions.d.ts +4 -0
- package/dist/generated/instructions/createPostAssertions.d.ts.map +1 -1
- package/dist/generated/instructions/createPostAssertions.js +2 -0
- package/dist/generated/instructions/createPostAssertions.js.map +1 -1
- package/dist/generated/instructions/depositFunds.d.ts +21 -10
- package/dist/generated/instructions/depositFunds.d.ts.map +1 -1
- package/dist/generated/instructions/depositFunds.js +37 -2
- package/dist/generated/instructions/depositFunds.js.map +1 -1
- package/dist/generated/instructions/finalizeSession.d.ts +49 -7
- package/dist/generated/instructions/finalizeSession.d.ts.map +1 -1
- package/dist/generated/instructions/finalizeSession.js +59 -2
- package/dist/generated/instructions/finalizeSession.js.map +1 -1
- package/dist/generated/instructions/freezeVault.d.ts +36 -5
- package/dist/generated/instructions/freezeVault.d.ts.map +1 -1
- package/dist/generated/instructions/freezeVault.js +65 -4
- package/dist/generated/instructions/freezeVault.js.map +1 -1
- package/dist/generated/instructions/index.d.ts +10 -15
- package/dist/generated/instructions/index.d.ts.map +1 -1
- package/dist/generated/instructions/index.js +10 -15
- package/dist/generated/instructions/index.js.map +1 -1
- package/dist/generated/instructions/initializeVault.d.ts +79 -9
- package/dist/generated/instructions/initializeVault.d.ts.map +1 -1
- package/dist/generated/instructions/initializeVault.js +57 -3
- package/dist/generated/instructions/initializeVault.js.map +1 -1
- package/dist/generated/instructions/initiateOwnershipTransfer.d.ts +106 -0
- package/dist/generated/instructions/initiateOwnershipTransfer.d.ts.map +1 -0
- package/dist/generated/instructions/initiateOwnershipTransfer.js +181 -0
- package/dist/generated/instructions/initiateOwnershipTransfer.js.map +1 -0
- package/dist/generated/instructions/pauseAgent.d.ts +49 -5
- package/dist/generated/instructions/pauseAgent.d.ts.map +1 -1
- package/dist/generated/instructions/pauseAgent.js +80 -5
- package/dist/generated/instructions/pauseAgent.js.map +1 -1
- package/dist/generated/instructions/promoteGraylistDestination.d.ts +56 -0
- package/dist/generated/instructions/promoteGraylistDestination.d.ts.map +1 -0
- package/dist/generated/instructions/{createInstructionConstraints.js → promoteGraylistDestination.js} +23 -40
- package/dist/generated/instructions/promoteGraylistDestination.js.map +1 -0
- package/dist/generated/instructions/queueAgentGrant.d.ts +113 -0
- package/dist/generated/instructions/queueAgentGrant.d.ts.map +1 -0
- package/dist/generated/instructions/queueAgentGrant.js +181 -0
- package/dist/generated/instructions/queueAgentGrant.js.map +1 -0
- package/dist/generated/instructions/queueAgentPermissionsUpdate.d.ts +8 -0
- package/dist/generated/instructions/queueAgentPermissionsUpdate.d.ts.map +1 -1
- package/dist/generated/instructions/queueAgentPermissionsUpdate.js +4 -0
- package/dist/generated/instructions/queueAgentPermissionsUpdate.js.map +1 -1
- package/dist/generated/instructions/queuePolicyUpdate.d.ts +32 -0
- package/dist/generated/instructions/queuePolicyUpdate.d.ts.map +1 -1
- package/dist/generated/instructions/queuePolicyUpdate.js +17 -1
- package/dist/generated/instructions/queuePolicyUpdate.js.map +1 -1
- package/dist/generated/instructions/reactivateVault.d.ts +71 -5
- package/dist/generated/instructions/reactivateVault.d.ts.map +1 -1
- package/dist/generated/instructions/reactivateVault.js +80 -5
- package/dist/generated/instructions/reactivateVault.js.map +1 -1
- package/dist/generated/instructions/recordAgentViolation.d.ts +89 -0
- package/dist/generated/instructions/recordAgentViolation.d.ts.map +1 -0
- package/dist/generated/instructions/recordAgentViolation.js +152 -0
- package/dist/generated/instructions/recordAgentViolation.js.map +1 -0
- package/dist/generated/instructions/registerAgent.d.ts +84 -6
- package/dist/generated/instructions/registerAgent.d.ts.map +1 -1
- package/dist/generated/instructions/registerAgent.js +81 -4
- package/dist/generated/instructions/registerAgent.js.map +1 -1
- package/dist/generated/instructions/revokeAgent.d.ts +49 -6
- package/dist/generated/instructions/revokeAgent.d.ts.map +1 -1
- package/dist/generated/instructions/revokeAgent.js +81 -4
- package/dist/generated/instructions/revokeAgent.js.map +1 -1
- package/dist/generated/instructions/setObserveOnly.d.ts +56 -0
- package/dist/generated/instructions/setObserveOnly.d.ts.map +1 -0
- package/dist/generated/instructions/setObserveOnly.js +111 -0
- package/dist/generated/instructions/setObserveOnly.js.map +1 -0
- package/dist/generated/instructions/unpauseAgent.d.ts +46 -5
- package/dist/generated/instructions/unpauseAgent.d.ts.map +1 -1
- package/dist/generated/instructions/unpauseAgent.js +80 -5
- package/dist/generated/instructions/unpauseAgent.js.map +1 -1
- package/dist/generated/instructions/validateAndAuthorize.d.ts +29 -0
- package/dist/generated/instructions/validateAndAuthorize.d.ts.map +1 -1
- package/dist/generated/instructions/validateAndAuthorize.js +4 -0
- package/dist/generated/instructions/validateAndAuthorize.js.map +1 -1
- package/dist/generated/instructions/withdrawFunds.d.ts +53 -11
- package/dist/generated/instructions/withdrawFunds.d.ts.map +1 -1
- package/dist/generated/instructions/withdrawFunds.js +51 -2
- package/dist/generated/instructions/withdrawFunds.js.map +1 -1
- package/dist/generated/programs/sigil.d.ts +79 -99
- package/dist/generated/programs/sigil.d.ts.map +1 -1
- package/dist/generated/programs/sigil.js +139 -199
- package/dist/generated/programs/sigil.js.map +1 -1
- package/dist/generated/types/actionAuthorized.d.ts +0 -2
- package/dist/generated/types/actionAuthorized.d.ts.map +1 -1
- package/dist/generated/types/actionAuthorized.js +0 -2
- package/dist/generated/types/actionAuthorized.js.map +1 -1
- package/dist/generated/types/agentAutoRevoked.d.ts +31 -0
- package/dist/generated/types/agentAutoRevoked.d.ts.map +1 -0
- package/dist/generated/types/{orphanConstraintsPdaCleaned.js → agentAutoRevoked.js} +12 -8
- package/dist/generated/types/agentAutoRevoked.js.map +1 -0
- package/dist/generated/types/agentEntry.d.ts +48 -0
- package/dist/generated/types/agentEntry.d.ts.map +1 -1
- package/dist/generated/types/agentEntry.js +4 -2
- package/dist/generated/types/agentEntry.js.map +1 -1
- package/dist/generated/types/agentGrantApplied.d.ts +38 -0
- package/dist/generated/types/agentGrantApplied.d.ts.map +1 -0
- package/dist/generated/types/agentGrantApplied.js +34 -0
- package/dist/generated/types/agentGrantApplied.js.map +1 -0
- package/dist/generated/types/agentGrantCancelled.d.ts +33 -0
- package/dist/generated/types/agentGrantCancelled.d.ts.map +1 -0
- package/dist/generated/types/agentGrantCancelled.js +28 -0
- package/dist/generated/types/agentGrantCancelled.js.map +1 -0
- package/dist/generated/types/agentGrantQueued.d.ts +38 -0
- package/dist/generated/types/agentGrantQueued.d.ts.map +1 -0
- package/dist/generated/types/agentGrantQueued.js +32 -0
- package/dist/generated/types/agentGrantQueued.js.map +1 -0
- package/dist/generated/types/auditEntry.d.ts +120 -0
- package/dist/generated/types/auditEntry.d.ts.map +1 -0
- package/dist/generated/types/auditEntry.js +34 -0
- package/dist/generated/types/auditEntry.js.map +1 -0
- package/dist/generated/types/destinationGraylistEntry.d.ts +32 -0
- package/dist/generated/types/destinationGraylistEntry.d.ts.map +1 -0
- package/dist/generated/types/destinationGraylistEntry.js +24 -0
- package/dist/generated/types/destinationGraylistEntry.js.map +1 -0
- package/dist/generated/types/graylistEntered.d.ts +31 -0
- package/dist/generated/types/graylistEntered.d.ts.map +1 -0
- package/dist/generated/types/graylistEntered.js +30 -0
- package/dist/generated/types/graylistEntered.js.map +1 -0
- package/dist/generated/types/graylistPromoted.d.ts +29 -0
- package/dist/generated/types/graylistPromoted.d.ts.map +1 -0
- package/dist/generated/types/graylistPromoted.js +28 -0
- package/dist/generated/types/graylistPromoted.js.map +1 -0
- package/dist/generated/types/index.d.ts +13 -22
- package/dist/generated/types/index.d.ts.map +1 -1
- package/dist/generated/types/index.js +13 -22
- package/dist/generated/types/index.js.map +1 -1
- package/dist/generated/types/observeOnlyChanged.d.ts +33 -0
- package/dist/generated/types/observeOnlyChanged.d.ts.map +1 -0
- package/dist/generated/types/observeOnlyChanged.js +32 -0
- package/dist/generated/types/observeOnlyChanged.js.map +1 -0
- package/dist/generated/types/ownershipTransferAccepted.d.ts +32 -0
- package/dist/generated/types/ownershipTransferAccepted.d.ts.map +1 -0
- package/dist/generated/types/ownershipTransferAccepted.js +30 -0
- package/dist/generated/types/ownershipTransferAccepted.js.map +1 -0
- package/dist/generated/types/ownershipTransferCancelled.d.ts +29 -0
- package/dist/generated/types/ownershipTransferCancelled.d.ts.map +1 -0
- package/dist/generated/types/ownershipTransferCancelled.js +28 -0
- package/dist/generated/types/ownershipTransferCancelled.js.map +1 -0
- package/dist/generated/types/ownershipTransferInitiated.d.ts +33 -0
- package/dist/generated/types/ownershipTransferInitiated.d.ts.map +1 -0
- package/dist/generated/types/ownershipTransferInitiated.js +30 -0
- package/dist/generated/types/ownershipTransferInitiated.js.map +1 -0
- package/dist/generated/types/perRecipientCounter.d.ts +61 -0
- package/dist/generated/types/perRecipientCounter.d.ts.map +1 -0
- package/dist/generated/types/perRecipientCounter.js +26 -0
- package/dist/generated/types/perRecipientCounter.js.map +1 -0
- package/dist/generated/types/postAssertionEntry.d.ts +14 -7
- package/dist/generated/types/postAssertionEntry.d.ts.map +1 -1
- package/dist/generated/types/postAssertionEntry.js +5 -7
- package/dist/generated/types/postAssertionEntry.js.map +1 -1
- package/dist/generated/types/postAssertionEntryZC.d.ts +53 -22
- package/dist/generated/types/postAssertionEntryZC.d.ts.map +1 -1
- package/dist/generated/types/postAssertionEntryZC.js +4 -6
- package/dist/generated/types/postAssertionEntryZC.js.map +1 -1
- package/dist/generated/types/sessionFinalized.d.ts +0 -4
- package/dist/generated/types/sessionFinalized.d.ts.map +1 -1
- package/dist/generated/types/sessionFinalized.js +0 -2
- package/dist/generated/types/sessionFinalized.js.map +1 -1
- package/dist/generated/types/vaultFrozen.d.ts +14 -0
- package/dist/generated/types/vaultFrozen.d.ts.map +1 -1
- package/dist/generated/types/vaultFrozen.js +2 -0
- package/dist/generated/types/vaultFrozen.js.map +1 -1
- package/dist/index.d.ts +31 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -11
- package/dist/index.js.map +1 -1
- package/dist/inspector.d.ts +0 -23
- package/dist/inspector.d.ts.map +1 -1
- package/dist/inspector.js +0 -52
- package/dist/inspector.js.map +1 -1
- package/dist/kit-adapter.d.ts +1 -1
- package/dist/kit-adapter.d.ts.map +1 -1
- package/dist/kit-adapter.js +1 -1
- package/dist/kit-adapter.js.map +1 -1
- package/dist/multisig-detection.d.ts +83 -0
- package/dist/multisig-detection.d.ts.map +1 -0
- package/dist/multisig-detection.js +128 -0
- package/dist/multisig-detection.js.map +1 -0
- package/dist/ownership-transfer.d.ts +79 -0
- package/dist/ownership-transfer.d.ts.map +1 -0
- package/dist/ownership-transfer.js +66 -0
- package/dist/ownership-transfer.js.map +1 -0
- package/dist/policy/compute-agent-perms-cosign-digest.d.ts +51 -0
- package/dist/policy/compute-agent-perms-cosign-digest.d.ts.map +1 -0
- package/dist/policy/compute-agent-perms-cosign-digest.js +55 -0
- package/dist/policy/compute-agent-perms-cosign-digest.js.map +1 -0
- package/dist/policy/compute-cosign-digest.d.ts +193 -0
- package/dist/policy/compute-cosign-digest.d.ts.map +1 -0
- package/dist/policy/compute-cosign-digest.js +318 -0
- package/dist/policy/compute-cosign-digest.js.map +1 -0
- package/dist/policy/compute-policy-preview-digest.d.ts +279 -0
- package/dist/policy/compute-policy-preview-digest.d.ts.map +1 -0
- package/dist/policy/compute-policy-preview-digest.js +373 -0
- package/dist/policy/compute-policy-preview-digest.js.map +1 -0
- package/dist/policy-attestation.d.ts +51 -0
- package/dist/policy-attestation.d.ts.map +1 -0
- package/dist/policy-attestation.js +43 -0
- package/dist/policy-attestation.js.map +1 -0
- package/dist/preview-create-vault.d.ts.map +1 -1
- package/dist/preview-create-vault.js +37 -16
- package/dist/preview-create-vault.js.map +1 -1
- package/dist/resolve-accounts.d.ts +75 -10
- package/dist/resolve-accounts.d.ts.map +1 -1
- package/dist/resolve-accounts.js +68 -32
- package/dist/resolve-accounts.js.map +1 -1
- package/dist/rpc-helpers.d.ts +29 -3
- package/dist/rpc-helpers.d.ts.map +1 -1
- package/dist/rpc-helpers.js +51 -12
- package/dist/rpc-helpers.js.map +1 -1
- package/dist/seal/intent-digest.d.ts +195 -0
- package/dist/seal/intent-digest.d.ts.map +1 -0
- package/dist/seal/intent-digest.js +372 -0
- package/dist/seal/intent-digest.js.map +1 -0
- package/dist/seal.d.ts +166 -3
- package/dist/seal.d.ts.map +1 -1
- package/dist/seal.js +428 -32
- package/dist/seal.js.map +1 -1
- package/dist/security-analytics.d.ts +3 -3
- package/dist/security-analytics.d.ts.map +1 -1
- package/dist/security-analytics.js +13 -128
- package/dist/security-analytics.js.map +1 -1
- package/dist/session-mint.d.ts +72 -0
- package/dist/session-mint.d.ts.map +1 -0
- package/dist/session-mint.js +59 -0
- package/dist/session-mint.js.map +1 -0
- package/dist/simulation.d.ts +19 -0
- package/dist/simulation.d.ts.map +1 -1
- package/dist/simulation.js +187 -95
- package/dist/simulation.js.map +1 -1
- package/dist/squads-detection.d.ts +135 -0
- package/dist/squads-detection.d.ts.map +1 -0
- package/dist/squads-detection.js +124 -0
- package/dist/squads-detection.js.map +1 -0
- package/dist/state-resolver.d.ts +0 -16
- package/dist/state-resolver.d.ts.map +1 -1
- package/dist/state-resolver.js +162 -97
- package/dist/state-resolver.js.map +1 -1
- package/dist/testing/devnet.d.ts +40 -1
- package/dist/testing/devnet.d.ts.map +1 -1
- package/dist/testing/devnet.js +333 -44
- package/dist/testing/devnet.js.map +1 -1
- package/dist/testing/errors/expect.d.ts +1 -1
- package/dist/testing/errors/expect.js +1 -1
- package/dist/testing/errors/names.generated.d.ts +82 -58
- package/dist/testing/errors/names.generated.d.ts.map +1 -1
- package/dist/testing/errors/names.generated.js +83 -59
- package/dist/testing/errors/names.generated.js.map +1 -1
- package/dist/testing/mock-rpc.d.ts +8 -0
- package/dist/testing/mock-rpc.d.ts.map +1 -1
- package/dist/testing/mock-rpc.js +13 -0
- package/dist/testing/mock-rpc.js.map +1 -1
- package/dist/testing/mock-state.d.ts +2 -0
- package/dist/testing/mock-state.d.ts.map +1 -1
- package/dist/testing/mock-state.js +43 -4
- package/dist/testing/mock-state.js.map +1 -1
- package/dist/types.d.ts +5 -15
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -69
- package/dist/types.js.map +1 -1
- package/dist/vault-analytics.d.ts +0 -2
- package/dist/vault-analytics.d.ts.map +1 -1
- package/dist/vault-analytics.js +1 -9
- package/dist/vault-analytics.js.map +1 -1
- package/package.json +7 -12
- package/dist/constraints/index.d.ts +0 -23
- package/dist/constraints/index.d.ts.map +0 -1
- package/dist/constraints/index.js +0 -24
- package/dist/constraints/index.js.map +0 -1
- package/dist/dashboard/constraint-builders.d.ts +0 -82
- package/dist/dashboard/constraint-builders.d.ts.map +0 -1
- package/dist/dashboard/constraint-builders.js +0 -204
- package/dist/dashboard/constraint-builders.js.map +0 -1
- package/dist/dashboard/constraint-reads.d.ts +0 -50
- package/dist/dashboard/constraint-reads.d.ts.map +0 -1
- package/dist/dashboard/constraint-reads.js +0 -119
- package/dist/dashboard/constraint-reads.js.map +0 -1
- package/dist/generated/accounts/escrowDeposit.d.ts +0 -50
- package/dist/generated/accounts/escrowDeposit.d.ts.map +0 -1
- package/dist/generated/accounts/escrowDeposit.js +0 -76
- package/dist/generated/accounts/escrowDeposit.js.map +0 -1
- package/dist/generated/accounts/instructionConstraints.d.ts +0 -46
- package/dist/generated/accounts/instructionConstraints.d.ts.map +0 -1
- package/dist/generated/accounts/instructionConstraints.js +0 -73
- package/dist/generated/accounts/instructionConstraints.js.map +0 -1
- package/dist/generated/accounts/pendingCloseConstraints.d.ts +0 -49
- package/dist/generated/accounts/pendingCloseConstraints.d.ts.map +0 -1
- package/dist/generated/accounts/pendingCloseConstraints.js +0 -68
- package/dist/generated/accounts/pendingCloseConstraints.js.map +0 -1
- package/dist/generated/accounts/pendingConstraintsUpdate.d.ts +0 -76
- package/dist/generated/accounts/pendingConstraintsUpdate.d.ts.map +0 -1
- package/dist/generated/accounts/pendingConstraintsUpdate.js +0 -77
- package/dist/generated/accounts/pendingConstraintsUpdate.js.map +0 -1
- package/dist/generated/instructions/allocateConstraintsPda.d.ts +0 -62
- package/dist/generated/instructions/allocateConstraintsPda.d.ts.map +0 -1
- package/dist/generated/instructions/allocateConstraintsPda.js +0 -134
- package/dist/generated/instructions/allocateConstraintsPda.js.map +0 -1
- package/dist/generated/instructions/allocatePendingConstraintsPda.d.ts +0 -66
- package/dist/generated/instructions/allocatePendingConstraintsPda.d.ts.map +0 -1
- package/dist/generated/instructions/allocatePendingConstraintsPda.js.map +0 -1
- package/dist/generated/instructions/applyCloseConstraints.d.ts +0 -59
- package/dist/generated/instructions/applyCloseConstraints.d.ts.map +0 -1
- package/dist/generated/instructions/applyCloseConstraints.js +0 -143
- package/dist/generated/instructions/applyCloseConstraints.js.map +0 -1
- package/dist/generated/instructions/applyConstraintsUpdate.d.ts +0 -62
- package/dist/generated/instructions/applyConstraintsUpdate.d.ts.map +0 -1
- package/dist/generated/instructions/applyConstraintsUpdate.js.map +0 -1
- package/dist/generated/instructions/cancelCloseConstraints.d.ts +0 -51
- package/dist/generated/instructions/cancelCloseConstraints.d.ts.map +0 -1
- package/dist/generated/instructions/cancelCloseConstraints.js +0 -115
- package/dist/generated/instructions/cancelCloseConstraints.js.map +0 -1
- package/dist/generated/instructions/cancelConstraintsUpdate.d.ts +0 -51
- package/dist/generated/instructions/cancelConstraintsUpdate.d.ts.map +0 -1
- package/dist/generated/instructions/cancelConstraintsUpdate.js +0 -115
- package/dist/generated/instructions/cancelConstraintsUpdate.js.map +0 -1
- package/dist/generated/instructions/cleanupOrphanConstraintsPda.d.ts +0 -67
- package/dist/generated/instructions/cleanupOrphanConstraintsPda.d.ts.map +0 -1
- package/dist/generated/instructions/cleanupOrphanConstraintsPda.js +0 -120
- package/dist/generated/instructions/cleanupOrphanConstraintsPda.js.map +0 -1
- package/dist/generated/instructions/closeSettledEscrow.d.ts +0 -72
- package/dist/generated/instructions/closeSettledEscrow.d.ts.map +0 -1
- package/dist/generated/instructions/closeSettledEscrow.js +0 -127
- package/dist/generated/instructions/closeSettledEscrow.js.map +0 -1
- package/dist/generated/instructions/createEscrow.d.ts +0 -131
- package/dist/generated/instructions/createEscrow.d.ts.map +0 -1
- package/dist/generated/instructions/createEscrow.js +0 -272
- package/dist/generated/instructions/createEscrow.js.map +0 -1
- package/dist/generated/instructions/createInstructionConstraints.d.ts +0 -68
- package/dist/generated/instructions/createInstructionConstraints.d.ts.map +0 -1
- package/dist/generated/instructions/createInstructionConstraints.js.map +0 -1
- package/dist/generated/instructions/extendPda.d.ts +0 -52
- package/dist/generated/instructions/extendPda.d.ts.map +0 -1
- package/dist/generated/instructions/extendPda.js +0 -86
- package/dist/generated/instructions/extendPda.js.map +0 -1
- package/dist/generated/instructions/queueCloseConstraints.d.ts +0 -66
- package/dist/generated/instructions/queueCloseConstraints.d.ts.map +0 -1
- package/dist/generated/instructions/queueCloseConstraints.js.map +0 -1
- package/dist/generated/instructions/queueConstraintsUpdate.d.ts +0 -75
- package/dist/generated/instructions/queueConstraintsUpdate.d.ts.map +0 -1
- package/dist/generated/instructions/queueConstraintsUpdate.js +0 -154
- package/dist/generated/instructions/queueConstraintsUpdate.js.map +0 -1
- package/dist/generated/instructions/refundEscrow.d.ts +0 -74
- package/dist/generated/instructions/refundEscrow.d.ts.map +0 -1
- package/dist/generated/instructions/refundEscrow.js +0 -142
- package/dist/generated/instructions/refundEscrow.js.map +0 -1
- package/dist/generated/instructions/settleEscrow.d.ts +0 -80
- package/dist/generated/instructions/settleEscrow.d.ts.map +0 -1
- package/dist/generated/instructions/settleEscrow.js +0 -173
- package/dist/generated/instructions/settleEscrow.js.map +0 -1
- package/dist/generated/types/accountConstraint.d.ts +0 -33
- package/dist/generated/types/accountConstraint.d.ts.map +0 -1
- package/dist/generated/types/accountConstraint.js +0 -26
- package/dist/generated/types/accountConstraint.js.map +0 -1
- package/dist/generated/types/accountConstraintZC.d.ts +0 -25
- package/dist/generated/types/accountConstraintZC.d.ts.map +0 -1
- package/dist/generated/types/accountConstraintZC.js +0 -28
- package/dist/generated/types/accountConstraintZC.js.map +0 -1
- package/dist/generated/types/closeConstraintsApplied.d.ts +0 -20
- package/dist/generated/types/closeConstraintsApplied.d.ts.map +0 -1
- package/dist/generated/types/closeConstraintsApplied.js +0 -24
- package/dist/generated/types/closeConstraintsApplied.js.map +0 -1
- package/dist/generated/types/closeConstraintsCancelled.d.ts +0 -16
- package/dist/generated/types/closeConstraintsCancelled.d.ts.map +0 -1
- package/dist/generated/types/closeConstraintsCancelled.js +0 -18
- package/dist/generated/types/closeConstraintsCancelled.js.map +0 -1
- package/dist/generated/types/closeConstraintsQueued.d.ts +0 -20
- package/dist/generated/types/closeConstraintsQueued.d.ts.map +0 -1
- package/dist/generated/types/closeConstraintsQueued.js +0 -24
- package/dist/generated/types/closeConstraintsQueued.js.map +0 -1
- package/dist/generated/types/constraintEntry.d.ts +0 -35
- package/dist/generated/types/constraintEntry.d.ts.map +0 -1
- package/dist/generated/types/constraintEntry.js +0 -29
- package/dist/generated/types/constraintEntry.js.map +0 -1
- package/dist/generated/types/constraintEntryZC.d.ts +0 -73
- package/dist/generated/types/constraintEntryZC.d.ts.map +0 -1
- package/dist/generated/types/constraintEntryZC.js +0 -49
- package/dist/generated/types/constraintEntryZC.js.map +0 -1
- package/dist/generated/types/constraintOperator.d.ts +0 -22
- package/dist/generated/types/constraintOperator.d.ts.map +0 -1
- package/dist/generated/types/constraintOperator.js +0 -28
- package/dist/generated/types/constraintOperator.js.map +0 -1
- package/dist/generated/types/constraintsChangeApplied.d.ts +0 -30
- package/dist/generated/types/constraintsChangeApplied.d.ts.map +0 -1
- package/dist/generated/types/constraintsChangeApplied.js +0 -32
- package/dist/generated/types/constraintsChangeApplied.js.map +0 -1
- package/dist/generated/types/constraintsChangeCancelled.d.ts +0 -16
- package/dist/generated/types/constraintsChangeCancelled.d.ts.map +0 -1
- package/dist/generated/types/constraintsChangeCancelled.js +0 -18
- package/dist/generated/types/constraintsChangeCancelled.js.map +0 -1
- package/dist/generated/types/constraintsChangeQueued.d.ts +0 -30
- package/dist/generated/types/constraintsChangeQueued.d.ts.map +0 -1
- package/dist/generated/types/constraintsChangeQueued.js +0 -32
- package/dist/generated/types/constraintsChangeQueued.js.map +0 -1
- package/dist/generated/types/dataConstraint.d.ts +0 -23
- package/dist/generated/types/dataConstraint.d.ts.map +0 -1
- package/dist/generated/types/dataConstraint.js +0 -27
- package/dist/generated/types/dataConstraint.js.map +0 -1
- package/dist/generated/types/dataConstraintZC.d.ts +0 -20
- package/dist/generated/types/dataConstraintZC.d.ts.map +0 -1
- package/dist/generated/types/dataConstraintZC.js +0 -30
- package/dist/generated/types/dataConstraintZC.js.map +0 -1
- package/dist/generated/types/discriminatorFormat.d.ts +0 -25
- package/dist/generated/types/discriminatorFormat.d.ts.map +0 -1
- package/dist/generated/types/discriminatorFormat.js +0 -31
- package/dist/generated/types/discriminatorFormat.js.map +0 -1
- package/dist/generated/types/escrowCreated.d.ts +0 -30
- package/dist/generated/types/escrowCreated.d.ts.map +0 -1
- package/dist/generated/types/escrowCreated.js +0 -34
- package/dist/generated/types/escrowCreated.js.map +0 -1
- package/dist/generated/types/escrowRefunded.d.ts +0 -26
- package/dist/generated/types/escrowRefunded.d.ts.map +0 -1
- package/dist/generated/types/escrowRefunded.js +0 -30
- package/dist/generated/types/escrowRefunded.js.map +0 -1
- package/dist/generated/types/escrowSettled.d.ts +0 -26
- package/dist/generated/types/escrowSettled.d.ts.map +0 -1
- package/dist/generated/types/escrowSettled.js +0 -30
- package/dist/generated/types/escrowSettled.js.map +0 -1
- package/dist/generated/types/escrowStatus.d.ts +0 -18
- package/dist/generated/types/escrowStatus.d.ts.map +0 -1
- package/dist/generated/types/escrowStatus.js +0 -24
- package/dist/generated/types/escrowStatus.js.map +0 -1
- package/dist/generated/types/instructionConstraintsCreated.d.ts +0 -34
- package/dist/generated/types/instructionConstraintsCreated.d.ts.map +0 -1
- package/dist/generated/types/instructionConstraintsCreated.js +0 -36
- package/dist/generated/types/instructionConstraintsCreated.js.map +0 -1
- package/dist/generated/types/orphanConstraintsPdaCleaned.d.ts +0 -22
- package/dist/generated/types/orphanConstraintsPdaCleaned.d.ts.map +0 -1
- package/dist/generated/types/orphanConstraintsPdaCleaned.js.map +0 -1
- package/dist/generated/types/pdaAllocated.d.ts +0 -24
- package/dist/generated/types/pdaAllocated.d.ts.map +0 -1
- package/dist/generated/types/pdaAllocated.js +0 -28
- package/dist/generated/types/pdaAllocated.js.map +0 -1
- package/dist/generated/types/pdaExtended.d.ts +0 -24
- package/dist/generated/types/pdaExtended.d.ts.map +0 -1
- package/dist/generated/types/pdaExtended.js +0 -28
- package/dist/generated/types/pdaExtended.js.map +0 -1
- package/dist/post-assertions/cross-field-lte.d.ts +0 -134
- package/dist/post-assertions/cross-field-lte.d.ts.map +0 -1
- package/dist/post-assertions/cross-field-lte.js +0 -129
- package/dist/post-assertions/cross-field-lte.js.map +0 -1
- package/dist/post-assertions/index.d.ts +0 -28
- package/dist/post-assertions/index.d.ts.map +0 -1
- package/dist/post-assertions/index.js +0 -28
- package/dist/post-assertions/index.js.map +0 -1
- package/dist/post-assertions/presets/flash-trade.d.ts +0 -139
- package/dist/post-assertions/presets/flash-trade.d.ts.map +0 -1
- package/dist/post-assertions/presets/flash-trade.js +0 -154
- package/dist/post-assertions/presets/flash-trade.js.map +0 -1
- package/dist/protocol-registry/annotations/drift.json +0 -7
- package/dist/protocol-registry/annotations/flash-trade.json +0 -7
- package/dist/protocol-registry/annotations/jupiter-borrow.json +0 -7
- package/dist/protocol-registry/annotations/jupiter-earn.json +0 -7
- package/dist/protocol-registry/annotations/jupiter-lend.json +0 -7
- package/dist/protocol-registry/annotations/jupiter.json +0 -7
- package/dist/protocol-registry/annotations/kamino.json +0 -7
- package/dist/protocol-registry/index.d.ts +0 -45
- package/dist/protocol-registry/index.d.ts.map +0 -1
- package/dist/protocol-registry/index.js +0 -76
- package/dist/protocol-registry/index.js.map +0 -1
- package/dist/protocol-tier.d.ts +0 -157
- package/dist/protocol-tier.d.ts.map +0 -1
- package/dist/protocol-tier.js +0 -104
- package/dist/protocol-tier.js.map +0 -1
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
// ─── Constants ────────────────────────────────────────────────────────────
|
|
2
|
-
/**
|
|
3
|
-
* Jupiter Perpetuals program. Owner of Position + PositionRequest accounts.
|
|
4
|
-
*
|
|
5
|
-
* This is the ONLY Jupiter program the `leverageCapLteBps` builder refuses
|
|
6
|
-
* at authoring time (see the docblock above for why — UX rail, not on-chain
|
|
7
|
-
* security). Other Jupiter programs (V6 Aggregator, Lend, Earn, Borrow)
|
|
8
|
-
* execute synchronously in the user's transaction and work fine with
|
|
9
|
-
* post-execution assertions.
|
|
10
|
-
*/
|
|
11
|
-
export const JUPITER_PERPS_PROGRAM_ADDRESS = "PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu";
|
|
12
|
-
/**
|
|
13
|
-
* CrossFieldLte enable bit — bit 0 of `cross_field_flags`.
|
|
14
|
-
* Every other bit is reserved; the on-chain validator rejects unknown flags.
|
|
15
|
-
*/
|
|
16
|
-
const CROSS_FIELD_LTE_FLAG = 0x01;
|
|
17
|
-
/**
|
|
18
|
-
* Both field_A and field_B are parsed as `u64::from_le_bytes(bytes[0..8])`
|
|
19
|
-
* on-chain when CrossFieldLte is enabled. Entry's `value_len` MUST be 8.
|
|
20
|
-
*/
|
|
21
|
-
const CROSS_FIELD_VALUE_LEN = 8;
|
|
22
|
-
/**
|
|
23
|
-
* CrossFieldLte only composes with Absolute assertion_mode. Delta modes
|
|
24
|
-
* (1/2/3) would re-interpret the snapshot bytes as field_A, which is
|
|
25
|
-
* semantically nonsensical — on-chain hard-rejects.
|
|
26
|
-
*/
|
|
27
|
-
const ABSOLUTE_ASSERTION_MODE = 0;
|
|
28
|
-
/**
|
|
29
|
-
* Lte operator (3). Not actually consulted at runtime when the CrossField
|
|
30
|
-
* flag is set — the on-chain code branches to the ratio check and ignores
|
|
31
|
-
* operator/expected_value. Set to 3 here as a semantic hint for anyone
|
|
32
|
-
* inspecting the raw entry: "this is a less-than-or-equal check."
|
|
33
|
-
*/
|
|
34
|
-
const LTE_OPERATOR = 3;
|
|
35
|
-
/**
|
|
36
|
-
* u16 range guard for byte offsets. Account data is at most ~10MB but
|
|
37
|
-
* PostAssertionEntry.offset is a u16 on-chain, capping at 65535.
|
|
38
|
-
*/
|
|
39
|
-
const MAX_U16 = 0xffff;
|
|
40
|
-
/**
|
|
41
|
-
* u32 range guard for `cross_field_multiplier_bps`. The on-chain type is
|
|
42
|
-
* u32. Values above this would overflow deserialization.
|
|
43
|
-
*/
|
|
44
|
-
const MAX_U32 = 0xffffffff;
|
|
45
|
-
// ─── Errors ───────────────────────────────────────────────────────────────
|
|
46
|
-
/**
|
|
47
|
-
* Thrown by {@link leverageCapLteBps} when the target account is owned by
|
|
48
|
-
* the Jupiter Perpetuals program. Carries a long, copy-paste-friendly
|
|
49
|
-
* explanation so the error bubbling to the dashboard is actionable.
|
|
50
|
-
*/
|
|
51
|
-
export class JupiterPerpsPostAssertionUnsupportedError extends Error {
|
|
52
|
-
constructor(message) {
|
|
53
|
-
super(message);
|
|
54
|
-
this.name = "JupiterPerpsPostAssertionUnsupportedError";
|
|
55
|
-
Object.setPrototypeOf(this, JupiterPerpsPostAssertionUnsupportedError.prototype);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Build a PostAssertionEntry that enforces a leverage cap via the
|
|
60
|
-
* CrossFieldLte ratio check.
|
|
61
|
-
*
|
|
62
|
-
* Validates inputs, rejects Jupiter Perpetuals Position accounts at the
|
|
63
|
-
* call site, and returns an entry ready to pass to
|
|
64
|
-
* `createPostAssertions(rpc, vault, owner, network, [entry])`.
|
|
65
|
-
*
|
|
66
|
-
* @throws {JupiterPerpsPostAssertionUnsupportedError}
|
|
67
|
-
* When `targetAccountOwnerProgram` matches
|
|
68
|
-
* {@link JUPITER_PERPS_PROGRAM_ADDRESS}. See file header for why.
|
|
69
|
-
* @throws {RangeError}
|
|
70
|
-
* When offsets are not integers in `0..=65535`, are equal to each other,
|
|
71
|
-
* or when `maxBps` is not a positive integer in `1..=u32::MAX`.
|
|
72
|
-
*/
|
|
73
|
-
export function leverageCapLteBps(opts) {
|
|
74
|
-
// Runtime Jupiter Perps reject (Phase 2 ISC-37, anti-criterion ISC-A1).
|
|
75
|
-
// Fails before any further validation so the error surface points at
|
|
76
|
-
// the real problem rather than incidental validation failures.
|
|
77
|
-
if (opts.targetAccountOwnerProgram === JUPITER_PERPS_PROGRAM_ADDRESS) {
|
|
78
|
-
throw new JupiterPerpsPostAssertionUnsupportedError(`Post-execution CrossFieldLte is NOT viable on Jupiter Perpetuals Position accounts.\n\n` +
|
|
79
|
-
`Reason: Jupiter Perps uses a 2-transaction keeper-fulfillment model. The user's tx writes ` +
|
|
80
|
-
`to a PositionRequest account; a Jupiter-hosted keeper executes the actual position change ` +
|
|
81
|
-
`up to 45 seconds later in a separate tx. Sigil's finalize_session reads account state in ` +
|
|
82
|
-
`the user's tx — at that point the Jupiter Position account still reflects pre-trade state. ` +
|
|
83
|
-
`The leverage check would always pass trivially, creating a silent constraint bypass.\n\n` +
|
|
84
|
-
`Jupiter Perps remains a fully supported protocol for agent use. Configure constraints ` +
|
|
85
|
-
`via pre-execution InstructionConstraints instead — @sigil-trade/constraints compiles ` +
|
|
86
|
-
`byte-level checks on Jupiter instruction args (sizeUsd, collateralUsd in the request) ` +
|
|
87
|
-
`that are enforced BEFORE the request hits the keeper.\n\n` +
|
|
88
|
-
`See docs/LEVERAGE-ENFORCEMENT.md — "Jupiter Perps — use pre-execution constraints".`);
|
|
89
|
-
}
|
|
90
|
-
// Offset range / integrality checks (u16 on-chain).
|
|
91
|
-
requireIntegerInRange(opts.fieldAOffset, "fieldAOffset", 0, MAX_U16);
|
|
92
|
-
requireIntegerInRange(opts.fieldBOffset, "fieldBOffset", 0, MAX_U16);
|
|
93
|
-
if (opts.fieldAOffset === opts.fieldBOffset) {
|
|
94
|
-
throw new RangeError(`leverageCapLteBps: fieldAOffset and fieldBOffset must differ — ratio of a field against itself is nonsensical (got ${opts.fieldAOffset})`);
|
|
95
|
-
}
|
|
96
|
-
// Multiplier range / integrality check (u32 on-chain, must be > 0).
|
|
97
|
-
requireIntegerInRange(opts.maxBps, "maxBps", 1, MAX_U32);
|
|
98
|
-
// All-zero expected_value — the on-chain CrossField path ignores this
|
|
99
|
-
// field, but validate_entries still requires `expected_value.len() >=
|
|
100
|
-
// value_len`. We ship exactly `CROSS_FIELD_VALUE_LEN` (8) bytes to
|
|
101
|
-
// satisfy the size invariant without wasting space.
|
|
102
|
-
const expectedValue = new Uint8Array(CROSS_FIELD_VALUE_LEN);
|
|
103
|
-
return {
|
|
104
|
-
targetAccount: opts.targetAccount,
|
|
105
|
-
offset: opts.fieldAOffset,
|
|
106
|
-
valueLen: CROSS_FIELD_VALUE_LEN,
|
|
107
|
-
operator: LTE_OPERATOR,
|
|
108
|
-
expectedValue,
|
|
109
|
-
assertionMode: ABSOLUTE_ASSERTION_MODE,
|
|
110
|
-
crossFieldOffsetB: opts.fieldBOffset,
|
|
111
|
-
crossFieldMultiplierBps: opts.maxBps,
|
|
112
|
-
crossFieldFlags: CROSS_FIELD_LTE_FLAG,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
// ─── Internal ─────────────────────────────────────────────────────────────
|
|
116
|
-
/**
|
|
117
|
-
* Guard that rejects non-integer, out-of-range, or non-finite values.
|
|
118
|
-
* Matches JS's pre-coercion discipline: a string `"8"` should NOT silently
|
|
119
|
-
* pass an integer check, and `NaN` / `Infinity` must not sneak through.
|
|
120
|
-
*/
|
|
121
|
-
function requireIntegerInRange(value, field, min, max) {
|
|
122
|
-
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
123
|
-
throw new RangeError(`leverageCapLteBps: ${field} must be an integer, got ${JSON.stringify(value)} (${typeof value})`);
|
|
124
|
-
}
|
|
125
|
-
if (value < min || value > max) {
|
|
126
|
-
throw new RangeError(`leverageCapLteBps: ${field} must be in ${min}..=${max}, got ${value}`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=cross-field-lte.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cross-field-lte.js","sourceRoot":"","sources":["../../src/post-assertions/cross-field-lte.ts"],"names":[],"mappings":"AAmDA,6EAA6E;AAE7E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,6CAAwD,CAAC;AAE3D;;;GAGG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;;GAGG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;GAGG;AACH,MAAM,OAAO,GAAG,MAAM,CAAC;AAEvB;;;GAGG;AACH,MAAM,OAAO,GAAG,UAAU,CAAC;AAE3B,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,OAAO,yCAA0C,SAAQ,KAAK;IAClE,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2CAA2C,CAAC;QACxD,MAAM,CAAC,cAAc,CACnB,IAAI,EACJ,yCAAyC,CAAC,SAAS,CACpD,CAAC;IACJ,CAAC;CACF;AAsDD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAwB;IAExB,wEAAwE;IACxE,qEAAqE;IACrE,+DAA+D;IAC/D,IAAI,IAAI,CAAC,yBAAyB,KAAK,6BAA6B,EAAE,CAAC;QACrE,MAAM,IAAI,yCAAyC,CACjD,yFAAyF;YACvF,4FAA4F;YAC5F,4FAA4F;YAC5F,2FAA2F;YAC3F,6FAA6F;YAC7F,0FAA0F;YAC1F,wFAAwF;YACxF,uFAAuF;YACvF,wFAAwF;YACxF,2DAA2D;YAC3D,qFAAqF,CACxF,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,IAAI,UAAU,CAClB,sHAAsH,IAAI,CAAC,YAAY,GAAG,CAC3I,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAEzD,sEAAsE;IACtE,sEAAsE;IACtE,mEAAmE;IACnE,oDAAoD;IACpD,MAAM,aAAa,GAAG,IAAI,UAAU,CAClC,qBAAqB,CACW,CAAC;IAEnC,OAAO;QACL,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,MAAM,EAAE,IAAI,CAAC,YAAY;QACzB,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,YAAY;QACtB,aAAa;QACb,aAAa,EAAE,uBAAuB;QACtC,iBAAiB,EAAE,IAAI,CAAC,YAAY;QACpC,uBAAuB,EAAE,IAAI,CAAC,MAAM;QACpC,eAAe,EAAE,oBAAoB;KACtC,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW;IAEX,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,UAAU,CAClB,sBAAsB,KAAK,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,OAAO,KAAK,GAAG,CACjG,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,UAAU,CAClB,sBAAsB,KAAK,eAAe,GAAG,MAAM,GAAG,SAAS,KAAK,EAAE,CACvE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@usesigil/kit/post-assertions` — builders for post-execution assertion
|
|
3
|
-
* entries.
|
|
4
|
-
*
|
|
5
|
-
* This barrel exposes the typed helpers a dashboard or headless caller
|
|
6
|
-
* needs to author `PostAssertionEntry` values for the
|
|
7
|
-
* `createPostAssertions(...)` mutation without reaching into codegen
|
|
8
|
-
* (covenant D1: no imports from `src/generated/**`).
|
|
9
|
-
*
|
|
10
|
-
* Currently exported:
|
|
11
|
-
* - `leverageCapLteBps({ ... })` — generic CrossFieldLte builder for a
|
|
12
|
-
* "field_A ≤ maxBps × field_B" ratio check
|
|
13
|
-
* - `JupiterPerpsPostAssertionUnsupportedError` — thrown when a caller
|
|
14
|
-
* tries to build a leverage cap against a Jupiter Perpetuals Position
|
|
15
|
-
* account (keeper-fulfillment model breaks post-execution semantics)
|
|
16
|
-
* - `JUPITER_PERPS_PROGRAM_ADDRESS` — re-exported so callers can do their
|
|
17
|
-
* own pre-check if they prefer reporting over throwing
|
|
18
|
-
*
|
|
19
|
-
* Protocol-specific presets (e.g. `flashTradeLeverageCap`) land in a
|
|
20
|
-
* `./presets/` sub-directory as they ship — one preset per protocol,
|
|
21
|
-
* each backed by a committed IDL with a CI drift-check.
|
|
22
|
-
*/
|
|
23
|
-
export { JUPITER_PERPS_PROGRAM_ADDRESS, JupiterPerpsPostAssertionUnsupportedError, leverageCapLteBps, } from "./cross-field-lte.js";
|
|
24
|
-
export type { LeverageCapLteOpts } from "./cross-field-lte.js";
|
|
25
|
-
export { FLASH_TRADE_PROGRAM_ADDRESS, FLASH_TRADE_POSITION_SIZE_USD_OFFSET, FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET, MIN_LEVERAGE_X, MAX_LEVERAGE_X, FlashTradeLeverageOutOfRangeError, flashTradeLeverageCap, } from "./presets/flash-trade.js";
|
|
26
|
-
export type { FlashTradeLeverageCapOpts } from "./presets/flash-trade.js";
|
|
27
|
-
export type { PostAssertionEntry } from "../generated/types/postAssertionEntry.js";
|
|
28
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/post-assertions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EACL,6BAA6B,EAC7B,yCAAyC,EACzC,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,EACpC,0CAA0C,EAC1C,cAAc,EACd,cAAc,EACd,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAK1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@usesigil/kit/post-assertions` — builders for post-execution assertion
|
|
3
|
-
* entries.
|
|
4
|
-
*
|
|
5
|
-
* This barrel exposes the typed helpers a dashboard or headless caller
|
|
6
|
-
* needs to author `PostAssertionEntry` values for the
|
|
7
|
-
* `createPostAssertions(...)` mutation without reaching into codegen
|
|
8
|
-
* (covenant D1: no imports from `src/generated/**`).
|
|
9
|
-
*
|
|
10
|
-
* Currently exported:
|
|
11
|
-
* - `leverageCapLteBps({ ... })` — generic CrossFieldLte builder for a
|
|
12
|
-
* "field_A ≤ maxBps × field_B" ratio check
|
|
13
|
-
* - `JupiterPerpsPostAssertionUnsupportedError` — thrown when a caller
|
|
14
|
-
* tries to build a leverage cap against a Jupiter Perpetuals Position
|
|
15
|
-
* account (keeper-fulfillment model breaks post-execution semantics)
|
|
16
|
-
* - `JUPITER_PERPS_PROGRAM_ADDRESS` — re-exported so callers can do their
|
|
17
|
-
* own pre-check if they prefer reporting over throwing
|
|
18
|
-
*
|
|
19
|
-
* Protocol-specific presets (e.g. `flashTradeLeverageCap`) land in a
|
|
20
|
-
* `./presets/` sub-directory as they ship — one preset per protocol,
|
|
21
|
-
* each backed by a committed IDL with a CI drift-check.
|
|
22
|
-
*/
|
|
23
|
-
export { JUPITER_PERPS_PROGRAM_ADDRESS, JupiterPerpsPostAssertionUnsupportedError, leverageCapLteBps, } from "./cross-field-lte.js";
|
|
24
|
-
// Protocol-specific presets — one file per protocol under `./presets/`.
|
|
25
|
-
// Each preset is backed by a committed IDL source with a drift-check test so
|
|
26
|
-
// any future SDK bump that shifts field offsets fails before shipping.
|
|
27
|
-
export { FLASH_TRADE_PROGRAM_ADDRESS, FLASH_TRADE_POSITION_SIZE_USD_OFFSET, FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET, MIN_LEVERAGE_X, MAX_LEVERAGE_X, FlashTradeLeverageOutOfRangeError, flashTradeLeverageCap, } from "./presets/flash-trade.js";
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/post-assertions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EACL,6BAA6B,EAC7B,yCAAyC,EACzC,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,wEAAwE;AACxE,6EAA6E;AAC7E,uEAAuE;AACvE,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,EACpC,0CAA0C,EAC1C,cAAc,EACd,cAAc,EACd,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@usesigil/kit/post-assertions/presets/flash-trade` — Flash Trade leverage cap preset.
|
|
3
|
-
*
|
|
4
|
-
* Convenience wrapper around `leverageCapLteBps` that fills in the byte offsets
|
|
5
|
-
* of a Flash Trade Position account's `size_usd` and `collateral_usd` fields.
|
|
6
|
-
*
|
|
7
|
-
* Callers provide a position account address + a leverage cap expressed in
|
|
8
|
-
* "x" (multiples), and the preset returns a `PostAssertionEntry` that the
|
|
9
|
-
* on-chain program enforces as:
|
|
10
|
-
*
|
|
11
|
-
* size_usd × 10000 ≤ maxLeverage × 10000 × collateral_usd
|
|
12
|
-
* ⇔ leverage (= size_usd / collateral_usd) ≤ maxLeverage
|
|
13
|
-
*
|
|
14
|
-
* ## Field offsets (pinned to flash-sdk@15.x Perpetuals IDL)
|
|
15
|
-
*
|
|
16
|
-
* Derived from the Anchor IDL shipped with `flash-sdk@^15.14.1`
|
|
17
|
-
* (`node_modules/flash-sdk/dist/idl/perpetuals.json`). Position account
|
|
18
|
-
* Borsh layout, starting after the 8-byte Anchor discriminator:
|
|
19
|
-
*
|
|
20
|
-
* offset field type size
|
|
21
|
-
* 8 owner pubkey 32
|
|
22
|
-
* 40 market pubkey 32
|
|
23
|
-
* 72 delegate pubkey 32
|
|
24
|
-
* 104 open_time i64 8
|
|
25
|
-
* 112 update_time i64 8
|
|
26
|
-
* 120 entry_price OraclePrice { price: u64, exponent: i32 } 12
|
|
27
|
-
* 132 size_amount u64 8
|
|
28
|
-
* → 140 size_usd u64 8
|
|
29
|
-
* 148 locked_amount u64 8
|
|
30
|
-
* 156 locked_usd u64 8
|
|
31
|
-
* 164 price_impact_usd u64 8
|
|
32
|
-
* → 172 collateral_usd u64 8
|
|
33
|
-
* ...
|
|
34
|
-
*
|
|
35
|
-
* A drift-check unit test (`presets/flash-trade.test.ts`) reloads the Anchor
|
|
36
|
-
* IDL from `flash-sdk` at test time and recomputes offsets — any future
|
|
37
|
-
* flash-sdk bump that shifts these fields fails the test before a broken
|
|
38
|
-
* preset can ship.
|
|
39
|
-
*
|
|
40
|
-
* ## Jupiter Perps is NOT supported here
|
|
41
|
-
*
|
|
42
|
-
* Flash Trade executes position changes synchronously in the user's tx, so
|
|
43
|
-
* post-execution assertions are meaningful. Jupiter Perpetuals uses a 2-tx
|
|
44
|
-
* keeper-fulfillment model that silently bypasses post-assertions — that gate
|
|
45
|
-
* is enforced upstream in `leverageCapLteBps` via
|
|
46
|
-
* `JupiterPerpsPostAssertionUnsupportedError`, so a caller who mistakenly
|
|
47
|
-
* plugs a Jupiter Perps Position address here gets an explicit error.
|
|
48
|
-
*
|
|
49
|
-
* ## Bounds on `maxLeverage`
|
|
50
|
-
*
|
|
51
|
-
* `maxLeverage` is an integer multiplier (e.g., 5 = 5x cap). We reject
|
|
52
|
-
* values outside [1, 100]:
|
|
53
|
-
* - 0 would encode `size_usd ≤ 0` — any non-zero position fails, effectively
|
|
54
|
-
* a kill-switch. Safer to reject and let callers use `closePostAssertions`
|
|
55
|
-
* if they want to disable the cap entirely.
|
|
56
|
-
* - Values > 100 exceed any practical Flash Trade leverage (current mainnet
|
|
57
|
-
* caps sit around 25-50x) and are almost certainly caller bugs.
|
|
58
|
-
*
|
|
59
|
-
* @see programs/sigil/src/state/post_assertions.rs — on-chain CrossFieldLte enforcer
|
|
60
|
-
* @see `@usesigil/kit/post-assertions/cross-field-lte.ts` — underlying builder
|
|
61
|
-
*/
|
|
62
|
-
import type { Address } from "@solana/kit";
|
|
63
|
-
import type { PostAssertionEntry } from "../../generated/types/postAssertionEntry.js";
|
|
64
|
-
/**
|
|
65
|
-
* Flash Trade Perpetuals program address (mainnet-beta). Owner of Position
|
|
66
|
-
* accounts that this preset targets.
|
|
67
|
-
*
|
|
68
|
-
* Source: `constants` module in `flash-sdk@^15.14.1`. Hard-coded here so the
|
|
69
|
-
* preset is importable without loading the full flash-sdk runtime.
|
|
70
|
-
*/
|
|
71
|
-
export declare const FLASH_TRADE_PROGRAM_ADDRESS: Address;
|
|
72
|
-
/**
|
|
73
|
-
* Byte offset of `size_usd` (u64, little-endian) inside Flash Trade Position
|
|
74
|
-
* account data, starting from byte 0 of the account (NOT after discriminator).
|
|
75
|
-
*
|
|
76
|
-
* Pinned to flash-sdk@^15.14.1 Perpetuals IDL. A drift-check unit test
|
|
77
|
-
* reloads the IDL and asserts this value matches.
|
|
78
|
-
*/
|
|
79
|
-
export declare const FLASH_TRADE_POSITION_SIZE_USD_OFFSET = 140;
|
|
80
|
-
/**
|
|
81
|
-
* Byte offset of `collateral_usd` (u64, little-endian) inside Flash Trade
|
|
82
|
-
* Position account data.
|
|
83
|
-
*
|
|
84
|
-
* Pinned to flash-sdk@^15.14.1 Perpetuals IDL. Drift-check test guards this.
|
|
85
|
-
*/
|
|
86
|
-
export declare const FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET = 172;
|
|
87
|
-
/**
|
|
88
|
-
* Lowest permitted `maxLeverage` input — 1x. Zero would encode a kill-switch.
|
|
89
|
-
*/
|
|
90
|
-
export declare const MIN_LEVERAGE_X = 1;
|
|
91
|
-
/**
|
|
92
|
-
* Highest permitted `maxLeverage` input. 100x is a generous upper bound above
|
|
93
|
-
* any practical Flash Trade cap.
|
|
94
|
-
*/
|
|
95
|
-
export declare const MAX_LEVERAGE_X = 100;
|
|
96
|
-
/**
|
|
97
|
-
* Thrown when `maxLeverage` is outside [MIN_LEVERAGE_X, MAX_LEVERAGE_X] or
|
|
98
|
-
* not an integer. Carries a DxError-compatible shape so FE can branch on
|
|
99
|
-
* `.code` without `instanceof` checks that break across module realms.
|
|
100
|
-
*/
|
|
101
|
-
export declare class FlashTradeLeverageOutOfRangeError extends Error {
|
|
102
|
-
/** DxError-compatible numeric code. 7009 reserved for preset validation. */
|
|
103
|
-
readonly code: number;
|
|
104
|
-
readonly recovery: readonly string[];
|
|
105
|
-
/**
|
|
106
|
-
* Always `false` — thrown at CLIENT validation time, before any RPC
|
|
107
|
-
* round-trip. Present to satisfy DxError's structural contract (every
|
|
108
|
-
* DxError carries `onChainReverted`; see v2.2 contract C2).
|
|
109
|
-
*/
|
|
110
|
-
readonly onChainReverted: boolean;
|
|
111
|
-
readonly received: unknown;
|
|
112
|
-
constructor(received: unknown);
|
|
113
|
-
}
|
|
114
|
-
export interface FlashTradeLeverageCapOpts {
|
|
115
|
-
/** Base-58 pubkey of the Flash Trade Position account to monitor. */
|
|
116
|
-
readonly positionAccount: Address;
|
|
117
|
-
/**
|
|
118
|
-
* Maximum leverage in "x" units (e.g. 5 = 5x). Integer in [1, 100].
|
|
119
|
-
* The preset throws `FlashTradeLeverageOutOfRangeError` on anything else.
|
|
120
|
-
*/
|
|
121
|
-
readonly maxLeverage: number;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Build a post-assertion entry that caps Flash Trade leverage at `maxLeverage` × .
|
|
125
|
-
*
|
|
126
|
-
* Equivalent to calling {@link leverageCapLteBps} with Flash Trade's Position
|
|
127
|
-
* `size_usd` / `collateral_usd` offsets filled in, `targetAccountOwnerProgram`
|
|
128
|
-
* set to {@link FLASH_TRADE_PROGRAM_ADDRESS}, and `maxBps = maxLeverage * 10000`.
|
|
129
|
-
*
|
|
130
|
-
* @throws {FlashTradeLeverageOutOfRangeError} if `maxLeverage` is not an
|
|
131
|
-
* integer in [1, 100].
|
|
132
|
-
* @throws {import("../cross-field-lte.js").JupiterPerpsPostAssertionUnsupportedError}
|
|
133
|
-
* re-thrown by the underlying builder if `targetAccountOwnerProgram` ever
|
|
134
|
-
* drifts to Jupiter Perps (defense-in-depth — Flash Trade's program address
|
|
135
|
-
* is hard-coded here, so this throw indicates either a preset bug or a
|
|
136
|
-
* caller who hand-mutated the returned entry before submitting).
|
|
137
|
-
*/
|
|
138
|
-
export declare function flashTradeLeverageCap(opts: FlashTradeLeverageCapOpts): PostAssertionEntry;
|
|
139
|
-
//# sourceMappingURL=flash-trade.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flash-trade.d.ts","sourceRoot":"","sources":["../../../src/post-assertions/presets/flash-trade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAKtF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EACY,OAAO,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,0CAA0C,MAAM,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAIlC;;;;GAIG;AACH,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,4EAA4E;IAC5E,SAAgB,IAAI,EAAE,MAAM,CAAQ;IACpC,SAAgB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAGzC;IACF;;;;OAIG;IACH,SAAgB,eAAe,EAAE,OAAO,CAAS;IACjD,SAAgB,QAAQ,EAAE,OAAO,CAAC;gBAEtB,QAAQ,EAAE,OAAO;CAQ9B;AAID,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,yBAAyB,GAC9B,kBAAkB,CAkBpB"}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@usesigil/kit/post-assertions/presets/flash-trade` — Flash Trade leverage cap preset.
|
|
3
|
-
*
|
|
4
|
-
* Convenience wrapper around `leverageCapLteBps` that fills in the byte offsets
|
|
5
|
-
* of a Flash Trade Position account's `size_usd` and `collateral_usd` fields.
|
|
6
|
-
*
|
|
7
|
-
* Callers provide a position account address + a leverage cap expressed in
|
|
8
|
-
* "x" (multiples), and the preset returns a `PostAssertionEntry` that the
|
|
9
|
-
* on-chain program enforces as:
|
|
10
|
-
*
|
|
11
|
-
* size_usd × 10000 ≤ maxLeverage × 10000 × collateral_usd
|
|
12
|
-
* ⇔ leverage (= size_usd / collateral_usd) ≤ maxLeverage
|
|
13
|
-
*
|
|
14
|
-
* ## Field offsets (pinned to flash-sdk@15.x Perpetuals IDL)
|
|
15
|
-
*
|
|
16
|
-
* Derived from the Anchor IDL shipped with `flash-sdk@^15.14.1`
|
|
17
|
-
* (`node_modules/flash-sdk/dist/idl/perpetuals.json`). Position account
|
|
18
|
-
* Borsh layout, starting after the 8-byte Anchor discriminator:
|
|
19
|
-
*
|
|
20
|
-
* offset field type size
|
|
21
|
-
* 8 owner pubkey 32
|
|
22
|
-
* 40 market pubkey 32
|
|
23
|
-
* 72 delegate pubkey 32
|
|
24
|
-
* 104 open_time i64 8
|
|
25
|
-
* 112 update_time i64 8
|
|
26
|
-
* 120 entry_price OraclePrice { price: u64, exponent: i32 } 12
|
|
27
|
-
* 132 size_amount u64 8
|
|
28
|
-
* → 140 size_usd u64 8
|
|
29
|
-
* 148 locked_amount u64 8
|
|
30
|
-
* 156 locked_usd u64 8
|
|
31
|
-
* 164 price_impact_usd u64 8
|
|
32
|
-
* → 172 collateral_usd u64 8
|
|
33
|
-
* ...
|
|
34
|
-
*
|
|
35
|
-
* A drift-check unit test (`presets/flash-trade.test.ts`) reloads the Anchor
|
|
36
|
-
* IDL from `flash-sdk` at test time and recomputes offsets — any future
|
|
37
|
-
* flash-sdk bump that shifts these fields fails the test before a broken
|
|
38
|
-
* preset can ship.
|
|
39
|
-
*
|
|
40
|
-
* ## Jupiter Perps is NOT supported here
|
|
41
|
-
*
|
|
42
|
-
* Flash Trade executes position changes synchronously in the user's tx, so
|
|
43
|
-
* post-execution assertions are meaningful. Jupiter Perpetuals uses a 2-tx
|
|
44
|
-
* keeper-fulfillment model that silently bypasses post-assertions — that gate
|
|
45
|
-
* is enforced upstream in `leverageCapLteBps` via
|
|
46
|
-
* `JupiterPerpsPostAssertionUnsupportedError`, so a caller who mistakenly
|
|
47
|
-
* plugs a Jupiter Perps Position address here gets an explicit error.
|
|
48
|
-
*
|
|
49
|
-
* ## Bounds on `maxLeverage`
|
|
50
|
-
*
|
|
51
|
-
* `maxLeverage` is an integer multiplier (e.g., 5 = 5x cap). We reject
|
|
52
|
-
* values outside [1, 100]:
|
|
53
|
-
* - 0 would encode `size_usd ≤ 0` — any non-zero position fails, effectively
|
|
54
|
-
* a kill-switch. Safer to reject and let callers use `closePostAssertions`
|
|
55
|
-
* if they want to disable the cap entirely.
|
|
56
|
-
* - Values > 100 exceed any practical Flash Trade leverage (current mainnet
|
|
57
|
-
* caps sit around 25-50x) and are almost certainly caller bugs.
|
|
58
|
-
*
|
|
59
|
-
* @see programs/sigil/src/state/post_assertions.rs — on-chain CrossFieldLte enforcer
|
|
60
|
-
* @see `@usesigil/kit/post-assertions/cross-field-lte.ts` — underlying builder
|
|
61
|
-
*/
|
|
62
|
-
import { leverageCapLteBps } from "../cross-field-lte.js";
|
|
63
|
-
// ─── Constants ────────────────────────────────────────────────────────────
|
|
64
|
-
/**
|
|
65
|
-
* Flash Trade Perpetuals program address (mainnet-beta). Owner of Position
|
|
66
|
-
* accounts that this preset targets.
|
|
67
|
-
*
|
|
68
|
-
* Source: `constants` module in `flash-sdk@^15.14.1`. Hard-coded here so the
|
|
69
|
-
* preset is importable without loading the full flash-sdk runtime.
|
|
70
|
-
*/
|
|
71
|
-
export const FLASH_TRADE_PROGRAM_ADDRESS = "FLaSh6f6Y5bLsmcfiaxvqRJC3WQLKYh1iCfAsh7uMH8z";
|
|
72
|
-
/**
|
|
73
|
-
* Byte offset of `size_usd` (u64, little-endian) inside Flash Trade Position
|
|
74
|
-
* account data, starting from byte 0 of the account (NOT after discriminator).
|
|
75
|
-
*
|
|
76
|
-
* Pinned to flash-sdk@^15.14.1 Perpetuals IDL. A drift-check unit test
|
|
77
|
-
* reloads the IDL and asserts this value matches.
|
|
78
|
-
*/
|
|
79
|
-
export const FLASH_TRADE_POSITION_SIZE_USD_OFFSET = 140;
|
|
80
|
-
/**
|
|
81
|
-
* Byte offset of `collateral_usd` (u64, little-endian) inside Flash Trade
|
|
82
|
-
* Position account data.
|
|
83
|
-
*
|
|
84
|
-
* Pinned to flash-sdk@^15.14.1 Perpetuals IDL. Drift-check test guards this.
|
|
85
|
-
*/
|
|
86
|
-
export const FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET = 172;
|
|
87
|
-
/**
|
|
88
|
-
* Lowest permitted `maxLeverage` input — 1x. Zero would encode a kill-switch.
|
|
89
|
-
*/
|
|
90
|
-
export const MIN_LEVERAGE_X = 1;
|
|
91
|
-
/**
|
|
92
|
-
* Highest permitted `maxLeverage` input. 100x is a generous upper bound above
|
|
93
|
-
* any practical Flash Trade cap.
|
|
94
|
-
*/
|
|
95
|
-
export const MAX_LEVERAGE_X = 100;
|
|
96
|
-
// ─── Errors ───────────────────────────────────────────────────────────────
|
|
97
|
-
/**
|
|
98
|
-
* Thrown when `maxLeverage` is outside [MIN_LEVERAGE_X, MAX_LEVERAGE_X] or
|
|
99
|
-
* not an integer. Carries a DxError-compatible shape so FE can branch on
|
|
100
|
-
* `.code` without `instanceof` checks that break across module realms.
|
|
101
|
-
*/
|
|
102
|
-
export class FlashTradeLeverageOutOfRangeError extends Error {
|
|
103
|
-
/** DxError-compatible numeric code. 7009 reserved for preset validation. */
|
|
104
|
-
code = 7009;
|
|
105
|
-
recovery = [
|
|
106
|
-
`Pass a whole number between ${MIN_LEVERAGE_X} and ${MAX_LEVERAGE_X}.`,
|
|
107
|
-
"To disable an existing leverage cap, call `closePostAssertions(...)`.",
|
|
108
|
-
];
|
|
109
|
-
/**
|
|
110
|
-
* Always `false` — thrown at CLIENT validation time, before any RPC
|
|
111
|
-
* round-trip. Present to satisfy DxError's structural contract (every
|
|
112
|
-
* DxError carries `onChainReverted`; see v2.2 contract C2).
|
|
113
|
-
*/
|
|
114
|
-
onChainReverted = false;
|
|
115
|
-
received;
|
|
116
|
-
constructor(received) {
|
|
117
|
-
super(`flashTradeLeverageCap: maxLeverage must be an integer in [${MIN_LEVERAGE_X}, ${MAX_LEVERAGE_X}] (got ${String(received)})`);
|
|
118
|
-
this.name = "FlashTradeLeverageOutOfRangeError";
|
|
119
|
-
this.received = received;
|
|
120
|
-
// TS target=ES2020 preserves .name/.message across supers; no extra handling needed.
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// ─── Builder ──────────────────────────────────────────────────────────────
|
|
124
|
-
/**
|
|
125
|
-
* Build a post-assertion entry that caps Flash Trade leverage at `maxLeverage` × .
|
|
126
|
-
*
|
|
127
|
-
* Equivalent to calling {@link leverageCapLteBps} with Flash Trade's Position
|
|
128
|
-
* `size_usd` / `collateral_usd` offsets filled in, `targetAccountOwnerProgram`
|
|
129
|
-
* set to {@link FLASH_TRADE_PROGRAM_ADDRESS}, and `maxBps = maxLeverage * 10000`.
|
|
130
|
-
*
|
|
131
|
-
* @throws {FlashTradeLeverageOutOfRangeError} if `maxLeverage` is not an
|
|
132
|
-
* integer in [1, 100].
|
|
133
|
-
* @throws {import("../cross-field-lte.js").JupiterPerpsPostAssertionUnsupportedError}
|
|
134
|
-
* re-thrown by the underlying builder if `targetAccountOwnerProgram` ever
|
|
135
|
-
* drifts to Jupiter Perps (defense-in-depth — Flash Trade's program address
|
|
136
|
-
* is hard-coded here, so this throw indicates either a preset bug or a
|
|
137
|
-
* caller who hand-mutated the returned entry before submitting).
|
|
138
|
-
*/
|
|
139
|
-
export function flashTradeLeverageCap(opts) {
|
|
140
|
-
if (!Number.isInteger(opts.maxLeverage) ||
|
|
141
|
-
opts.maxLeverage < MIN_LEVERAGE_X ||
|
|
142
|
-
opts.maxLeverage > MAX_LEVERAGE_X) {
|
|
143
|
-
throw new FlashTradeLeverageOutOfRangeError(opts.maxLeverage);
|
|
144
|
-
}
|
|
145
|
-
const maxBps = opts.maxLeverage * 10_000;
|
|
146
|
-
return leverageCapLteBps({
|
|
147
|
-
targetAccount: opts.positionAccount,
|
|
148
|
-
targetAccountOwnerProgram: FLASH_TRADE_PROGRAM_ADDRESS,
|
|
149
|
-
fieldAOffset: FLASH_TRADE_POSITION_SIZE_USD_OFFSET,
|
|
150
|
-
fieldBOffset: FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET,
|
|
151
|
-
maxBps,
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=flash-trade.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flash-trade.js","sourceRoot":"","sources":["../../../src/post-assertions/presets/flash-trade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,6EAA6E;AAE7E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,8CAAyD,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,GAAG,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAC1D,4EAA4E;IAC5D,IAAI,GAAW,IAAI,CAAC;IACpB,QAAQ,GAAsB;QAC5C,+BAA+B,cAAc,QAAQ,cAAc,GAAG;QACtE,uEAAuE;KACxE,CAAC;IACF;;;;OAIG;IACa,eAAe,GAAY,KAAK,CAAC;IACjC,QAAQ,CAAU;IAElC,YAAY,QAAiB;QAC3B,KAAK,CACH,6DAA6D,cAAc,KAAK,cAAc,UAAU,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC5H,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,qFAAqF;IACvF,CAAC;CACF;AAcD,6EAA6E;AAE7E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA+B;IAE/B,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,cAAc;QACjC,IAAI,CAAC,WAAW,GAAG,cAAc,EACjC,CAAC;QACD,MAAM,IAAI,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAEzC,OAAO,iBAAiB,CAAC;QACvB,aAAa,EAAE,IAAI,CAAC,eAAe;QACnC,yBAAyB,EAAE,2BAA2B;QACtD,YAAY,EAAE,oCAAoC;QAClD,YAAY,EAAE,0CAA0C;QACxD,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Single Verified-tier annotation shape. Byte-identical to the dashboard's
|
|
3
|
-
* pre-migration interface at `sigil-dashboard/src/lib/protocol-registry/index.ts`
|
|
4
|
-
* so consumers switching from local imports to `@usesigil/kit` see zero
|
|
5
|
-
* behavioral drift.
|
|
6
|
-
*/
|
|
7
|
-
export interface ProtocolAnnotation {
|
|
8
|
-
/** Canonical base58 programId. Hand-verified against the deployed program. */
|
|
9
|
-
readonly programId: string;
|
|
10
|
-
/** Human-readable display name, e.g. "Jupiter V6". */
|
|
11
|
-
readonly name: string;
|
|
12
|
-
/** Always `true` for annotations shipped in this registry. */
|
|
13
|
-
readonly verified: boolean;
|
|
14
|
-
/** Bucket for UI grouping, e.g. "swap-aggregator", "perps", "lending". */
|
|
15
|
-
readonly category: string;
|
|
16
|
-
/** Optional free-form context (CU budget, known quirks, caveats). */
|
|
17
|
-
readonly notes?: string;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* All registered annotations in display order (most-used first). Consumers
|
|
21
|
-
* should NOT mutate — the array is `readonly` at the type level; the
|
|
22
|
-
* underlying data is also `as const` below to guard against runtime edits.
|
|
23
|
-
*/
|
|
24
|
-
export declare const PROTOCOL_ANNOTATIONS: readonly ProtocolAnnotation[];
|
|
25
|
-
/**
|
|
26
|
-
* The set of programIds in the Verified tier. Computed once at module
|
|
27
|
-
* load. `VERIFIED_PROGRAMS.has(programId)` is the canonical synchronous
|
|
28
|
-
* check for "does Sigil have hand-curated metadata for this program."
|
|
29
|
-
*
|
|
30
|
-
* Consumers (dashboard `/api/resolve-protocol`, mobile tier UI, MCP)
|
|
31
|
-
* should query this set — NOT filter PROTOCOL_ANNOTATIONS linearly on the
|
|
32
|
-
* hot path. Use `lookupProtocolAnnotation()` when metadata is also needed.
|
|
33
|
-
*/
|
|
34
|
-
export declare const VERIFIED_PROGRAMS: ReadonlySet<string>;
|
|
35
|
-
/**
|
|
36
|
-
* Look up a protocol annotation by programId. Returns `null` if the
|
|
37
|
-
* programId is NOT in the Verified registry.
|
|
38
|
-
*
|
|
39
|
-
* Currently an O(n) linear search across 7 entries — fast enough that a
|
|
40
|
-
* `Map` lookup would be premature optimization. If the registry grows
|
|
41
|
-
* past ~50 entries, swap to a `Map<string, ProtocolAnnotation>` built
|
|
42
|
-
* once at module load.
|
|
43
|
-
*/
|
|
44
|
-
export declare function lookupProtocolAnnotation(programId: string): ProtocolAnnotation | null;
|
|
45
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocol-registry/index.ts"],"names":[],"mappings":"AAwCA;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAQpD,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAEjD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAChB,kBAAkB,GAAG,IAAI,CAE3B"}
|