@wuwei-labs/srsly 2.3.3-canary.36.16828734028.0 → 3.0.0-beta.1
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 +126 -462
- package/dist/cjs/accounts/borrower.js +47 -0
- package/dist/cjs/accounts/borrower.js.map +1 -0
- package/dist/cjs/accounts/config.js +47 -0
- package/dist/cjs/accounts/config.js.map +1 -0
- package/dist/cjs/accounts/contract.js +47 -0
- package/dist/cjs/accounts/contract.js.map +1 -0
- package/dist/cjs/accounts/fleet.js +77 -0
- package/dist/cjs/accounts/fleet.js.map +1 -0
- package/dist/cjs/accounts/rental.js +47 -0
- package/dist/cjs/accounts/rental.js.map +1 -0
- package/dist/cjs/demos.js +124 -59
- package/dist/cjs/demos.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/borrowerState.js +84 -0
- package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -0
- package/dist/cjs/generated/codama/accounts/configState.js +37 -52
- package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/contractState.js +27 -51
- package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/index.js +5 -2
- package/dist/cjs/generated/codama/accounts/index.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/memberState.js +78 -0
- package/dist/cjs/generated/codama/accounts/memberState.js.map +1 -0
- package/dist/cjs/generated/codama/accounts/rentalState.js +23 -59
- package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/thread.js +45 -61
- package/dist/cjs/generated/codama/accounts/thread.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/vaultState.js +82 -0
- package/dist/cjs/generated/codama/accounts/vaultState.js.map +1 -0
- package/dist/cjs/generated/codama/errors/index.js +2 -2
- package/dist/cjs/generated/codama/errors/srsly.js +158 -19
- package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/index.js +2 -2
- package/dist/cjs/generated/codama/instructions/acceptRental.js +107 -40
- package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/cancelRental.js +53 -56
- package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/captureRental.js +129 -0
- package/dist/cjs/generated/codama/instructions/captureRental.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/claimBorrower.js +222 -0
- package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/claimBorrowerPayments.js +225 -0
- package/dist/cjs/generated/codama/instructions/claimBorrowerPayments.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/claimContractPayments.js +230 -0
- package/dist/cjs/generated/codama/instructions/claimContractPayments.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeBorrower.js +84 -0
- package/dist/cjs/generated/codama/instructions/closeBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeContract.js +140 -31
- package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/closeRental.js +31 -28
- package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createConfig.js +212 -0
- package/dist/cjs/generated/codama/instructions/createConfig.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/createContract.js +47 -45
- package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js +126 -0
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/deleteConfig.js +193 -0
- package/dist/cjs/generated/codama/instructions/deleteConfig.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/deleteContract.js +115 -0
- package/dist/cjs/generated/codama/instructions/deleteContract.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/deleteRental.js +115 -0
- package/dist/cjs/generated/codama/instructions/deleteRental.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/discountBorrower.js +118 -0
- package/dist/cjs/generated/codama/instructions/discountBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/index.js +15 -4
- package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/payRental.js +95 -68
- package/dist/cjs/generated/codama/instructions/payRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/{resetRental.js → releaseRental.js} +79 -38
- package/dist/cjs/generated/codama/instructions/releaseRental.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/reserveRental.js +255 -0
- package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/{initializeConfig.js → updateBorrower.js} +45 -52
- package/dist/cjs/generated/codama/instructions/updateBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/updateConfig.js +41 -32
- package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateContract.js +134 -0
- package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -0
- package/dist/cjs/generated/codama/programs/index.js +2 -2
- package/dist/cjs/generated/codama/programs/srsly.js +74 -18
- package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/shared/index.js +2 -2
- package/dist/cjs/generated/codama/shared/index.js.map +1 -1
- package/dist/cjs/generated/codama/types/capturedFlagData.js +31 -0
- package/dist/cjs/generated/codama/types/capturedFlagData.js.map +1 -0
- package/dist/cjs/generated/codama/types/index.js +7 -9
- package/dist/cjs/generated/codama/types/index.js.map +1 -1
- package/dist/cjs/generated/codama/types/memberConfig.js +33 -0
- package/dist/cjs/generated/codama/types/memberConfig.js.map +1 -0
- package/dist/cjs/generated/codama/types/memberType.js +55 -0
- package/dist/cjs/generated/codama/types/memberType.js.map +1 -0
- package/dist/cjs/generated/codama/types/paymentFrequency.js +2 -2
- package/dist/cjs/generated/codama/types/schedule.js +65 -0
- package/dist/cjs/generated/codama/types/schedule.js.map +1 -0
- package/dist/cjs/generated/codama/types/signal.js +48 -0
- package/dist/cjs/generated/codama/types/signal.js.map +1 -0
- package/dist/cjs/generated/codama/types/trigger.js +36 -23
- package/dist/cjs/generated/codama/types/trigger.js.map +1 -1
- package/dist/cjs/index.js +172 -245
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instructions/acceptRental.js +153 -0
- package/dist/cjs/instructions/acceptRental.js.map +1 -0
- package/dist/cjs/instructions/cancelRental.js +100 -0
- package/dist/cjs/instructions/cancelRental.js.map +1 -0
- package/dist/cjs/instructions/captureRental.js +85 -0
- package/dist/cjs/instructions/captureRental.js.map +1 -0
- package/dist/cjs/instructions/claimBorrower.js +66 -0
- package/dist/cjs/instructions/claimBorrower.js.map +1 -0
- package/dist/cjs/instructions/claimBorrowerPayments.js +69 -0
- package/dist/cjs/instructions/claimBorrowerPayments.js.map +1 -0
- package/dist/cjs/instructions/claimContractPayments.js +79 -0
- package/dist/cjs/instructions/claimContractPayments.js.map +1 -0
- package/dist/cjs/instructions/closeBorrower.js +60 -0
- package/dist/cjs/instructions/closeBorrower.js.map +1 -0
- package/dist/cjs/instructions/closeContract.js +120 -0
- package/dist/cjs/instructions/closeContract.js.map +1 -0
- package/dist/cjs/instructions/closeRental.js +105 -0
- package/dist/cjs/instructions/closeRental.js.map +1 -0
- package/dist/cjs/instructions/createConfig.js +74 -0
- package/dist/cjs/instructions/createConfig.js.map +1 -0
- package/dist/cjs/instructions/createContract.js +131 -0
- package/dist/cjs/instructions/createContract.js.map +1 -0
- package/dist/cjs/instructions/deleteBorrower.js +60 -0
- package/dist/cjs/instructions/deleteBorrower.js.map +1 -0
- package/dist/cjs/instructions/deleteConfig.js +79 -0
- package/dist/cjs/instructions/deleteConfig.js.map +1 -0
- package/dist/cjs/instructions/deleteRental.js +75 -0
- package/dist/cjs/instructions/deleteRental.js.map +1 -0
- package/dist/cjs/instructions/discountBorrower.js +75 -0
- package/dist/cjs/instructions/discountBorrower.js.map +1 -0
- package/dist/cjs/instructions/releaseRental.js +132 -0
- package/dist/cjs/instructions/releaseRental.js.map +1 -0
- package/dist/cjs/instructions/reserveRental.js +135 -0
- package/dist/cjs/instructions/reserveRental.js.map +1 -0
- package/dist/cjs/instructions/updateBorrower.js +89 -0
- package/dist/cjs/instructions/updateBorrower.js.map +1 -0
- package/dist/cjs/instructions/updateConfig.js +103 -0
- package/dist/cjs/instructions/updateConfig.js.map +1 -0
- package/dist/cjs/instructions/updateContract.js +107 -0
- package/dist/cjs/instructions/updateContract.js.map +1 -0
- package/dist/cjs/package.json +30 -32
- package/dist/cjs/params/amount.js +125 -0
- package/dist/cjs/params/amount.js.map +1 -0
- package/dist/cjs/params/duration.js +120 -0
- package/dist/cjs/params/duration.js.map +1 -0
- package/dist/cjs/params/schedule.js +164 -0
- package/dist/cjs/params/schedule.js.map +1 -0
- package/dist/cjs/pda/constants.js +73 -0
- package/dist/cjs/pda/constants.js.map +1 -0
- package/dist/cjs/pda/index.js +73 -0
- package/dist/cjs/pda/index.js.map +1 -0
- package/dist/cjs/pda/sage.js +175 -0
- package/dist/cjs/pda/sage.js.map +1 -0
- package/dist/cjs/pda/slyvault.js +56 -0
- package/dist/cjs/pda/slyvault.js.map +1 -0
- package/dist/cjs/pda/srsly.js +120 -0
- package/dist/cjs/pda/srsly.js.map +1 -0
- package/dist/cjs/pda/thread.js +64 -0
- package/dist/cjs/pda/thread.js.map +1 -0
- package/dist/cjs/pda/token.js +62 -0
- package/dist/cjs/pda/token.js.map +1 -0
- package/dist/cjs/utils/addresses.js +90 -0
- package/dist/cjs/utils/addresses.js.map +1 -0
- package/dist/cjs/utils/config.js +100 -187
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/index.js +32 -28
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/instructions.js +79 -0
- package/dist/cjs/utils/instructions.js.map +1 -0
- package/dist/cjs/utils/signer.js +113 -94
- package/dist/cjs/utils/signer.js.map +1 -1
- package/dist/cjs/utils/web3js.js +76 -0
- package/dist/cjs/utils/web3js.js.map +1 -0
- package/dist/cjs/version.js +7 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/accounts/borrower.js +44 -0
- package/dist/esm/accounts/borrower.js.map +1 -0
- package/dist/esm/accounts/config.js +44 -0
- package/dist/esm/accounts/config.js.map +1 -0
- package/dist/esm/accounts/contract.js +44 -0
- package/dist/esm/accounts/contract.js.map +1 -0
- package/dist/esm/accounts/fleet.js +74 -0
- package/dist/esm/accounts/fleet.js.map +1 -0
- package/dist/esm/accounts/rental.js +44 -0
- package/dist/esm/accounts/rental.js.map +1 -0
- package/dist/esm/demos.js +123 -18
- package/dist/esm/demos.js.map +1 -1
- package/dist/esm/generated/codama/accounts/borrowerState.js +72 -0
- package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -0
- package/dist/esm/generated/codama/accounts/configState.js +38 -53
- package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/contractState.js +28 -52
- package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/index.js +5 -2
- package/dist/esm/generated/codama/accounts/index.js.map +1 -1
- package/dist/esm/generated/codama/accounts/memberState.js +66 -0
- package/dist/esm/generated/codama/accounts/memberState.js.map +1 -0
- package/dist/esm/generated/codama/accounts/rentalState.js +23 -60
- package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/thread.js +47 -63
- package/dist/esm/generated/codama/accounts/thread.js.map +1 -1
- package/dist/esm/generated/codama/accounts/vaultState.js +70 -0
- package/dist/esm/generated/codama/accounts/vaultState.js.map +1 -0
- package/dist/esm/generated/codama/errors/index.js +2 -2
- package/dist/esm/generated/codama/errors/srsly.js +156 -18
- package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
- package/dist/esm/generated/codama/index.js +2 -2
- package/dist/esm/generated/codama/instructions/acceptRental.js +107 -40
- package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/cancelRental.js +54 -57
- package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/captureRental.js +119 -0
- package/dist/esm/generated/codama/instructions/captureRental.js.map +1 -0
- package/dist/esm/generated/codama/instructions/claimBorrower.js +212 -0
- package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/claimContractPayments.js +220 -0
- package/dist/esm/generated/codama/instructions/claimContractPayments.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeBorrower.js +75 -0
- package/dist/esm/generated/codama/instructions/closeBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeContract.js +142 -33
- package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/closeRental.js +31 -28
- package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createConfig.js +202 -0
- package/dist/esm/generated/codama/instructions/createConfig.js.map +1 -0
- package/dist/esm/generated/codama/instructions/createContract.js +48 -46
- package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/deleteBorrower.js +116 -0
- package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/deleteConfig.js +183 -0
- package/dist/esm/generated/codama/instructions/deleteConfig.js.map +1 -0
- package/dist/esm/generated/codama/instructions/deleteContract.js +105 -0
- package/dist/esm/generated/codama/instructions/deleteContract.js.map +1 -0
- package/dist/esm/generated/codama/instructions/deleteRental.js +105 -0
- package/dist/esm/generated/codama/instructions/deleteRental.js.map +1 -0
- package/dist/esm/generated/codama/instructions/discountBorrower.js +108 -0
- package/dist/esm/generated/codama/instructions/discountBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/index.js +15 -4
- package/dist/esm/generated/codama/instructions/index.js.map +1 -1
- package/dist/esm/generated/codama/instructions/payRental.js +95 -68
- package/dist/esm/generated/codama/instructions/payRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/{resetRental.js → releaseRental.js} +73 -32
- package/dist/esm/generated/codama/instructions/releaseRental.js.map +1 -0
- package/dist/esm/generated/codama/instructions/reserveRental.js +245 -0
- package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -0
- package/dist/esm/generated/codama/instructions/{initializeConfig.js → updateBorrower.js} +38 -45
- package/dist/esm/generated/codama/instructions/updateBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/updateConfig.js +42 -33
- package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateContract.js +124 -0
- package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -0
- package/dist/esm/generated/codama/programs/index.js +2 -2
- package/dist/esm/generated/codama/programs/srsly.js +74 -18
- package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
- package/dist/esm/generated/codama/shared/index.js +2 -2
- package/dist/esm/generated/codama/shared/index.js.map +1 -1
- package/dist/esm/generated/codama/types/capturedFlagData.js +26 -0
- package/dist/esm/generated/codama/types/capturedFlagData.js.map +1 -0
- package/dist/esm/generated/codama/types/index.js +7 -9
- package/dist/esm/generated/codama/types/index.js.map +1 -1
- package/dist/esm/generated/codama/types/memberConfig.js +28 -0
- package/dist/esm/generated/codama/types/memberConfig.js.map +1 -0
- package/dist/esm/generated/codama/types/memberType.js +48 -0
- package/dist/esm/generated/codama/types/memberType.js.map +1 -0
- package/dist/esm/generated/codama/types/paymentFrequency.js +2 -2
- package/dist/esm/generated/codama/types/schedule.js +58 -0
- package/dist/esm/generated/codama/types/schedule.js.map +1 -0
- package/dist/esm/generated/codama/types/signal.js +41 -0
- package/dist/esm/generated/codama/types/signal.js.map +1 -0
- package/dist/esm/generated/codama/types/trigger.js +37 -24
- package/dist/esm/generated/codama/types/trigger.js.map +1 -1
- package/dist/esm/index.js +78 -208
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instructions/acceptRental.js +150 -0
- package/dist/esm/instructions/acceptRental.js.map +1 -0
- package/dist/esm/instructions/cancelRental.js +97 -0
- package/dist/esm/instructions/cancelRental.js.map +1 -0
- package/dist/esm/instructions/captureRental.js +82 -0
- package/dist/esm/instructions/captureRental.js.map +1 -0
- package/dist/esm/instructions/claimBorrower.js +63 -0
- package/dist/esm/instructions/claimBorrower.js.map +1 -0
- package/dist/esm/instructions/claimContractPayments.js +76 -0
- package/dist/esm/instructions/claimContractPayments.js.map +1 -0
- package/dist/esm/instructions/closeBorrower.js +57 -0
- package/dist/esm/instructions/closeBorrower.js.map +1 -0
- package/dist/esm/instructions/closeContract.js +117 -0
- package/dist/esm/instructions/closeContract.js.map +1 -0
- package/dist/esm/instructions/closeRental.js +102 -0
- package/dist/esm/instructions/closeRental.js.map +1 -0
- package/dist/esm/instructions/createConfig.js +71 -0
- package/dist/esm/instructions/createConfig.js.map +1 -0
- package/dist/esm/instructions/createContract.js +128 -0
- package/dist/esm/instructions/createContract.js.map +1 -0
- package/dist/esm/instructions/deleteBorrower.js +57 -0
- package/dist/esm/instructions/deleteBorrower.js.map +1 -0
- package/dist/esm/instructions/deleteConfig.js +76 -0
- package/dist/esm/instructions/deleteConfig.js.map +1 -0
- package/dist/esm/instructions/deleteRental.js +72 -0
- package/dist/esm/instructions/deleteRental.js.map +1 -0
- package/dist/esm/instructions/discountBorrower.js +72 -0
- package/dist/esm/instructions/discountBorrower.js.map +1 -0
- package/dist/esm/instructions/releaseRental.js +129 -0
- package/dist/esm/instructions/releaseRental.js.map +1 -0
- package/dist/esm/instructions/reserveRental.js +132 -0
- package/dist/esm/instructions/reserveRental.js.map +1 -0
- package/dist/esm/instructions/updateBorrower.js +86 -0
- package/dist/esm/instructions/updateBorrower.js.map +1 -0
- package/dist/esm/instructions/updateConfig.js +100 -0
- package/dist/esm/instructions/updateConfig.js.map +1 -0
- package/dist/esm/instructions/updateContract.js +104 -0
- package/dist/esm/instructions/updateContract.js.map +1 -0
- package/dist/esm/package.json +30 -32
- package/dist/esm/params/amount.js +119 -0
- package/dist/esm/params/amount.js.map +1 -0
- package/dist/esm/params/duration.js +115 -0
- package/dist/esm/params/duration.js.map +1 -0
- package/dist/esm/params/schedule.js +157 -0
- package/dist/esm/params/schedule.js.map +1 -0
- package/dist/esm/pda/constants.js +67 -0
- package/dist/esm/pda/constants.js.map +1 -0
- package/dist/esm/pda/index.js +42 -0
- package/dist/esm/pda/index.js.map +1 -0
- package/dist/esm/pda/sage.js +168 -0
- package/dist/esm/pda/sage.js.map +1 -0
- package/dist/esm/pda/slyvault.js +53 -0
- package/dist/esm/pda/slyvault.js.map +1 -0
- package/dist/esm/pda/srsly.js +113 -0
- package/dist/esm/pda/srsly.js.map +1 -0
- package/dist/esm/pda/thread.js +61 -0
- package/dist/esm/pda/thread.js.map +1 -0
- package/dist/esm/pda/token.js +59 -0
- package/dist/esm/pda/token.js.map +1 -0
- package/dist/esm/utils/addresses.js +85 -0
- package/dist/esm/utils/addresses.js.map +1 -0
- package/dist/esm/utils/config.js +95 -149
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/esm/utils/index.js +12 -14
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/instructions.js +76 -0
- package/dist/esm/utils/instructions.js.map +1 -0
- package/dist/esm/utils/signer.js +109 -90
- package/dist/esm/utils/signer.js.map +1 -1
- package/dist/esm/utils/web3js.js +72 -0
- package/dist/esm/utils/web3js.js.map +1 -0
- package/dist/esm/version.js +4 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/accounts/borrower.d.ts +34 -0
- package/dist/types/accounts/borrower.d.ts.map +1 -0
- package/dist/types/accounts/config.d.ts +31 -0
- package/dist/types/accounts/config.d.ts.map +1 -0
- package/dist/types/accounts/contract.d.ts +34 -0
- package/dist/types/accounts/contract.d.ts.map +1 -0
- package/dist/types/accounts/fleet.d.ts +49 -0
- package/dist/types/accounts/fleet.d.ts.map +1 -0
- package/dist/types/accounts/rental.d.ts +34 -0
- package/dist/types/accounts/rental.d.ts.map +1 -0
- package/dist/types/demos.d.ts +20 -52
- package/dist/types/demos.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/borrowerState.d.ts +94 -0
- package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -0
- package/dist/types/generated/codama/accounts/configState.d.ts +65 -22
- package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/contractState.d.ts +62 -23
- package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/index.d.ts +5 -2
- package/dist/types/generated/codama/accounts/index.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/memberState.d.ts +58 -0
- package/dist/types/generated/codama/accounts/memberState.d.ts.map +1 -0
- package/dist/types/generated/codama/accounts/rentalState.d.ts +35 -39
- package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/thread.d.ts +44 -51
- package/dist/types/generated/codama/accounts/thread.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/vaultState.d.ts +66 -0
- package/dist/types/generated/codama/accounts/vaultState.d.ts.map +1 -0
- package/dist/types/generated/codama/errors/index.d.ts +2 -2
- package/dist/types/generated/codama/errors/srsly.d.ts +111 -19
- package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/index.d.ts +2 -2
- package/dist/types/generated/codama/instructions/acceptRental.d.ts +60 -45
- package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/cancelRental.d.ts +37 -32
- package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/captureRental.d.ts +59 -0
- package/dist/types/generated/codama/instructions/captureRental.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts +90 -0
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/claimBorrowerPayments.d.ts +75 -0
- package/dist/types/generated/codama/instructions/claimBorrowerPayments.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/claimContractPayments.d.ts +98 -0
- package/dist/types/generated/codama/instructions/claimContractPayments.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeBorrower.d.ts +43 -0
- package/dist/types/generated/codama/instructions/closeBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeContract.d.ts +44 -28
- package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/closeRental.d.ts +38 -34
- package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/createConfig.d.ts +79 -0
- package/dist/types/generated/codama/instructions/createConfig.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/createContract.d.ts +38 -30
- package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +55 -0
- package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/deleteConfig.d.ts +75 -0
- package/dist/types/generated/codama/instructions/deleteConfig.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/deleteContract.d.ts +55 -0
- package/dist/types/generated/codama/instructions/deleteContract.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/deleteRental.d.ts +55 -0
- package/dist/types/generated/codama/instructions/deleteRental.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/discountBorrower.d.ts +56 -0
- package/dist/types/generated/codama/instructions/discountBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/index.d.ts +15 -4
- package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/payRental.d.ts +61 -46
- package/dist/types/generated/codama/instructions/payRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/releaseRental.d.ts +105 -0
- package/dist/types/generated/codama/instructions/releaseRental.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/reserveRental.d.ts +129 -0
- package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/updateBorrower.d.ts +62 -0
- package/dist/types/generated/codama/instructions/updateBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/updateConfig.d.ts +88 -28
- package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateContract.d.ts +88 -0
- package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -0
- package/dist/types/generated/codama/programs/index.d.ts +2 -2
- package/dist/types/generated/codama/programs/srsly.d.ts +57 -21
- package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/shared/index.d.ts +2 -13
- package/dist/types/generated/codama/shared/index.d.ts.map +1 -1
- package/dist/types/generated/codama/types/capturedFlagData.d.ts +35 -0
- package/dist/types/generated/codama/types/capturedFlagData.d.ts.map +1 -0
- package/dist/types/generated/codama/types/index.d.ts +7 -9
- package/dist/types/generated/codama/types/index.d.ts.map +1 -1
- package/dist/types/generated/codama/types/memberConfig.d.ts +33 -0
- package/dist/types/generated/codama/types/memberConfig.d.ts.map +1 -0
- package/dist/types/generated/codama/types/memberType.d.ts +48 -0
- package/dist/types/generated/codama/types/memberType.d.ts.map +1 -0
- package/dist/types/generated/codama/types/paymentFrequency.d.ts +2 -2
- package/dist/types/generated/codama/types/schedule.d.ts +46 -0
- package/dist/types/generated/codama/types/schedule.d.ts.map +1 -0
- package/dist/types/generated/codama/types/signal.d.ts +56 -0
- package/dist/types/generated/codama/types/signal.d.ts.map +1 -0
- package/dist/types/generated/codama/types/trigger.d.ts +45 -34
- package/dist/types/generated/codama/types/trigger.d.ts.map +1 -1
- package/dist/types/index.d.ts +37 -207
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/instructions/acceptRental.d.ts +99 -0
- package/dist/types/instructions/acceptRental.d.ts.map +1 -0
- package/dist/types/instructions/cancelRental.d.ts +90 -0
- package/dist/types/instructions/cancelRental.d.ts.map +1 -0
- package/dist/types/instructions/captureRental.d.ts +58 -0
- package/dist/types/instructions/captureRental.d.ts.map +1 -0
- package/dist/types/instructions/claimBorrower.d.ts +53 -0
- package/dist/types/instructions/claimBorrower.d.ts.map +1 -0
- package/dist/types/instructions/claimBorrowerPayments.d.ts +59 -0
- package/dist/types/instructions/claimBorrowerPayments.d.ts.map +1 -0
- package/dist/types/instructions/claimContractPayments.d.ts +78 -0
- package/dist/types/instructions/claimContractPayments.d.ts.map +1 -0
- package/dist/types/instructions/closeBorrower.d.ts +45 -0
- package/dist/types/instructions/closeBorrower.d.ts.map +1 -0
- package/dist/types/instructions/closeContract.d.ts +91 -0
- package/dist/types/instructions/closeContract.d.ts.map +1 -0
- package/dist/types/instructions/closeRental.d.ts +62 -0
- package/dist/types/instructions/closeRental.d.ts.map +1 -0
- package/dist/types/instructions/createConfig.d.ts +62 -0
- package/dist/types/instructions/createConfig.d.ts.map +1 -0
- package/dist/types/instructions/createContract.d.ts +127 -0
- package/dist/types/instructions/createContract.d.ts.map +1 -0
- package/dist/types/instructions/deleteBorrower.d.ts +53 -0
- package/dist/types/instructions/deleteBorrower.d.ts.map +1 -0
- package/dist/types/instructions/deleteConfig.d.ts +64 -0
- package/dist/types/instructions/deleteConfig.d.ts.map +1 -0
- package/dist/types/instructions/deleteRental.d.ts +67 -0
- package/dist/types/instructions/deleteRental.d.ts.map +1 -0
- package/dist/types/instructions/discountBorrower.d.ts +64 -0
- package/dist/types/instructions/discountBorrower.d.ts.map +1 -0
- package/dist/types/instructions/releaseRental.d.ts +104 -0
- package/dist/types/instructions/releaseRental.d.ts.map +1 -0
- package/dist/types/instructions/reserveRental.d.ts +80 -0
- package/dist/types/instructions/reserveRental.d.ts.map +1 -0
- package/dist/types/instructions/updateBorrower.d.ts +81 -0
- package/dist/types/instructions/updateBorrower.d.ts.map +1 -0
- package/dist/types/instructions/updateConfig.d.ts +142 -0
- package/dist/types/instructions/updateConfig.d.ts.map +1 -0
- package/dist/types/instructions/updateContract.d.ts +113 -0
- package/dist/types/instructions/updateContract.d.ts.map +1 -0
- package/dist/types/params/amount.d.ts +70 -0
- package/dist/types/params/amount.d.ts.map +1 -0
- package/dist/types/params/duration.d.ts +65 -0
- package/dist/types/params/duration.d.ts.map +1 -0
- package/dist/types/params/schedule.d.ts +74 -0
- package/dist/types/params/schedule.d.ts.map +1 -0
- package/dist/types/pda/constants.d.ts +51 -0
- package/dist/types/pda/constants.d.ts.map +1 -0
- package/dist/types/pda/index.d.ts +36 -0
- package/dist/types/pda/index.d.ts.map +1 -0
- package/dist/types/pda/sage.d.ts +69 -0
- package/dist/types/pda/sage.d.ts.map +1 -0
- package/dist/types/pda/slyvault.d.ts +29 -0
- package/dist/types/pda/slyvault.d.ts.map +1 -0
- package/dist/types/pda/srsly.d.ts +40 -0
- package/dist/types/pda/srsly.d.ts.map +1 -0
- package/dist/types/pda/thread.d.ts +31 -0
- package/dist/types/pda/thread.d.ts.map +1 -0
- package/dist/types/pda/token.d.ts +29 -0
- package/dist/types/pda/token.d.ts.map +1 -0
- package/dist/types/utils/addresses.d.ts +75 -0
- package/dist/types/utils/addresses.d.ts.map +1 -0
- package/dist/types/utils/config.d.ts +103 -83
- package/dist/types/utils/config.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +7 -14
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/instructions.d.ts +52 -0
- package/dist/types/utils/instructions.d.ts.map +1 -0
- package/dist/types/utils/signer.d.ts +78 -39
- package/dist/types/utils/signer.d.ts.map +1 -1
- package/dist/types/utils/web3js.d.ts +85 -0
- package/dist/types/utils/web3js.d.ts.map +1 -0
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +32 -47
- package/dist/cjs/config/index.js +0 -12
- package/dist/cjs/config/index.js.map +0 -1
- package/dist/cjs/config/initialize.js +0 -95
- package/dist/cjs/config/initialize.js.map +0 -1
- package/dist/cjs/config/update.js +0 -163
- package/dist/cjs/config/update.js.map +0 -1
- package/dist/cjs/contract/close.js +0 -159
- package/dist/cjs/contract/close.js.map +0 -1
- package/dist/cjs/contract/create.js +0 -259
- package/dist/cjs/contract/create.js.map +0 -1
- package/dist/cjs/contract/index.js +0 -68
- package/dist/cjs/contract/index.js.map +0 -1
- package/dist/cjs/generated/codama/instructions/initializeConfig.js.map +0 -1
- package/dist/cjs/generated/codama/instructions/resetRental.js.map +0 -1
- package/dist/cjs/generated/codama/types/clockData.js +0 -58
- package/dist/cjs/generated/codama/types/clockData.js.map +0 -1
- package/dist/cjs/generated/codama/types/equality.js +0 -30
- package/dist/cjs/generated/codama/types/equality.js.map +0 -1
- package/dist/cjs/generated/codama/types/execContext.js +0 -68
- package/dist/cjs/generated/codama/types/execContext.js.map +0 -1
- package/dist/cjs/generated/codama/types/serializableAccount.js +0 -58
- package/dist/cjs/generated/codama/types/serializableAccount.js.map +0 -1
- package/dist/cjs/generated/codama/types/serializableInstruction.js +0 -59
- package/dist/cjs/generated/codama/types/serializableInstruction.js.map +0 -1
- package/dist/cjs/generated/codama/types/threadResponse.js +0 -68
- package/dist/cjs/generated/codama/types/threadResponse.js.map +0 -1
- package/dist/cjs/generated/codama/types/triggerContext.js +0 -49
- package/dist/cjs/generated/codama/types/triggerContext.js.map +0 -1
- package/dist/cjs/idl/index.js +0 -27
- package/dist/cjs/idl/index.js.map +0 -1
- package/dist/cjs/idl/srsly-data.js +0 -3140
- package/dist/cjs/idl/srsly-data.js.map +0 -1
- package/dist/cjs/idl/srsly.json +0 -3104
- package/dist/cjs/rental/accept.js +0 -263
- package/dist/cjs/rental/accept.js.map +0 -1
- package/dist/cjs/rental/cancel.js +0 -184
- package/dist/cjs/rental/cancel.js.map +0 -1
- package/dist/cjs/rental/close.js +0 -184
- package/dist/cjs/rental/close.js.map +0 -1
- package/dist/cjs/rental/index.js +0 -105
- package/dist/cjs/rental/index.js.map +0 -1
- package/dist/cjs/rental/reset.js +0 -192
- package/dist/cjs/rental/reset.js.map +0 -1
- package/dist/cjs/types/payment-frequency.js +0 -87
- package/dist/cjs/types/payment-frequency.js.map +0 -1
- package/dist/cjs/types/srsly.js +0 -3
- package/dist/cjs/types/srsly.js.map +0 -1
- package/dist/cjs/utils/constants.js +0 -78
- package/dist/cjs/utils/constants.js.map +0 -1
- package/dist/cjs/utils/cron.js +0 -204
- package/dist/cjs/utils/cron.js.map +0 -1
- package/dist/cjs/utils/derive-pda.js +0 -415
- package/dist/cjs/utils/derive-pda.js.map +0 -1
- package/dist/cjs/utils/fetch-accounts.js +0 -241
- package/dist/cjs/utils/fetch-accounts.js.map +0 -1
- package/dist/cjs/utils/instruction-converter.js +0 -125
- package/dist/cjs/utils/instruction-converter.js.map +0 -1
- package/dist/cjs/utils/param-converters.js +0 -190
- package/dist/cjs/utils/param-converters.js.map +0 -1
- package/dist/cjs/utils/payment-frequency.js +0 -111
- package/dist/cjs/utils/payment-frequency.js.map +0 -1
- package/dist/cjs/utils/schedule-builder.js +0 -158
- package/dist/cjs/utils/schedule-builder.js.map +0 -1
- package/dist/cjs/utils/schedule-validation.js +0 -136
- package/dist/cjs/utils/schedule-validation.js.map +0 -1
- package/dist/cjs/utils/smart-params.js +0 -52
- package/dist/cjs/utils/smart-params.js.map +0 -1
- package/dist/esm/config/index.js +0 -7
- package/dist/esm/config/index.js.map +0 -1
- package/dist/esm/config/initialize.js +0 -92
- package/dist/esm/config/initialize.js.map +0 -1
- package/dist/esm/config/update.js +0 -159
- package/dist/esm/config/update.js.map +0 -1
- package/dist/esm/contract/close.js +0 -154
- package/dist/esm/contract/close.js.map +0 -1
- package/dist/esm/contract/create.js +0 -255
- package/dist/esm/contract/create.js.map +0 -1
- package/dist/esm/contract/index.js +0 -52
- package/dist/esm/contract/index.js.map +0 -1
- package/dist/esm/generated/codama/instructions/initializeConfig.js.map +0 -1
- package/dist/esm/generated/codama/instructions/resetRental.js.map +0 -1
- package/dist/esm/generated/codama/types/clockData.js +0 -53
- package/dist/esm/generated/codama/types/clockData.js.map +0 -1
- package/dist/esm/generated/codama/types/equality.js +0 -24
- package/dist/esm/generated/codama/types/equality.js.map +0 -1
- package/dist/esm/generated/codama/types/execContext.js +0 -63
- package/dist/esm/generated/codama/types/execContext.js.map +0 -1
- package/dist/esm/generated/codama/types/serializableAccount.js +0 -53
- package/dist/esm/generated/codama/types/serializableAccount.js.map +0 -1
- package/dist/esm/generated/codama/types/serializableInstruction.js +0 -54
- package/dist/esm/generated/codama/types/serializableInstruction.js.map +0 -1
- package/dist/esm/generated/codama/types/threadResponse.js +0 -63
- package/dist/esm/generated/codama/types/threadResponse.js.map +0 -1
- package/dist/esm/generated/codama/types/triggerContext.js +0 -42
- package/dist/esm/generated/codama/types/triggerContext.js.map +0 -1
- package/dist/esm/idl/index.js +0 -21
- package/dist/esm/idl/index.js.map +0 -1
- package/dist/esm/idl/srsly-data.js +0 -3137
- package/dist/esm/idl/srsly-data.js.map +0 -1
- package/dist/esm/idl/srsly.json +0 -3104
- package/dist/esm/rental/accept.js +0 -258
- package/dist/esm/rental/accept.js.map +0 -1
- package/dist/esm/rental/cancel.js +0 -179
- package/dist/esm/rental/cancel.js.map +0 -1
- package/dist/esm/rental/close.js +0 -179
- package/dist/esm/rental/close.js.map +0 -1
- package/dist/esm/rental/index.js +0 -89
- package/dist/esm/rental/index.js.map +0 -1
- package/dist/esm/rental/reset.js +0 -187
- package/dist/esm/rental/reset.js.map +0 -1
- package/dist/esm/types/payment-frequency.js +0 -83
- package/dist/esm/types/payment-frequency.js.map +0 -1
- package/dist/esm/types/srsly.js +0 -2
- package/dist/esm/types/srsly.js.map +0 -1
- package/dist/esm/utils/constants.js +0 -70
- package/dist/esm/utils/constants.js.map +0 -1
- package/dist/esm/utils/cron.js +0 -195
- package/dist/esm/utils/cron.js.map +0 -1
- package/dist/esm/utils/derive-pda.js +0 -402
- package/dist/esm/utils/derive-pda.js.map +0 -1
- package/dist/esm/utils/fetch-accounts.js +0 -233
- package/dist/esm/utils/fetch-accounts.js.map +0 -1
- package/dist/esm/utils/instruction-converter.js +0 -120
- package/dist/esm/utils/instruction-converter.js.map +0 -1
- package/dist/esm/utils/param-converters.js +0 -182
- package/dist/esm/utils/param-converters.js.map +0 -1
- package/dist/esm/utils/payment-frequency.js +0 -104
- package/dist/esm/utils/payment-frequency.js.map +0 -1
- package/dist/esm/utils/schedule-builder.js +0 -153
- package/dist/esm/utils/schedule-builder.js.map +0 -1
- package/dist/esm/utils/schedule-validation.js +0 -132
- package/dist/esm/utils/schedule-validation.js.map +0 -1
- package/dist/esm/utils/smart-params.js +0 -49
- package/dist/esm/utils/smart-params.js.map +0 -1
- package/dist/types/config/index.d.ts +0 -7
- package/dist/types/config/index.d.ts.map +0 -1
- package/dist/types/config/initialize.d.ts +0 -66
- package/dist/types/config/initialize.d.ts.map +0 -1
- package/dist/types/config/update.d.ts +0 -143
- package/dist/types/config/update.d.ts.map +0 -1
- package/dist/types/contract/close.d.ts +0 -124
- package/dist/types/contract/close.d.ts.map +0 -1
- package/dist/types/contract/create.d.ts +0 -150
- package/dist/types/contract/create.d.ts.map +0 -1
- package/dist/types/contract/index.d.ts +0 -52
- package/dist/types/contract/index.d.ts.map +0 -1
- package/dist/types/generated/codama/instructions/initializeConfig.d.ts +0 -60
- package/dist/types/generated/codama/instructions/initializeConfig.d.ts.map +0 -1
- package/dist/types/generated/codama/instructions/resetRental.d.ts +0 -79
- package/dist/types/generated/codama/instructions/resetRental.d.ts.map +0 -1
- package/dist/types/generated/codama/types/clockData.d.ts +0 -30
- package/dist/types/generated/codama/types/clockData.d.ts.map +0 -1
- package/dist/types/generated/codama/types/equality.d.ts +0 -18
- package/dist/types/generated/codama/types/equality.d.ts.map +0 -1
- package/dist/types/generated/codama/types/execContext.d.ts +0 -49
- package/dist/types/generated/codama/types/execContext.d.ts.map +0 -1
- package/dist/types/generated/codama/types/serializableAccount.d.ts +0 -23
- package/dist/types/generated/codama/types/serializableAccount.d.ts.map +0 -1
- package/dist/types/generated/codama/types/serializableInstruction.d.ts +0 -31
- package/dist/types/generated/codama/types/serializableInstruction.d.ts.map +0 -1
- package/dist/types/generated/codama/types/threadResponse.d.ts +0 -43
- package/dist/types/generated/codama/types/threadResponse.d.ts.map +0 -1
- package/dist/types/generated/codama/types/triggerContext.d.ts +0 -75
- package/dist/types/generated/codama/types/triggerContext.d.ts.map +0 -1
- package/dist/types/idl/index.d.ts +0 -21
- package/dist/types/idl/index.d.ts.map +0 -1
- package/dist/types/idl/srsly-data.d.ts +0 -1458
- package/dist/types/idl/srsly-data.d.ts.map +0 -1
- package/dist/types/rental/accept.d.ts +0 -196
- package/dist/types/rental/accept.d.ts.map +0 -1
- package/dist/types/rental/cancel.d.ts +0 -141
- package/dist/types/rental/cancel.d.ts.map +0 -1
- package/dist/types/rental/close.d.ts +0 -130
- package/dist/types/rental/close.d.ts.map +0 -1
- package/dist/types/rental/index.d.ts +0 -89
- package/dist/types/rental/index.d.ts.map +0 -1
- package/dist/types/rental/reset.d.ts +0 -166
- package/dist/types/rental/reset.d.ts.map +0 -1
- package/dist/types/types/payment-frequency.d.ts +0 -55
- package/dist/types/types/payment-frequency.d.ts.map +0 -1
- package/dist/types/types/srsly.d.ts +0 -3111
- package/dist/types/types/srsly.d.ts.map +0 -1
- package/dist/types/utils/constants.d.ts +0 -26
- package/dist/types/utils/constants.d.ts.map +0 -1
- package/dist/types/utils/cron.d.ts +0 -77
- package/dist/types/utils/cron.d.ts.map +0 -1
- package/dist/types/utils/derive-pda.d.ts +0 -213
- package/dist/types/utils/derive-pda.d.ts.map +0 -1
- package/dist/types/utils/fetch-accounts.d.ts +0 -158
- package/dist/types/utils/fetch-accounts.d.ts.map +0 -1
- package/dist/types/utils/instruction-converter.d.ts +0 -171
- package/dist/types/utils/instruction-converter.d.ts.map +0 -1
- package/dist/types/utils/param-converters.d.ts +0 -67
- package/dist/types/utils/param-converters.d.ts.map +0 -1
- package/dist/types/utils/payment-frequency.d.ts +0 -38
- package/dist/types/utils/payment-frequency.d.ts.map +0 -1
- package/dist/types/utils/schedule-builder.d.ts +0 -64
- package/dist/types/utils/schedule-builder.d.ts.map +0 -1
- package/dist/types/utils/schedule-validation.d.ts +0 -36
- package/dist/types/utils/schedule-validation.d.ts.map +0 -1
- package/dist/types/utils/smart-params.d.ts +0 -112
- package/dist/types/utils/smart-params.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amount.js","sourceRoot":"","sources":["../../../src/params/amount.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;GAEG;AACH,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,MAAmB;IAC/C,IAAI,QAAgB,CAAC;IAErB,8BAA8B;IAC9B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,QAAQ,GAAG,MAAM,GAAG,kBAAkB,CAAC;IACzC,CAAC;IACD,uBAAuB;SAClB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACvD,IAAI,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC;QAC/C,CAAC;aAAM,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjE,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClF,CAAC;YACD,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,6EAA6E;gBAC3E,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,wDAAwD,OAAO,MAAM,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpD,0BAA0B;IAC1B,IAAI,cAAc,GAAG,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yCAAyC,cAAc,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,OAAO,GAAG,qBAA2B,CAAC;IAC5C,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,8BAA8B,OAAO,UAAU,cAAc,EAAE,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/E,OAAO,WAAW,GAAG,kBAAkB,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,QAAyB,EAAE,WAAmB,CAAC;IAC1E,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,MAAc,EAAE,EAChB,MAAc,qBAA2B;IAEzC,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,qBAAqB,YAAY,CAAC,QAAQ,CAAC,IAAI;YAC7C,YAAY,YAAY,CAAC,GAAG,CAAC,EAAE,CAClC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,qBAAqB,YAAY,CAAC,QAAQ,CAAC,IAAI;YAC7C,YAAY,YAAY,CAAC,GAAG,CAAC,EAAE,CAClC,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Duration parameter conversion utilities
|
|
3
|
+
*
|
|
4
|
+
* Converts user-friendly duration formats to seconds for use with Solana programs.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Time unit conversion constants
|
|
8
|
+
*/
|
|
9
|
+
const SECONDS_PER_MINUTE = 60;
|
|
10
|
+
const SECONDS_PER_HOUR = 3600;
|
|
11
|
+
const SECONDS_PER_DAY = 86400;
|
|
12
|
+
const SECONDS_PER_WEEK = 604800;
|
|
13
|
+
const SECONDS_PER_MONTH = 2678400; // 31 days
|
|
14
|
+
/**
|
|
15
|
+
* Convert duration parameter to seconds
|
|
16
|
+
*
|
|
17
|
+
* @param duration - Duration in any supported format
|
|
18
|
+
* @returns Duration in seconds
|
|
19
|
+
* @throws Error if duration is invalid or negative
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* convertDuration(3600) // 3600 seconds
|
|
24
|
+
* convertDuration({ hours: 1 }) // 3600 seconds
|
|
25
|
+
* convertDuration({ days: 7 }) // 604800 seconds
|
|
26
|
+
* convertDuration({ weeks: 2 }) // 1209600 seconds
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function convertDuration(duration) {
|
|
30
|
+
// Handle plain number (seconds)
|
|
31
|
+
if (typeof duration === 'number') {
|
|
32
|
+
if (duration < 0) {
|
|
33
|
+
throw new Error(`Duration must be positive, got ${duration}`);
|
|
34
|
+
}
|
|
35
|
+
return Math.floor(duration);
|
|
36
|
+
}
|
|
37
|
+
// Handle object format
|
|
38
|
+
if (typeof duration === 'object' && duration !== null) {
|
|
39
|
+
if ('seconds' in duration && duration.seconds !== undefined) {
|
|
40
|
+
return Math.floor(duration.seconds);
|
|
41
|
+
}
|
|
42
|
+
if ('minutes' in duration && duration.minutes !== undefined) {
|
|
43
|
+
return Math.floor(duration.minutes * SECONDS_PER_MINUTE);
|
|
44
|
+
}
|
|
45
|
+
if ('hours' in duration && duration.hours !== undefined) {
|
|
46
|
+
return Math.floor(duration.hours * SECONDS_PER_HOUR);
|
|
47
|
+
}
|
|
48
|
+
if ('days' in duration && duration.days !== undefined) {
|
|
49
|
+
return Math.floor(duration.days * SECONDS_PER_DAY);
|
|
50
|
+
}
|
|
51
|
+
if ('weeks' in duration && duration.weeks !== undefined) {
|
|
52
|
+
return Math.floor(duration.weeks * SECONDS_PER_WEEK);
|
|
53
|
+
}
|
|
54
|
+
if ('months' in duration && duration.months !== undefined) {
|
|
55
|
+
return Math.floor(duration.months * SECONDS_PER_MONTH);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
throw new Error(`Invalid duration format. Expected number or object with time unit. ` +
|
|
59
|
+
`Got: ${JSON.stringify(duration)}`);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Validate duration limits
|
|
63
|
+
*
|
|
64
|
+
* Ensures duration is within reasonable bounds for rental contracts.
|
|
65
|
+
*
|
|
66
|
+
* @param durationSeconds - Duration in seconds
|
|
67
|
+
* @param min - Minimum allowed duration (default: 1 hour)
|
|
68
|
+
* @param max - Maximum allowed duration (default: 1 year)
|
|
69
|
+
* @throws Error if duration is out of bounds
|
|
70
|
+
*/
|
|
71
|
+
export function validateDuration(durationSeconds, min = SECONDS_PER_HOUR, max = SECONDS_PER_DAY * 365) {
|
|
72
|
+
if (durationSeconds < min) {
|
|
73
|
+
throw new Error(`Duration too short: ${durationSeconds}s. Minimum: ${min}s (${formatDuration(min)})`);
|
|
74
|
+
}
|
|
75
|
+
if (durationSeconds > max) {
|
|
76
|
+
throw new Error(`Duration too long: ${durationSeconds}s. Maximum: ${max}s (${formatDuration(max)})`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Format duration in seconds to human-readable string
|
|
81
|
+
*
|
|
82
|
+
* @param seconds - Duration in seconds
|
|
83
|
+
* @returns Human-readable duration string
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* formatDuration(3600) // "1 hour"
|
|
88
|
+
* formatDuration(86400) // "1 day"
|
|
89
|
+
* formatDuration(7200) // "2 hours"
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export function formatDuration(seconds) {
|
|
93
|
+
if (seconds >= SECONDS_PER_MONTH) {
|
|
94
|
+
const months = Math.floor(seconds / SECONDS_PER_MONTH);
|
|
95
|
+
return `${months} month${months > 1 ? 's' : ''}`;
|
|
96
|
+
}
|
|
97
|
+
if (seconds >= SECONDS_PER_WEEK) {
|
|
98
|
+
const weeks = Math.floor(seconds / SECONDS_PER_WEEK);
|
|
99
|
+
return `${weeks} week${weeks > 1 ? 's' : ''}`;
|
|
100
|
+
}
|
|
101
|
+
if (seconds >= SECONDS_PER_DAY) {
|
|
102
|
+
const days = Math.floor(seconds / SECONDS_PER_DAY);
|
|
103
|
+
return `${days} day${days > 1 ? 's' : ''}`;
|
|
104
|
+
}
|
|
105
|
+
if (seconds >= SECONDS_PER_HOUR) {
|
|
106
|
+
const hours = Math.floor(seconds / SECONDS_PER_HOUR);
|
|
107
|
+
return `${hours} hour${hours > 1 ? 's' : ''}`;
|
|
108
|
+
}
|
|
109
|
+
if (seconds >= SECONDS_PER_MINUTE) {
|
|
110
|
+
const minutes = Math.floor(seconds / SECONDS_PER_MINUTE);
|
|
111
|
+
return `${minutes} minute${minutes > 1 ? 's' : ''}`;
|
|
112
|
+
}
|
|
113
|
+
return `${seconds} second${seconds !== 1 ? 's' : ''}`;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/params/duration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Payment schedule parameter conversion utilities
|
|
3
|
+
*
|
|
4
|
+
* Converts user-friendly schedule formats to strings for use with Solana programs.
|
|
5
|
+
* Supports common shortcuts and cron expressions.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Common schedule shortcuts
|
|
9
|
+
*/
|
|
10
|
+
export const SCHEDULE_SHORTCUTS = [
|
|
11
|
+
'@hourly',
|
|
12
|
+
'@daily',
|
|
13
|
+
'@weekly',
|
|
14
|
+
'@monthly',
|
|
15
|
+
'@yearly',
|
|
16
|
+
'@annually',
|
|
17
|
+
'@decasecond',
|
|
18
|
+
'@minute',
|
|
19
|
+
'hourly',
|
|
20
|
+
'daily',
|
|
21
|
+
'weekly',
|
|
22
|
+
'monthly',
|
|
23
|
+
'yearly',
|
|
24
|
+
'annually',
|
|
25
|
+
'decasecond',
|
|
26
|
+
'minute'
|
|
27
|
+
];
|
|
28
|
+
/**
|
|
29
|
+
* Mapping of shortcuts without @ prefix to their @ equivalents
|
|
30
|
+
*/
|
|
31
|
+
const SHORTCUT_TO_AT_PREFIX = {
|
|
32
|
+
'hourly': '@hourly',
|
|
33
|
+
'daily': '@daily',
|
|
34
|
+
'weekly': '@weekly',
|
|
35
|
+
'monthly': '@monthly',
|
|
36
|
+
'yearly': '@yearly',
|
|
37
|
+
'annually': '@annually',
|
|
38
|
+
'decasecond': '@decasecond',
|
|
39
|
+
'minute': '@minute'
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Basic cron expression validation pattern
|
|
43
|
+
*
|
|
44
|
+
* Supports:
|
|
45
|
+
* - Standard 5-field cron: "0 * * * *"
|
|
46
|
+
* - Extended 6-field cron with seconds: "0 0 * * * *"
|
|
47
|
+
* - @shortcuts: "@hourly", "@daily", etc.
|
|
48
|
+
*/
|
|
49
|
+
const CRON_PATTERN = /^(@\w+|[\d\*\/\-,]+(\s+[\d\*\/\-,]+){4,5})$/;
|
|
50
|
+
/**
|
|
51
|
+
* Normalize payment schedule input to program-compatible format
|
|
52
|
+
*
|
|
53
|
+
* @param schedule - Payment schedule string
|
|
54
|
+
* @returns Normalized schedule string for Solana program
|
|
55
|
+
* @throws Error if schedule format is invalid
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* normalizeSchedule('daily') // '@daily'
|
|
60
|
+
* normalizeSchedule('@hourly') // '@hourly'
|
|
61
|
+
* normalizeSchedule('0 * * * *') // '0 * * * *'
|
|
62
|
+
* normalizeSchedule('0 0 * * * *') // '0 0 * * * *' (with seconds)
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export function normalizeSchedule(schedule) {
|
|
66
|
+
if (!schedule || typeof schedule !== 'string') {
|
|
67
|
+
throw new Error(`Invalid schedule format. Expected string, got: ${typeof schedule}`);
|
|
68
|
+
}
|
|
69
|
+
// Trim whitespace
|
|
70
|
+
const trimmed = schedule.trim();
|
|
71
|
+
if (!trimmed) {
|
|
72
|
+
throw new Error('Schedule cannot be empty');
|
|
73
|
+
}
|
|
74
|
+
// If it already has @ prefix, validate and return
|
|
75
|
+
if (trimmed.startsWith('@')) {
|
|
76
|
+
if (!validateScheduleFormat(trimmed)) {
|
|
77
|
+
throw new Error(`Invalid schedule shortcut: ${trimmed}`);
|
|
78
|
+
}
|
|
79
|
+
return trimmed.toLowerCase();
|
|
80
|
+
}
|
|
81
|
+
// Check if it's a known shortcut without @ prefix
|
|
82
|
+
const lowerTrimmed = trimmed.toLowerCase();
|
|
83
|
+
if (lowerTrimmed in SHORTCUT_TO_AT_PREFIX) {
|
|
84
|
+
return SHORTCUT_TO_AT_PREFIX[lowerTrimmed];
|
|
85
|
+
}
|
|
86
|
+
// Otherwise treat as cron expression - validate and return as-is
|
|
87
|
+
if (!validateScheduleFormat(trimmed)) {
|
|
88
|
+
throw new Error(`Invalid schedule format. Expected @shortcut or cron expression. ` +
|
|
89
|
+
`Valid shortcuts: ${Object.keys(SHORTCUT_TO_AT_PREFIX).join(', ')}. ` +
|
|
90
|
+
`Got: "${trimmed}"`);
|
|
91
|
+
}
|
|
92
|
+
return trimmed;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Validate schedule format
|
|
96
|
+
*
|
|
97
|
+
* Checks if a schedule string is either:
|
|
98
|
+
* - A valid @shortcut
|
|
99
|
+
* - A valid cron expression (5 or 6 fields)
|
|
100
|
+
*
|
|
101
|
+
* @param schedule - Schedule string to validate
|
|
102
|
+
* @returns True if valid, false otherwise
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* validateScheduleFormat('@daily') // true
|
|
107
|
+
* validateScheduleFormat('0 * * * *') // true
|
|
108
|
+
* validateScheduleFormat('invalid') // false
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export function validateScheduleFormat(schedule) {
|
|
112
|
+
if (!schedule || typeof schedule !== 'string') {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
const trimmed = schedule.trim();
|
|
116
|
+
// Check if it's a @shortcut
|
|
117
|
+
if (trimmed.startsWith('@')) {
|
|
118
|
+
const shortcut = trimmed.toLowerCase();
|
|
119
|
+
return SCHEDULE_SHORTCUTS.includes(shortcut);
|
|
120
|
+
}
|
|
121
|
+
// Check if it matches cron pattern
|
|
122
|
+
return CRON_PATTERN.test(trimmed);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Convert schedule string to human-readable description
|
|
126
|
+
*
|
|
127
|
+
* @param schedule - Normalized schedule string
|
|
128
|
+
* @returns Human-readable description
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* formatSchedule('@daily') // "Daily"
|
|
133
|
+
* formatSchedule('@hourly') // "Hourly"
|
|
134
|
+
* formatSchedule('0 * * * *') // "Custom: 0 * * * *"
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
export function formatSchedule(schedule) {
|
|
138
|
+
const trimmed = schedule.trim().toLowerCase();
|
|
139
|
+
// Handle @shortcuts
|
|
140
|
+
if (trimmed.startsWith('@')) {
|
|
141
|
+
const shortcut = trimmed.slice(1); // Remove @
|
|
142
|
+
return shortcut.charAt(0).toUpperCase() + shortcut.slice(1);
|
|
143
|
+
}
|
|
144
|
+
// Handle cron expressions
|
|
145
|
+
return `Custom: ${trimmed}`;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Check if a schedule is a known shortcut
|
|
149
|
+
*
|
|
150
|
+
* @param schedule - Schedule string to check
|
|
151
|
+
* @returns True if it's a shortcut (with or without @)
|
|
152
|
+
*/
|
|
153
|
+
export function isScheduleShortcut(schedule) {
|
|
154
|
+
const lower = schedule.toLowerCase();
|
|
155
|
+
return SCHEDULE_SHORTCUTS.includes(lower);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=schedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../../src/params/schedule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants used for PDA derivation across SRSLY, SAGE, and Thread programs
|
|
3
|
+
* @module pda/constants
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Faction-specific coordinates for starbase derivation in SAGE
|
|
7
|
+
* These coordinates are used to derive starbase PDAs
|
|
8
|
+
*/
|
|
9
|
+
export const FACTION_COORDINATES = {
|
|
10
|
+
mud: { x: 0, y: -39 },
|
|
11
|
+
oni: { x: -40, y: 30 },
|
|
12
|
+
ustur: { x: 40, y: 30 },
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Mapping of numeric faction IDs to faction names
|
|
16
|
+
*/
|
|
17
|
+
export const FACTION_MAPPING = {
|
|
18
|
+
1: 'mud',
|
|
19
|
+
2: 'oni',
|
|
20
|
+
3: 'ustur',
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Seed constants for SAGE program PDA derivation
|
|
24
|
+
*/
|
|
25
|
+
export const STARBASE_SEED = 'Starbase';
|
|
26
|
+
export const STARBASE_PLAYER_SEED = 'starbase_player';
|
|
27
|
+
export const SAGE_PLAYER_PROFILE_SEED = 'sage_player_profile';
|
|
28
|
+
export const PROFILE_FACTION_SEED = 'player_faction';
|
|
29
|
+
/**
|
|
30
|
+
* Seed constants for SRSLY program PDA derivation
|
|
31
|
+
*/
|
|
32
|
+
export const CONTRACT_SEED = 'rental_contract';
|
|
33
|
+
export const RENTAL_SEED = 'rental_state';
|
|
34
|
+
export const RENTAL_AUTHORITY_SEED = 'rental_authority';
|
|
35
|
+
export const BORROWER_STATE_SEED = 'borrower_state';
|
|
36
|
+
export const CONFIG_SEED = 'config';
|
|
37
|
+
/**
|
|
38
|
+
* Seed constants for Thread program (Antegen) PDA derivation
|
|
39
|
+
*/
|
|
40
|
+
export const THREAD_SEED = 'thread';
|
|
41
|
+
/**
|
|
42
|
+
* Type guard to check if a value is a valid faction name
|
|
43
|
+
*/
|
|
44
|
+
export function isValidFactionName(faction) {
|
|
45
|
+
return faction === 'mud' || faction === 'oni' || faction === 'ustur';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get faction name from numeric faction ID
|
|
49
|
+
*/
|
|
50
|
+
export function getFactionName(factionId) {
|
|
51
|
+
const name = FACTION_MAPPING[factionId];
|
|
52
|
+
if (!name) {
|
|
53
|
+
throw new Error(`Invalid faction ID: ${factionId}. Expected 1 (mud), 2 (oni), or 3 (ustur)`);
|
|
54
|
+
}
|
|
55
|
+
return name;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get faction coordinates by name
|
|
59
|
+
*/
|
|
60
|
+
export function getFactionCoordinates(faction) {
|
|
61
|
+
const coords = FACTION_COORDINATES[faction.toLowerCase()];
|
|
62
|
+
if (!coords) {
|
|
63
|
+
throw new Error(`Invalid faction: ${faction}. Expected 'mud', 'oni', or 'ustur'`);
|
|
64
|
+
}
|
|
65
|
+
return coords;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/pda/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6C;IAC3E,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACrB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IACtB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,OAAO;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,OAAO,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,2CAA2C,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,qCAAqC,CACjE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDA (Program Derived Address) derivation utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides helper functions for deriving PDAs across multiple Solana programs:
|
|
5
|
+
* - SRSLY: Contract, rental, borrower state, and config PDAs
|
|
6
|
+
* - SAGE: Player profiles, starbase, and faction PDAs
|
|
7
|
+
* - Antegen: Thread PDAs for automated payments
|
|
8
|
+
* - Token: Associated Token Account (ATA) derivation
|
|
9
|
+
*
|
|
10
|
+
* @module pda
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { deriveContract, deriveGameAccounts, deriveRentalThread } from '@srsly/sdk/pda';
|
|
15
|
+
*
|
|
16
|
+
* // Derive SRSLY contract
|
|
17
|
+
* const contract = await deriveContract(fleetAddress);
|
|
18
|
+
*
|
|
19
|
+
* // Derive all SAGE accounts at once
|
|
20
|
+
* const { profileFaction, starbase, starbasePlayer } = await deriveGameAccounts(
|
|
21
|
+
* playerProfile,
|
|
22
|
+
* 'mud',
|
|
23
|
+
* gameId
|
|
24
|
+
* );
|
|
25
|
+
*
|
|
26
|
+
* // Derive thread for automated payments
|
|
27
|
+
* const thread = await deriveRentalThread(rentalState, rentalAuthority);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
// Export constants
|
|
31
|
+
export { FACTION_COORDINATES, FACTION_MAPPING, STARBASE_SEED, STARBASE_PLAYER_SEED, SAGE_PLAYER_PROFILE_SEED, PROFILE_FACTION_SEED, CONTRACT_SEED, RENTAL_SEED, RENTAL_AUTHORITY_SEED, BORROWER_STATE_SEED, CONFIG_SEED, THREAD_SEED, isValidFactionName, getFactionName, getFactionCoordinates, } from './constants';
|
|
32
|
+
// Export SRSLY program PDAs
|
|
33
|
+
export { deriveContract, deriveRental, deriveRentalAuthority, deriveBorrowerState, deriveConfig, } from './srsly';
|
|
34
|
+
// Export SAGE program PDAs
|
|
35
|
+
export { deriveProfileFaction, deriveSagePlayerProfile, deriveStarbase, deriveStarbasePlayer, deriveGameAccounts, } from './sage';
|
|
36
|
+
// Export Antegen thread PDAs
|
|
37
|
+
export { deriveRentalThread } from './thread';
|
|
38
|
+
// Export token account utilities
|
|
39
|
+
export { deriveAssociatedTokenAccount } from './token';
|
|
40
|
+
// Export Slyvault PDAs
|
|
41
|
+
export { deriveSlyvaultVault } from './slyvault';
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pda/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,mBAAmB;AACnB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,4BAA4B;AAC5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,2BAA2B;AAC3B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,QAAQ,CAAC;AAEhB,6BAA6B;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,iCAAiC;AACjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvD,uBAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDA derivation functions for SAGE and Profile Faction programs
|
|
3
|
+
* @module pda/sage
|
|
4
|
+
*/
|
|
5
|
+
import { address, getProgramDerivedAddress, getAddressEncoder } from '@solana/kit';
|
|
6
|
+
import { getAddresses } from '../utils/config';
|
|
7
|
+
import { PROFILE_FACTION_SEED, SAGE_PLAYER_PROFILE_SEED, STARBASE_SEED, STARBASE_PLAYER_SEED, getFactionCoordinates, getFactionName, } from './constants';
|
|
8
|
+
/**
|
|
9
|
+
* Address encoder for PDA seeds
|
|
10
|
+
*/
|
|
11
|
+
const addressEncoder = getAddressEncoder();
|
|
12
|
+
/**
|
|
13
|
+
* Text encoder for string seeds
|
|
14
|
+
*/
|
|
15
|
+
const textEncoder = new TextEncoder();
|
|
16
|
+
/**
|
|
17
|
+
* Derive the profile faction PDA from a profile address
|
|
18
|
+
* @param profile - The player profile public key
|
|
19
|
+
* @param programAddress - Optional Profile Faction program address (defaults to network-specific address)
|
|
20
|
+
* @returns The derived profile faction PDA
|
|
21
|
+
*/
|
|
22
|
+
export async function deriveProfileFaction(profile, programAddress) {
|
|
23
|
+
const profileAddress = address(typeof profile === 'string' ? profile : profile);
|
|
24
|
+
const program = programAddress
|
|
25
|
+
? address(typeof programAddress === 'string' ? programAddress : programAddress)
|
|
26
|
+
: address(getAddresses().profileFaction);
|
|
27
|
+
// Encode seeds to bytes
|
|
28
|
+
const profileFactionSeedBytes = textEncoder.encode(PROFILE_FACTION_SEED);
|
|
29
|
+
const profileBytes = addressEncoder.encode(profileAddress);
|
|
30
|
+
const [pda] = await getProgramDerivedAddress({
|
|
31
|
+
programAddress: program,
|
|
32
|
+
seeds: [profileFactionSeedBytes, profileBytes],
|
|
33
|
+
});
|
|
34
|
+
return pda;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Derive the SAGE player profile PDA
|
|
38
|
+
* @param profile - The player profile public key
|
|
39
|
+
* @param gameId - The game ID public key
|
|
40
|
+
* @param programAddress - Optional SAGE program address (defaults to network-specific address)
|
|
41
|
+
* @returns The derived SAGE player profile PDA
|
|
42
|
+
*/
|
|
43
|
+
export async function deriveSagePlayerProfile(profile, gameId, programAddress) {
|
|
44
|
+
const profileAddress = address(typeof profile === 'string' ? profile : profile);
|
|
45
|
+
const gameIdAddress = address(typeof gameId === 'string' ? gameId : gameId);
|
|
46
|
+
const program = programAddress
|
|
47
|
+
? address(typeof programAddress === 'string' ? programAddress : programAddress)
|
|
48
|
+
: address(getAddresses().sage);
|
|
49
|
+
// Encode seeds to bytes
|
|
50
|
+
const sagePlayerProfileSeedBytes = textEncoder.encode(SAGE_PLAYER_PROFILE_SEED);
|
|
51
|
+
const profileBytes = addressEncoder.encode(profileAddress);
|
|
52
|
+
const gameIdBytes = addressEncoder.encode(gameIdAddress);
|
|
53
|
+
const [pda] = await getProgramDerivedAddress({
|
|
54
|
+
programAddress: program,
|
|
55
|
+
seeds: [sagePlayerProfileSeedBytes, profileBytes, gameIdBytes],
|
|
56
|
+
});
|
|
57
|
+
return pda;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Derive the starbase PDA from faction and game ID
|
|
61
|
+
* @param faction - Faction name ('mud', 'oni', 'ustur') or faction ID (1, 2, 3)
|
|
62
|
+
* @param gameId - The game ID public key
|
|
63
|
+
* @param programAddress - Optional SAGE program address (defaults to network-specific address)
|
|
64
|
+
* @returns The derived starbase PDA
|
|
65
|
+
*/
|
|
66
|
+
export async function deriveStarbase(faction, gameId, programAddress) {
|
|
67
|
+
const factionName = typeof faction === 'number' ? getFactionName(faction) : faction;
|
|
68
|
+
const coords = getFactionCoordinates(factionName);
|
|
69
|
+
const gameIdAddress = address(typeof gameId === 'string' ? gameId : gameId);
|
|
70
|
+
const program = programAddress
|
|
71
|
+
? address(typeof programAddress === 'string' ? programAddress : programAddress)
|
|
72
|
+
: address(getAddresses().sage);
|
|
73
|
+
// Encode string and address seeds to bytes
|
|
74
|
+
const starbaseSeedBytes = textEncoder.encode(STARBASE_SEED);
|
|
75
|
+
const gameIdBytes = addressEncoder.encode(gameIdAddress);
|
|
76
|
+
// Convert coordinates to little-endian bytes
|
|
77
|
+
const xBuffer = new ArrayBuffer(8);
|
|
78
|
+
const xView = new DataView(xBuffer);
|
|
79
|
+
xView.setBigInt64(0, BigInt(coords.x), true); // true = little endian
|
|
80
|
+
const yBuffer = new ArrayBuffer(8);
|
|
81
|
+
const yView = new DataView(yBuffer);
|
|
82
|
+
yView.setBigInt64(0, BigInt(coords.y), true); // true = little endian
|
|
83
|
+
const [pda] = await getProgramDerivedAddress({
|
|
84
|
+
programAddress: program,
|
|
85
|
+
seeds: [
|
|
86
|
+
starbaseSeedBytes,
|
|
87
|
+
gameIdBytes,
|
|
88
|
+
new Uint8Array(xBuffer),
|
|
89
|
+
new Uint8Array(yBuffer),
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
return pda;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Derive the starbase player PDA
|
|
96
|
+
* @param sagePlayerProfile - The SAGE player profile public key
|
|
97
|
+
* @param starbase - The starbase public key
|
|
98
|
+
* @param starbaseSeqId - Optional starbase sequence ID (defaults to 0)
|
|
99
|
+
* @param programAddress - Optional SAGE program address (defaults to network-specific address)
|
|
100
|
+
* @returns The derived starbase player PDA
|
|
101
|
+
*/
|
|
102
|
+
export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId = 0, programAddress) {
|
|
103
|
+
const profileAddress = address(typeof sagePlayerProfile === 'string' ? sagePlayerProfile : sagePlayerProfile);
|
|
104
|
+
const starbaseAddress = address(typeof starbase === 'string' ? starbase : starbase);
|
|
105
|
+
const program = programAddress
|
|
106
|
+
? address(typeof programAddress === 'string' ? programAddress : programAddress)
|
|
107
|
+
: address(getAddresses().sage);
|
|
108
|
+
// Encode string and address seeds to bytes
|
|
109
|
+
const starbasePlayerSeedBytes = textEncoder.encode(STARBASE_PLAYER_SEED);
|
|
110
|
+
const profileBytes = addressEncoder.encode(profileAddress);
|
|
111
|
+
const starbaseBytes = addressEncoder.encode(starbaseAddress);
|
|
112
|
+
// Convert sequence ID to little-endian u16 bytes
|
|
113
|
+
const seqBuffer = new ArrayBuffer(2);
|
|
114
|
+
const seqView = new DataView(seqBuffer);
|
|
115
|
+
seqView.setUint16(0, starbaseSeqId, true); // true = little endian
|
|
116
|
+
const [pda] = await getProgramDerivedAddress({
|
|
117
|
+
programAddress: program,
|
|
118
|
+
seeds: [
|
|
119
|
+
starbasePlayerSeedBytes,
|
|
120
|
+
profileBytes,
|
|
121
|
+
starbaseBytes,
|
|
122
|
+
new Uint8Array(seqBuffer),
|
|
123
|
+
],
|
|
124
|
+
});
|
|
125
|
+
return pda;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Derive all SAGE game accounts at once (convenience function)
|
|
129
|
+
*
|
|
130
|
+
* This is a helper that derives all three SAGE-related accounts needed for most operations:
|
|
131
|
+
* - Profile faction (from Profile Faction program)
|
|
132
|
+
* - SAGE player profile (from SAGE program)
|
|
133
|
+
* - Starbase (from SAGE program using faction coordinates)
|
|
134
|
+
* - Starbase player (from SAGE program)
|
|
135
|
+
*
|
|
136
|
+
* @param profile - The player profile public key
|
|
137
|
+
* @param faction - Faction name ('mud', 'oni', 'ustur') or faction ID (1, 2, 3)
|
|
138
|
+
* @param gameId - The game ID public key
|
|
139
|
+
* @param starbaseSeqId - Optional starbase sequence ID (defaults to 0)
|
|
140
|
+
* @returns Object containing all derived SAGE accounts
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* const accounts = await deriveGameAccounts(
|
|
145
|
+
* playerProfile,
|
|
146
|
+
* 'mud',
|
|
147
|
+
* gameId
|
|
148
|
+
* );
|
|
149
|
+
* // Returns: { profileFaction, sagePlayerProfile, starbase, starbasePlayer }
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export async function deriveGameAccounts(profile, faction, gameId, starbaseSeqId = 0) {
|
|
153
|
+
// Derive all accounts
|
|
154
|
+
const [profileFaction, sagePlayerProfile, starbase] = await Promise.all([
|
|
155
|
+
deriveProfileFaction(profile),
|
|
156
|
+
deriveSagePlayerProfile(profile, gameId),
|
|
157
|
+
deriveStarbase(faction, gameId),
|
|
158
|
+
]);
|
|
159
|
+
// Derive starbase player (depends on sagePlayerProfile and starbase)
|
|
160
|
+
const starbasePlayer = await deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId);
|
|
161
|
+
return {
|
|
162
|
+
profileFaction,
|
|
163
|
+
sagePlayerProfile,
|
|
164
|
+
starbase,
|
|
165
|
+
starbasePlayer,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=sage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sage.js","sourceRoot":"","sources":["../../../src/pda/sage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slyvault PDA derivation utilities
|
|
3
|
+
* @module pda/slyvault
|
|
4
|
+
*/
|
|
5
|
+
import { address, getProgramDerivedAddress, getAddressEncoder } from '@solana/kit';
|
|
6
|
+
import { deriveAssociatedTokenAccount } from './token';
|
|
7
|
+
/**
|
|
8
|
+
* Slyvault program address
|
|
9
|
+
*/
|
|
10
|
+
const SLYVAULT_PROGRAM = 'VLTm3X1xUXhMYjjEgvwhb6p1ekBvrnYTdVcbHR9Vask';
|
|
11
|
+
/**
|
|
12
|
+
* Slyvault vault seed constant
|
|
13
|
+
*/
|
|
14
|
+
const VAULT_SEED = 'vault';
|
|
15
|
+
const addressEncoder = getAddressEncoder();
|
|
16
|
+
const textEncoder = new TextEncoder();
|
|
17
|
+
/**
|
|
18
|
+
* Derive slyvault vault PDA and its associated token account
|
|
19
|
+
* Vault is created with a specific creator (typically the SRSLY program)
|
|
20
|
+
*
|
|
21
|
+
* @param creator - The creator address (typically SRSLY program)
|
|
22
|
+
* @param mint - The token mint address
|
|
23
|
+
* @param slyvaultProgramAddress - Optional slyvault program address (defaults to mainnet)
|
|
24
|
+
* @returns Object containing vault PDA and its token account
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { deriveSlyvaultVault } from './slyvault';
|
|
29
|
+
*
|
|
30
|
+
* const { vault, vaultTokenAccount } = await deriveSlyvaultVault(
|
|
31
|
+
* srslyProgramAddress,
|
|
32
|
+
* atlasMintAddress
|
|
33
|
+
* );
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export async function deriveSlyvaultVault(creator, mint, slyvaultProgramAddress) {
|
|
37
|
+
const creatorAddress = address(creator);
|
|
38
|
+
const mintAddress = address(mint);
|
|
39
|
+
const slyvaultProgram = slyvaultProgramAddress ? address(slyvaultProgramAddress) : address(SLYVAULT_PROGRAM);
|
|
40
|
+
// Encode all seeds to bytes (Uint8Array)
|
|
41
|
+
const vaultSeedBytes = textEncoder.encode(VAULT_SEED);
|
|
42
|
+
const creatorBytes = addressEncoder.encode(creatorAddress);
|
|
43
|
+
const mintBytes = addressEncoder.encode(mintAddress);
|
|
44
|
+
// Derive vault PDA: ["vault", creator, mint]
|
|
45
|
+
const [vault] = await getProgramDerivedAddress({
|
|
46
|
+
programAddress: slyvaultProgram,
|
|
47
|
+
seeds: [vaultSeedBytes, creatorBytes, mintBytes],
|
|
48
|
+
});
|
|
49
|
+
// Derive vault's associated token account
|
|
50
|
+
const vaultTokenAccount = await deriveAssociatedTokenAccount(vault, mintAddress);
|
|
51
|
+
return { vault, vaultTokenAccount };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=slyvault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slyvault.js","sourceRoot":"","sources":["../../../src/pda/slyvault.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAW,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvD;;GAEG;AACH,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;AAC3C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAyB,EACzB,IAAsB,EACtB,sBAAyC;IAEzC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,eAAe,GAAG,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7G,yCAAyC;IACzC,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAErD,6CAA6C;IAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,wBAAwB,CAAC;QAC7C,cAAc,EAAE,eAAe;QAC/B,KAAK,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC;KACjD,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,MAAM,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAEjF,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACtC,CAAC"}
|