@usesigil/kit 0.15.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 +117 -0
- package/dist/agent-bootstrap.d.ts.map +1 -0
- package/dist/agent-bootstrap.js +211 -0
- package/dist/agent-bootstrap.js.map +1 -0
- package/dist/agent-errors.d.ts +20 -4
- package/dist/agent-errors.d.ts.map +1 -1
- package/dist/agent-errors.js +947 -377
- 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/build-unsigned.d.ts +152 -0
- package/dist/build-unsigned.d.ts.map +1 -0
- package/dist/build-unsigned.js +152 -0
- package/dist/build-unsigned.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 +102 -1
- package/dist/create-vault.d.ts.map +1 -1
- package/dist/create-vault.js +108 -9
- 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 +37 -0
- package/dist/dashboard/errors.d.ts.map +1 -1
- package/dist/dashboard/errors.js +81 -1
- package/dist/dashboard/errors.js.map +1 -1
- package/dist/dashboard/from-json.d.ts.map +1 -1
- package/dist/dashboard/from-json.js +1 -2
- package/dist/dashboard/from-json.js.map +1 -1
- package/dist/dashboard/index.d.ts +204 -31
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +290 -49
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/mutations.d.ts +160 -10
- package/dist/dashboard/mutations.d.ts.map +1 -1
- package/dist/dashboard/mutations.js +584 -66
- package/dist/dashboard/mutations.js.map +1 -1
- package/dist/dashboard/post-assertion-validation.d.ts +88 -0
- package/dist/dashboard/post-assertion-validation.d.ts.map +1 -0
- package/dist/dashboard/post-assertion-validation.js +312 -0
- package/dist/dashboard/post-assertion-validation.js.map +1 -0
- package/dist/dashboard/reads.d.ts +92 -1
- package/dist/dashboard/reads.d.ts.map +1 -1
- package/dist/dashboard/reads.js +244 -26
- package/dist/dashboard/reads.js.map +1 -1
- package/dist/dashboard/types.d.ts +172 -21
- 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 +20 -1
- 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 -13
- 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 +76 -0
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts.map +1 -1
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.js +9 -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 +220 -4
- package/dist/generated/accounts/pendingPolicyUpdate.d.ts.map +1 -1
- package/dist/generated/accounts/pendingPolicyUpdate.js +25 -5
- package/dist/generated/accounts/pendingPolicyUpdate.js.map +1 -1
- package/dist/generated/accounts/policyConfig.d.ts +495 -34
- package/dist/generated/accounts/policyConfig.d.ts.map +1 -1
- package/dist/generated/accounts/policyConfig.js +34 -7
- 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 +154 -12
- package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -1
- package/dist/generated/accounts/sessionAuthority.js +12 -10
- 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 +160 -100
- package/dist/generated/errors/sigil.d.ts.map +1 -1
- package/dist/generated/errors/sigil.js +214 -124
- 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 -13
- 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 +39 -5
- package/dist/generated/instructions/freezeVault.d.ts.map +1 -1
- package/dist/generated/instructions/freezeVault.js +77 -5
- package/dist/generated/instructions/freezeVault.js.map +1 -1
- package/dist/generated/instructions/index.d.ts +10 -14
- package/dist/generated/instructions/index.d.ts.map +1 -1
- package/dist/generated/instructions/index.js +10 -14
- package/dist/generated/instructions/index.js.map +1 -1
- package/dist/generated/instructions/initializeVault.d.ts +79 -13
- package/dist/generated/instructions/initializeVault.d.ts.map +1 -1
- package/dist/generated/instructions/initializeVault.js +57 -5
- 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 +40 -8
- package/dist/generated/instructions/queuePolicyUpdate.d.ts.map +1 -1
- package/dist/generated/instructions/queuePolicyUpdate.js +21 -5
- 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 -95
- package/dist/generated/programs/sigil.d.ts.map +1 -1
- package/dist/generated/programs/sigil.js +139 -187
- 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/{pdaAllocated.js → agentAutoRevoked.js} +12 -10
- 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 -21
- package/dist/generated/types/index.d.ts.map +1 -1
- package/dist/generated/types/index.js +13 -21
- 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 +26 -0
- package/dist/generated/types/vaultFrozen.d.ts.map +1 -1
- package/dist/generated/types/vaultFrozen.js +5 -1
- package/dist/generated/types/vaultFrozen.js.map +1 -1
- package/dist/index.d.ts +35 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -7
- package/dist/index.js.map +1 -1
- package/dist/inscribe.d.ts +0 -4
- package/dist/inscribe.d.ts.map +1 -1
- package/dist/inscribe.js +0 -1
- package/dist/inscribe.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/logger.d.ts +48 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +36 -0
- package/dist/logger.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/owner-transaction.d.ts +8 -0
- package/dist/owner-transaction.d.ts.map +1 -1
- package/dist/owner-transaction.js +1 -0
- package/dist/owner-transaction.js.map +1 -1
- 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/presets.d.ts +1 -7
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +0 -5
- package/dist/presets.js.map +1 -1
- package/dist/preview-create-vault.d.ts +280 -0
- package/dist/preview-create-vault.d.ts.map +1 -0
- package/dist/preview-create-vault.js +498 -0
- package/dist/preview-create-vault.js.map +1 -0
- 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 -8
- 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/sigil.d.ts +0 -4
- package/dist/sigil.d.ts.map +1 -1
- package/dist/simulation.d.ts +19 -0
- package/dist/simulation.d.ts.map +1 -1
- package/dist/simulation.js +211 -138
- 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 -45
- package/dist/testing/devnet.js.map +1 -1
- package/dist/testing/errors/expect.d.ts +137 -0
- package/dist/testing/errors/expect.d.ts.map +1 -0
- package/dist/testing/errors/expect.js +372 -0
- package/dist/testing/errors/expect.js.map +1 -0
- package/dist/testing/errors/index.d.ts +3 -0
- package/dist/testing/errors/index.d.ts.map +1 -0
- package/dist/testing/errors/index.js +8 -0
- package/dist/testing/errors/index.js.map +1 -0
- package/dist/testing/errors/names.generated.d.ts +211 -0
- package/dist/testing/errors/names.generated.d.ts.map +1 -0
- package/dist/testing/errors/names.generated.js +206 -0
- package/dist/testing/errors/names.generated.js.map +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +8 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/mock-rpc.d.ts +16 -0
- package/dist/testing/mock-rpc.d.ts.map +1 -1
- package/dist/testing/mock-rpc.js +27 -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 +45 -6
- 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 +12 -5
- 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 -37
- package/dist/generated/accounts/pendingCloseConstraints.d.ts.map +0 -1
- package/dist/generated/accounts/pendingCloseConstraints.js +0 -66
- package/dist/generated/accounts/pendingCloseConstraints.js.map +0 -1
- package/dist/generated/accounts/pendingConstraintsUpdate.d.ts +0 -62
- package/dist/generated/accounts/pendingConstraintsUpdate.d.ts.map +0 -1
- package/dist/generated/accounts/pendingConstraintsUpdate.js +0 -75
- 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/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 -18
- package/dist/generated/types/accountConstraint.d.ts.map +0 -1
- package/dist/generated/types/accountConstraint.js +0 -24
- package/dist/generated/types/accountConstraint.js.map +0 -1
- package/dist/generated/types/accountConstraintZC.d.ts +0 -18
- package/dist/generated/types/accountConstraintZC.d.ts.map +0 -1
- package/dist/generated/types/accountConstraintZC.js +0 -26
- 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 -39
- package/dist/generated/types/constraintEntry.d.ts.map +0 -1
- package/dist/generated/types/constraintEntry.js +0 -31
- package/dist/generated/types/constraintEntry.js.map +0 -1
- package/dist/generated/types/constraintEntryZC.d.ts +0 -68
- 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/pdaAllocated.d.ts +0 -24
- package/dist/generated/types/pdaAllocated.d.ts.map +0 -1
- 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/integrations/protocol-handler.d.ts +0 -59
- package/dist/integrations/protocol-handler.d.ts.map +0 -1
- package/dist/integrations/protocol-handler.js +0 -9
- package/dist/integrations/protocol-handler.js.map +0 -1
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@usesigil/kit/previewCreateVault`.
|
|
3
|
+
*
|
|
4
|
+
* Builds a `CreateVaultPreview` that the dashboard split-screen `/onboard`
|
|
5
|
+
* page renders BEFORE the user signs. Wraps the existing `createVault()`
|
|
6
|
+
* + `buildOwnerTransaction()` primitives — does not reinvent PDA derivation,
|
|
7
|
+
* compute-budget construction, or transaction compilation.
|
|
8
|
+
*
|
|
9
|
+
* ## Algorithm
|
|
10
|
+
*
|
|
11
|
+
* 1. **Validate** the config at the API edge. Negative bigints throw
|
|
12
|
+
* `RangeError`; on-chain hard limits (`MIN_TIMELOCK_DURATION`,
|
|
13
|
+
* `MAX_DEVELOPER_FEE_RATE`, `MAX_ALLOWED_PROTOCOLS`,
|
|
14
|
+
* `MAX_ALLOWED_DESTINATIONS`) are mirrored as early throws so the FE
|
|
15
|
+
* surfaces "your config will be rejected" before signing.
|
|
16
|
+
* `validateNetwork()` propagates as-is.
|
|
17
|
+
* 2. **Derive 4 PDAs.** `vault` first (it's the seed for the others),
|
|
18
|
+
* then `policy` / `tracker` / `agent_spend_overlay` in parallel.
|
|
19
|
+
* 3. **Fetch rent** for each PDA size in parallel via
|
|
20
|
+
* `getMinimumBalanceForRentExemption(size)`. The 4 sizes are pinned to
|
|
21
|
+
* the on-chain `<account>::SIZE` constants — drift between Rust and TS
|
|
22
|
+
* is regression-tested.
|
|
23
|
+
* 4. **Build instructions** via `createVault()` (which validates
|
|
24
|
+
* aggregate caps and rejects owner==agent).
|
|
25
|
+
* 5. **Compile transaction** via `buildOwnerTransaction()` with
|
|
26
|
+
* `CU_VAULT_CREATION` (400_000) and the caller's optional priority fee.
|
|
27
|
+
* 6. **Compute totalCostUsd** via BigInt-safe math with explicit
|
|
28
|
+
* mul-before-divide:
|
|
29
|
+
* `(rentLamports + feeLamports) * solPriceUsd / 1_000_000_000n`.
|
|
30
|
+
* Units: lamports × (6-decimal-USD per SOL) ÷ (lamports per SOL)
|
|
31
|
+
* = 6-decimal USD.
|
|
32
|
+
* 7. **Build warnings** for soft-signal issues (cap=0, cap>$1M, allowlist
|
|
33
|
+
* with no protocols, max-tx > daily-cap). Sorted by `code` ascending so
|
|
34
|
+
* React keys don't thrash on re-type.
|
|
35
|
+
* 8. **Freeze + return.** The returned object is `Object.freeze`d; the
|
|
36
|
+
* `pdaList` and `warnings` arrays are also frozen.
|
|
37
|
+
*
|
|
38
|
+
* ## What this does NOT do
|
|
39
|
+
*
|
|
40
|
+
* - **Submit any transaction.** Preview is read-only RPC: rent + blockhash
|
|
41
|
+
* + ALT lookup. No `sendTransaction`, no `simulateTransaction`.
|
|
42
|
+
* - **Sign.** Internally constructs `createNoopSigner(address)` instances
|
|
43
|
+
* so `buildOwnerTransaction` can compile a fee-payer-bound message.
|
|
44
|
+
* Wallet adapter signs the returned `unsignedTxBytes` later.
|
|
45
|
+
* - **Fetch SOL price.** Kit has no oracle. Caller passes
|
|
46
|
+
* `solPriceUsd: bigint` (6-decimal USD per SOL). Without it, the kit
|
|
47
|
+
* would have to either pin a default (silent lie) or take an RPC
|
|
48
|
+
* dependency on a price feed (scope creep).
|
|
49
|
+
*/
|
|
50
|
+
import { createNoopSigner } from "./kit-adapter.js";
|
|
51
|
+
import { getVaultPDA, getPolicyPDA, getTrackerPDA, getAgentOverlayPDA, } from "./resolve-accounts.js";
|
|
52
|
+
import { createVault } from "./create-vault.js";
|
|
53
|
+
import { buildOwnerTransaction } from "./owner-transaction.js";
|
|
54
|
+
import { CU_VAULT_CREATION } from "./priority-fees.js";
|
|
55
|
+
import { validateNetwork, SYSTEM_PROGRAM_ADDRESS, MAX_DEVELOPER_FEE_RATE, MAX_ALLOWED_PROTOCOLS, U64_MAX, } from "./types.js";
|
|
56
|
+
import { SigilSdkDomainError } from "./errors/sdk.js";
|
|
57
|
+
import { SIGIL_ERROR__SDK__INVALID_PARAMS } from "./errors/codes.js";
|
|
58
|
+
// ─── On-chain account sizes (verified against programs/sigil/src/state/*.rs) ─
|
|
59
|
+
/**
|
|
60
|
+
* `AgentVault::SIZE` from `programs/sigil/src/state/vault.rs:135-152`.
|
|
61
|
+
* Layout: 8 disc + 32 owner + 8 vault_id + 4 vec_prefix + (49 * 10) agents
|
|
62
|
+
* + 32 fee_destination + 1 status + 1 bump + 8 created_at
|
|
63
|
+
* + 8 total_transactions + 8 total_volume
|
|
64
|
+
* + 8 total_fees_collected + 8 total_deposited_usd + 8 total_withdrawn_usd
|
|
65
|
+
* + 8 total_failed_transactions + 1 active_sessions
|
|
66
|
+
* + 1 observe_only [Phase 2 TA-19] + 8 frozen_at_timestamp + 1 freeze_reason
|
|
67
|
+
* + 1 owner_type [F-Q6] + 32 vault_authority [Phase 8 LBL-01] = 676.
|
|
68
|
+
* (Was 634 — stale: it predated the Phase-8 fields frozen_at_timestamp +
|
|
69
|
+
* freeze_reason + vault_authority (+41) and F-Q6 owner_type (+1); corrected
|
|
70
|
+
* to the rent-exact 676 here.)
|
|
71
|
+
*/
|
|
72
|
+
const AGENT_VAULT_SIZE = 676;
|
|
73
|
+
/**
|
|
74
|
+
* `PolicyConfig::SIZE` from `programs/sigil/src/state/policy.rs:323-350`.
|
|
75
|
+
* Layout: 8 disc + 32 vault + 8 daily_cap + 8 max_tx + 1 protocol_mode
|
|
76
|
+
* + (4 + 32*10) protocols + 2 dev_fee + 2 max_slippage_bps
|
|
77
|
+
* + 8 session_window + (4 + 32*10) allowed_destinations
|
|
78
|
+
* + 1 has_pending_policy + 1 has_protocol_caps [M1-04 removed has_constraints]
|
|
79
|
+
* + (4 + 8*10) protocol_caps + 8 session_expiry + 1 bump
|
|
80
|
+
* + 8 policy_version + 1 has_post_assertions + 1 destination_mode
|
|
81
|
+
* + 32 policy_preview_digest [TA-19 Phase 2]
|
|
82
|
+
* + 8 created_at_slot [PEN-CROSS-2]
|
|
83
|
+
* + 4 operating_hours [TA-05 Phase 3]
|
|
84
|
+
* + (4 + 40*10) destination_graylist [TA-07 Phase 3]
|
|
85
|
+
* + 1 auto_promote_grays [TA-07] + 1 auto_revoke_threshold [TA-17]
|
|
86
|
+
* + 8 stable_balance_floor [TA-12 Phase 5]
|
|
87
|
+
* + 8 per_recipient_daily_cap_usd [TA-14 Phase 5]
|
|
88
|
+
* + 1 cosign_required [G6 audit 2026-05-18]
|
|
89
|
+
* + 32 cosign_session_pubkey [D-5 audit 2026-05-19, F-RP3-1]
|
|
90
|
+
* + 8 operator_grant_delay_seconds [F-Q6 2026-06-02] = 1,329.
|
|
91
|
+
* (Was 1,322 pre-F-Q6 — that value double-counted the M1-04-removed
|
|
92
|
+
* has_constraints byte; corrected to the rent-exact 1,329 here.)
|
|
93
|
+
*/
|
|
94
|
+
const POLICY_CONFIG_SIZE = 1_329;
|
|
95
|
+
/**
|
|
96
|
+
* `SpendTracker::SIZE` from `programs/sigil/src/state/tracker.rs:200-214`.
|
|
97
|
+
* Layout: 8 disc + 32 vault + (16 * 144) buckets + (48 * 10) protocol_counters
|
|
98
|
+
* + 8 last_write_epoch + 1 bump + 7 padding
|
|
99
|
+
* + (48 * 10) per_recipient [TA-14 Phase 5]
|
|
100
|
+
* + 1 per_recipient_count + 7 _padding_recipient = 3,328.
|
|
101
|
+
*/
|
|
102
|
+
const SPEND_TRACKER_SIZE = 3_328;
|
|
103
|
+
/**
|
|
104
|
+
* `AgentSpendOverlay::SIZE` from `programs/sigil/src/state/agent_spend_overlay.rs:114-123`.
|
|
105
|
+
* Layout: 8 disc + 32 vault + (232 * 10) entries + 1 bump + 7 padding
|
|
106
|
+
* + (8 * 10) lifetime_spend + (8 * 10) lifetime_tx_count
|
|
107
|
+
* + (8 * 10) cooldown_seconds [TA-06 Phase 3]
|
|
108
|
+
* + (8 * 10) last_action_unix [TA-06 Phase 3] = 2,688.
|
|
109
|
+
*/
|
|
110
|
+
const AGENT_SPEND_OVERLAY_SIZE = 2_688;
|
|
111
|
+
/** Default priority fee when caller doesn't supply one. Conservative. */
|
|
112
|
+
const DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS = 10_000;
|
|
113
|
+
/** `1_000_000_000` lamports per SOL. */
|
|
114
|
+
const LAMPORTS_PER_SOL = 1000000000n;
|
|
115
|
+
/** Microlamports per lamport. */
|
|
116
|
+
const MICRO_LAMPORTS_PER_LAMPORT = 1000000n;
|
|
117
|
+
/** Heuristic: dailyCapUsd above $1,000,000 (6-decimal base units) → warn. */
|
|
118
|
+
const DAILY_CAP_HIGH_THRESHOLD = 1000000000000n;
|
|
119
|
+
/**
|
|
120
|
+
* Upper bound for any 6-decimal USD bigint at the public API edge.
|
|
121
|
+
* Re-exported from `types.U64_MAX` (`18_446_744_073_709_551_615n`). The
|
|
122
|
+
* on-chain program stores these as `u64`; values above overflow there. We
|
|
123
|
+
* reject at the kit edge rather than ship a tx the program will reject.
|
|
124
|
+
*/
|
|
125
|
+
const MAX_USD_BASE_UNITS = U64_MAX;
|
|
126
|
+
/** Mirror of `MIN_TIMELOCK_DURATION` (1800) from `state/mod.rs`. */
|
|
127
|
+
const MIN_TIMELOCK_DURATION_SECONDS = 1800n;
|
|
128
|
+
/** Mirror of `MAX_ALLOWED_DESTINATIONS` (10) from `state/mod.rs`. */
|
|
129
|
+
const MAX_ALLOWED_DESTINATIONS_COUNT = 10;
|
|
130
|
+
// ─── Implementation ──────────────────────────────────────────────────────────
|
|
131
|
+
/**
|
|
132
|
+
* Generate a `CreateVaultPreview` for the dashboard split-screen `/onboard`
|
|
133
|
+
* flow. See module JSDoc for the algorithm and design rationale.
|
|
134
|
+
*
|
|
135
|
+
* @throws {RangeError} If any bigint config field is negative or any count
|
|
136
|
+
* exceeds its on-chain maximum, or if `timelockDuration < 1800n`,
|
|
137
|
+
* or if `developerFeeRate > 500`.
|
|
138
|
+
* @throws {SigilSdkDomainError} If `validateNetwork(config.network)` fails,
|
|
139
|
+
* if `getMinimumBalanceForRentExemption` returns 0n / undefined,
|
|
140
|
+
* or if `createVault()` rejects the config (e.g., owner == agent,
|
|
141
|
+
* spendingLimit > dailyCap aggregate).
|
|
142
|
+
*/
|
|
143
|
+
export async function previewCreateVault(config) {
|
|
144
|
+
// 1. Validate config at the API edge (fail fast, descriptive errors).
|
|
145
|
+
validateConfig(config);
|
|
146
|
+
// Normalize "mainnet-beta" → "mainnet" for createVault / buildOwnerTransaction
|
|
147
|
+
// (which use the short literal type) while still accepting either form.
|
|
148
|
+
const buildNetwork = toBuildNetwork(config.network);
|
|
149
|
+
// 2 + 3. Derive PDAs and fetch rent concurrently.
|
|
150
|
+
//
|
|
151
|
+
// Rent depends on size only, not address — fire all 4 rent RPC fetches
|
|
152
|
+
// in parallel with PDA derivation. PDA derivation is pure CPU (sha256
|
|
153
|
+
// in a 0..255 bump search loop) so overlapping it with network latency
|
|
154
|
+
// removes the serial CPU step from the wall-clock path on hot
|
|
155
|
+
// dashboard re-types.
|
|
156
|
+
//
|
|
157
|
+
// `vault` is the seed for the other three PDAs, so we wrap the
|
|
158
|
+
// dependent chain (`getVaultPDA` → policy/tracker/overlay) in a single
|
|
159
|
+
// async IIFE and `Promise.all` it alongside the rent fetches. Wrapping
|
|
160
|
+
// (rather than `await`-ing the vault PDA up front) keeps the rent
|
|
161
|
+
// promises in a Promise.all from the moment they're created, so a
|
|
162
|
+
// rejecting RPC never produces a transient
|
|
163
|
+
// `PromiseRejectionHandledWarning`.
|
|
164
|
+
const vaultChain = (async () => {
|
|
165
|
+
const [vAddr, vBump] = await getVaultPDA(config.owner, config.vaultId);
|
|
166
|
+
const [policy, tracker, overlay] = await Promise.all([
|
|
167
|
+
getPolicyPDA(vAddr),
|
|
168
|
+
getTrackerPDA(vAddr),
|
|
169
|
+
getAgentOverlayPDA(vAddr, 0),
|
|
170
|
+
]);
|
|
171
|
+
return { vAddr, vBump, policy, tracker, overlay };
|
|
172
|
+
})();
|
|
173
|
+
const [{ vAddr, vBump, policy, tracker, overlay }, vaultRent, policyRent, trackerRent, overlayRent,] = await Promise.all([
|
|
174
|
+
vaultChain,
|
|
175
|
+
fetchRentForSize(config.rpc, AGENT_VAULT_SIZE, "AgentVault"),
|
|
176
|
+
fetchRentForSize(config.rpc, POLICY_CONFIG_SIZE, "PolicyConfig"),
|
|
177
|
+
fetchRentForSize(config.rpc, SPEND_TRACKER_SIZE, "SpendTracker"),
|
|
178
|
+
fetchRentForSize(config.rpc, AGENT_SPEND_OVERLAY_SIZE, "AgentSpendOverlay"),
|
|
179
|
+
]);
|
|
180
|
+
const vaultAddress = vAddr;
|
|
181
|
+
const vaultBump = vBump;
|
|
182
|
+
const [policyAddress, policyBump] = policy;
|
|
183
|
+
const [trackerAddress, trackerBump] = tracker;
|
|
184
|
+
const [overlayAddress, overlayBump] = overlay;
|
|
185
|
+
// 4. Build the pdaList tuple in deterministic on-chain `init` order.
|
|
186
|
+
const pdaList = Object.freeze([
|
|
187
|
+
makePdaInfo("AgentVault", vaultAddress, vaultBump, AGENT_VAULT_SIZE, vaultRent),
|
|
188
|
+
makePdaInfo("PolicyConfig", policyAddress, policyBump, POLICY_CONFIG_SIZE, policyRent),
|
|
189
|
+
makePdaInfo("SpendTracker", trackerAddress, trackerBump, SPEND_TRACKER_SIZE, trackerRent),
|
|
190
|
+
makePdaInfo("AgentSpendOverlay", overlayAddress, overlayBump, AGENT_SPEND_OVERLAY_SIZE, overlayRent),
|
|
191
|
+
]);
|
|
192
|
+
const rentLamports = vaultRent + policyRent + trackerRent + overlayRent;
|
|
193
|
+
// 5. Build the create-vault instructions. `createVault` validates aggregate
|
|
194
|
+
// caps and owner≠agent for us; we propagate its throws.
|
|
195
|
+
const ownerSigner = createNoopSigner(config.owner);
|
|
196
|
+
const agentSigner = createNoopSigner(config.agentAddress);
|
|
197
|
+
const createResult = await createVault({
|
|
198
|
+
rpc: config.rpc,
|
|
199
|
+
network: buildNetwork,
|
|
200
|
+
owner: ownerSigner,
|
|
201
|
+
agent: agentSigner,
|
|
202
|
+
permissions: config.capabilityTier !== undefined
|
|
203
|
+
? config.capabilityTier
|
|
204
|
+
: undefined,
|
|
205
|
+
spendingLimitUsd: config.spendingLimitUsd,
|
|
206
|
+
dailySpendingCapUsd: config.dailyCapUsd,
|
|
207
|
+
maxTransactionSizeUsd: config.maxTxSizeUsd,
|
|
208
|
+
feeDestination: config.feeDestination,
|
|
209
|
+
developerFeeRate: config.developerFeeRate,
|
|
210
|
+
protocols: [...config.protocols],
|
|
211
|
+
protocolMode: config.protocolMode,
|
|
212
|
+
maxSlippageBps: config.maxSlippageBps,
|
|
213
|
+
timelockDuration: Number(config.timelockDuration),
|
|
214
|
+
allowedDestinations: [...config.allowedDestinations],
|
|
215
|
+
vaultId: config.vaultId,
|
|
216
|
+
protocolCaps: config.protocolCaps.length > 0 ? [...config.protocolCaps] : undefined,
|
|
217
|
+
});
|
|
218
|
+
// 6. Compile the unsigned transaction.
|
|
219
|
+
const computeUnits = config.computeUnits ?? CU_VAULT_CREATION;
|
|
220
|
+
const priorityFeeMicroLamports = config.priorityFeeMicroLamports ?? DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS;
|
|
221
|
+
const ownerTx = await buildOwnerTransaction({
|
|
222
|
+
rpc: config.rpc,
|
|
223
|
+
owner: ownerSigner,
|
|
224
|
+
instructions: [
|
|
225
|
+
createResult.initializeVaultIx,
|
|
226
|
+
createResult.registerAgentIx,
|
|
227
|
+
],
|
|
228
|
+
network: buildNetwork,
|
|
229
|
+
computeUnits,
|
|
230
|
+
priorityFeeMicroLamports,
|
|
231
|
+
...(config.blockhash !== undefined ? { blockhash: config.blockhash } : {}),
|
|
232
|
+
...(config.addressLookupTables !== undefined
|
|
233
|
+
? { addressLookupTables: config.addressLookupTables }
|
|
234
|
+
: {}),
|
|
235
|
+
});
|
|
236
|
+
// 7. feeLamports: microLamports per CU * CU / 1_000_000. Mul-before-divide
|
|
237
|
+
// in BigInt to avoid number/bigint mixing.
|
|
238
|
+
const feeLamports = (BigInt(priorityFeeMicroLamports) * BigInt(computeUnits)) /
|
|
239
|
+
MICRO_LAMPORTS_PER_LAMPORT;
|
|
240
|
+
// 8. totalCostUsd: mul-before-divide preserves precision down to 1 unit of
|
|
241
|
+
// 6-decimal USD.
|
|
242
|
+
const totalCostUsd = ((rentLamports + feeLamports) * config.solPriceUsd) / LAMPORTS_PER_SOL;
|
|
243
|
+
const unsignedTxBytes = base64ToUint8Array(ownerTx.wireBase64);
|
|
244
|
+
// 9. lastValidBlockHeight is sourced from the same blockhash baked into the
|
|
245
|
+
// wire bytes — never re-read the cache (TTL refresh would race the bytes
|
|
246
|
+
// the user is about to sign).
|
|
247
|
+
const blockhash = ownerTx.blockhash;
|
|
248
|
+
// 10. Warnings (sorted by code) → undefined when empty so the FE skips
|
|
249
|
+
// rendering the panel.
|
|
250
|
+
const warningsRaw = buildWarnings(config);
|
|
251
|
+
const warnings = warningsRaw.length > 0
|
|
252
|
+
? Object.freeze(warningsRaw)
|
|
253
|
+
: undefined;
|
|
254
|
+
const preview = {
|
|
255
|
+
pdaList,
|
|
256
|
+
rentLamports,
|
|
257
|
+
computeUnits,
|
|
258
|
+
feeLamports,
|
|
259
|
+
totalCostUsd,
|
|
260
|
+
vaultAddress,
|
|
261
|
+
unsignedTxBytes,
|
|
262
|
+
txSizeBytes: ownerTx.txSizeBytes,
|
|
263
|
+
lastValidBlockHeight: blockhash.lastValidBlockHeight,
|
|
264
|
+
...(warnings !== undefined ? { warnings } : {}),
|
|
265
|
+
};
|
|
266
|
+
return Object.freeze(preview);
|
|
267
|
+
}
|
|
268
|
+
// ─── Private helpers ─────────────────────────────────────────────────────────
|
|
269
|
+
/**
|
|
270
|
+
* Build one frozen `VaultPdaInfo` entry for `pdaList`. The literal `name`
|
|
271
|
+
* type is preserved so each tuple slot narrows to its specific account class
|
|
272
|
+
* (e.g. `pdaList[0].name === "AgentVault"`).
|
|
273
|
+
*/
|
|
274
|
+
function makePdaInfo(name, address, bump, sizeBytes, rentLamports) {
|
|
275
|
+
return Object.freeze({
|
|
276
|
+
name,
|
|
277
|
+
address,
|
|
278
|
+
bump,
|
|
279
|
+
sizeBytes,
|
|
280
|
+
rentLamports,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Validate config at the API edge. Throws `RangeError` for value-out-of-range
|
|
285
|
+
* (matches the `composeAgentBootstrap` convention) and lets `validateNetwork`
|
|
286
|
+
* propagate its `SigilSdkDomainError`.
|
|
287
|
+
*/
|
|
288
|
+
function validateConfig(config) {
|
|
289
|
+
// Network — propagates SigilSdkDomainError if invalid.
|
|
290
|
+
validateNetwork(config.network);
|
|
291
|
+
// Negative bigints. `solPriceUsd` rejects 0n too — kit has no oracle, and
|
|
292
|
+
// a price of 0 silently produces `totalCostUsd === 0n` which the FE
|
|
293
|
+
// would render as "Free". Fail loud.
|
|
294
|
+
if (config.vaultId < 0n) {
|
|
295
|
+
throw new RangeError(`vaultId must be >= 0; received ${config.vaultId}`);
|
|
296
|
+
}
|
|
297
|
+
if (config.dailyCapUsd < 0n) {
|
|
298
|
+
throw new RangeError(`dailyCapUsd must be >= 0; received ${config.dailyCapUsd}`);
|
|
299
|
+
}
|
|
300
|
+
if (config.maxTxSizeUsd < 0n) {
|
|
301
|
+
throw new RangeError(`maxTxSizeUsd must be >= 0; received ${config.maxTxSizeUsd}`);
|
|
302
|
+
}
|
|
303
|
+
if (config.spendingLimitUsd < 0n) {
|
|
304
|
+
throw new RangeError(`spendingLimitUsd must be >= 0; received ${config.spendingLimitUsd}`);
|
|
305
|
+
}
|
|
306
|
+
if (config.solPriceUsd <= 0n) {
|
|
307
|
+
throw new RangeError(`solPriceUsd must be > 0n; received ${config.solPriceUsd}. ` +
|
|
308
|
+
`The kit has no oracle — caller must supply a fresh, positive price.`);
|
|
309
|
+
}
|
|
310
|
+
if (config.timelockDuration < 0n) {
|
|
311
|
+
throw new RangeError(`timelockDuration must be >= 0; received ${config.timelockDuration}`);
|
|
312
|
+
}
|
|
313
|
+
// Upper bounds — `u64::MAX` overflow guards. The on-chain program stores
|
|
314
|
+
// these as `u64`; values above `(1 << 64) - 1` overflow there. Reject at
|
|
315
|
+
// the kit edge.
|
|
316
|
+
if (config.dailyCapUsd > MAX_USD_BASE_UNITS) {
|
|
317
|
+
throw new RangeError(`dailyCapUsd must be <= u64::MAX (${MAX_USD_BASE_UNITS}); received ${config.dailyCapUsd}`);
|
|
318
|
+
}
|
|
319
|
+
if (config.maxTxSizeUsd > MAX_USD_BASE_UNITS) {
|
|
320
|
+
throw new RangeError(`maxTxSizeUsd must be <= u64::MAX; received ${config.maxTxSizeUsd}`);
|
|
321
|
+
}
|
|
322
|
+
if (config.spendingLimitUsd > MAX_USD_BASE_UNITS) {
|
|
323
|
+
throw new RangeError(`spendingLimitUsd must be <= u64::MAX; received ${config.spendingLimitUsd}`);
|
|
324
|
+
}
|
|
325
|
+
if (config.solPriceUsd > MAX_USD_BASE_UNITS) {
|
|
326
|
+
throw new RangeError(`solPriceUsd must be <= u64::MAX; received ${config.solPriceUsd}`);
|
|
327
|
+
}
|
|
328
|
+
// `timelockDuration` is a bigint at the API but createVault takes a
|
|
329
|
+
// number. Number can lose precision above 2^53. Reject silently-lossy
|
|
330
|
+
// values rather than ship a tx with a different timelock than the user
|
|
331
|
+
// typed.
|
|
332
|
+
if (config.timelockDuration > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
333
|
+
throw new RangeError(`timelockDuration must be <= Number.MAX_SAFE_INTEGER (${Number.MAX_SAFE_INTEGER}); ` +
|
|
334
|
+
`received ${config.timelockDuration}. Larger values lose precision in the bigint→number cast.`);
|
|
335
|
+
}
|
|
336
|
+
// On-chain hard limits — mirror as early throws.
|
|
337
|
+
if (config.timelockDuration < MIN_TIMELOCK_DURATION_SECONDS) {
|
|
338
|
+
throw new RangeError(`timelockDuration must be >= ${MIN_TIMELOCK_DURATION_SECONDS}n (MIN_TIMELOCK_DURATION); ` +
|
|
339
|
+
`the on-chain program rejects shorter timelocks. Received ${config.timelockDuration}.`);
|
|
340
|
+
}
|
|
341
|
+
if (!Number.isInteger(config.developerFeeRate) ||
|
|
342
|
+
config.developerFeeRate < 0) {
|
|
343
|
+
throw new RangeError(`developerFeeRate must be a non-negative integer; received ${config.developerFeeRate}`);
|
|
344
|
+
}
|
|
345
|
+
if (config.developerFeeRate > MAX_DEVELOPER_FEE_RATE) {
|
|
346
|
+
throw new RangeError(`developerFeeRate must be <= ${MAX_DEVELOPER_FEE_RATE} BPS (MAX_DEVELOPER_FEE_RATE); ` +
|
|
347
|
+
`received ${config.developerFeeRate}`);
|
|
348
|
+
}
|
|
349
|
+
if (!Number.isInteger(config.maxSlippageBps) || config.maxSlippageBps < 0) {
|
|
350
|
+
throw new RangeError(`maxSlippageBps must be a non-negative integer; received ${config.maxSlippageBps}`);
|
|
351
|
+
}
|
|
352
|
+
if (config.protocols.length > MAX_ALLOWED_PROTOCOLS) {
|
|
353
|
+
throw new RangeError(`protocols.length must be <= ${MAX_ALLOWED_PROTOCOLS} (MAX_ALLOWED_PROTOCOLS); ` +
|
|
354
|
+
`received ${config.protocols.length}`);
|
|
355
|
+
}
|
|
356
|
+
if (config.allowedDestinations.length > MAX_ALLOWED_DESTINATIONS_COUNT) {
|
|
357
|
+
throw new RangeError(`allowedDestinations.length must be <= ${MAX_ALLOWED_DESTINATIONS_COUNT} (MAX_ALLOWED_DESTINATIONS); ` +
|
|
358
|
+
`received ${config.allowedDestinations.length}`);
|
|
359
|
+
}
|
|
360
|
+
// protocol_caps when non-empty must align with allowlist mode and length.
|
|
361
|
+
if (config.protocolCaps.length > 0) {
|
|
362
|
+
if (config.protocolMode !== 1) {
|
|
363
|
+
throw new RangeError(`protocolCaps requires protocolMode === 1 (ALLOWLIST); received ${config.protocolMode}`);
|
|
364
|
+
}
|
|
365
|
+
if (config.protocolCaps.length !== config.protocols.length) {
|
|
366
|
+
throw new RangeError(`protocolCaps.length (${config.protocolCaps.length}) must equal protocols.length (${config.protocols.length})`);
|
|
367
|
+
}
|
|
368
|
+
for (const cap of config.protocolCaps) {
|
|
369
|
+
if (cap < 0n) {
|
|
370
|
+
throw new RangeError(`each protocolCaps entry must be >= 0; received ${cap}`);
|
|
371
|
+
}
|
|
372
|
+
if (cap > MAX_USD_BASE_UNITS) {
|
|
373
|
+
throw new RangeError(`each protocolCaps entry must be <= u64::MAX; received ${cap}`);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
// `feeDestination` cannot be the system program (Pubkey::default = all-1s
|
|
378
|
+
// base58); the on-chain program rejects it at line 91-93 of
|
|
379
|
+
// initialize_vault.rs with `InvalidFeeDestination`.
|
|
380
|
+
if (config.feeDestination === SYSTEM_PROGRAM_ADDRESS) {
|
|
381
|
+
throw new RangeError(`feeDestination must not be the system program ` +
|
|
382
|
+
`(${SYSTEM_PROGRAM_ADDRESS}); the on-chain program rejects it as ` +
|
|
383
|
+
`InvalidFeeDestination`);
|
|
384
|
+
}
|
|
385
|
+
// Optional numeric overrides — must be non-negative integers. Negatives
|
|
386
|
+
// and NaN both produce silent drift (negative fee in preview but skipped
|
|
387
|
+
// on-chain; non-integer throws deep in BigInt(...)).
|
|
388
|
+
if (config.priorityFeeMicroLamports !== undefined) {
|
|
389
|
+
if (!Number.isInteger(config.priorityFeeMicroLamports) ||
|
|
390
|
+
config.priorityFeeMicroLamports < 0) {
|
|
391
|
+
throw new RangeError(`priorityFeeMicroLamports must be a non-negative integer; received ${config.priorityFeeMicroLamports}`);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
if (config.computeUnits !== undefined) {
|
|
395
|
+
if (!Number.isInteger(config.computeUnits) || config.computeUnits <= 0) {
|
|
396
|
+
throw new RangeError(`computeUnits must be a positive integer; received ${config.computeUnits}`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Resolve a `NetworkInput` to the `"devnet" | "mainnet"` shape that
|
|
402
|
+
* `createVault` and `buildOwnerTransaction` accept. `validateNetwork` has
|
|
403
|
+
* already gated the input by the time this runs.
|
|
404
|
+
*/
|
|
405
|
+
function toBuildNetwork(network) {
|
|
406
|
+
// After validateNetwork, network is one of "devnet", "mainnet", "mainnet-beta".
|
|
407
|
+
// createVault accepts only the short literal; "mainnet-beta" → "mainnet".
|
|
408
|
+
return network === "devnet" ? "devnet" : "mainnet";
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Wrap `getMinimumBalanceForRentExemption` with explicit defensive checks.
|
|
412
|
+
* If the RPC returns `0n` or anything non-bigint, we surface a typed
|
|
413
|
+
* `SigilSdkDomainError` instead of producing a preview that lies about
|
|
414
|
+
* cost. Caller errors propagate with cause attached.
|
|
415
|
+
*/
|
|
416
|
+
async function fetchRentForSize(rpc, size, pdaName) {
|
|
417
|
+
const rent = await rpc.getMinimumBalanceForRentExemption(BigInt(size)).send();
|
|
418
|
+
if (typeof rent !== "bigint") {
|
|
419
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_PARAMS, `getMinimumBalanceForRentExemption returned non-bigint for ${pdaName} (size=${size})`, { context: { field: pdaName, received: typeof rent } });
|
|
420
|
+
}
|
|
421
|
+
// Reject 0n AND negatives. Rent must always be positive — a "free" PDA
|
|
422
|
+
// doesn't exist on Solana, and a negative rent is non-physical and would
|
|
423
|
+
// produce a negative `totalCostUsd` (FE displays "you'll be paid to
|
|
424
|
+
// create this vault"). Both indicate a misbehaving RPC; surface as a
|
|
425
|
+
// typed throw so the caller can retry / switch RPC.
|
|
426
|
+
if (rent <= 0n) {
|
|
427
|
+
throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_PARAMS, `getMinimumBalanceForRentExemption returned ${rent} for ${pdaName} (size=${size}); ` +
|
|
428
|
+
`expected a positive lamport value. RPC may be misconfigured or returning stale data.`, { context: { field: pdaName, received: rent } });
|
|
429
|
+
}
|
|
430
|
+
return rent;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Build the warnings array. Sorted by `code` ascending so the FE's React
|
|
434
|
+
* keys are stable across re-types (no banner flicker). Returns an empty
|
|
435
|
+
* array when nothing fires; the caller converts to `undefined` for the
|
|
436
|
+
* preview shape.
|
|
437
|
+
*/
|
|
438
|
+
function buildWarnings(config) {
|
|
439
|
+
const warnings = [];
|
|
440
|
+
if (config.dailyCapUsd === 0n) {
|
|
441
|
+
warnings.push({
|
|
442
|
+
code: "daily_cap_zero",
|
|
443
|
+
severity: "info",
|
|
444
|
+
message: "Daily spending cap is 0. The vault will accept deposits but the " +
|
|
445
|
+
"agent cannot execute any spending action until the cap is raised.",
|
|
446
|
+
field: "dailyCapUsd",
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
if (config.dailyCapUsd > DAILY_CAP_HIGH_THRESHOLD) {
|
|
450
|
+
warnings.push({
|
|
451
|
+
code: "daily_cap_unusually_high",
|
|
452
|
+
severity: "warning",
|
|
453
|
+
message: "Daily spending cap exceeds $1,000,000 — confirm this matches the " +
|
|
454
|
+
"intended risk tolerance.",
|
|
455
|
+
field: "dailyCapUsd",
|
|
456
|
+
suggestedValue: DAILY_CAP_HIGH_THRESHOLD,
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
if (config.protocolMode === 1 && config.protocols.length === 0) {
|
|
460
|
+
warnings.push({
|
|
461
|
+
code: "no_protocols_approved",
|
|
462
|
+
severity: "warning",
|
|
463
|
+
message: "Protocol mode is ALLOWLIST but no protocols are listed; the agent " +
|
|
464
|
+
"cannot reach any DeFi protocol with this policy.",
|
|
465
|
+
field: "protocols",
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
if (config.maxTxSizeUsd > config.dailyCapUsd) {
|
|
469
|
+
warnings.push({
|
|
470
|
+
code: "max_tx_exceeds_daily_cap",
|
|
471
|
+
severity: "warning",
|
|
472
|
+
message: "Max transaction size exceeds daily cap; a single transaction can " +
|
|
473
|
+
"consume the entire 24h budget.",
|
|
474
|
+
field: "maxTxSizeUsd",
|
|
475
|
+
suggestedValue: config.dailyCapUsd,
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
// Sort by code ascending so the FE's React keys stay stable.
|
|
479
|
+
warnings.sort((a, b) => (a.code < b.code ? -1 : a.code > b.code ? 1 : 0));
|
|
480
|
+
// Freeze each warning so callers can't mutate after return. The cast
|
|
481
|
+
// preserves the discriminated-union type Object.freeze would erase to
|
|
482
|
+
// `Readonly<PreviewWarning>`.
|
|
483
|
+
return warnings.map((w) => Object.freeze(w));
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Decode a base64 string to `Uint8Array`. Uses `atob` (built-in in browser
|
|
487
|
+
* and Node ≥ 16) so the kit stays Node-only-free. Validates input shape
|
|
488
|
+
* defensively — `atob` will throw `InvalidCharacterError` on non-base64.
|
|
489
|
+
*/
|
|
490
|
+
function base64ToUint8Array(b64) {
|
|
491
|
+
const binary = atob(b64);
|
|
492
|
+
const bytes = new Uint8Array(binary.length);
|
|
493
|
+
for (let i = 0; i < binary.length; i++) {
|
|
494
|
+
bytes[i] = binary.charCodeAt(i);
|
|
495
|
+
}
|
|
496
|
+
return bytes;
|
|
497
|
+
}
|
|
498
|
+
//# sourceMappingURL=preview-create-vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-create-vault.js","sourceRoot":"","sources":["../src/preview-create-vault.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,35 +5,100 @@
|
|
|
5
5
|
* seed encoding. All 9 PDA types are derivable.
|
|
6
6
|
*/
|
|
7
7
|
import type { Address } from "./kit-adapter.js";
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Minimal shape consumed by {@link getVaultPdaFromState}. The full on-chain
|
|
10
|
+
* `AgentVault` account (see `state/vault.rs`) carries many fields; only the
|
|
11
|
+
* two seed inputs are required to rebuild the PDA, so callers may pass any
|
|
12
|
+
* object that exposes them (typically the result of `fetchAgentVault().data`
|
|
13
|
+
* or a `ResolvedVaultState`).
|
|
14
|
+
*/
|
|
15
|
+
export interface VaultPdaSeedSource {
|
|
16
|
+
/**
|
|
17
|
+
* Phase 8 LBL-01 — the IMMUTABLE seed-key written exactly once in
|
|
18
|
+
* `initialize_vault`. Survives ownership transfer; reads cleanly from
|
|
19
|
+
* on-chain `AgentVault.vault_authority`.
|
|
20
|
+
*/
|
|
21
|
+
vaultAuthority: Address;
|
|
22
|
+
/** The same `vault_id` (u64) supplied to `initialize_vault`. */
|
|
23
|
+
vaultId: bigint;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Derive the AgentVault PDA from its on-chain seeds.
|
|
27
|
+
*
|
|
28
|
+
* **Important — post Phase 8 LBL-01:** the on-chain seed is
|
|
29
|
+
* `vault.vault_authority`, not the current `vault.owner`. The two are
|
|
30
|
+
* IDENTICAL at `initialize_vault` time (the handler writes
|
|
31
|
+
* `vault.vault_authority = owner.key()`), so at vault creation a caller
|
|
32
|
+
* may legitimately pass the initial owner here. After an
|
|
33
|
+
* `accept_ownership_transfer` the two diverge: `vault.owner` becomes the
|
|
34
|
+
* new owner while `vault.vault_authority` stays pinned to the original
|
|
35
|
+
* owner — and the on-chain PDA address is unchanged.
|
|
36
|
+
*
|
|
37
|
+
* If you are deriving a PDA for a vault that has (or might have) been
|
|
38
|
+
* ownership-transferred, prefer {@link getVaultPdaFromState} which reads
|
|
39
|
+
* `vault_authority` directly from on-chain state. Passing the current
|
|
40
|
+
* `owner` here for a transferred vault produces the WRONG address and
|
|
41
|
+
* silently returns a PDA that does not exist on-chain.
|
|
42
|
+
*
|
|
43
|
+
* @param vaultAuthority — the immutable seed-key. At `initialize_vault`
|
|
44
|
+
* time this is the same as `owner`; thereafter callers must read it
|
|
45
|
+
* from `AgentVault.vault_authority`.
|
|
46
|
+
* @param vaultId — the same `u64` passed to `initialize_vault`.
|
|
47
|
+
* @param programAddress — defaults to the canonical Sigil program id.
|
|
48
|
+
*
|
|
49
|
+
* @deprecated NH-4 close (Bucket 2 re-audit 2026-05-21): the parameter
|
|
50
|
+
* was renamed `owner → vaultAuthority` in 0.16.0 to make the LBL-01
|
|
51
|
+
* contract explicit at the type level. Direct callers that historically
|
|
52
|
+
* passed `vault.owner` will now silently derive the WRONG PDA for any
|
|
53
|
+
* ownership-transferred vault. Use {@link getVaultPdaFromState} which
|
|
54
|
+
* takes a `{ vaultAuthority, vaultId }` shape — the field name forces
|
|
55
|
+
* the caller to read the immutable seed from on-chain state rather
|
|
56
|
+
* than assume `owner == vault_authority`. This function stays for
|
|
57
|
+
* pre-LBL-01 backward compatibility (init-time call sites where the
|
|
58
|
+
* two are equal by construction) and will be removed in v0.18.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getVaultPDA(vaultAuthority: Address, vaultId: bigint, programAddress?: Address): Promise<[Address, number]>;
|
|
61
|
+
/**
|
|
62
|
+
* Derive the AgentVault PDA from on-chain state.
|
|
63
|
+
*
|
|
64
|
+
* **Use this AFTER an ownership transfer.** Reads `vault.vault_authority`
|
|
65
|
+
* (the immutable Phase 8 LBL-01 seed-key) instead of the current
|
|
66
|
+
* `vault.owner`, which would resolve to the wrong PDA once
|
|
67
|
+
* `accept_ownership_transfer` has run.
|
|
68
|
+
*
|
|
69
|
+
* Equivalent to calling `getVaultPDA(vault.vaultAuthority, vault.vaultId)`,
|
|
70
|
+
* but the dedicated name documents the intent at the call site.
|
|
71
|
+
*/
|
|
72
|
+
export declare function getVaultPdaFromState(vault: VaultPdaSeedSource, programAddress?: Address): Promise<[Address, number]>;
|
|
9
73
|
export declare function getPolicyPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
|
|
10
74
|
export declare function getTrackerPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
|
|
11
75
|
export declare function getSessionPDA(vault: Address, agent: Address, tokenMint: Address, programAddress?: Address): Promise<[Address, number]>;
|
|
12
76
|
export declare function getPendingPolicyPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
|
|
13
|
-
export declare function getEscrowPDA(sourceVault: Address, destinationVault: Address, escrowId: bigint, programAddress?: Address): Promise<[Address, number]>;
|
|
14
77
|
export declare function getAgentOverlayPDA(vault: Address, shardIndex?: number, programAddress?: Address): Promise<[Address, number]>;
|
|
15
|
-
export declare function getConstraintsPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
|
|
16
|
-
export declare function getPendingConstraintsPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
|
|
17
78
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
79
|
+
* Phase 7 — derive PDA for `AuditLogSuccess` at `[b"audit_success", vault]`.
|
|
80
|
+
* Allocated at vault creation, written by every mutating instruction that
|
|
81
|
+
* lands on the success path. Closed at `close_vault`.
|
|
82
|
+
*/
|
|
83
|
+
export declare function getAuditLogSuccessPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
|
|
84
|
+
/**
|
|
85
|
+
* Phase 7 — derive PDA for `AuditLogRejected` at `[b"audit_rejected", vault]`.
|
|
86
|
+
* Audit #2 F-19 split: keeps rejected-finalize bursts out of the success
|
|
87
|
+
* buffer's blast radius.
|
|
21
88
|
*/
|
|
22
|
-
export declare function
|
|
89
|
+
export declare function getAuditLogRejectedPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
|
|
23
90
|
export interface ResolveAccountsInput {
|
|
24
91
|
vault: Address;
|
|
25
92
|
agent: Address;
|
|
26
93
|
tokenMint: Address;
|
|
27
94
|
outputMint?: Address;
|
|
28
95
|
feeDestination?: Address;
|
|
29
|
-
hasConstraints?: boolean;
|
|
30
96
|
}
|
|
31
97
|
export interface ResolvedAccounts {
|
|
32
98
|
vault: Address;
|
|
33
99
|
policyPda: Address;
|
|
34
100
|
trackerPda: Address;
|
|
35
101
|
sessionPda: Address;
|
|
36
|
-
constraintsPda?: Address;
|
|
37
102
|
agentOverlayPda?: Address;
|
|
38
103
|
}
|
|
39
104
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-accounts.d.ts","sourceRoot":"","sources":["../src/resolve-accounts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-accounts.d.ts","sourceRoot":"","sources":["../src/resolve-accounts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,kBAAkB,CAAC;AAIpE;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,WAAW,CAC/B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAU5B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,EACzB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAE5B;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,OAAO,EAClB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAW5B;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAID,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,OAAO,EACd,UAAU,GAAE,MAAU,EACtB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAID,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,gBAAgB,CAAC,CAkB3B"}
|