@wuwei-labs/srsly 3.0.0-beta.2 → 3.0.0-beta.21
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 +38 -0
- package/dist/cjs/accounts/borrower.js +79 -15
- package/dist/cjs/accounts/borrower.js.map +1 -1
- package/dist/cjs/accounts/config.js +51 -3
- package/dist/cjs/accounts/config.js.map +1 -1
- package/dist/cjs/accounts/contract.js +52 -1
- package/dist/cjs/accounts/contract.js.map +1 -1
- package/dist/cjs/accounts/fleet.js +2 -1
- package/dist/cjs/accounts/fleet.js.map +1 -1
- package/dist/cjs/accounts/member.js +16 -0
- package/dist/cjs/accounts/member.js.map +1 -0
- package/dist/cjs/accounts/owner.js +105 -0
- package/dist/cjs/accounts/owner.js.map +1 -0
- package/dist/cjs/accounts/rental.js +49 -1
- package/dist/cjs/accounts/rental.js.map +1 -1
- package/dist/cjs/demos.js +337 -34
- package/dist/cjs/demos.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/borrowerState.js +25 -25
- package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/configState.js +55 -48
- package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/contractState.js +59 -42
- package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/fleet.js +103 -0
- package/dist/cjs/generated/codama/accounts/fleet.js.map +1 -0
- package/dist/cjs/generated/codama/accounts/index.js +2 -2
- package/dist/cjs/generated/codama/accounts/index.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/ownerState.js +86 -0
- package/dist/cjs/generated/codama/accounts/ownerState.js.map +1 -0
- package/dist/cjs/generated/codama/accounts/rentalState.js +42 -30
- package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/thread.js +47 -44
- package/dist/cjs/generated/codama/accounts/thread.js.map +1 -1
- package/dist/cjs/generated/codama/errors/srsly.js +61 -19
- package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/acceptRental.js +39 -61
- package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/activateRental.js +193 -0
- package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/cancelRental.js +50 -28
- package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/claimBorrower.js +36 -23
- package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/{claimContractPayments.js → claimOwner.js} +70 -56
- package/dist/cjs/generated/codama/instructions/claimOwner.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/claimRental.js +336 -0
- package/dist/cjs/generated/codama/instructions/claimRental.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeContract.js +17 -85
- package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/closeRental.js +46 -45
- package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createConfig.js +56 -20
- package/dist/cjs/generated/codama/instructions/createConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createContract.js +53 -37
- package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/deleteConfig.js +15 -15
- package/dist/cjs/generated/codama/instructions/deleteConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/deleteContract.js +5 -5
- package/dist/cjs/generated/codama/instructions/deleteRental.js +5 -5
- package/dist/cjs/generated/codama/instructions/index.js +7 -4
- package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/invalidateRental.js +156 -0
- package/dist/cjs/generated/codama/instructions/invalidateRental.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/payRental.js +64 -24
- package/dist/cjs/generated/codama/instructions/payRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/releaseRental.js +8 -49
- package/dist/cjs/generated/codama/instructions/releaseRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/reserveRental.js +41 -22
- package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/scheduleRental.js +265 -0
- package/dist/cjs/generated/codama/instructions/scheduleRental.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/setDelegate.js +79 -0
- package/dist/cjs/generated/codama/instructions/setDelegate.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/updateBorrower.js +9 -9
- package/dist/cjs/generated/codama/instructions/updateBorrower.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateConfig.js +43 -45
- package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateContract.js +24 -22
- package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateOwner.js +79 -0
- package/dist/cjs/generated/codama/instructions/updateOwner.js.map +1 -0
- package/dist/cjs/generated/codama/programs/srsly.js +48 -36
- package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/shared/index.js +8 -8
- package/dist/cjs/generated/codama/types/atlasClaimed.js +33 -0
- package/dist/cjs/generated/codama/types/atlasClaimed.js.map +1 -0
- package/dist/cjs/generated/codama/types/borrowerInitialized.js +29 -0
- package/dist/cjs/generated/codama/types/borrowerInitialized.js.map +1 -0
- package/dist/cjs/generated/codama/types/cargoStats.js +43 -0
- package/dist/cjs/generated/codama/types/cargoStats.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractClosed.js +31 -0
- package/dist/cjs/generated/codama/types/contractClosed.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractCreated.js +33 -0
- package/dist/cjs/generated/codama/types/contractCreated.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractDelegateSet.js +31 -0
- package/dist/cjs/generated/codama/types/contractDelegateSet.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractPendingClose.js +31 -0
- package/dist/cjs/generated/codama/types/contractPendingClose.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractUpdated.js +34 -0
- package/dist/cjs/generated/codama/types/contractUpdated.js.map +1 -0
- package/dist/cjs/generated/codama/types/discountAuthorization.js +33 -0
- package/dist/cjs/generated/codama/types/discountAuthorization.js.map +1 -0
- package/dist/cjs/generated/codama/types/fieldUpdate.js +29 -0
- package/dist/cjs/generated/codama/types/fieldUpdate.js.map +1 -0
- package/dist/cjs/generated/codama/types/index.js +25 -3
- package/dist/cjs/generated/codama/types/index.js.map +1 -1
- package/dist/cjs/generated/codama/types/miscStats.js +47 -0
- package/dist/cjs/generated/codama/types/miscStats.js.map +1 -0
- package/dist/cjs/generated/codama/types/movementStats.js +39 -0
- package/dist/cjs/generated/codama/types/movementStats.js.map +1 -0
- package/dist/cjs/generated/codama/types/optionalNonSystemPubkey.js +23 -0
- package/dist/cjs/generated/codama/types/optionalNonSystemPubkey.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalAccepted.js +43 -0
- package/dist/cjs/generated/codama/types/rentalAccepted.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalActivated.js +31 -0
- package/dist/cjs/generated/codama/types/rentalActivated.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalCancelled.js +35 -0
- package/dist/cjs/generated/codama/types/rentalCancelled.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalClaimed.js +41 -0
- package/dist/cjs/generated/codama/types/rentalClaimed.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalClosed.js +33 -0
- package/dist/cjs/generated/codama/types/rentalClosed.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalPaymentProcessed.js +33 -0
- package/dist/cjs/generated/codama/types/rentalPaymentProcessed.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalScheduled.js +35 -0
- package/dist/cjs/generated/codama/types/rentalScheduled.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalStatus.js +31 -0
- package/dist/cjs/generated/codama/types/rentalStatus.js.map +1 -0
- package/dist/cjs/generated/codama/types/reservationCreated.js +35 -0
- package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -0
- package/dist/cjs/generated/codama/types/reservationKnockoff.js +35 -0
- package/dist/cjs/generated/codama/types/reservationKnockoff.js.map +1 -0
- package/dist/cjs/generated/codama/types/schedule.js +14 -14
- package/dist/cjs/generated/codama/types/shipCounts.js +45 -0
- package/dist/cjs/generated/codama/types/shipCounts.js.map +1 -0
- package/dist/cjs/generated/codama/types/shipStats.js +32 -0
- package/dist/cjs/generated/codama/types/shipStats.js.map +1 -0
- package/dist/cjs/generated/codama/types/signal.js +12 -12
- package/dist/cjs/generated/codama/types/trigger.js +36 -36
- package/dist/cjs/index.js +64 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instructions/acceptRental.js +82 -24
- package/dist/cjs/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/instructions/approveAffiliate.js +11 -0
- package/dist/cjs/instructions/approveAffiliate.js.map +1 -0
- package/dist/cjs/instructions/cancelRental.js +12 -5
- package/dist/cjs/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/instructions/claimBorrower.js +7 -3
- package/dist/cjs/instructions/claimBorrower.js.map +1 -1
- package/dist/cjs/instructions/claimRental.js +201 -0
- package/dist/cjs/instructions/claimRental.js.map +1 -0
- package/dist/cjs/instructions/closeContract.js +4 -3
- package/dist/cjs/instructions/closeContract.js.map +1 -1
- package/dist/cjs/instructions/closeRental.js +42 -12
- package/dist/cjs/instructions/closeRental.js.map +1 -1
- package/dist/cjs/instructions/createAffiliate.js +73 -0
- package/dist/cjs/instructions/createAffiliate.js.map +1 -0
- package/dist/cjs/instructions/createConfig.js +12 -0
- package/dist/cjs/instructions/createConfig.js.map +1 -1
- package/dist/cjs/instructions/createContract.js +12 -5
- package/dist/cjs/instructions/createContract.js.map +1 -1
- package/dist/cjs/instructions/deleteConfig.js +16 -5
- package/dist/cjs/instructions/deleteConfig.js.map +1 -1
- package/dist/cjs/instructions/deleteContract.js +79 -0
- package/dist/cjs/instructions/deleteContract.js.map +1 -0
- package/dist/cjs/instructions/index.js +56 -0
- package/dist/cjs/instructions/index.js.map +1 -0
- package/dist/cjs/instructions/invalidateRental.js +101 -0
- package/dist/cjs/instructions/invalidateRental.js.map +1 -0
- package/dist/cjs/instructions/ownerClaim.js +110 -0
- package/dist/cjs/instructions/ownerClaim.js.map +1 -0
- package/dist/cjs/instructions/ownerUpdate.js +68 -0
- package/dist/cjs/instructions/ownerUpdate.js.map +1 -0
- package/dist/cjs/instructions/releaseRental.js +20 -53
- package/dist/cjs/instructions/releaseRental.js.map +1 -1
- package/dist/cjs/instructions/removeAffiliate.js +11 -0
- package/dist/cjs/instructions/removeAffiliate.js.map +1 -0
- package/dist/cjs/instructions/reserveRental.js +8 -6
- package/dist/cjs/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/instructions/setDelegate.js +72 -0
- package/dist/cjs/instructions/setDelegate.js.map +1 -0
- package/dist/cjs/instructions/updateAffiliate.js +57 -0
- package/dist/cjs/instructions/updateAffiliate.js.map +1 -0
- package/dist/cjs/instructions/updateBorrower.js +4 -2
- package/dist/cjs/instructions/updateBorrower.js.map +1 -1
- package/dist/cjs/instructions/updateConfig.js +0 -1
- package/dist/cjs/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/instructions/updateContract.js +12 -5
- package/dist/cjs/instructions/updateContract.js.map +1 -1
- package/dist/cjs/kit/index.js +34 -0
- package/dist/cjs/kit/index.js.map +1 -0
- package/dist/cjs/legacy/index.js +127 -0
- package/dist/cjs/legacy/index.js.map +1 -0
- package/dist/cjs/package.json +9 -5
- package/dist/cjs/params/amount.js +4 -4
- package/dist/cjs/pda/constants.js +2 -1
- package/dist/cjs/pda/constants.js.map +1 -1
- package/dist/cjs/pda/index.js +7 -2
- package/dist/cjs/pda/index.js.map +1 -1
- package/dist/cjs/pda/lookupTable.js +59 -0
- package/dist/cjs/pda/lookupTable.js.map +1 -0
- package/dist/cjs/pda/slyvault.js +5 -49
- package/dist/cjs/pda/slyvault.js.map +1 -1
- package/dist/cjs/pda/srsly.js +32 -6
- package/dist/cjs/pda/srsly.js.map +1 -1
- package/dist/cjs/pda/thread.js +2 -2
- package/dist/cjs/utils/addresses.js +7 -1
- package/dist/cjs/utils/addresses.js.map +1 -1
- package/dist/cjs/utils/config.js +20 -2
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/discountAuth.js +157 -0
- package/dist/cjs/utils/discountAuth.js.map +1 -0
- package/dist/cjs/utils/index.js +27 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/instructionResult.js +76 -0
- package/dist/cjs/utils/instructionResult.js.map +1 -0
- package/dist/cjs/utils/instructions.js +12 -17
- package/dist/cjs/utils/instructions.js.map +1 -1
- package/dist/cjs/utils/lookupTable.js +143 -0
- package/dist/cjs/utils/lookupTable.js.map +1 -0
- package/dist/cjs/utils/rental.js +135 -0
- package/dist/cjs/utils/rental.js.map +1 -0
- package/dist/cjs/utils/rpc.js +57 -0
- package/dist/cjs/utils/rpc.js.map +1 -0
- package/dist/cjs/utils/signer.js +8 -8
- package/dist/cjs/utils/signer.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/accounts/borrower.js +80 -17
- package/dist/esm/accounts/borrower.js.map +1 -1
- package/dist/esm/accounts/config.js +50 -3
- package/dist/esm/accounts/config.js.map +1 -1
- package/dist/esm/accounts/contract.js +53 -3
- package/dist/esm/accounts/contract.js.map +1 -1
- package/dist/esm/accounts/fleet.js +3 -2
- package/dist/esm/accounts/fleet.js.map +1 -1
- package/dist/esm/accounts/member.js +9 -0
- package/dist/esm/accounts/member.js.map +1 -0
- package/dist/esm/accounts/owner.js +101 -0
- package/dist/esm/accounts/owner.js.map +1 -0
- package/dist/esm/accounts/rental.js +50 -3
- package/dist/esm/accounts/rental.js.map +1 -1
- package/dist/esm/demos.js +336 -33
- package/dist/esm/demos.js.map +1 -1
- package/dist/esm/generated/codama/accounts/borrowerState.js +26 -26
- package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/configState.js +57 -50
- package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/contractState.js +60 -43
- package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/fleet.js +90 -0
- package/dist/esm/generated/codama/accounts/fleet.js.map +1 -0
- package/dist/esm/generated/codama/accounts/index.js +7 -7
- package/dist/esm/generated/codama/accounts/index.js.map +1 -1
- package/dist/esm/generated/codama/accounts/ownerState.js +73 -0
- package/dist/esm/generated/codama/accounts/ownerState.js.map +1 -0
- package/dist/esm/generated/codama/accounts/rentalState.js +43 -30
- package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/thread.js +49 -46
- package/dist/esm/generated/codama/accounts/thread.js.map +1 -1
- package/dist/esm/generated/codama/errors/index.js +1 -1
- package/dist/esm/generated/codama/errors/srsly.js +62 -20
- package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
- package/dist/esm/generated/codama/index.js +5 -5
- package/dist/esm/generated/codama/instructions/acceptRental.js +42 -64
- package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/activateRental.js +183 -0
- package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -0
- package/dist/esm/generated/codama/instructions/cancelRental.js +53 -31
- package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/claimBorrower.js +39 -26
- package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
- package/dist/esm/generated/codama/instructions/{claimContractPayments.js → claimOwner.js} +65 -51
- package/dist/esm/generated/codama/instructions/claimOwner.js.map +1 -0
- package/dist/esm/generated/codama/instructions/claimRental.js +326 -0
- package/dist/esm/generated/codama/instructions/claimRental.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeContract.js +20 -88
- package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/closeRental.js +49 -48
- package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createConfig.js +59 -23
- package/dist/esm/generated/codama/instructions/createConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createContract.js +56 -40
- package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/deleteConfig.js +18 -18
- package/dist/esm/generated/codama/instructions/deleteConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/deleteContract.js +8 -8
- package/dist/esm/generated/codama/instructions/deleteRental.js +8 -8
- package/dist/esm/generated/codama/instructions/index.js +23 -20
- package/dist/esm/generated/codama/instructions/index.js.map +1 -1
- package/dist/esm/generated/codama/instructions/invalidateRental.js +146 -0
- package/dist/esm/generated/codama/instructions/invalidateRental.js.map +1 -0
- package/dist/esm/generated/codama/instructions/payRental.js +67 -27
- package/dist/esm/generated/codama/instructions/payRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/releaseRental.js +11 -52
- package/dist/esm/generated/codama/instructions/releaseRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/reserveRental.js +44 -25
- package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/scheduleRental.js +255 -0
- package/dist/esm/generated/codama/instructions/scheduleRental.js.map +1 -0
- package/dist/esm/generated/codama/instructions/setDelegate.js +70 -0
- package/dist/esm/generated/codama/instructions/setDelegate.js.map +1 -0
- package/dist/esm/generated/codama/instructions/updateBorrower.js +12 -12
- package/dist/esm/generated/codama/instructions/updateBorrower.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateConfig.js +47 -49
- package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateContract.js +27 -25
- package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateOwner.js +70 -0
- package/dist/esm/generated/codama/instructions/updateOwner.js.map +1 -0
- package/dist/esm/generated/codama/programs/index.js +1 -1
- package/dist/esm/generated/codama/programs/srsly.js +49 -37
- package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
- package/dist/esm/generated/codama/shared/index.js +9 -9
- package/dist/esm/generated/codama/types/atlasClaimed.js +28 -0
- package/dist/esm/generated/codama/types/atlasClaimed.js.map +1 -0
- package/dist/esm/generated/codama/types/borrowerInitialized.js +24 -0
- package/dist/esm/generated/codama/types/borrowerInitialized.js.map +1 -0
- package/dist/esm/generated/codama/types/cargoStats.js +38 -0
- package/dist/esm/generated/codama/types/cargoStats.js.map +1 -0
- package/dist/esm/generated/codama/types/contractClosed.js +26 -0
- package/dist/esm/generated/codama/types/contractClosed.js.map +1 -0
- package/dist/esm/generated/codama/types/contractCreated.js +28 -0
- package/dist/esm/generated/codama/types/contractCreated.js.map +1 -0
- package/dist/esm/generated/codama/types/contractDelegateSet.js +26 -0
- package/dist/esm/generated/codama/types/contractDelegateSet.js.map +1 -0
- package/dist/esm/generated/codama/types/contractPendingClose.js +26 -0
- package/dist/esm/generated/codama/types/contractPendingClose.js.map +1 -0
- package/dist/esm/generated/codama/types/contractUpdated.js +29 -0
- package/dist/esm/generated/codama/types/contractUpdated.js.map +1 -0
- package/dist/esm/generated/codama/types/discountAuthorization.js +28 -0
- package/dist/esm/generated/codama/types/discountAuthorization.js.map +1 -0
- package/dist/esm/generated/codama/types/fieldUpdate.js +24 -0
- package/dist/esm/generated/codama/types/fieldUpdate.js.map +1 -0
- package/dist/esm/generated/codama/types/index.js +29 -7
- package/dist/esm/generated/codama/types/index.js.map +1 -1
- package/dist/esm/generated/codama/types/miscStats.js +42 -0
- package/dist/esm/generated/codama/types/miscStats.js.map +1 -0
- package/dist/esm/generated/codama/types/movementStats.js +34 -0
- package/dist/esm/generated/codama/types/movementStats.js.map +1 -0
- package/dist/esm/generated/codama/types/optionalNonSystemPubkey.js +18 -0
- package/dist/esm/generated/codama/types/optionalNonSystemPubkey.js.map +1 -0
- package/dist/esm/generated/codama/types/paymentFrequency.js +1 -1
- package/dist/esm/generated/codama/types/rentalAccepted.js +38 -0
- package/dist/esm/generated/codama/types/rentalAccepted.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalActivated.js +26 -0
- package/dist/esm/generated/codama/types/rentalActivated.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalCancelled.js +30 -0
- package/dist/esm/generated/codama/types/rentalCancelled.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalClaimed.js +36 -0
- package/dist/esm/generated/codama/types/rentalClaimed.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalClosed.js +28 -0
- package/dist/esm/generated/codama/types/rentalClosed.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalPaymentProcessed.js +28 -0
- package/dist/esm/generated/codama/types/rentalPaymentProcessed.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalScheduled.js +30 -0
- package/dist/esm/generated/codama/types/rentalScheduled.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalStatus.js +25 -0
- package/dist/esm/generated/codama/types/rentalStatus.js.map +1 -0
- package/dist/esm/generated/codama/types/reservationCreated.js +30 -0
- package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -0
- package/dist/esm/generated/codama/types/reservationKnockoff.js +30 -0
- package/dist/esm/generated/codama/types/reservationKnockoff.js.map +1 -0
- package/dist/esm/generated/codama/types/schedule.js +15 -15
- package/dist/esm/generated/codama/types/shipCounts.js +40 -0
- package/dist/esm/generated/codama/types/shipCounts.js.map +1 -0
- package/dist/esm/generated/codama/types/shipStats.js +27 -0
- package/dist/esm/generated/codama/types/shipStats.js.map +1 -0
- package/dist/esm/generated/codama/types/signal.js +14 -14
- package/dist/esm/generated/codama/types/trigger.js +37 -37
- package/dist/esm/index.js +38 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instructions/acceptRental.js +84 -26
- package/dist/esm/instructions/acceptRental.js.map +1 -1
- package/dist/esm/instructions/approveAffiliate.js +7 -0
- package/dist/esm/instructions/approveAffiliate.js.map +1 -0
- package/dist/esm/instructions/cancelRental.js +12 -5
- package/dist/esm/instructions/cancelRental.js.map +1 -1
- package/dist/esm/instructions/claimBorrower.js +8 -4
- package/dist/esm/instructions/claimBorrower.js.map +1 -1
- package/dist/esm/instructions/claimRental.js +198 -0
- package/dist/esm/instructions/claimRental.js.map +1 -0
- package/dist/esm/instructions/closeContract.js +4 -3
- package/dist/esm/instructions/closeContract.js.map +1 -1
- package/dist/esm/instructions/closeRental.js +43 -13
- package/dist/esm/instructions/closeRental.js.map +1 -1
- package/dist/esm/instructions/createAffiliate.js +70 -0
- package/dist/esm/instructions/createAffiliate.js.map +1 -0
- package/dist/esm/instructions/createConfig.js +12 -0
- package/dist/esm/instructions/createConfig.js.map +1 -1
- package/dist/esm/instructions/createContract.js +12 -5
- package/dist/esm/instructions/createContract.js.map +1 -1
- package/dist/esm/instructions/deleteConfig.js +17 -6
- package/dist/esm/instructions/deleteConfig.js.map +1 -1
- package/dist/esm/instructions/deleteContract.js +76 -0
- package/dist/esm/instructions/deleteContract.js.map +1 -0
- package/dist/esm/instructions/index.js +29 -0
- package/dist/esm/instructions/index.js.map +1 -0
- package/dist/esm/instructions/invalidateRental.js +98 -0
- package/dist/esm/instructions/invalidateRental.js.map +1 -0
- package/dist/esm/instructions/ownerClaim.js +107 -0
- package/dist/esm/instructions/ownerClaim.js.map +1 -0
- package/dist/esm/instructions/ownerUpdate.js +65 -0
- package/dist/esm/instructions/ownerUpdate.js.map +1 -0
- package/dist/esm/instructions/releaseRental.js +20 -53
- package/dist/esm/instructions/releaseRental.js.map +1 -1
- package/dist/esm/instructions/removeAffiliate.js +7 -0
- package/dist/esm/instructions/removeAffiliate.js.map +1 -0
- package/dist/esm/instructions/reserveRental.js +10 -8
- package/dist/esm/instructions/reserveRental.js.map +1 -1
- package/dist/esm/instructions/setDelegate.js +69 -0
- package/dist/esm/instructions/setDelegate.js.map +1 -0
- package/dist/esm/instructions/updateAffiliate.js +54 -0
- package/dist/esm/instructions/updateAffiliate.js.map +1 -0
- package/dist/esm/instructions/updateBorrower.js +4 -2
- package/dist/esm/instructions/updateBorrower.js.map +1 -1
- package/dist/esm/instructions/updateConfig.js +0 -1
- package/dist/esm/instructions/updateConfig.js.map +1 -1
- package/dist/esm/instructions/updateContract.js +12 -5
- package/dist/esm/instructions/updateContract.js.map +1 -1
- package/dist/esm/kit/index.js +18 -0
- package/dist/esm/kit/index.js.map +1 -0
- package/dist/esm/legacy/index.js +86 -0
- package/dist/esm/legacy/index.js.map +1 -0
- package/dist/esm/package.json +9 -5
- package/dist/esm/params/amount.js +4 -4
- package/dist/esm/pda/constants.js +1 -0
- package/dist/esm/pda/constants.js.map +1 -1
- package/dist/esm/pda/index.js +5 -3
- package/dist/esm/pda/index.js.map +1 -1
- package/dist/esm/pda/lookupTable.js +56 -0
- package/dist/esm/pda/lookupTable.js.map +1 -0
- package/dist/esm/pda/slyvault.js +2 -47
- package/dist/esm/pda/slyvault.js.map +1 -1
- package/dist/esm/pda/srsly.js +32 -7
- package/dist/esm/pda/srsly.js.map +1 -1
- package/dist/esm/pda/thread.js +2 -2
- package/dist/esm/utils/addresses.js +7 -1
- package/dist/esm/utils/addresses.js.map +1 -1
- package/dist/esm/utils/config.js +19 -2
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/esm/utils/discountAuth.js +151 -0
- package/dist/esm/utils/discountAuth.js.map +1 -0
- package/dist/esm/utils/index.js +11 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/instructionResult.js +72 -0
- package/dist/esm/utils/instructionResult.js.map +1 -0
- package/dist/esm/utils/instructions.js +12 -17
- package/dist/esm/utils/instructions.js.map +1 -1
- package/dist/esm/utils/lookupTable.js +139 -0
- package/dist/esm/utils/lookupTable.js.map +1 -0
- package/dist/esm/utils/rental.js +129 -0
- package/dist/esm/utils/rental.js.map +1 -0
- package/dist/esm/utils/rpc.js +52 -0
- package/dist/esm/utils/rpc.js.map +1 -0
- package/dist/esm/utils/signer.js +8 -8
- package/dist/esm/utils/signer.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/idl/srsly.json +7364 -0
- package/dist/types/accounts/borrower.d.ts +33 -9
- package/dist/types/accounts/borrower.d.ts.map +1 -1
- package/dist/types/accounts/config.d.ts +19 -0
- package/dist/types/accounts/config.d.ts.map +1 -1
- package/dist/types/accounts/contract.d.ts +19 -0
- package/dist/types/accounts/contract.d.ts.map +1 -1
- package/dist/types/accounts/fleet.d.ts.map +1 -1
- package/dist/types/accounts/member.d.ts +9 -0
- package/dist/types/accounts/member.d.ts.map +1 -0
- package/dist/types/accounts/owner.d.ts +52 -0
- package/dist/types/accounts/owner.d.ts.map +1 -0
- package/dist/types/accounts/rental.d.ts +19 -0
- package/dist/types/accounts/rental.d.ts.map +1 -1
- package/dist/types/demos.d.ts +47 -2
- package/dist/types/demos.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/borrowerState.d.ts +12 -20
- package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/configState.d.ts +23 -6
- package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/contractState.d.ts +64 -19
- package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/fleet.d.ts +64 -0
- package/dist/types/generated/codama/accounts/fleet.d.ts.map +1 -0
- package/dist/types/generated/codama/accounts/index.d.ts +7 -7
- package/dist/types/generated/codama/accounts/index.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/ownerState.d.ts +65 -0
- package/dist/types/generated/codama/accounts/ownerState.d.ts.map +1 -0
- package/dist/types/generated/codama/accounts/rentalState.d.ts +32 -5
- package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/thread.d.ts +5 -2
- package/dist/types/generated/codama/accounts/thread.d.ts.map +1 -1
- package/dist/types/generated/codama/errors/index.d.ts +1 -1
- package/dist/types/generated/codama/errors/srsly.d.ts +43 -15
- package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/index.d.ts +5 -5
- package/dist/types/generated/codama/instructions/acceptRental.d.ts +28 -27
- package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/activateRental.d.ts +90 -0
- package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/cancelRental.d.ts +25 -13
- package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts +33 -21
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/claimOwner.d.ts +91 -0
- package/dist/types/generated/codama/instructions/claimOwner.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/claimRental.d.ts +133 -0
- package/dist/types/generated/codama/instructions/claimRental.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeContract.d.ts +20 -29
- package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/closeRental.d.ts +45 -24
- package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/createConfig.d.ts +36 -15
- package/dist/types/generated/codama/instructions/createConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/createContract.d.ts +47 -36
- package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/deleteConfig.d.ts +3 -3
- package/dist/types/generated/codama/instructions/deleteConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/deleteContract.d.ts +2 -2
- package/dist/types/generated/codama/instructions/deleteRental.d.ts +2 -2
- package/dist/types/generated/codama/instructions/index.d.ts +23 -20
- package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/invalidateRental.d.ts +89 -0
- package/dist/types/generated/codama/instructions/invalidateRental.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/payRental.d.ts +50 -28
- package/dist/types/generated/codama/instructions/payRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/releaseRental.d.ts +42 -49
- package/dist/types/generated/codama/instructions/releaseRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/reserveRental.d.ts +25 -21
- package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/scheduleRental.d.ts +114 -0
- package/dist/types/generated/codama/instructions/scheduleRental.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/setDelegate.d.ts +44 -0
- package/dist/types/generated/codama/instructions/setDelegate.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/updateBorrower.d.ts +5 -5
- package/dist/types/generated/codama/instructions/updateBorrower.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateConfig.d.ts +41 -47
- package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateContract.d.ts +37 -31
- package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateOwner.d.ts +44 -0
- package/dist/types/generated/codama/instructions/updateOwner.d.ts.map +1 -0
- package/dist/types/generated/codama/programs/index.d.ts +1 -1
- package/dist/types/generated/codama/programs/srsly.d.ts +39 -30
- package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/shared/index.d.ts +2 -2
- package/dist/types/generated/codama/types/atlasClaimed.d.ts +24 -0
- package/dist/types/generated/codama/types/atlasClaimed.d.ts.map +1 -0
- package/dist/types/generated/codama/types/borrowerInitialized.d.ts +17 -0
- package/dist/types/generated/codama/types/borrowerInitialized.d.ts.map +1 -0
- package/dist/types/generated/codama/types/cargoStats.d.ts +25 -0
- package/dist/types/generated/codama/types/cargoStats.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractClosed.d.ts +18 -0
- package/dist/types/generated/codama/types/contractClosed.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractCreated.d.ts +24 -0
- package/dist/types/generated/codama/types/contractCreated.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractDelegateSet.d.ts +22 -0
- package/dist/types/generated/codama/types/contractDelegateSet.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractPendingClose.d.ts +18 -0
- package/dist/types/generated/codama/types/contractPendingClose.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractUpdated.d.ts +27 -0
- package/dist/types/generated/codama/types/contractUpdated.d.ts.map +1 -0
- package/dist/types/generated/codama/types/discountAuthorization.d.ts +36 -0
- package/dist/types/generated/codama/types/discountAuthorization.d.ts.map +1 -0
- package/dist/types/generated/codama/types/fieldUpdate.d.ts +20 -0
- package/dist/types/generated/codama/types/fieldUpdate.d.ts.map +1 -0
- package/dist/types/generated/codama/types/index.d.ts +29 -7
- package/dist/types/generated/codama/types/index.d.ts.map +1 -1
- package/dist/types/generated/codama/types/miscStats.d.ts +27 -0
- package/dist/types/generated/codama/types/miscStats.d.ts.map +1 -0
- package/dist/types/generated/codama/types/movementStats.d.ts +23 -0
- package/dist/types/generated/codama/types/movementStats.d.ts.map +1 -0
- package/dist/types/generated/codama/types/optionalNonSystemPubkey.d.ts +17 -0
- package/dist/types/generated/codama/types/optionalNonSystemPubkey.d.ts.map +1 -0
- package/dist/types/generated/codama/types/paymentFrequency.d.ts +1 -1
- package/dist/types/generated/codama/types/rentalAccepted.d.ts +34 -0
- package/dist/types/generated/codama/types/rentalAccepted.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalActivated.d.ts +18 -0
- package/dist/types/generated/codama/types/rentalActivated.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalCancelled.d.ts +26 -0
- package/dist/types/generated/codama/types/rentalCancelled.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalClaimed.d.ts +32 -0
- package/dist/types/generated/codama/types/rentalClaimed.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalClosed.d.ts +19 -0
- package/dist/types/generated/codama/types/rentalClosed.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalPaymentProcessed.d.ts +24 -0
- package/dist/types/generated/codama/types/rentalPaymentProcessed.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalScheduled.d.ts +20 -0
- package/dist/types/generated/codama/types/rentalScheduled.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalStatus.d.ts +19 -0
- package/dist/types/generated/codama/types/rentalStatus.d.ts.map +1 -0
- package/dist/types/generated/codama/types/reservationCreated.d.ts +26 -0
- package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -0
- package/dist/types/generated/codama/types/reservationKnockoff.d.ts +26 -0
- package/dist/types/generated/codama/types/reservationKnockoff.d.ts.map +1 -0
- package/dist/types/generated/codama/types/schedule.d.ts +11 -11
- package/dist/types/generated/codama/types/shipCounts.d.ts +26 -0
- package/dist/types/generated/codama/types/shipCounts.d.ts.map +1 -0
- package/dist/types/generated/codama/types/shipStats.d.ts +24 -0
- package/dist/types/generated/codama/types/shipStats.d.ts.map +1 -0
- package/dist/types/generated/codama/types/signal.d.ts +21 -21
- package/dist/types/generated/codama/types/trigger.d.ts +23 -23
- package/dist/types/index.d.ts +20 -11
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/instructions/acceptRental.d.ts +31 -2
- package/dist/types/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/instructions/approveAffiliate.d.ts +7 -0
- package/dist/types/instructions/approveAffiliate.d.ts.map +1 -0
- package/dist/types/instructions/cancelRental.d.ts +5 -0
- package/dist/types/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/instructions/claimBorrower.d.ts +6 -0
- package/dist/types/instructions/claimBorrower.d.ts.map +1 -1
- package/dist/types/instructions/claimRental.d.ts +114 -0
- package/dist/types/instructions/claimRental.d.ts.map +1 -0
- package/dist/types/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/instructions/closeRental.d.ts +12 -5
- package/dist/types/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/instructions/createAffiliate.d.ts +66 -0
- package/dist/types/instructions/createAffiliate.d.ts.map +1 -0
- package/dist/types/instructions/createConfig.d.ts +10 -0
- package/dist/types/instructions/createConfig.d.ts.map +1 -1
- package/dist/types/instructions/createContract.d.ts +17 -9
- package/dist/types/instructions/createContract.d.ts.map +1 -1
- package/dist/types/instructions/deleteConfig.d.ts +4 -2
- package/dist/types/instructions/deleteConfig.d.ts.map +1 -1
- package/dist/types/instructions/deleteContract.d.ts +60 -0
- package/dist/types/instructions/deleteContract.d.ts.map +1 -0
- package/dist/types/instructions/index.d.ts +29 -0
- package/dist/types/instructions/index.d.ts.map +1 -0
- package/dist/types/instructions/invalidateRental.d.ts +86 -0
- package/dist/types/instructions/invalidateRental.d.ts.map +1 -0
- package/dist/types/instructions/ownerClaim.d.ts +72 -0
- package/dist/types/instructions/ownerClaim.d.ts.map +1 -0
- package/dist/types/instructions/ownerUpdate.d.ts +57 -0
- package/dist/types/instructions/ownerUpdate.d.ts.map +1 -0
- package/dist/types/instructions/releaseRental.d.ts +19 -39
- package/dist/types/instructions/releaseRental.d.ts.map +1 -1
- package/dist/types/instructions/removeAffiliate.d.ts +7 -0
- package/dist/types/instructions/removeAffiliate.d.ts.map +1 -0
- package/dist/types/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/instructions/setDelegate.d.ts +63 -0
- package/dist/types/instructions/setDelegate.d.ts.map +1 -0
- package/dist/types/instructions/updateAffiliate.d.ts +64 -0
- package/dist/types/instructions/updateAffiliate.d.ts.map +1 -0
- package/dist/types/instructions/updateBorrower.d.ts.map +1 -1
- package/dist/types/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/instructions/updateContract.d.ts +13 -4
- package/dist/types/instructions/updateContract.d.ts.map +1 -1
- package/dist/types/kit/index.d.ts +18 -0
- package/dist/types/kit/index.d.ts.map +1 -0
- package/dist/types/legacy/index.d.ts +90 -0
- package/dist/types/legacy/index.d.ts.map +1 -0
- package/dist/types/params/amount.d.ts +3 -3
- package/dist/types/pda/constants.d.ts +1 -0
- package/dist/types/pda/constants.d.ts.map +1 -1
- package/dist/types/pda/index.d.ts +4 -3
- package/dist/types/pda/index.d.ts.map +1 -1
- package/dist/types/pda/lookupTable.d.ts +29 -0
- package/dist/types/pda/lookupTable.d.ts.map +1 -0
- package/dist/types/pda/slyvault.d.ts +2 -23
- package/dist/types/pda/slyvault.d.ts.map +1 -1
- package/dist/types/pda/srsly.d.ts +17 -3
- package/dist/types/pda/srsly.d.ts.map +1 -1
- package/dist/types/pda/thread.d.ts +2 -2
- package/dist/types/utils/addresses.d.ts +7 -1
- package/dist/types/utils/addresses.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +48 -0
- package/dist/types/utils/config.d.ts.map +1 -1
- package/dist/types/utils/discountAuth.d.ts +90 -0
- package/dist/types/utils/discountAuth.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +6 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/instructionResult.d.ts +57 -0
- package/dist/types/utils/instructionResult.d.ts.map +1 -0
- package/dist/types/utils/instructions.d.ts +16 -18
- package/dist/types/utils/instructions.d.ts.map +1 -1
- package/dist/types/utils/lookupTable.d.ts +48 -0
- package/dist/types/utils/lookupTable.d.ts.map +1 -0
- package/dist/types/utils/rental.d.ts +80 -0
- package/dist/types/utils/rental.d.ts.map +1 -0
- package/dist/types/utils/rpc.d.ts +37 -0
- package/dist/types/utils/rpc.d.ts.map +1 -0
- package/dist/types/utils/signer.d.ts +2 -2
- package/dist/types/utils/signer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +40 -21
- package/dist/cjs/generated/codama/accounts/memberState.js +0 -78
- package/dist/cjs/generated/codama/accounts/memberState.js.map +0 -1
- package/dist/cjs/generated/codama/accounts/vaultState.js +0 -82
- package/dist/cjs/generated/codama/accounts/vaultState.js.map +0 -1
- package/dist/cjs/generated/codama/instructions/captureRental.js +0 -129
- package/dist/cjs/generated/codama/instructions/captureRental.js.map +0 -1
- package/dist/cjs/generated/codama/instructions/claimBorrowerPayments.js +0 -225
- package/dist/cjs/generated/codama/instructions/claimBorrowerPayments.js.map +0 -1
- package/dist/cjs/generated/codama/instructions/claimContractPayments.js.map +0 -1
- package/dist/cjs/generated/codama/instructions/closeBorrower.js +0 -84
- package/dist/cjs/generated/codama/instructions/closeBorrower.js.map +0 -1
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js +0 -126
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +0 -1
- package/dist/cjs/generated/codama/instructions/discountBorrower.js +0 -118
- package/dist/cjs/generated/codama/instructions/discountBorrower.js.map +0 -1
- package/dist/cjs/generated/codama/types/capturedFlagData.js +0 -31
- package/dist/cjs/generated/codama/types/capturedFlagData.js.map +0 -1
- package/dist/cjs/generated/codama/types/memberConfig.js +0 -33
- package/dist/cjs/generated/codama/types/memberConfig.js.map +0 -1
- package/dist/cjs/generated/codama/types/memberType.js +0 -55
- package/dist/cjs/generated/codama/types/memberType.js.map +0 -1
- package/dist/cjs/instructions/captureRental.js +0 -85
- package/dist/cjs/instructions/captureRental.js.map +0 -1
- package/dist/cjs/instructions/claimBorrowerPayments.js +0 -69
- package/dist/cjs/instructions/claimBorrowerPayments.js.map +0 -1
- package/dist/cjs/instructions/claimContractPayments.js +0 -79
- package/dist/cjs/instructions/claimContractPayments.js.map +0 -1
- package/dist/cjs/instructions/closeBorrower.js +0 -60
- package/dist/cjs/instructions/closeBorrower.js.map +0 -1
- package/dist/cjs/instructions/deleteBorrower.js +0 -60
- package/dist/cjs/instructions/deleteBorrower.js.map +0 -1
- package/dist/cjs/instructions/discountBorrower.js +0 -75
- package/dist/cjs/instructions/discountBorrower.js.map +0 -1
- package/dist/esm/generated/codama/accounts/memberState.js +0 -66
- package/dist/esm/generated/codama/accounts/memberState.js.map +0 -1
- package/dist/esm/generated/codama/accounts/vaultState.js +0 -70
- package/dist/esm/generated/codama/accounts/vaultState.js.map +0 -1
- package/dist/esm/generated/codama/instructions/captureRental.js +0 -119
- package/dist/esm/generated/codama/instructions/captureRental.js.map +0 -1
- package/dist/esm/generated/codama/instructions/claimContractPayments.js.map +0 -1
- package/dist/esm/generated/codama/instructions/closeBorrower.js +0 -75
- package/dist/esm/generated/codama/instructions/closeBorrower.js.map +0 -1
- package/dist/esm/generated/codama/instructions/deleteBorrower.js +0 -116
- package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +0 -1
- package/dist/esm/generated/codama/instructions/discountBorrower.js +0 -108
- package/dist/esm/generated/codama/instructions/discountBorrower.js.map +0 -1
- package/dist/esm/generated/codama/types/capturedFlagData.js +0 -26
- package/dist/esm/generated/codama/types/capturedFlagData.js.map +0 -1
- package/dist/esm/generated/codama/types/memberConfig.js +0 -28
- package/dist/esm/generated/codama/types/memberConfig.js.map +0 -1
- package/dist/esm/generated/codama/types/memberType.js +0 -48
- package/dist/esm/generated/codama/types/memberType.js.map +0 -1
- package/dist/esm/instructions/captureRental.js +0 -82
- package/dist/esm/instructions/captureRental.js.map +0 -1
- package/dist/esm/instructions/claimContractPayments.js +0 -76
- package/dist/esm/instructions/claimContractPayments.js.map +0 -1
- package/dist/esm/instructions/closeBorrower.js +0 -57
- package/dist/esm/instructions/closeBorrower.js.map +0 -1
- package/dist/esm/instructions/deleteBorrower.js +0 -57
- package/dist/esm/instructions/deleteBorrower.js.map +0 -1
- package/dist/esm/instructions/discountBorrower.js +0 -72
- package/dist/esm/instructions/discountBorrower.js.map +0 -1
- package/dist/types/generated/codama/accounts/memberState.d.ts +0 -58
- package/dist/types/generated/codama/accounts/memberState.d.ts.map +0 -1
- package/dist/types/generated/codama/accounts/vaultState.d.ts +0 -66
- package/dist/types/generated/codama/accounts/vaultState.d.ts.map +0 -1
- package/dist/types/generated/codama/instructions/captureRental.d.ts +0 -59
- package/dist/types/generated/codama/instructions/captureRental.d.ts.map +0 -1
- package/dist/types/generated/codama/instructions/claimBorrowerPayments.d.ts +0 -75
- package/dist/types/generated/codama/instructions/claimBorrowerPayments.d.ts.map +0 -1
- package/dist/types/generated/codama/instructions/claimContractPayments.d.ts +0 -98
- package/dist/types/generated/codama/instructions/claimContractPayments.d.ts.map +0 -1
- package/dist/types/generated/codama/instructions/closeBorrower.d.ts +0 -43
- package/dist/types/generated/codama/instructions/closeBorrower.d.ts.map +0 -1
- package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +0 -55
- package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +0 -1
- package/dist/types/generated/codama/instructions/discountBorrower.d.ts +0 -56
- package/dist/types/generated/codama/instructions/discountBorrower.d.ts.map +0 -1
- package/dist/types/generated/codama/types/capturedFlagData.d.ts +0 -35
- package/dist/types/generated/codama/types/capturedFlagData.d.ts.map +0 -1
- package/dist/types/generated/codama/types/memberConfig.d.ts +0 -33
- package/dist/types/generated/codama/types/memberConfig.d.ts.map +0 -1
- package/dist/types/generated/codama/types/memberType.d.ts +0 -48
- package/dist/types/generated/codama/types/memberType.d.ts.map +0 -1
- package/dist/types/instructions/captureRental.d.ts +0 -58
- package/dist/types/instructions/captureRental.d.ts.map +0 -1
- package/dist/types/instructions/claimBorrowerPayments.d.ts +0 -59
- package/dist/types/instructions/claimBorrowerPayments.d.ts.map +0 -1
- package/dist/types/instructions/claimContractPayments.d.ts +0 -78
- package/dist/types/instructions/claimContractPayments.d.ts.map +0 -1
- package/dist/types/instructions/closeBorrower.d.ts +0 -45
- package/dist/types/instructions/closeBorrower.d.ts.map +0 -1
- package/dist/types/instructions/deleteBorrower.d.ts +0 -53
- package/dist/types/instructions/deleteBorrower.d.ts.map +0 -1
- package/dist/types/instructions/discountBorrower.d.ts +0 -64
- package/dist/types/instructions/discountBorrower.d.ts.map +0 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Discount authorization helper for server-side signing
|
|
3
|
+
* @module utils/discountAuth
|
|
4
|
+
*/
|
|
5
|
+
import { address, createKeyPairSignerFromBytes } from '@solana/kit';
|
|
6
|
+
import { createDiscountAuth as slyvaultCreateDiscountAuth, fetchMember } from '@wuwei-labs/slyvault';
|
|
7
|
+
import { getRpcUrl, mergeConfig } from './config';
|
|
8
|
+
import { createRpc } from './rpc';
|
|
9
|
+
/**
|
|
10
|
+
* Parse a stringified keypair (JSON array of bytes) into a KeyPairSigner
|
|
11
|
+
*/
|
|
12
|
+
async function parseKeypairString(keypairString) {
|
|
13
|
+
try {
|
|
14
|
+
const bytes = JSON.parse(keypairString);
|
|
15
|
+
if (!Array.isArray(bytes) || bytes.length !== 64) {
|
|
16
|
+
throw new Error('Invalid keypair: expected array of 64 bytes');
|
|
17
|
+
}
|
|
18
|
+
return await createKeyPairSignerFromBytes(new Uint8Array(bytes));
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
throw new Error(`Failed to parse keypair string: ${e.message}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Browser-compatible base64 encoding (Uint8Array -> string)
|
|
26
|
+
*/
|
|
27
|
+
function uint8ArrayToBase64(bytes) {
|
|
28
|
+
let binary = '';
|
|
29
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
30
|
+
binary += String.fromCharCode(bytes[i]);
|
|
31
|
+
}
|
|
32
|
+
return btoa(binary);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Browser-compatible base64 decoding (string -> Uint8Array)
|
|
36
|
+
*/
|
|
37
|
+
function base64ToUint8Array(base64) {
|
|
38
|
+
const binary = atob(base64);
|
|
39
|
+
const bytes = new Uint8Array(binary.length);
|
|
40
|
+
for (let i = 0; i < binary.length; i++) {
|
|
41
|
+
bytes[i] = binary.charCodeAt(i);
|
|
42
|
+
}
|
|
43
|
+
return bytes;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Create a signed discount authorization
|
|
47
|
+
*
|
|
48
|
+
* Server-side helper that fetches the member to get the nonce,
|
|
49
|
+
* then creates a signed discount authorization in a JSON-serializable format.
|
|
50
|
+
*
|
|
51
|
+
* @param params - Discount parameters including member address
|
|
52
|
+
* @param config - Optional SDK configuration overrides
|
|
53
|
+
* @returns A SerializedDiscountAuth object ready for API transport
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* import { createDiscount } from '@wuwei-labs/srsly';
|
|
58
|
+
*
|
|
59
|
+
* const discountAuth = await createDiscount({
|
|
60
|
+
* address: 'AFFILIATE_MEMBER_PDA',
|
|
61
|
+
* discount: 10, // 10%
|
|
62
|
+
* expirySlots: 1000, // ~6-7 minutes
|
|
63
|
+
* discountAuthority: serverKeypair,
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* // Ready to return via API - no serialization needed
|
|
67
|
+
* return discountAuth;
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export async function createDiscount(params, config) {
|
|
71
|
+
const finalConfig = mergeConfig(config);
|
|
72
|
+
const rpcUrl = getRpcUrl(finalConfig);
|
|
73
|
+
// Fetch member to get nonce
|
|
74
|
+
const memberAddr = address(params.address);
|
|
75
|
+
const member = await fetchMember(memberAddr, rpcUrl);
|
|
76
|
+
// Fetch current slot and compute absolute expiry
|
|
77
|
+
const rpc = createRpc(rpcUrl);
|
|
78
|
+
const currentSlot = await rpc.getSlot({ commitment: 'confirmed' }).send();
|
|
79
|
+
const expirySlot = currentSlot + BigInt(params.expirySlots);
|
|
80
|
+
// Convert discountAuthority to KeyPairSigner
|
|
81
|
+
let discountAuthority;
|
|
82
|
+
if (typeof params.discountAuthority === 'string') {
|
|
83
|
+
discountAuthority = await parseKeypairString(params.discountAuthority);
|
|
84
|
+
}
|
|
85
|
+
else if (params.discountAuthority instanceof Uint8Array) {
|
|
86
|
+
discountAuthority = await createKeyPairSignerFromBytes(params.discountAuthority);
|
|
87
|
+
}
|
|
88
|
+
else if (Array.isArray(params.discountAuthority)) {
|
|
89
|
+
discountAuthority = await createKeyPairSignerFromBytes(new Uint8Array(params.discountAuthority));
|
|
90
|
+
}
|
|
91
|
+
else if ('secretKey' in params.discountAuthority && params.discountAuthority.secretKey instanceof Uint8Array) {
|
|
92
|
+
// web3.js Keypair
|
|
93
|
+
discountAuthority = await createKeyPairSignerFromBytes(params.discountAuthority.secretKey);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// Already a KeyPairSigner
|
|
97
|
+
discountAuthority = params.discountAuthority;
|
|
98
|
+
}
|
|
99
|
+
// Create the raw discount auth
|
|
100
|
+
const raw = await slyvaultCreateDiscountAuth({
|
|
101
|
+
memberNonce: member.data.nonce,
|
|
102
|
+
discount: params.discount,
|
|
103
|
+
expirySlot,
|
|
104
|
+
discountAuthority,
|
|
105
|
+
});
|
|
106
|
+
// Return serialized format for API transport
|
|
107
|
+
return serializeDiscountAuth(raw);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Deserialize a discount authorization from API format
|
|
111
|
+
*
|
|
112
|
+
* Converts the JSON-safe SerializedDiscountAuth back to the format
|
|
113
|
+
* expected by the on-chain program.
|
|
114
|
+
*
|
|
115
|
+
* @internal Used by acceptRental and claimRental
|
|
116
|
+
*/
|
|
117
|
+
export function deserializeDiscountAuth(serialized) {
|
|
118
|
+
return {
|
|
119
|
+
memberNonce: serialized.memberNonce,
|
|
120
|
+
discountBps: serialized.discountBps,
|
|
121
|
+
expirySlot: BigInt(serialized.expirySlot),
|
|
122
|
+
signature: base64ToUint8Array(serialized.signature),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Serialize a raw discount authorization to JSON-safe format
|
|
127
|
+
*
|
|
128
|
+
* Converts bigint expirySlot and Uint8Array signature to string representations
|
|
129
|
+
* suitable for API transport (JSON.stringify/JSON.parse safe).
|
|
130
|
+
*
|
|
131
|
+
* @param raw - Raw discount authorization with bigint/Uint8Array fields
|
|
132
|
+
* @returns SerializedDiscountAuth ready for JSON transport
|
|
133
|
+
*/
|
|
134
|
+
export function serializeDiscountAuth(raw) {
|
|
135
|
+
return {
|
|
136
|
+
memberNonce: raw.memberNonce,
|
|
137
|
+
discountBps: raw.discountBps,
|
|
138
|
+
expirySlot: raw.expirySlot.toString(),
|
|
139
|
+
signature: uint8ArrayToBase64(new Uint8Array(raw.signature)),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Check if a value is a SerializedDiscountAuth
|
|
144
|
+
*/
|
|
145
|
+
export function isSerializedDiscountAuth(value) {
|
|
146
|
+
return (typeof value === 'object' &&
|
|
147
|
+
value !== null &&
|
|
148
|
+
'signature' in value &&
|
|
149
|
+
typeof value.signature === 'string');
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=discountAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discountAuth.js","sourceRoot":"","sources":["../../../src/utils/discountAuth.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @module utils
|
|
4
4
|
*/
|
|
5
5
|
// Configuration
|
|
6
|
-
export { setSdkConfig, getSdkConfig, clearSdkConfig, mergeConfig, getAddresses } from './config';
|
|
6
|
+
export { setSdkConfig, getSdkConfig, clearSdkConfig, mergeConfig, getAddresses, getAffiliateConfig, getRpcUrl } from './config';
|
|
7
7
|
// Network Addresses
|
|
8
8
|
export { getProgramAddresses, getNetworkAddresses, isValidProgramSet, isValidNetwork, MAINNET_ADDRESSES, ATLASNET_ADDRESSES } from './addresses';
|
|
9
9
|
// Signer Utilities
|
|
@@ -12,4 +12,14 @@ export { toTransactionSigner, validateAddress, isWeb3jsSigner, isKitSigner, isAd
|
|
|
12
12
|
export { toWeb3Instruction, toAddress } from './web3js';
|
|
13
13
|
// Instruction Utilities
|
|
14
14
|
export { prepareInstructions } from './instructions';
|
|
15
|
+
// Instruction Result
|
|
16
|
+
export { InstructionResult } from './instructionResult';
|
|
17
|
+
// RPC Utilities
|
|
18
|
+
export { createRpc, setRpcDebug, isRpcDebugEnabled } from './rpc';
|
|
19
|
+
// Address Lookup Table Utilities
|
|
20
|
+
export { fetchLookupTable, getLookupTableAddress } from './lookupTable';
|
|
21
|
+
// Rental Utilities
|
|
22
|
+
export { findBorrowerRentalSlot, requireBorrowerRentalSlot, findExistingRentalSlot, requireExistingRentalSlot } from './rental';
|
|
23
|
+
// Discount Authorization Utilities
|
|
24
|
+
export { createDiscount, serializeDiscountAuth, deserializeDiscountAuth, isSerializedDiscountAuth } from './discountAuth';
|
|
15
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EAIV,MAAM,UAAU,CAAC;AAElB,oBAAoB;AACpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAInB,MAAM,aAAa,CAAC;AAErB,mBAAmB;AACnB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EAEhB,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,SAAS,EAIV,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAElE,iCAAiC;AACjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EAE1B,MAAM,UAAU,CAAC;AAElB,mCAAmC;AACnC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EAKzB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose InstructionResult - Array-like wrapper for @solana/kit Instructions with legacy conversion
|
|
3
|
+
*
|
|
4
|
+
* Provides native @solana/kit Instruction[] compatibility with optional .toLegacy() conversion
|
|
5
|
+
* for web3.js users.
|
|
6
|
+
*/
|
|
7
|
+
import { getSdkConfig } from './config';
|
|
8
|
+
/**
|
|
9
|
+
* Convert a single @solana/kit Instruction to legacy web3.js format
|
|
10
|
+
*/
|
|
11
|
+
function convertToLegacy(instruction, PublicKey) {
|
|
12
|
+
const accounts = instruction.accounts || [];
|
|
13
|
+
const data = instruction.data || new Uint8Array();
|
|
14
|
+
return {
|
|
15
|
+
keys: accounts.map(account => ({
|
|
16
|
+
pubkey: new PublicKey(String(account.address)),
|
|
17
|
+
isWritable: (account.role & 1) === 1, // Check writable bit
|
|
18
|
+
isSigner: (account.role & 2) === 2 // Check signer bit
|
|
19
|
+
})),
|
|
20
|
+
programId: new PublicKey(String(instruction.programAddress)),
|
|
21
|
+
data
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* InstructionResult - Wrapper for @solana/kit Instructions with legacy conversion
|
|
26
|
+
*
|
|
27
|
+
* Contains a plain Instruction[] array accessible via `.instructions`.
|
|
28
|
+
* Supports iteration (`for...of`, spread) and `.toLegacy()` conversion for web3.js.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Kit users - access instructions directly
|
|
33
|
+
* const result = await createContract(params);
|
|
34
|
+
* for (const ix of result) { ... }
|
|
35
|
+
* // Or unwrap: result.instructions
|
|
36
|
+
*
|
|
37
|
+
* // Web3.js users - convert to legacy format
|
|
38
|
+
* import { PublicKey } from '@solana/web3.js';
|
|
39
|
+
* const legacyIxs = result.toLegacy(PublicKey);
|
|
40
|
+
* // Or if PublicKey is configured in SDK:
|
|
41
|
+
* setSdkConfig({ PublicKey });
|
|
42
|
+
* const legacyIxs = result.toLegacy();
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export class InstructionResult {
|
|
46
|
+
instructions;
|
|
47
|
+
constructor(instructions) {
|
|
48
|
+
this.instructions = instructions;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Convert to legacy web3.js instruction format
|
|
52
|
+
*
|
|
53
|
+
* @param PublicKey - Optional PublicKey constructor. If not provided,
|
|
54
|
+
* uses the PublicKey from SDK config (set via setSdkConfig)
|
|
55
|
+
* @returns Array of instructions in web3.js format
|
|
56
|
+
* @throws Error if no PublicKey is available
|
|
57
|
+
*/
|
|
58
|
+
toLegacy(PublicKey) {
|
|
59
|
+
const pk = PublicKey || getSdkConfig().PublicKey;
|
|
60
|
+
if (!pk) {
|
|
61
|
+
throw new Error('PublicKey constructor required - pass it to toLegacy() or set in SDK config via setSdkConfig({ PublicKey })');
|
|
62
|
+
}
|
|
63
|
+
return this.instructions.map(ix => convertToLegacy(ix, pk));
|
|
64
|
+
}
|
|
65
|
+
get length() {
|
|
66
|
+
return this.instructions.length;
|
|
67
|
+
}
|
|
68
|
+
[Symbol.iterator]() {
|
|
69
|
+
return this.instructions[Symbol.iterator]();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=instructionResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructionResult.js","sourceRoot":"","sources":["../../../src/utils/instructionResult.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAA6B,MAAM,UAAU,CAAC;AAenE;;GAEG;AACH,SAAS,eAAe,CACtB,WAAwB,EACxB,SAA2C;IAE3C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;IAElD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9C,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB;YAC3D,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB;SACvD,CAAC,CAAC;QACH,SAAS,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,iBAAiB;IACnB,YAAY,CAAgB;IAErC,YAAY,YAA2B;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CACN,SAA4C;QAE5C,MAAM,EAAE,GAAG,SAAS,IAAI,YAAY,EAAE,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared utilities for preparing instructions with compute budget
|
|
2
|
+
* Shared utilities for preparing instructions with compute budget
|
|
3
3
|
* @module utils/instructions
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { InstructionResult } from './instructionResult';
|
|
6
6
|
/**
|
|
7
7
|
* Compute Budget Program ID
|
|
8
8
|
*/
|
|
@@ -15,7 +15,7 @@ const SET_COMPUTE_UNIT_LIMIT_DISCRIMINATOR = 0x02;
|
|
|
15
15
|
* Create a SetComputeUnitLimit instruction manually
|
|
16
16
|
*
|
|
17
17
|
* @param units - Compute units to allocate
|
|
18
|
-
* @returns
|
|
18
|
+
* @returns Instruction for setting compute unit limit
|
|
19
19
|
*/
|
|
20
20
|
function createComputeBudgetInstruction(units) {
|
|
21
21
|
// Encode u32 in little-endian format
|
|
@@ -36,26 +36,25 @@ function createComputeBudgetInstruction(units) {
|
|
|
36
36
|
* This utility handles the common workflow of:
|
|
37
37
|
* 1. Normalizing single instruction to array
|
|
38
38
|
* 2. Optionally prepending compute budget instruction
|
|
39
|
-
* 3.
|
|
39
|
+
* 3. Returning an InstructionResult that can be used directly with @solana/kit
|
|
40
|
+
* or converted to web3.js format via .toLegacy()
|
|
40
41
|
*
|
|
41
42
|
* @param instructions - Single instruction or array of instructions
|
|
42
|
-
* @param options - Optional configuration for compute budget
|
|
43
|
-
* @returns
|
|
43
|
+
* @param options - Optional configuration for compute budget
|
|
44
|
+
* @returns InstructionResult (extends Instruction[], has .toLegacy() method)
|
|
44
45
|
*
|
|
45
46
|
* @example
|
|
46
47
|
* ```typescript
|
|
47
|
-
* //
|
|
48
|
+
* // Kit users - use result directly as Instruction[]
|
|
48
49
|
* const ixs = prepareInstructions(acceptRentalIx);
|
|
50
|
+
* // ixs works with appendTransactionMessageInstruction()
|
|
49
51
|
*
|
|
50
52
|
* // Add compute budget
|
|
51
53
|
* const ixs = prepareInstructions(acceptRentalIx, { computeUnits: 400_000 });
|
|
52
54
|
*
|
|
53
|
-
* //
|
|
55
|
+
* // Web3.js users - call .toLegacy()
|
|
54
56
|
* import { PublicKey } from '@solana/web3.js';
|
|
55
|
-
* const
|
|
56
|
-
*
|
|
57
|
-
* // Both compute budget and web3.js conversion
|
|
58
|
-
* const ixs = prepareInstructions(acceptRentalIx, { computeUnits: 400_000, PublicKey });
|
|
57
|
+
* const legacyIxs = prepareInstructions(acceptRentalIx).toLegacy(PublicKey);
|
|
59
58
|
* ```
|
|
60
59
|
*/
|
|
61
60
|
export function prepareInstructions(instructions, options) {
|
|
@@ -67,10 +66,6 @@ export function prepareInstructions(instructions, options) {
|
|
|
67
66
|
const computeBudgetIx = createComputeBudgetInstruction(options.computeUnits);
|
|
68
67
|
finalIxs = [computeBudgetIx, ...ixArray];
|
|
69
68
|
}
|
|
70
|
-
|
|
71
|
-
if (options?.PublicKey) {
|
|
72
|
-
return finalIxs.map(ix => toWeb3Instruction(ix, options.PublicKey));
|
|
73
|
-
}
|
|
74
|
-
return finalIxs;
|
|
69
|
+
return new InstructionResult(finalIxs);
|
|
75
70
|
}
|
|
76
71
|
//# sourceMappingURL=instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/utils/instructions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/utils/instructions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,sBAAsB,GAAG,6CAAwD,CAAC;AAExF;;GAEG;AACH,MAAM,oCAAoC,GAAG,IAAI,CAAC;AAElD;;;;;GAKG;AACH,SAAS,8BAA8B,CAAC,KAAa;IACnD,qCAAqC;IACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,oCAAoC,CAAC;IAC/C,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAE/B,OAAO;QACL,cAAc,EAAE,sBAAsB;QACtC,IAAI;KACL,CAAC;AACJ,CAAC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAyC,EACzC,OAAoC;IAEpC,qBAAqB;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE5E,gDAAgD;IAChD,IAAI,QAAQ,GAAkB,OAAO,CAAC;IACtC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,8BAA8B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7E,QAAQ,GAAG,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Address Lookup Table utilities for SRSLY
|
|
3
|
+
*
|
|
4
|
+
* Provides helpers for fetching and using the SRSLY Address Lookup Table
|
|
5
|
+
* to reduce transaction size for rental operations.
|
|
6
|
+
*/
|
|
7
|
+
import { fetchConfig } from '../accounts/config';
|
|
8
|
+
import { createRpc } from './rpc';
|
|
9
|
+
import { getRpcUrl } from './config';
|
|
10
|
+
/**
|
|
11
|
+
* System program address used as default when ALT not configured
|
|
12
|
+
*/
|
|
13
|
+
const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
|
|
14
|
+
/**
|
|
15
|
+
* Fetch the SRSLY Address Lookup Table from chain
|
|
16
|
+
*
|
|
17
|
+
* The ALT contains static addresses used across all rental operations,
|
|
18
|
+
* reducing transaction size by ~310 bytes when used with versioned transactions.
|
|
19
|
+
*
|
|
20
|
+
* @param rpcUrl - Optional RPC endpoint URL. If not provided, uses RPC from global config
|
|
21
|
+
* @returns ALT data with addresses, or null if ALT not configured
|
|
22
|
+
* @throws Error if fetch fails
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Fetch ALT using global config RPC
|
|
27
|
+
* const alt = await fetchLookupTable();
|
|
28
|
+
* if (alt) {
|
|
29
|
+
* console.log('ALT address:', alt.address);
|
|
30
|
+
* console.log('Contains', alt.addresses.length, 'addresses');
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export async function fetchLookupTable(rpcUrl) {
|
|
35
|
+
try {
|
|
36
|
+
// Fetch config to get ALT address
|
|
37
|
+
const config = await fetchConfig(rpcUrl);
|
|
38
|
+
const altAddress = config.data.lookupTable;
|
|
39
|
+
// Return null if ALT not configured (default pubkey)
|
|
40
|
+
if (altAddress === SYSTEM_PROGRAM_ID) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
// Fetch ALT account data
|
|
44
|
+
const resolvedRpcUrl = rpcUrl || getRpcUrl();
|
|
45
|
+
const rpc = createRpc(resolvedRpcUrl);
|
|
46
|
+
const accountInfo = await rpc
|
|
47
|
+
.getAccountInfo(altAddress, { encoding: 'base64' })
|
|
48
|
+
.send();
|
|
49
|
+
if (!accountInfo.value) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
// Decode ALT data
|
|
53
|
+
// ALT format: https://docs.solanalabs.com/implemented-proposals/address-lookup-table
|
|
54
|
+
// Header: 56 bytes (discriminator, deactivation_slot, last_extended_slot, etc.)
|
|
55
|
+
// Addresses: remaining bytes, 32 bytes each
|
|
56
|
+
const data = base64ToUint8Array(accountInfo.value.data[0]);
|
|
57
|
+
// Skip 56-byte header to get to addresses
|
|
58
|
+
const HEADER_SIZE = 56;
|
|
59
|
+
const ADDRESS_SIZE = 32;
|
|
60
|
+
const addresses = [];
|
|
61
|
+
for (let i = HEADER_SIZE; i < data.length; i += ADDRESS_SIZE) {
|
|
62
|
+
const addressBytes = data.subarray(i, i + ADDRESS_SIZE);
|
|
63
|
+
// Convert to base58 address string
|
|
64
|
+
addresses.push(bs58Encode(addressBytes));
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
address: altAddress,
|
|
68
|
+
addresses,
|
|
69
|
+
isActive: addresses.length > 0
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw new Error(`Failed to fetch lookup table: ${error.message}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get the ALT address from config without fetching full ALT data
|
|
78
|
+
*
|
|
79
|
+
* @param rpcUrl - Optional RPC endpoint URL
|
|
80
|
+
* @returns ALT address, or null if not configured
|
|
81
|
+
*/
|
|
82
|
+
export async function getLookupTableAddress(rpcUrl) {
|
|
83
|
+
const config = await fetchConfig(rpcUrl);
|
|
84
|
+
const altAddress = config.data.lookupTable;
|
|
85
|
+
if (altAddress === SYSTEM_PROGRAM_ID) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
return altAddress;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Browser-compatible base64 to Uint8Array decoder
|
|
92
|
+
* Uses atob which is available in browsers and Node.js 16+
|
|
93
|
+
*/
|
|
94
|
+
function base64ToUint8Array(base64) {
|
|
95
|
+
const binaryString = atob(base64);
|
|
96
|
+
const bytes = new Uint8Array(binaryString.length);
|
|
97
|
+
for (let i = 0; i < binaryString.length; i++) {
|
|
98
|
+
bytes[i] = binaryString.charCodeAt(i);
|
|
99
|
+
}
|
|
100
|
+
return bytes;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Simple base58 encoder for address bytes
|
|
104
|
+
* Using a minimal implementation to avoid additional dependencies
|
|
105
|
+
*/
|
|
106
|
+
function bs58Encode(bytes) {
|
|
107
|
+
const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
108
|
+
const BASE = 58;
|
|
109
|
+
if (bytes.length === 0)
|
|
110
|
+
return '';
|
|
111
|
+
// Count leading zeros
|
|
112
|
+
let zeros = 0;
|
|
113
|
+
while (zeros < bytes.length && bytes[zeros] === 0) {
|
|
114
|
+
zeros++;
|
|
115
|
+
}
|
|
116
|
+
// Convert to base58
|
|
117
|
+
const input = Array.from(bytes);
|
|
118
|
+
const encoded = [];
|
|
119
|
+
for (const byte of input) {
|
|
120
|
+
let carry = byte;
|
|
121
|
+
for (let i = 0; i < encoded.length; i++) {
|
|
122
|
+
carry += encoded[i] << 8;
|
|
123
|
+
encoded[i] = carry % BASE;
|
|
124
|
+
carry = Math.floor(carry / BASE);
|
|
125
|
+
}
|
|
126
|
+
while (carry > 0) {
|
|
127
|
+
encoded.push(carry % BASE);
|
|
128
|
+
carry = Math.floor(carry / BASE);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Add leading zeros
|
|
132
|
+
let result = ALPHABET[0].repeat(zeros);
|
|
133
|
+
// Convert to string (encoded is in reverse order)
|
|
134
|
+
for (let i = encoded.length - 1; i >= 0; i--) {
|
|
135
|
+
result += ALPHABET[encoded[i]];
|
|
136
|
+
}
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=lookupTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookupTable.js","sourceRoot":"","sources":["../../../src/utils/lookupTable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rental utility functions
|
|
3
|
+
* @module utils/rental
|
|
4
|
+
*/
|
|
5
|
+
import { fetchRentalState } from '../generated/codama/accounts';
|
|
6
|
+
import { deriveRental } from '../pda/srsly';
|
|
7
|
+
import { createRpc } from './rpc';
|
|
8
|
+
// System program ID constant
|
|
9
|
+
const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
|
|
10
|
+
/**
|
|
11
|
+
* Find which slot has an existing rental from contract data.
|
|
12
|
+
*
|
|
13
|
+
* Uses the contract's rentalSlot0/rentalSlot1 fields to determine which slot has a rental.
|
|
14
|
+
* If both slots have rentals, returns the active slot.
|
|
15
|
+
* If only one slot has a rental, returns that slot.
|
|
16
|
+
*
|
|
17
|
+
* @param contractData - Object with rentalSlot0, rentalSlot1, and activeSlot fields
|
|
18
|
+
* @returns The slot number (0 or 1) if found, undefined if no rentals exist
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const contract = await fetchContract(contractAddress, rpcUrl);
|
|
23
|
+
* const slot = findExistingRentalSlot(contract.data);
|
|
24
|
+
* if (slot !== undefined) {
|
|
25
|
+
* console.log(`Found rental at slot ${slot}`);
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function findExistingRentalSlot(contractData) {
|
|
30
|
+
const slot0HasRental = contractData.rentalSlot0 !== SYSTEM_PROGRAM_ID;
|
|
31
|
+
const slot1HasRental = contractData.rentalSlot1 !== SYSTEM_PROGRAM_ID;
|
|
32
|
+
if (slot0HasRental && slot1HasRental) {
|
|
33
|
+
// Both slots have rentals, return the active one
|
|
34
|
+
return contractData.activeSlot;
|
|
35
|
+
}
|
|
36
|
+
else if (slot0HasRental) {
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
else if (slot1HasRental) {
|
|
40
|
+
return 1;
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Find which slot has an existing rental, throwing if none found.
|
|
46
|
+
*
|
|
47
|
+
* @param contractData - Object with rentalSlot0, rentalSlot1, and activeSlot fields
|
|
48
|
+
* @returns The slot number (0 or 1)
|
|
49
|
+
* @throws Error if no rental exists on this contract
|
|
50
|
+
*/
|
|
51
|
+
export function requireExistingRentalSlot(contractData) {
|
|
52
|
+
const slot = findExistingRentalSlot(contractData);
|
|
53
|
+
if (slot === undefined) {
|
|
54
|
+
throw new Error('No rental exists on this contract');
|
|
55
|
+
}
|
|
56
|
+
return slot;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Find which rental slot belongs to a borrower on a contract.
|
|
60
|
+
*
|
|
61
|
+
* Checks both slot 0 and slot 1 to find the rental that belongs to the borrower.
|
|
62
|
+
* Useful for operations like cancel where the borrower can only act on their own rental.
|
|
63
|
+
*
|
|
64
|
+
* @param contract - The contract address
|
|
65
|
+
* @param borrower - The borrower address to search for
|
|
66
|
+
* @param rpcUrl - RPC URL to use for fetching rental states
|
|
67
|
+
* @returns The slot number (0 or 1) if found, undefined if no rental exists for this borrower
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const slot = await findBorrowerRentalSlot(contractAddress, borrowerAddress, rpcUrl);
|
|
72
|
+
* if (slot !== undefined) {
|
|
73
|
+
* console.log(`Borrower has rental at slot ${slot}`);
|
|
74
|
+
* }
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export async function findBorrowerRentalSlot(contract, borrower, rpcUrl) {
|
|
78
|
+
const rpc = createRpc(rpcUrl);
|
|
79
|
+
// Address type is a branded string, so we can compare directly
|
|
80
|
+
const borrowerStr = typeof borrower === 'string' ? borrower : borrower;
|
|
81
|
+
// Try slot 0 first
|
|
82
|
+
try {
|
|
83
|
+
const rental0 = await deriveRental(contract, 0);
|
|
84
|
+
const rentalState0 = await fetchRentalState(rpc, rental0);
|
|
85
|
+
if (rentalState0.data.borrower === borrowerStr) {
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// slot 0 doesn't exist or fetch failed
|
|
91
|
+
}
|
|
92
|
+
// Try slot 1
|
|
93
|
+
try {
|
|
94
|
+
const rental1 = await deriveRental(contract, 1);
|
|
95
|
+
const rentalState1 = await fetchRentalState(rpc, rental1);
|
|
96
|
+
if (rentalState1.data.borrower === borrowerStr) {
|
|
97
|
+
return 1;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// slot 1 doesn't exist or fetch failed
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Find which rental slot belongs to a borrower, throwing if not found.
|
|
107
|
+
*
|
|
108
|
+
* Same as findBorrowerRentalSlot but throws an error if no rental is found.
|
|
109
|
+
*
|
|
110
|
+
* @param contract - The contract address
|
|
111
|
+
* @param borrower - The borrower address to search for
|
|
112
|
+
* @param rpcUrl - RPC URL to use for fetching rental states
|
|
113
|
+
* @returns The slot number (0 or 1)
|
|
114
|
+
* @throws Error if no rental is found for this borrower
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const slot = await requireBorrowerRentalSlot(contractAddress, borrowerAddress, rpcUrl);
|
|
119
|
+
* // Will throw if borrower has no rental on this contract
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export async function requireBorrowerRentalSlot(contract, borrower, rpcUrl) {
|
|
123
|
+
const slot = await findBorrowerRentalSlot(contract, borrower, rpcUrl);
|
|
124
|
+
if (slot === undefined) {
|
|
125
|
+
throw new Error('No active rental found for this borrower on this contract');
|
|
126
|
+
}
|
|
127
|
+
return slot;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=rental.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rental.js","sourceRoot":"","sources":["../../../src/utils/rental.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,6BAA6B;AAC7B,MAAM,iBAAiB,GAAG,kCAAkC,CAAC;AAW7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAA8B;IACnE,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,KAAK,iBAAiB,CAAC;IACtE,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,KAAK,iBAAiB,CAAC;IAEtE,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;QACrC,iDAAiD;QACjD,OAAO,YAAY,CAAC,UAAU,CAAC;IACjC,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAA8B;IACtE,MAAM,IAAI,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAA0B,EAC1B,QAA0B,EAC1B,MAAc;IAEd,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,+DAA+D;IAC/D,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,QAAmB,CAAC;IAEnF,mBAAmB;IACnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IAED,aAAa;IACb,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAA0B,EAC1B,QAA0B,EAC1B,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|