@usesigil/kit 0.16.0 → 0.17.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 +854 -369
- 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 +98 -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 +181 -34
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +258 -52
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/mutations.d.ts +117 -26
- package/dist/dashboard/mutations.d.ts.map +1 -1
- package/dist/dashboard/mutations.js +521 -110
- 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 +32 -17
- 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 +133 -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 +129 -83
- package/dist/generated/errors/sigil.d.ts.map +1 -1
- package/dist/generated/errors/sigil.js +175 -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 +142 -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 +28 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -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-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 +258 -0
- package/dist/policy/compute-policy-preview-digest.d.ts.map +1 -0
- package/dist/policy/compute-policy-preview-digest.js +351 -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 +81 -58
- package/dist/testing/errors/names.generated.d.ts.map +1 -1
- package/dist/testing/errors/names.generated.js +82 -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
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CAIP-2 Solana chain identifiers + AL4 isMainnet derivation.
|
|
3
|
+
* Phase 9 Batch J (ISC-77..80, 147).
|
|
4
|
+
*
|
|
5
|
+
* Per the CAIP-2 spec (https://chainagnostic.org/CAIPs/caip-2), Solana
|
|
6
|
+
* networks are identified by a `solana:<genesis-hash-prefix>` string. The
|
|
7
|
+
* canonical IDs are registered at
|
|
8
|
+
* https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md.
|
|
9
|
+
*
|
|
10
|
+
* Sigil SDK V2 ships AL4 as a CAIP-2 chain id PLUS a derived `isMainnet`
|
|
11
|
+
* boolean. Per Council ISC-147, exposing the full CAIP-2 string (not just
|
|
12
|
+
* the boolean) preserves the future ability to bind testnet / localnet
|
|
13
|
+
* intents without changing the SealResult shape — collapsing 4 networks
|
|
14
|
+
* into 2 was flagged as a "footgun in waiting".
|
|
15
|
+
*/
|
|
16
|
+
import { SigilSdkDomainError } from "./errors/sdk.js";
|
|
17
|
+
import { SIGIL_ERROR__SDK__INVALID_NETWORK } from "./errors/codes.js";
|
|
18
|
+
/** CAIP-2 namespace for Solana. */
|
|
19
|
+
export const CAIP2_NAMESPACE_SOLANA = "solana";
|
|
20
|
+
/** Mainnet-beta CAIP-2 chain id. */
|
|
21
|
+
export const CAIP2_SOLANA_MAINNET = "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp";
|
|
22
|
+
/** Devnet CAIP-2 chain id. */
|
|
23
|
+
export const CAIP2_SOLANA_DEVNET = "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1";
|
|
24
|
+
/** Testnet CAIP-2 chain id (declared for completeness; not currently produced by `toCaip2`). */
|
|
25
|
+
export const CAIP2_SOLANA_TESTNET = "solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z";
|
|
26
|
+
/**
|
|
27
|
+
* Convert the SDK's internal `"devnet" | "mainnet"` network discriminant
|
|
28
|
+
* to its canonical CAIP-2 chain id.
|
|
29
|
+
*
|
|
30
|
+
* @throws if `network` is not one of the two supported values. (Type
|
|
31
|
+
* narrowing prevents this at compile time; the runtime check catches
|
|
32
|
+
* misuse from JS callers or `any`-cast bypasses.)
|
|
33
|
+
*/
|
|
34
|
+
export function toCaip2(network) {
|
|
35
|
+
if (network === "mainnet")
|
|
36
|
+
return CAIP2_SOLANA_MAINNET;
|
|
37
|
+
if (network === "devnet")
|
|
38
|
+
return CAIP2_SOLANA_DEVNET;
|
|
39
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_NETWORK, `toCaip2: network must be 'devnet' or 'mainnet', got ${String(network)}`, {
|
|
40
|
+
context: {
|
|
41
|
+
operation: "toCaip2",
|
|
42
|
+
received: String(network),
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Derive the AL4 `isMainnet` boolean from a CAIP-2 chain id.
|
|
48
|
+
*
|
|
49
|
+
* `isMainnet === true` ONLY when the chain id matches the canonical
|
|
50
|
+
* mainnet-beta value. Devnet, testnet, localnet — anything else — all
|
|
51
|
+
* return false. This is intentional: `isMainnet` is a SECURITY signal
|
|
52
|
+
* (gate destructive defaults behind it); fuzzy matching would be a
|
|
53
|
+
* footgun.
|
|
54
|
+
*/
|
|
55
|
+
export function isMainnetCaip2(chain) {
|
|
56
|
+
return chain === CAIP2_SOLANA_MAINNET;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Convenience: combine `toCaip2` + `isMainnetCaip2` from a `"devnet" | "mainnet"`
|
|
60
|
+
* input. Used by `seal()` to populate `SealResult.network` and
|
|
61
|
+
* `SealResult.isMainnet` in a single call.
|
|
62
|
+
*/
|
|
63
|
+
export function deriveNetworkIdentity(network) {
|
|
64
|
+
const chain = toCaip2(network);
|
|
65
|
+
return { network: chain, isMainnet: isMainnetCaip2(chain) };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Convert a Sigil CAIP-2 string to a Wallet Standard chain identifier.
|
|
69
|
+
*
|
|
70
|
+
* Wallet Standard (https://github.com/wallet-standard/wallet-standard) uses
|
|
71
|
+
* `solana:<network-id>` per the SIWS / Solana Mobile spec, which is the
|
|
72
|
+
* exact same shape as Sigil's CAIP-2 strings (per the ChainAgnostic CAIP-2
|
|
73
|
+
* registry — https://chainagnostic.org/CAIPs/caip-2). The conversion is
|
|
74
|
+
* therefore identity at the value level — but the explicit helper
|
|
75
|
+
* documents the boundary so that future wallet-standard surface changes
|
|
76
|
+
* (e.g. an extra cluster discriminant, a versioning suffix) localize to
|
|
77
|
+
* this one function rather than spreading raw CAIP-2 casts across SIWS,
|
|
78
|
+
* connector adapters, and the seal() result shape.
|
|
79
|
+
*
|
|
80
|
+
* The return type is the wider template-literal `\`solana:${string}\`` to
|
|
81
|
+
* keep the helper assignable to Wallet Standard `IdentifierString` /
|
|
82
|
+
* `WalletWithSolanaFeatures` chain fields without consumers needing to
|
|
83
|
+
* narrow back through `SigilCaip2Chain`.
|
|
84
|
+
*
|
|
85
|
+
* @param caip2 — a CAIP-2 chain id produced by {@link toCaip2} or one of
|
|
86
|
+
* the `CAIP2_SOLANA_*` constants. The argument MUST already be in the
|
|
87
|
+
* `solana:<id>` form; this helper does not validate.
|
|
88
|
+
*/
|
|
89
|
+
export function toWalletStandardChain(caip2) {
|
|
90
|
+
return caip2;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Canonical Solana genesis hashes, keyed by network. Values are the full
|
|
94
|
+
* 44-character base58 hashes returned by `rpc.getGenesisHash()`.
|
|
95
|
+
*
|
|
96
|
+
* mainnet-beta: 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d
|
|
97
|
+
* devnet: EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG
|
|
98
|
+
* testnet: 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY
|
|
99
|
+
*
|
|
100
|
+
* Source: Solana Foundation Cluster RPC documentation
|
|
101
|
+
* (https://solana.com/docs/core/clusters). Hardcoded here so the
|
|
102
|
+
* verification path is offline-deterministic — a malicious RPC cannot
|
|
103
|
+
* substitute its own "canonical" hash.
|
|
104
|
+
*/
|
|
105
|
+
export const SOLANA_GENESIS_HASHES = {
|
|
106
|
+
mainnet: "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d",
|
|
107
|
+
devnet: "EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG",
|
|
108
|
+
testnet: "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY",
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Verify that an RPC actually serves the cluster a caller claims it does.
|
|
112
|
+
*
|
|
113
|
+
* **Opt-in, non-throwing diagnostic.** Unlike `assertGenesisHash` in
|
|
114
|
+
* seal.ts (which is called inside `createSigilClientAsync` and throws on
|
|
115
|
+
* mismatch), this helper returns a structured result so callers can
|
|
116
|
+
* branch on it without `try/catch`. Use it in preflight checks, in
|
|
117
|
+
* `mainnetConfirmed` confirmation flows that want to surface the
|
|
118
|
+
* mismatch to the operator, or anywhere raw-tx-building code paths
|
|
119
|
+
* bypass the client factory.
|
|
120
|
+
*
|
|
121
|
+
* **Does NOT change `seal()` default behaviour.** The existing seal
|
|
122
|
+
* factory still calls `assertGenesisHash` (which throws) — that's the
|
|
123
|
+
* load-bearing safety gate. `verifyNetworkIdentity` is purely additive.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* const result = await verifyNetworkIdentity({
|
|
128
|
+
* rpc,
|
|
129
|
+
* claimedNetwork: "mainnet",
|
|
130
|
+
* });
|
|
131
|
+
* if (!result.verified) {
|
|
132
|
+
* console.error(
|
|
133
|
+
* `Refusing to submit mainnet tx — RPC reports ${result.actualNetwork} ` +
|
|
134
|
+
* `(genesis ${result.observedGenesisHash}); ` +
|
|
135
|
+
* `expected mainnet (${result.expectedGenesisHash}).`,
|
|
136
|
+
* );
|
|
137
|
+
* throw new Error("Network mismatch");
|
|
138
|
+
* }
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export async function verifyNetworkIdentity(input) {
|
|
142
|
+
const { rpc, claimedNetwork } = input;
|
|
143
|
+
if (claimedNetwork !== "devnet" && claimedNetwork !== "mainnet") {
|
|
144
|
+
// Defensive: JS callers or `any`-cast bypasses. Returned as
|
|
145
|
+
// unverified rather than throwing so the helper stays "diagnostic".
|
|
146
|
+
return {
|
|
147
|
+
verified: false,
|
|
148
|
+
actualNetwork: "unknown",
|
|
149
|
+
expectedGenesisHash: "",
|
|
150
|
+
reason: `claimedNetwork must be 'devnet' or 'mainnet', got ${String(claimedNetwork)}`,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
const expectedGenesisHash = claimedNetwork === "mainnet"
|
|
154
|
+
? SOLANA_GENESIS_HASHES.mainnet
|
|
155
|
+
: SOLANA_GENESIS_HASHES.devnet;
|
|
156
|
+
let observed;
|
|
157
|
+
try {
|
|
158
|
+
observed = await rpc.getGenesisHash().send();
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
return {
|
|
162
|
+
verified: false,
|
|
163
|
+
actualNetwork: "unknown",
|
|
164
|
+
expectedGenesisHash,
|
|
165
|
+
reason: `getGenesisHash() failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
if (typeof observed !== "string" || observed.length < 32) {
|
|
169
|
+
return {
|
|
170
|
+
verified: false,
|
|
171
|
+
actualNetwork: "unknown",
|
|
172
|
+
expectedGenesisHash,
|
|
173
|
+
observedGenesisHash: observed == null ? undefined : String(observed),
|
|
174
|
+
reason: "getGenesisHash() returned a malformed response — expected a 44-char base58 string",
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// Identify the actual cluster the RPC serves.
|
|
178
|
+
let actualNetwork = "unknown";
|
|
179
|
+
for (const [name, hash] of Object.entries(SOLANA_GENESIS_HASHES)) {
|
|
180
|
+
if (observed === hash) {
|
|
181
|
+
actualNetwork = name;
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (observed === expectedGenesisHash) {
|
|
186
|
+
return {
|
|
187
|
+
verified: true,
|
|
188
|
+
actualNetwork,
|
|
189
|
+
expectedGenesisHash,
|
|
190
|
+
observedGenesisHash: observed,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
verified: false,
|
|
195
|
+
actualNetwork,
|
|
196
|
+
expectedGenesisHash,
|
|
197
|
+
observedGenesisHash: observed,
|
|
198
|
+
reason: `Cluster mismatch — RPC reports ${actualNetwork} (genesis ${observed}) ` +
|
|
199
|
+
`but caller claimed ${claimedNetwork} (expected ${expectedGenesisHash}).`,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=caip2-network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caip2-network.js","sourceRoot":"","sources":["../src/caip2-network.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Borsh-style encoder primitives — shared utilities.
|
|
3
|
+
*
|
|
4
|
+
* APPEND-ONLY DISCIPLINE. The TA-19 policy preview digest
|
|
5
|
+
* (`policy/compute-policy-preview-digest.ts`) and the AL3 SealInput intent
|
|
6
|
+
* digest (`seal/intent-digest.ts`, Phase 9 Batch I) both depend on these
|
|
7
|
+
* primitives being byte-stable across SDK versions. Adding a new primitive
|
|
8
|
+
* is fine; CHANGING the byte layout of an existing one would break every
|
|
9
|
+
* downstream cross-impl Rust↔TS hash and silently invalidate every
|
|
10
|
+
* previously-signed policy preview digest.
|
|
11
|
+
*
|
|
12
|
+
* Mirrors the Rust-side conventions used by `solana_program::hash::hash`
|
|
13
|
+
* over Borsh-encoded structs:
|
|
14
|
+
* - Little-endian for all multi-byte integers (u16/u32/u64).
|
|
15
|
+
* - Vec<T> = u32 LE length prefix ++ flat element bytes (no per-element
|
|
16
|
+
* framing).
|
|
17
|
+
* - bool encoded as u8 (0 or 1; the canonical Borsh wire format).
|
|
18
|
+
* - Pubkey = raw 32 bytes (base58 decoded).
|
|
19
|
+
* - SHA-256 over the canonical-encoded byte string.
|
|
20
|
+
*
|
|
21
|
+
* Primitives are deliberately small, stateless, and side-effect-free so
|
|
22
|
+
* they can be unit-tested in isolation and reused without surprises.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Decode a Solana base58 pubkey to its 32-byte raw form. Throws on any
|
|
26
|
+
* input that doesn't decode to exactly 32 bytes (catches malformed
|
|
27
|
+
* pubkeys before they corrupt the canonical encoding).
|
|
28
|
+
*
|
|
29
|
+
* @throws Error if `s` is empty, contains an invalid base58 character,
|
|
30
|
+
* or decodes to a byte length other than 32.
|
|
31
|
+
*/
|
|
32
|
+
export declare function base58Decode32(s: string): Uint8Array;
|
|
33
|
+
/** Write u8 (single byte). Returns new offset. */
|
|
34
|
+
export declare function writeU8(view: DataView, offset: number, v: number): number;
|
|
35
|
+
/** Write u16 little-endian. Returns new offset. */
|
|
36
|
+
export declare function writeU16Le(view: DataView, offset: number, v: number): number;
|
|
37
|
+
/** Write u32 little-endian. Returns new offset. */
|
|
38
|
+
export declare function writeU32Le(view: DataView, offset: number, v: number): number;
|
|
39
|
+
/** Write u64 little-endian. Returns new offset. */
|
|
40
|
+
export declare function writeU64Le(view: DataView, offset: number, v: bigint): number;
|
|
41
|
+
/** Write a bool as a single 0/1 byte. Returns new offset. */
|
|
42
|
+
export declare function writeBool(view: DataView, offset: number, v: boolean): number;
|
|
43
|
+
/**
|
|
44
|
+
* SHA-256 over the input bytes. Backed by `@noble/hashes/sha256` — pure
|
|
45
|
+
* JS, browser- and Bun-compatible, byte-identical to Node's `node:crypto`
|
|
46
|
+
* for the same input (TA-19 cross-impl fixture suite verifies this).
|
|
47
|
+
*
|
|
48
|
+
* Phase 9 Batch I switched the backend from `node:crypto` to noble so AL3
|
|
49
|
+
* intent-digest can ship the same primitive across Node, Bun, and the
|
|
50
|
+
* browser without runtime-conditional imports.
|
|
51
|
+
*/
|
|
52
|
+
export declare function sha256(input: Uint8Array): Uint8Array;
|
|
53
|
+
/**
|
|
54
|
+
* Constant-time digest comparison (true if `a` and `b` are byte-equal).
|
|
55
|
+
* Uses XOR-accumulate with no early exit so timing leaks don't reveal
|
|
56
|
+
* which prefix matched. Used by cosign + policy-digest verification.
|
|
57
|
+
*/
|
|
58
|
+
export declare function digestsEqual(a: Uint8Array, b: Uint8Array): boolean;
|
|
59
|
+
//# sourceMappingURL=canonical-encode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-encode.d.ts","sourceRoot":"","sources":["../src/canonical-encode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAqBH;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAsCpD;AAQD,kDAAkD;AAClD,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAG5E;AAID;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAOlE"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Borsh-style encoder primitives — shared utilities.
|
|
3
|
+
*
|
|
4
|
+
* APPEND-ONLY DISCIPLINE. The TA-19 policy preview digest
|
|
5
|
+
* (`policy/compute-policy-preview-digest.ts`) and the AL3 SealInput intent
|
|
6
|
+
* digest (`seal/intent-digest.ts`, Phase 9 Batch I) both depend on these
|
|
7
|
+
* primitives being byte-stable across SDK versions. Adding a new primitive
|
|
8
|
+
* is fine; CHANGING the byte layout of an existing one would break every
|
|
9
|
+
* downstream cross-impl Rust↔TS hash and silently invalidate every
|
|
10
|
+
* previously-signed policy preview digest.
|
|
11
|
+
*
|
|
12
|
+
* Mirrors the Rust-side conventions used by `solana_program::hash::hash`
|
|
13
|
+
* over Borsh-encoded structs:
|
|
14
|
+
* - Little-endian for all multi-byte integers (u16/u32/u64).
|
|
15
|
+
* - Vec<T> = u32 LE length prefix ++ flat element bytes (no per-element
|
|
16
|
+
* framing).
|
|
17
|
+
* - bool encoded as u8 (0 or 1; the canonical Borsh wire format).
|
|
18
|
+
* - Pubkey = raw 32 bytes (base58 decoded).
|
|
19
|
+
* - SHA-256 over the canonical-encoded byte string.
|
|
20
|
+
*
|
|
21
|
+
* Primitives are deliberately small, stateless, and side-effect-free so
|
|
22
|
+
* they can be unit-tested in isolation and reused without surprises.
|
|
23
|
+
*/
|
|
24
|
+
import { sha256 as nobleSha256 } from "@noble/hashes/sha2";
|
|
25
|
+
// ── Base58 decode (no external dep) ─────────────────────────────────────────
|
|
26
|
+
//
|
|
27
|
+
// Solana pubkeys are base58 strings; we need the raw 32 bytes. The SDK has
|
|
28
|
+
// many base58 helpers downstream but importing from `kit-adapter` here would
|
|
29
|
+
// create a cycle (kit-adapter imports from `core/` which is consumed by
|
|
30
|
+
// digest helpers). Inline a small standard-Bitcoin-alphabet decoder.
|
|
31
|
+
const BASE58_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
32
|
+
const BASE58_INDEX = (() => {
|
|
33
|
+
const r = Object.create(null);
|
|
34
|
+
for (let i = 0; i < BASE58_ALPHABET.length; i++) {
|
|
35
|
+
r[BASE58_ALPHABET[i]] = i;
|
|
36
|
+
}
|
|
37
|
+
return r;
|
|
38
|
+
})();
|
|
39
|
+
/**
|
|
40
|
+
* Decode a Solana base58 pubkey to its 32-byte raw form. Throws on any
|
|
41
|
+
* input that doesn't decode to exactly 32 bytes (catches malformed
|
|
42
|
+
* pubkeys before they corrupt the canonical encoding).
|
|
43
|
+
*
|
|
44
|
+
* @throws Error if `s` is empty, contains an invalid base58 character,
|
|
45
|
+
* or decodes to a byte length other than 32.
|
|
46
|
+
*/
|
|
47
|
+
export function base58Decode32(s) {
|
|
48
|
+
if (s.length === 0) {
|
|
49
|
+
throw new Error("base58Decode32: empty input");
|
|
50
|
+
}
|
|
51
|
+
let leadingZeros = 0;
|
|
52
|
+
while (leadingZeros < s.length && s[leadingZeros] === "1") {
|
|
53
|
+
leadingZeros++;
|
|
54
|
+
}
|
|
55
|
+
// Big integer mode: walk digits, base-256 carry.
|
|
56
|
+
const bytes = [];
|
|
57
|
+
for (let i = 0; i < s.length; i++) {
|
|
58
|
+
const c = s[i];
|
|
59
|
+
const v = BASE58_INDEX[c];
|
|
60
|
+
if (v === undefined) {
|
|
61
|
+
throw new Error(`base58Decode32: invalid char '${c}'`);
|
|
62
|
+
}
|
|
63
|
+
let carry = v;
|
|
64
|
+
for (let j = 0; j < bytes.length; j++) {
|
|
65
|
+
carry += bytes[j] * 58;
|
|
66
|
+
bytes[j] = carry & 0xff;
|
|
67
|
+
carry >>>= 8;
|
|
68
|
+
}
|
|
69
|
+
while (carry > 0) {
|
|
70
|
+
bytes.push(carry & 0xff);
|
|
71
|
+
carry >>>= 8;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// bytes is little-endian; reverse and prepend leading zeros.
|
|
75
|
+
const out = new Uint8Array(leadingZeros + bytes.length);
|
|
76
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
77
|
+
out[leadingZeros + (bytes.length - 1 - i)] = bytes[i];
|
|
78
|
+
}
|
|
79
|
+
if (out.length !== 32) {
|
|
80
|
+
throw new Error(`base58Decode32: expected 32-byte pubkey, got ${out.length} bytes`);
|
|
81
|
+
}
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
84
|
+
// ── Cursor writers ──────────────────────────────────────────────────────────
|
|
85
|
+
//
|
|
86
|
+
// Each writer takes a DataView + offset and returns the new offset. The
|
|
87
|
+
// `DataView` interface is browser- and Node-portable. All multi-byte integers
|
|
88
|
+
// are little-endian (matching `solana_program` + Borsh canonical encoding).
|
|
89
|
+
/** Write u8 (single byte). Returns new offset. */
|
|
90
|
+
export function writeU8(view, offset, v) {
|
|
91
|
+
view.setUint8(offset, v & 0xff);
|
|
92
|
+
return offset + 1;
|
|
93
|
+
}
|
|
94
|
+
/** Write u16 little-endian. Returns new offset. */
|
|
95
|
+
export function writeU16Le(view, offset, v) {
|
|
96
|
+
view.setUint16(offset, v, true);
|
|
97
|
+
return offset + 2;
|
|
98
|
+
}
|
|
99
|
+
/** Write u32 little-endian. Returns new offset. */
|
|
100
|
+
export function writeU32Le(view, offset, v) {
|
|
101
|
+
view.setUint32(offset, v, true);
|
|
102
|
+
return offset + 4;
|
|
103
|
+
}
|
|
104
|
+
/** Write u64 little-endian. Returns new offset. */
|
|
105
|
+
export function writeU64Le(view, offset, v) {
|
|
106
|
+
view.setBigUint64(offset, v, true);
|
|
107
|
+
return offset + 8;
|
|
108
|
+
}
|
|
109
|
+
/** Write a bool as a single 0/1 byte. Returns new offset. */
|
|
110
|
+
export function writeBool(view, offset, v) {
|
|
111
|
+
view.setUint8(offset, v ? 1 : 0);
|
|
112
|
+
return offset + 1;
|
|
113
|
+
}
|
|
114
|
+
// ── SHA-256 hasher ──────────────────────────────────────────────────────────
|
|
115
|
+
/**
|
|
116
|
+
* SHA-256 over the input bytes. Backed by `@noble/hashes/sha256` — pure
|
|
117
|
+
* JS, browser- and Bun-compatible, byte-identical to Node's `node:crypto`
|
|
118
|
+
* for the same input (TA-19 cross-impl fixture suite verifies this).
|
|
119
|
+
*
|
|
120
|
+
* Phase 9 Batch I switched the backend from `node:crypto` to noble so AL3
|
|
121
|
+
* intent-digest can ship the same primitive across Node, Bun, and the
|
|
122
|
+
* browser without runtime-conditional imports.
|
|
123
|
+
*/
|
|
124
|
+
export function sha256(input) {
|
|
125
|
+
return nobleSha256(input);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Constant-time digest comparison (true if `a` and `b` are byte-equal).
|
|
129
|
+
* Uses XOR-accumulate with no early exit so timing leaks don't reveal
|
|
130
|
+
* which prefix matched. Used by cosign + policy-digest verification.
|
|
131
|
+
*/
|
|
132
|
+
export function digestsEqual(a, b) {
|
|
133
|
+
if (a.length !== b.length)
|
|
134
|
+
return false;
|
|
135
|
+
let acc = 0;
|
|
136
|
+
for (let i = 0; i < a.length; i++) {
|
|
137
|
+
acc |= (a[i] ^ b[i]) & 0xff;
|
|
138
|
+
}
|
|
139
|
+
return acc === 0;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=canonical-encode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-encode.js","sourceRoot":"","sources":["../src/canonical-encode.ts"],"names":[],"mappings":"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"}
|