@wuwei-labs/srsly 3.0.0-beta.21 → 3.0.0-beta.23
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/dist/cjs/accounts/borrower.js +12 -5
- package/dist/cjs/accounts/borrower.js.map +1 -1
- package/dist/cjs/accounts/contract.js +12 -5
- package/dist/cjs/accounts/contract.js.map +1 -1
- package/dist/cjs/accounts/index.js +23 -0
- package/dist/cjs/accounts/index.js.map +1 -0
- package/dist/cjs/accounts/rental.js +12 -5
- package/dist/cjs/accounts/rental.js.map +1 -1
- package/dist/cjs/demos.js +190 -62
- package/dist/cjs/demos.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/borrowerState.js +8 -2
- package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/configState.js +4 -6
- package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/contractState.js +27 -34
- package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/index.js +0 -1
- package/dist/cjs/generated/codama/accounts/index.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/rentalState.js +20 -14
- package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/thread.js +0 -10
- package/dist/cjs/generated/codama/accounts/thread.js.map +1 -1
- package/dist/cjs/generated/codama/errors/srsly.js +39 -30
- package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/acceptRental.js +69 -118
- package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/activateRental.js +159 -24
- package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/cancelRental.js +28 -33
- package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/claimBorrower.js +3 -11
- package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/claimContract.js +202 -0
- package/dist/cjs/generated/codama/instructions/claimContract.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeBorrower.js +183 -0
- package/dist/cjs/generated/codama/instructions/closeBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeContract.js +130 -14
- package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/closeContractThread.js +167 -0
- package/dist/cjs/generated/codama/instructions/closeContractThread.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeRental.js +10 -121
- package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createBorrower.js +211 -0
- package/dist/cjs/generated/codama/instructions/createBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/createContract.js +46 -30
- package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createContractThread.js +317 -0
- package/dist/cjs/generated/codama/instructions/createContractThread.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js +115 -0
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/deleteRental.js +2 -2
- package/dist/cjs/generated/codama/instructions/deleteRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/index.js +8 -5
- package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/payContract.js +224 -0
- package/dist/cjs/generated/codama/instructions/payContract.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/processContract.js +224 -0
- package/dist/cjs/generated/codama/instructions/processContract.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/reserveRental.js +94 -60
- package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateBorrower.js +7 -43
- package/dist/cjs/generated/codama/instructions/updateBorrower.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateConfig.js +4 -6
- package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateContract.js +6 -16
- package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateContractThread.js +177 -0
- package/dist/cjs/generated/codama/instructions/updateContractThread.js.map +1 -0
- package/dist/cjs/generated/codama/programs/srsly.js +43 -35
- package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/types/bidType.js +30 -0
- package/dist/cjs/generated/codama/types/bidType.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractThreadClosed.js +29 -0
- package/dist/cjs/generated/codama/types/contractThreadClosed.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractThreadCreated.js +29 -0
- package/dist/cjs/generated/codama/types/contractThreadCreated.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractThreadUpdated.js +39 -0
- package/dist/cjs/generated/codama/types/contractThreadUpdated.js.map +1 -0
- package/dist/cjs/generated/codama/types/discountAuthorization.js +2 -0
- package/dist/cjs/generated/codama/types/discountAuthorization.js.map +1 -1
- package/dist/cjs/generated/codama/types/index.js +6 -2
- package/dist/cjs/generated/codama/types/index.js.map +1 -1
- package/dist/cjs/generated/codama/types/queuedRentalRefunded.js +33 -0
- package/dist/cjs/generated/codama/types/queuedRentalRefunded.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalAccepted.js +2 -10
- package/dist/cjs/generated/codama/types/rentalAccepted.js.map +1 -1
- package/dist/cjs/generated/codama/types/rentalActivated.js +2 -0
- package/dist/cjs/generated/codama/types/rentalActivated.js.map +1 -1
- package/dist/cjs/generated/codama/types/rentalExpiredInline.js +31 -0
- package/dist/cjs/generated/codama/types/rentalExpiredInline.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalStatus.js +4 -3
- package/dist/cjs/generated/codama/types/rentalStatus.js.map +1 -1
- package/dist/cjs/generated/codama/types/reservationCreated.js +9 -4
- package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -1
- package/dist/cjs/generated/codama/types/signal.js +14 -2
- package/dist/cjs/generated/codama/types/signal.js.map +1 -1
- package/dist/cjs/index.js +4 -221
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instructions/acceptRental.js +37 -85
- package/dist/cjs/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/instructions/activateRental.js +85 -0
- package/dist/cjs/instructions/activateRental.js.map +1 -0
- package/dist/cjs/instructions/cancelRental.js +25 -23
- package/dist/cjs/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/instructions/claimBorrower.js +44 -22
- package/dist/cjs/instructions/claimBorrower.js.map +1 -1
- package/dist/cjs/instructions/claimContract.js +56 -0
- package/dist/cjs/instructions/claimContract.js.map +1 -0
- package/dist/cjs/instructions/closeBorrower.js +58 -0
- package/dist/cjs/instructions/closeBorrower.js.map +1 -0
- package/dist/cjs/instructions/closeContract.js +13 -12
- package/dist/cjs/instructions/closeContract.js.map +1 -1
- package/dist/cjs/instructions/closeContractThread.js +66 -0
- package/dist/cjs/instructions/closeContractThread.js.map +1 -0
- package/dist/cjs/instructions/closeRental.js +34 -45
- package/dist/cjs/instructions/closeRental.js.map +1 -1
- package/dist/cjs/instructions/createBorrower.js +64 -0
- package/dist/cjs/instructions/createBorrower.js.map +1 -0
- package/dist/cjs/instructions/createContract.js +2 -34
- package/dist/cjs/instructions/createContract.js.map +1 -1
- package/dist/cjs/instructions/createContractThread.js +78 -0
- package/dist/cjs/instructions/createContractThread.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/deleteRental.js +1 -4
- package/dist/cjs/instructions/deleteRental.js.map +1 -1
- package/dist/cjs/instructions/index.js +43 -49
- package/dist/cjs/instructions/index.js.map +1 -1
- package/dist/cjs/instructions/reserveRental.js +70 -68
- package/dist/cjs/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/instructions/updateBorrower.js +44 -40
- 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 +14 -30
- package/dist/cjs/instructions/updateContract.js.map +1 -1
- package/dist/cjs/instructions/updateContractThread.js +60 -0
- package/dist/cjs/instructions/updateContractThread.js.map +1 -0
- package/dist/cjs/kit/index.js +37 -3
- package/dist/cjs/kit/index.js.map +1 -1
- package/dist/cjs/legacy/index.js +15 -16
- package/dist/cjs/legacy/index.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/params/index.js +21 -0
- package/dist/cjs/params/index.js.map +1 -0
- package/dist/cjs/params/sol.js +71 -0
- package/dist/cjs/params/sol.js.map +1 -0
- package/dist/cjs/pda/constants.js +7 -3
- package/dist/cjs/pda/constants.js.map +1 -1
- package/dist/cjs/pda/index.js +9 -23
- package/dist/cjs/pda/index.js.map +1 -1
- package/dist/cjs/pda/srsly.js +30 -37
- package/dist/cjs/pda/srsly.js.map +1 -1
- package/dist/cjs/pda/thread.js +38 -29
- package/dist/cjs/pda/thread.js.map +1 -1
- package/dist/cjs/utils/addresses.js +2 -1
- package/dist/cjs/utils/addresses.js.map +1 -1
- package/dist/cjs/utils/discountAuth.js +5 -1
- package/dist/cjs/utils/discountAuth.js.map +1 -1
- package/dist/cjs/utils/index.js +3 -5
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/rental.js +23 -109
- package/dist/cjs/utils/rental.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/accounts/borrower.js +12 -5
- package/dist/esm/accounts/borrower.js.map +1 -1
- package/dist/esm/accounts/contract.js +12 -5
- package/dist/esm/accounts/contract.js.map +1 -1
- package/dist/esm/accounts/index.js +7 -0
- package/dist/esm/accounts/index.js.map +1 -0
- package/dist/esm/accounts/rental.js +12 -5
- package/dist/esm/accounts/rental.js.map +1 -1
- package/dist/esm/demos.js +189 -61
- package/dist/esm/demos.js.map +1 -1
- package/dist/esm/generated/codama/accounts/borrowerState.js +9 -3
- package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/configState.js +4 -6
- package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/contractState.js +28 -35
- package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/index.js +0 -1
- package/dist/esm/generated/codama/accounts/index.js.map +1 -1
- package/dist/esm/generated/codama/accounts/rentalState.js +22 -16
- package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/thread.js +0 -10
- package/dist/esm/generated/codama/accounts/thread.js.map +1 -1
- package/dist/esm/generated/codama/errors/srsly.js +37 -28
- package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
- package/dist/esm/generated/codama/instructions/acceptRental.js +70 -119
- package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/activateRental.js +161 -26
- package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/cancelRental.js +29 -34
- package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/claimBorrower.js +4 -12
- package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
- package/dist/esm/generated/codama/instructions/claimContract.js +192 -0
- package/dist/esm/generated/codama/instructions/claimContract.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeBorrower.js +173 -0
- package/dist/esm/generated/codama/instructions/closeBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeContract.js +130 -14
- package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/closeContractThread.js +157 -0
- package/dist/esm/generated/codama/instructions/closeContractThread.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeRental.js +11 -122
- package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createBorrower.js +201 -0
- package/dist/esm/generated/codama/instructions/createBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/createContract.js +47 -31
- package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createContractThread.js +307 -0
- package/dist/esm/generated/codama/instructions/createContractThread.js.map +1 -0
- package/dist/esm/generated/codama/instructions/deleteBorrower.js +105 -0
- package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/deleteRental.js +2 -2
- package/dist/esm/generated/codama/instructions/deleteRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/index.js +8 -5
- package/dist/esm/generated/codama/instructions/index.js.map +1 -1
- package/dist/esm/generated/codama/instructions/payContract.js +214 -0
- package/dist/esm/generated/codama/instructions/payContract.js.map +1 -0
- package/dist/esm/generated/codama/instructions/processContract.js +214 -0
- package/dist/esm/generated/codama/instructions/processContract.js.map +1 -0
- package/dist/esm/generated/codama/instructions/reserveRental.js +95 -61
- package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateBorrower.js +8 -43
- package/dist/esm/generated/codama/instructions/updateBorrower.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateConfig.js +5 -7
- package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateContract.js +7 -17
- package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateContractThread.js +167 -0
- package/dist/esm/generated/codama/instructions/updateContractThread.js.map +1 -0
- package/dist/esm/generated/codama/programs/srsly.js +43 -35
- package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
- package/dist/esm/generated/codama/types/bidType.js +24 -0
- package/dist/esm/generated/codama/types/bidType.js.map +1 -0
- package/dist/esm/generated/codama/types/contractThreadClosed.js +24 -0
- package/dist/esm/generated/codama/types/contractThreadClosed.js.map +1 -0
- package/dist/esm/generated/codama/types/contractThreadCreated.js +24 -0
- package/dist/esm/generated/codama/types/contractThreadCreated.js.map +1 -0
- package/dist/esm/generated/codama/types/contractThreadUpdated.js +34 -0
- package/dist/esm/generated/codama/types/contractThreadUpdated.js.map +1 -0
- package/dist/esm/generated/codama/types/discountAuthorization.js +3 -1
- package/dist/esm/generated/codama/types/discountAuthorization.js.map +1 -1
- package/dist/esm/generated/codama/types/index.js +6 -2
- package/dist/esm/generated/codama/types/index.js.map +1 -1
- package/dist/esm/generated/codama/types/queuedRentalRefunded.js +28 -0
- package/dist/esm/generated/codama/types/queuedRentalRefunded.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalAccepted.js +2 -10
- package/dist/esm/generated/codama/types/rentalAccepted.js.map +1 -1
- package/dist/esm/generated/codama/types/rentalActivated.js +3 -1
- package/dist/esm/generated/codama/types/rentalActivated.js.map +1 -1
- package/dist/esm/generated/codama/types/rentalExpiredInline.js +26 -0
- package/dist/esm/generated/codama/types/rentalExpiredInline.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalStatus.js +4 -3
- package/dist/esm/generated/codama/types/rentalStatus.js.map +1 -1
- package/dist/esm/generated/codama/types/reservationCreated.js +10 -5
- package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -1
- package/dist/esm/generated/codama/types/signal.js +15 -3
- package/dist/esm/generated/codama/types/signal.js.map +1 -1
- package/dist/esm/index.js +1 -99
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instructions/acceptRental.js +41 -89
- package/dist/esm/instructions/acceptRental.js.map +1 -1
- package/dist/esm/instructions/activateRental.js +82 -0
- package/dist/esm/instructions/activateRental.js.map +1 -0
- package/dist/esm/instructions/cancelRental.js +26 -24
- package/dist/esm/instructions/cancelRental.js.map +1 -1
- package/dist/esm/instructions/claimBorrower.js +45 -23
- package/dist/esm/instructions/claimBorrower.js.map +1 -1
- package/dist/esm/instructions/claimContract.js +53 -0
- package/dist/esm/instructions/claimContract.js.map +1 -0
- package/dist/esm/instructions/closeBorrower.js +55 -0
- package/dist/esm/instructions/closeBorrower.js.map +1 -0
- package/dist/esm/instructions/closeContract.js +13 -12
- package/dist/esm/instructions/closeContract.js.map +1 -1
- package/dist/esm/instructions/closeContractThread.js +63 -0
- package/dist/esm/instructions/closeContractThread.js.map +1 -0
- package/dist/esm/instructions/closeRental.js +35 -46
- package/dist/esm/instructions/closeRental.js.map +1 -1
- package/dist/esm/instructions/createBorrower.js +61 -0
- package/dist/esm/instructions/createBorrower.js.map +1 -0
- package/dist/esm/instructions/createContract.js +2 -34
- package/dist/esm/instructions/createContract.js.map +1 -1
- package/dist/esm/instructions/createContractThread.js +75 -0
- package/dist/esm/instructions/createContractThread.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/deleteRental.js +1 -4
- package/dist/esm/instructions/deleteRental.js.map +1 -1
- package/dist/esm/instructions/index.js +29 -24
- package/dist/esm/instructions/index.js.map +1 -1
- package/dist/esm/instructions/reserveRental.js +71 -69
- package/dist/esm/instructions/reserveRental.js.map +1 -1
- package/dist/esm/instructions/updateBorrower.js +45 -41
- 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 +14 -30
- package/dist/esm/instructions/updateContract.js.map +1 -1
- package/dist/esm/instructions/updateContractThread.js +57 -0
- package/dist/esm/instructions/updateContractThread.js.map +1 -0
- package/dist/esm/kit/index.js +11 -3
- package/dist/esm/kit/index.js.map +1 -1
- package/dist/esm/legacy/index.js +13 -14
- package/dist/esm/legacy/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/params/index.js +5 -0
- package/dist/esm/params/index.js.map +1 -0
- package/dist/esm/params/sol.js +68 -0
- package/dist/esm/params/sol.js.map +1 -0
- package/dist/esm/pda/constants.js +6 -2
- package/dist/esm/pda/constants.js.map +1 -1
- package/dist/esm/pda/index.js +3 -21
- package/dist/esm/pda/index.js.map +1 -1
- package/dist/esm/pda/srsly.js +29 -36
- package/dist/esm/pda/srsly.js.map +1 -1
- package/dist/esm/pda/thread.js +37 -29
- package/dist/esm/pda/thread.js.map +1 -1
- package/dist/esm/utils/addresses.js +2 -1
- package/dist/esm/utils/addresses.js.map +1 -1
- package/dist/esm/utils/discountAuth.js +5 -1
- package/dist/esm/utils/discountAuth.js.map +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/rental.js +22 -106
- package/dist/esm/utils/rental.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/idl/srsly.json +1904 -1945
- package/dist/types/accounts/borrower.d.ts.map +1 -1
- package/dist/types/accounts/contract.d.ts.map +1 -1
- package/dist/types/accounts/index.d.ts +7 -0
- package/dist/types/accounts/index.d.ts.map +1 -0
- package/dist/types/accounts/rental.d.ts.map +1 -1
- package/dist/types/demos.d.ts +28 -10
- package/dist/types/demos.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/borrowerState.d.ts +15 -3
- package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/configState.d.ts +0 -4
- package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/contractState.d.ts +51 -74
- package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/index.d.ts +0 -1
- package/dist/types/generated/codama/accounts/index.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/rentalState.d.ts +46 -34
- package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/thread.d.ts +0 -4
- package/dist/types/generated/codama/accounts/thread.d.ts.map +1 -1
- package/dist/types/generated/codama/errors/srsly.d.ts +32 -26
- package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/acceptRental.d.ts +53 -62
- package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/activateRental.d.ts +76 -32
- package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/cancelRental.d.ts +28 -25
- package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts +4 -24
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/claimContract.d.ts +79 -0
- package/dist/types/generated/codama/instructions/claimContract.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeBorrower.d.ts +83 -0
- package/dist/types/generated/codama/instructions/closeBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeContract.d.ts +70 -18
- package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/closeContractThread.d.ts +67 -0
- package/dist/types/generated/codama/instructions/closeContractThread.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeRental.d.ts +20 -70
- package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/createBorrower.d.ts +88 -0
- package/dist/types/generated/codama/instructions/createBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/createContract.d.ts +28 -32
- package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/createContractThread.d.ts +133 -0
- package/dist/types/generated/codama/instructions/createContractThread.d.ts.map +1 -0
- 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/deleteRental.d.ts +4 -1
- package/dist/types/generated/codama/instructions/deleteRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/index.d.ts +8 -5
- package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/payContract.d.ts +100 -0
- package/dist/types/generated/codama/instructions/payContract.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/processContract.d.ts +100 -0
- package/dist/types/generated/codama/instructions/processContract.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/reserveRental.d.ts +88 -68
- package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateBorrower.d.ts +21 -19
- package/dist/types/generated/codama/instructions/updateBorrower.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateConfig.d.ts +0 -6
- package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateContract.d.ts +2 -14
- package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateContractThread.d.ts +76 -0
- package/dist/types/generated/codama/instructions/updateContractThread.d.ts.map +1 -0
- package/dist/types/generated/codama/programs/srsly.d.ts +40 -32
- package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/types/bidType.d.ts +18 -0
- package/dist/types/generated/codama/types/bidType.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractThreadClosed.d.ts +17 -0
- package/dist/types/generated/codama/types/contractThreadClosed.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractThreadCreated.d.ts +17 -0
- package/dist/types/generated/codama/types/contractThreadCreated.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractThreadUpdated.d.ts +24 -0
- package/dist/types/generated/codama/types/contractThreadUpdated.d.ts.map +1 -0
- package/dist/types/generated/codama/types/discountAuthorization.d.ts +5 -1
- package/dist/types/generated/codama/types/discountAuthorization.d.ts.map +1 -1
- package/dist/types/generated/codama/types/index.d.ts +6 -2
- package/dist/types/generated/codama/types/index.d.ts.map +1 -1
- package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts +24 -0
- package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalAccepted.d.ts +2 -10
- package/dist/types/generated/codama/types/rentalAccepted.d.ts.map +1 -1
- package/dist/types/generated/codama/types/rentalActivated.d.ts +7 -1
- package/dist/types/generated/codama/types/rentalActivated.d.ts.map +1 -1
- package/dist/types/generated/codama/types/rentalExpiredInline.d.ts +18 -0
- package/dist/types/generated/codama/types/rentalExpiredInline.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalStatus.d.ts +4 -3
- package/dist/types/generated/codama/types/rentalStatus.d.ts.map +1 -1
- package/dist/types/generated/codama/types/reservationCreated.d.ts +9 -4
- package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -1
- package/dist/types/generated/codama/types/signal.d.ts +8 -6
- package/dist/types/generated/codama/types/signal.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -42
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/instructions/acceptRental.d.ts +2 -31
- package/dist/types/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/instructions/activateRental.d.ts +41 -0
- package/dist/types/instructions/activateRental.d.ts.map +1 -0
- package/dist/types/instructions/cancelRental.d.ts +8 -18
- package/dist/types/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/instructions/claimBorrower.d.ts +33 -11
- package/dist/types/instructions/claimBorrower.d.ts.map +1 -1
- package/dist/types/instructions/claimContract.d.ts +40 -0
- package/dist/types/instructions/claimContract.d.ts.map +1 -0
- package/dist/types/instructions/closeBorrower.d.ts +51 -0
- package/dist/types/instructions/closeBorrower.d.ts.map +1 -0
- package/dist/types/instructions/closeContract.d.ts +1 -12
- package/dist/types/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/instructions/closeContractThread.d.ts +40 -0
- package/dist/types/instructions/closeContractThread.d.ts.map +1 -0
- package/dist/types/instructions/closeRental.d.ts +6 -14
- package/dist/types/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/instructions/createBorrower.d.ts +49 -0
- package/dist/types/instructions/createBorrower.d.ts.map +1 -0
- package/dist/types/instructions/createContract.d.ts +1 -41
- package/dist/types/instructions/createContract.d.ts.map +1 -1
- package/dist/types/instructions/createContractThread.d.ts +51 -0
- package/dist/types/instructions/createContractThread.d.ts.map +1 -0
- package/dist/types/instructions/deleteBorrower.d.ts +56 -0
- package/dist/types/instructions/deleteBorrower.d.ts.map +1 -0
- package/dist/types/instructions/deleteRental.d.ts +3 -2
- package/dist/types/instructions/deleteRental.d.ts.map +1 -1
- package/dist/types/instructions/index.d.ts +29 -24
- package/dist/types/instructions/index.d.ts.map +1 -1
- package/dist/types/instructions/reserveRental.d.ts +33 -29
- package/dist/types/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/instructions/updateBorrower.d.ts +23 -29
- package/dist/types/instructions/updateBorrower.d.ts.map +1 -1
- package/dist/types/instructions/updateConfig.d.ts +0 -4
- package/dist/types/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/instructions/updateContract.d.ts +11 -33
- package/dist/types/instructions/updateContract.d.ts.map +1 -1
- package/dist/types/instructions/updateContractThread.d.ts +48 -0
- package/dist/types/instructions/updateContractThread.d.ts.map +1 -0
- package/dist/types/kit/index.d.ts +10 -3
- package/dist/types/kit/index.d.ts.map +1 -1
- package/dist/types/legacy/index.d.ts +13 -39
- package/dist/types/legacy/index.d.ts.map +1 -1
- package/dist/types/params/index.d.ts +5 -0
- package/dist/types/params/index.d.ts.map +1 -0
- package/dist/types/params/sol.d.ts +34 -0
- package/dist/types/params/sol.d.ts.map +1 -0
- package/dist/types/pda/constants.d.ts +6 -2
- package/dist/types/pda/constants.d.ts.map +1 -1
- package/dist/types/pda/index.d.ts +3 -21
- package/dist/types/pda/index.d.ts.map +1 -1
- package/dist/types/pda/srsly.d.ts +13 -15
- package/dist/types/pda/srsly.d.ts.map +1 -1
- package/dist/types/pda/thread.d.ts +17 -18
- package/dist/types/pda/thread.d.ts.map +1 -1
- package/dist/types/utils/addresses.d.ts.map +1 -1
- package/dist/types/utils/discountAuth.d.ts +4 -0
- package/dist/types/utils/discountAuth.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/rental.d.ts +8 -66
- package/dist/types/utils/rental.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -2,50 +2,46 @@
|
|
|
2
2
|
* @purpose Simplified reserveRental instruction wrapper
|
|
3
3
|
*
|
|
4
4
|
* Thin convenience wrapper around Codama-generated reserveRental instruction.
|
|
5
|
-
* Reserves a rental contract using
|
|
5
|
+
* Reserves a rental contract using ATLAS for a GBM-style auction.
|
|
6
6
|
*/
|
|
7
7
|
import { address } from '@solana/kit';
|
|
8
|
-
import { createRpc } from '../utils/rpc';
|
|
9
8
|
import { getReserveRentalInstructionAsync } from '../generated/codama/instructions';
|
|
10
9
|
import { mergeConfig, getAddresses } from '../utils/config';
|
|
11
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
|
+
import { convertAmount } from '../params/amount';
|
|
12
|
+
import { convertDuration } from '../params/duration';
|
|
12
13
|
import { fetchContract } from '../accounts/contract';
|
|
13
14
|
import { fetchConfig } from '../accounts/config';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
15
|
+
import { fetchBorrower } from '../accounts/borrower';
|
|
16
|
+
import { fetchRental } from '../accounts/rental';
|
|
17
|
+
import { RentalStatus } from '../generated/codama/types';
|
|
18
|
+
import { deriveQueuedRental, deriveRentalAuthority } from '../pda/srsly';
|
|
16
19
|
import { deriveAssociatedTokenAccount } from '../pda/token';
|
|
20
|
+
import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
17
21
|
import { prepareInstructions } from '../utils/instructions';
|
|
22
|
+
import { deserializeDiscountAuth } from '../utils/discountAuth';
|
|
18
23
|
/**
|
|
19
24
|
* Reserve a rental contract via GBM-style auction
|
|
20
25
|
*
|
|
21
|
-
* Allows a user to reserve (bid on) a rental contract using
|
|
22
|
-
*
|
|
23
|
-
*
|
|
26
|
+
* Allows a user to reserve (bid on) a rental contract using ATLAS tokens.
|
|
27
|
+
* Winners get an exclusive reservation window to accept the rental once
|
|
28
|
+
* the current rental ends.
|
|
24
29
|
*
|
|
25
|
-
* The reservation
|
|
26
|
-
*
|
|
27
|
-
* - If `useAtlas=true`: Transfers ATLAS from challenger's wallet
|
|
30
|
+
* The reservation uses the queued rental PDA and requires the contract
|
|
31
|
+
* thread and activate_rental fiber for scheduling.
|
|
28
32
|
*
|
|
29
33
|
* @param params - Reservation parameters
|
|
30
34
|
* @param config - Optional SDK configuration overrides
|
|
31
35
|
* @returns Array of instructions (Kit format or web3.js if PublicKey in config)
|
|
32
36
|
*
|
|
33
|
-
* @
|
|
37
|
+
* @example
|
|
34
38
|
* ```typescript
|
|
35
|
-
* // Reserve with 5
|
|
39
|
+
* // Reserve with 5 ATLAS for a 7-day rental
|
|
36
40
|
* const ixs = await reserveRental({
|
|
37
41
|
* challenger: wallet,
|
|
38
42
|
* contract: "CONTRACT_ADDRESS",
|
|
39
|
-
* amount: 5,
|
|
40
|
-
*
|
|
41
|
-
* });
|
|
42
|
-
*
|
|
43
|
-
* // Reserve with 5 point-equivalents in ATLAS
|
|
44
|
-
* const ixs2 = await reserveRental({
|
|
45
|
-
* challenger: wallet,
|
|
46
|
-
* contract: "CONTRACT_ADDRESS",
|
|
47
|
-
* amount: 5, // 5 * atlas_per_point = ATLAS lamports transferred
|
|
48
|
-
* useAtlas: true,
|
|
43
|
+
* amount: 5,
|
|
44
|
+
* duration: { days: 7 },
|
|
49
45
|
* computeUnits: 200_000
|
|
50
46
|
* });
|
|
51
47
|
* ```
|
|
@@ -63,69 +59,75 @@ export async function reserveRental(params, config) {
|
|
|
63
59
|
if (params.amount === undefined || params.amount === null) {
|
|
64
60
|
throw new Error('amount is required');
|
|
65
61
|
}
|
|
62
|
+
if (!params.duration) {
|
|
63
|
+
throw new Error('duration is required');
|
|
64
|
+
}
|
|
66
65
|
// Convert challenger to transaction signer
|
|
67
66
|
const challengerSigner = toTransactionSigner(params.challenger);
|
|
68
67
|
// Get network-specific addresses
|
|
69
68
|
const addresses = getAddresses(config);
|
|
70
69
|
const programAddress = address(addresses.srsly);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
// Fetch contract to get owner for ownerState derivation
|
|
74
|
-
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
75
|
-
// Fetch config for mint and validation
|
|
70
|
+
const sageProgram = address(addresses.sage);
|
|
71
|
+
// Fetch config for mint
|
|
76
72
|
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
77
73
|
const atlasMint = configAccount.data.atlasMint;
|
|
78
|
-
//
|
|
79
|
-
const
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
//
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
74
|
+
// Fetch contract to get contractTokenAccount
|
|
75
|
+
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
76
|
+
// Derive queued rental PDA
|
|
77
|
+
const rentalState = await deriveQueuedRental(params.contract);
|
|
78
|
+
// Derive rental authority
|
|
79
|
+
const rentalAuthority = await deriveRentalAuthority();
|
|
80
|
+
// Derive contract thread and activate_rental fiber (fiber index 2)
|
|
81
|
+
const contractThread = await deriveContractThread(params.contract, rentalAuthority);
|
|
82
|
+
const activateRentalFiber = await deriveFiber(contractThread, 2);
|
|
83
|
+
// Derive contract token account (ATA of contract PDA)
|
|
84
|
+
const contractAddress = address(params.contract);
|
|
85
|
+
const contractTokenAccount = await deriveAssociatedTokenAccount(contractAddress, atlasMint);
|
|
86
|
+
// Derive challenger's token account
|
|
87
|
+
const challengerTokenAccount = await deriveAssociatedTokenAccount(challengerSigner.address, atlasMint);
|
|
88
|
+
// Convert amount to stardust
|
|
89
|
+
const amountValue = convertAmount(params.amount);
|
|
90
|
+
// Convert duration to seconds
|
|
91
|
+
const durationSeconds = convertDuration(params.duration);
|
|
92
|
+
// Deserialize discount auth if provided
|
|
93
|
+
let discountAuth = null;
|
|
94
|
+
if (params.discountAuth) {
|
|
95
|
+
discountAuth = deserializeDiscountAuth(params.discountAuth);
|
|
96
|
+
}
|
|
97
|
+
const referrer = params.referrer ? address(params.referrer) : undefined;
|
|
88
98
|
// Build instruction input
|
|
89
99
|
const instructionInput = {
|
|
90
100
|
challenger: challengerSigner,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
contract: contractAddress,
|
|
102
|
+
contractThread,
|
|
103
|
+
activateRentalFiber,
|
|
104
|
+
contractTokenAccount,
|
|
105
|
+
challengerTokenAccount,
|
|
106
|
+
rentalState,
|
|
107
|
+
referrer,
|
|
108
|
+
sageProgram,
|
|
96
109
|
amount: amountValue,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
defenderState: undefined,
|
|
100
|
-
defenderManagedTokenAccount: undefined,
|
|
110
|
+
duration: BigInt(durationSeconds),
|
|
111
|
+
discountAuth,
|
|
101
112
|
};
|
|
102
|
-
// If
|
|
103
|
-
if
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const defenderState = contractAccount.data.reservationHolder.value;
|
|
113
|
-
instructionInput.defenderState = defenderState;
|
|
114
|
-
// Fetch defender state to get their managed token account
|
|
115
|
-
const rpc = createRpc(finalConfig.rpcUrl || 'https://api.devnet.solana.com');
|
|
116
|
-
try {
|
|
117
|
-
const defenderStateAccount = await fetchBorrowerState(rpc, defenderState);
|
|
118
|
-
if (defenderStateAccount.data.managedTokenAccount) {
|
|
119
|
-
instructionInput.defenderManagedTokenAccount = defenderStateAccount.data.managedTokenAccount;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
// Defender state might not exist or be readable, continue without it
|
|
113
|
+
// If there's a current queued reservation, provide defender accounts
|
|
114
|
+
// Fetch queued rental to check if there's an existing reservation holder
|
|
115
|
+
try {
|
|
116
|
+
const queuedRental = await fetchRental(rentalState, finalConfig.rpcUrl);
|
|
117
|
+
if (queuedRental.data.status === RentalStatus.Queued) {
|
|
118
|
+
const defenderBorrowerState = queuedRental.data.borrowerState;
|
|
119
|
+
instructionInput.defenderState = defenderBorrowerState;
|
|
120
|
+
// Fetch defender's managed token account from their borrower state
|
|
121
|
+
const defenderAccount = await fetchBorrower(defenderBorrowerState, finalConfig.rpcUrl);
|
|
122
|
+
instructionInput.defenderManagedTokenAccount = defenderAccount.data.managedTokenAccount;
|
|
124
123
|
}
|
|
125
124
|
}
|
|
125
|
+
catch {
|
|
126
|
+
// Queued rental doesn't exist or is Available — no defender
|
|
127
|
+
}
|
|
126
128
|
// Call Codama-generated instruction
|
|
127
129
|
const kitInstruction = await getReserveRentalInstructionAsync(instructionInput, { programAddress });
|
|
128
|
-
// Prepare instructions with optional compute budget
|
|
130
|
+
// Prepare instructions with optional compute budget
|
|
129
131
|
return prepareInstructions(kitInstruction, {
|
|
130
132
|
computeUnits: params.computeUnits,
|
|
131
133
|
PublicKey: finalConfig.PublicKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserveRental.js","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reserveRental.js","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,55 +2,42 @@
|
|
|
2
2
|
* @purpose Simplified updateBorrower instruction wrapper
|
|
3
3
|
*
|
|
4
4
|
* Thin convenience wrapper around Codama-generated updateBorrower instruction.
|
|
5
|
-
* Updates the borrower's
|
|
5
|
+
* Updates the borrower's SAGE profile addresses.
|
|
6
6
|
*/
|
|
7
7
|
import { address } from '@solana/kit';
|
|
8
|
-
import {
|
|
8
|
+
import { getUpdateBorrowerInstruction } from '../generated/codama/instructions';
|
|
9
9
|
import { mergeConfig, getAddresses } from '../utils/config';
|
|
10
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
11
|
import { prepareInstructions } from '../utils/instructions';
|
|
12
|
-
import {
|
|
12
|
+
import { deriveBorrowerState } from '../pda/srsly';
|
|
13
13
|
/**
|
|
14
14
|
* Update borrower account
|
|
15
15
|
*
|
|
16
|
-
* Updates the borrower's SAGE
|
|
17
|
-
*
|
|
18
|
-
* will be used for refunds and payment claims if initialized.
|
|
16
|
+
* Updates the borrower's SAGE-related addresses. These addresses are stored
|
|
17
|
+
* on-chain in the BorrowerState and used during rental operations.
|
|
19
18
|
*
|
|
20
|
-
* This
|
|
19
|
+
* This is a synchronous instruction (no async account resolution needed).
|
|
20
|
+
* The borrower state PDA is derived from the borrower's address.
|
|
21
21
|
*
|
|
22
22
|
* @param params - Update borrower parameters
|
|
23
23
|
* @param config - Optional SDK configuration overrides
|
|
24
24
|
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
25
25
|
*
|
|
26
|
-
* @
|
|
26
|
+
* @example
|
|
27
27
|
* ```typescript
|
|
28
28
|
* // Update borrower's SAGE profile
|
|
29
29
|
* const ix = await updateBorrower({
|
|
30
30
|
* borrower: wallet,
|
|
31
31
|
* borrowerProfile: "NEW_BORROWER_PROFILE_ADDRESS"
|
|
32
32
|
* });
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ```typescript
|
|
37
|
-
* // Set SAGE profile
|
|
38
|
-
* const ix = await updateBorrower({
|
|
39
|
-
* borrower: borrowerWallet,
|
|
40
|
-
* borrowerProfile: borrowerProfileAddress
|
|
41
|
-
* });
|
|
42
33
|
*
|
|
43
|
-
* //
|
|
34
|
+
* // Update all SAGE addresses at once
|
|
44
35
|
* const ix2 = await updateBorrower({
|
|
45
|
-
* borrower:
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* const ix3 = await updateBorrower({
|
|
51
|
-
* borrower: borrowerWallet,
|
|
52
|
-
* borrowerProfile: borrowerProfileAddress,
|
|
53
|
-
* refundDestination: newTokenAccount
|
|
36
|
+
* borrower: wallet,
|
|
37
|
+
* borrowerProfile: profileAddr,
|
|
38
|
+
* borrowerProfileFaction: factionAddr,
|
|
39
|
+
* starbase: starbaseAddr,
|
|
40
|
+
* starbasePlayer: starbasePlayerAddr
|
|
54
41
|
* });
|
|
55
42
|
* ```
|
|
56
43
|
*/
|
|
@@ -61,25 +48,42 @@ export async function updateBorrower(params, config) {
|
|
|
61
48
|
if (!params.borrower) {
|
|
62
49
|
throw new Error('borrower is required');
|
|
63
50
|
}
|
|
51
|
+
// At least one field must be updated
|
|
52
|
+
if (params.borrowerProfile === undefined &&
|
|
53
|
+
params.borrowerProfileFaction === undefined &&
|
|
54
|
+
params.starbase === undefined &&
|
|
55
|
+
params.starbasePlayer === undefined) {
|
|
56
|
+
throw new Error('At least one SAGE address field must be provided to update');
|
|
57
|
+
}
|
|
64
58
|
// Convert borrower to transaction signer
|
|
65
59
|
const borrowerSigner = toTransactionSigner(params.borrower);
|
|
66
|
-
// Get
|
|
67
|
-
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
68
|
-
const atlasMint = configAccount.data.atlasMint;
|
|
60
|
+
// Get program address
|
|
69
61
|
const addresses = getAddresses(config);
|
|
70
62
|
const programAddress = address(addresses.srsly);
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
//
|
|
74
|
-
const
|
|
63
|
+
// Derive borrower state PDA
|
|
64
|
+
const borrowerState = await deriveBorrowerState(borrowerSigner.address);
|
|
65
|
+
// Build data args: null means "don't update" (Option::None)
|
|
66
|
+
const borrowerProfile = params.borrowerProfile
|
|
67
|
+
? address(params.borrowerProfile)
|
|
68
|
+
: null;
|
|
69
|
+
const borrowerProfileFaction = params.borrowerProfileFaction
|
|
70
|
+
? address(params.borrowerProfileFaction)
|
|
71
|
+
: null;
|
|
72
|
+
const starbase = params.starbase
|
|
73
|
+
? address(params.starbase)
|
|
74
|
+
: null;
|
|
75
|
+
const starbasePlayer = params.starbasePlayer
|
|
76
|
+
? address(params.starbasePlayer)
|
|
77
|
+
: null;
|
|
78
|
+
// Call Codama-generated instruction (sync - not async)
|
|
79
|
+
const kitInstruction = getUpdateBorrowerInstruction({
|
|
75
80
|
borrower: borrowerSigner,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
const kitInstruction = await getUpdateBorrowerInstructionAsync(instructionAccounts, { programAddress });
|
|
81
|
+
borrowerState,
|
|
82
|
+
borrowerProfile,
|
|
83
|
+
borrowerProfileFaction,
|
|
84
|
+
starbase,
|
|
85
|
+
starbasePlayer,
|
|
86
|
+
}, { programAddress });
|
|
83
87
|
return prepareInstructions(kitInstruction, {
|
|
84
88
|
computeUnits: params.computeUnits,
|
|
85
89
|
PublicKey: finalConfig.PublicKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateBorrower.js","sourceRoot":"","sources":["../../../src/instructions/updateBorrower.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"updateBorrower.js","sourceRoot":"","sources":["../../../src/instructions/updateBorrower.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAwCnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,qCAAqC;IACrC,IACE,MAAM,CAAC,eAAe,KAAK,SAAS;QACpC,MAAM,CAAC,sBAAsB,KAAK,SAAS;QAC3C,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC7B,MAAM,CAAC,cAAc,KAAK,SAAS,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,yCAAyC;IACzC,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5D,sBAAsB;IACtB,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAExE,4DAA4D;IAC5D,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe;QAC5C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAA0B,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,sBAAsB,GAAG,MAAM,CAAC,sBAAsB;QAC1D,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAiC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;QAC9B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc;QAC1C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,cAAyB,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC;IAET,uDAAuD;IACvD,MAAM,cAAc,GAAG,4BAA4B,CACjD;QACE,QAAQ,EAAE,cAAc;QACxB,aAAa;QACb,eAAe;QACf,sBAAsB;QACtB,QAAQ;QACR,cAAc;KACf,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -83,7 +83,6 @@ export async function updateConfig(params, config) {
|
|
|
83
83
|
reservationsEnabled: toOption(params.reservationsEnabled),
|
|
84
84
|
pointsPerDay: toOption(params.pointsPerDay),
|
|
85
85
|
cancellationPenalty: toOption(params.cancellationPenalty),
|
|
86
|
-
reservationWindowHours: toOption(params.reservationWindowHours),
|
|
87
86
|
minCaptureThreshold: toOption(params.minCaptureThreshold),
|
|
88
87
|
weightBase: toOption(params.weightBase),
|
|
89
88
|
weightMultiplier: toOption(params.weightMultiplier),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateConfig.js","sourceRoot":"","sources":["../../../src/instructions/updateConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,IAAI,EACJ,IAAI,GAGL,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAG5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"updateConfig.js","sourceRoot":"","sources":["../../../src/instructions/updateConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @purpose Simplified updateContract instruction wrapper
|
|
3
3
|
*
|
|
4
4
|
* Thin convenience wrapper around Codama-generated updateContract instruction.
|
|
5
|
-
* Allows updating any subset of contract fields
|
|
5
|
+
* Allows updating any subset of contract fields. Can be called by owner or delegate.
|
|
6
6
|
*/
|
|
7
7
|
import { address } from '@solana/kit';
|
|
8
8
|
import { getUpdateContractInstructionAsync } from '../generated/codama/instructions';
|
|
@@ -10,13 +10,12 @@ import { mergeConfig, getAddresses } from '../utils/config';
|
|
|
10
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
11
|
import { convertAmount } from '../params/amount';
|
|
12
12
|
import { convertDuration } from '../params/duration';
|
|
13
|
-
import { normalizeSchedule } from '../params/schedule';
|
|
14
13
|
import { prepareInstructions } from '../utils/instructions';
|
|
15
14
|
/**
|
|
16
15
|
* Update an existing rental contract
|
|
17
16
|
*
|
|
18
|
-
* Allows the contract owner to update
|
|
19
|
-
*
|
|
17
|
+
* Allows the contract authority (owner or delegate) to update contract settings.
|
|
18
|
+
* Delegates are restricted to rate-only updates.
|
|
20
19
|
*
|
|
21
20
|
* @param params - Contract update parameters
|
|
22
21
|
* @param config - Optional SDK configuration overrides
|
|
@@ -24,29 +23,20 @@ import { prepareInstructions } from '../utils/instructions';
|
|
|
24
23
|
*
|
|
25
24
|
* @example
|
|
26
25
|
* ```typescript
|
|
27
|
-
* // Update only the rate
|
|
26
|
+
* // Update only the rate (works for both owner and delegate)
|
|
28
27
|
* const ix = await updateContract({
|
|
29
|
-
*
|
|
28
|
+
* authority: wallet,
|
|
30
29
|
* contract: contractAddress,
|
|
31
30
|
* rate: 150 // Increase rate to 150 ATLAS
|
|
32
31
|
* });
|
|
33
32
|
*
|
|
34
|
-
* // Update multiple fields
|
|
33
|
+
* // Update multiple fields (owner only)
|
|
35
34
|
* const ix2 = await updateContract({
|
|
36
|
-
*
|
|
35
|
+
* authority: wallet,
|
|
37
36
|
* contract: contractAddress,
|
|
38
37
|
* rate: 100,
|
|
39
38
|
* durationMax: { days: 60 },
|
|
40
|
-
*
|
|
41
|
-
* });
|
|
42
|
-
*
|
|
43
|
-
* // With web3.js
|
|
44
|
-
* import { PublicKey } from '@solana/web3.js';
|
|
45
|
-
* setSdkConfig({ network: 'mainnet-beta', PublicKey });
|
|
46
|
-
* const web3Ix = await updateContract({
|
|
47
|
-
* owner: keypair,
|
|
48
|
-
* contract: contractPubkey,
|
|
49
|
-
* rate: { atlas: 2.5 }
|
|
39
|
+
* reservationsDisabled: false
|
|
50
40
|
* });
|
|
51
41
|
* ```
|
|
52
42
|
*/
|
|
@@ -54,8 +44,8 @@ export async function updateContract(params, config) {
|
|
|
54
44
|
// Merge config
|
|
55
45
|
const finalConfig = mergeConfig(config);
|
|
56
46
|
// Validate required params
|
|
57
|
-
if (!params.
|
|
58
|
-
throw new Error('
|
|
47
|
+
if (!params.authority) {
|
|
48
|
+
throw new Error('authority is required');
|
|
59
49
|
}
|
|
60
50
|
if (!params.contract) {
|
|
61
51
|
throw new Error('contract is required');
|
|
@@ -64,19 +54,16 @@ export async function updateContract(params, config) {
|
|
|
64
54
|
if (params.rate === undefined &&
|
|
65
55
|
params.durationMin === undefined &&
|
|
66
56
|
params.durationMax === undefined &&
|
|
67
|
-
params.paymentsFreq === undefined &&
|
|
68
57
|
params.cancelDelayMin === undefined &&
|
|
69
|
-
params.reservationsDisabled === undefined
|
|
70
|
-
params.automationRequired === undefined) {
|
|
58
|
+
params.reservationsDisabled === undefined) {
|
|
71
59
|
throw new Error('At least one field must be provided to update');
|
|
72
60
|
}
|
|
73
|
-
// Convert
|
|
74
|
-
const
|
|
61
|
+
// Convert authority to transaction signer
|
|
62
|
+
const authoritySigner = toTransactionSigner(params.authority);
|
|
75
63
|
// Convert optional parameters
|
|
76
64
|
const rateStardust = params.rate !== undefined ? convertAmount(params.rate) : null;
|
|
77
65
|
const durationMinSeconds = params.durationMin !== undefined ? BigInt(convertDuration(params.durationMin)) : null;
|
|
78
66
|
const durationMaxSeconds = params.durationMax !== undefined ? BigInt(convertDuration(params.durationMax)) : null;
|
|
79
|
-
const normalizedSchedule = params.paymentsFreq !== undefined ? normalizeSchedule(params.paymentsFreq) : null;
|
|
80
67
|
// Validate duration logic if both are being updated
|
|
81
68
|
if (durationMinSeconds !== null && durationMaxSeconds !== null) {
|
|
82
69
|
if (durationMaxSeconds < durationMinSeconds) {
|
|
@@ -91,17 +78,14 @@ export async function updateContract(params, config) {
|
|
|
91
78
|
? BigInt(convertDuration(params.cancelDelayMin))
|
|
92
79
|
: null;
|
|
93
80
|
// Call Codama-generated instruction
|
|
94
|
-
// Note: generated code uses 'authority' to allow owner OR delegate
|
|
95
81
|
const kitInstruction = await getUpdateContractInstructionAsync({
|
|
96
|
-
authority:
|
|
82
|
+
authority: authoritySigner,
|
|
97
83
|
contract: address(params.contract),
|
|
98
84
|
rate: rateStardust,
|
|
99
85
|
durationMinSeconds,
|
|
100
86
|
durationMaxSeconds,
|
|
101
|
-
paymentsFreq: normalizedSchedule,
|
|
102
87
|
cancelDelayMin: cancelDelayMinSeconds,
|
|
103
88
|
reservationsDisabled: params.reservationsDisabled ?? null,
|
|
104
|
-
automationRequired: params.automationRequired ?? null,
|
|
105
89
|
}, { programAddress });
|
|
106
90
|
return prepareInstructions(kitInstruction, {
|
|
107
91
|
computeUnits: params.computeUnits,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateContract.js","sourceRoot":"","sources":["../../../src/instructions/updateContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"updateContract.js","sourceRoot":"","sources":["../../../src/instructions/updateContract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified updateContractThread instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated updateContractThread instruction.
|
|
5
|
+
* Funds additional lamports and/or updates the payment frequency for a contract thread.
|
|
6
|
+
*/
|
|
7
|
+
import { address } from '@solana/kit';
|
|
8
|
+
import { getUpdateContractThreadInstructionAsync } from '../generated/codama/instructions';
|
|
9
|
+
import { mergeConfig, getAddresses } from '../utils/config';
|
|
10
|
+
import { toTransactionSigner } from '../utils/signer';
|
|
11
|
+
import { prepareInstructions } from '../utils/instructions';
|
|
12
|
+
import { deriveContractThread } from '../pda/thread';
|
|
13
|
+
import { deriveRentalAuthority } from '../pda/srsly';
|
|
14
|
+
import { normalizeSchedule } from '../params/schedule';
|
|
15
|
+
import { convertSol } from '../params/sol';
|
|
16
|
+
/**
|
|
17
|
+
* Update a per-contract automation thread
|
|
18
|
+
*
|
|
19
|
+
* Funds additional lamports to the thread and optionally updates the
|
|
20
|
+
* payment processing frequency.
|
|
21
|
+
*
|
|
22
|
+
* @param params - Thread update parameters
|
|
23
|
+
* @param config - Optional SDK configuration overrides
|
|
24
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
25
|
+
*/
|
|
26
|
+
export async function updateContractThread(params, config) {
|
|
27
|
+
const finalConfig = mergeConfig(config);
|
|
28
|
+
if (!params.owner) {
|
|
29
|
+
throw new Error('owner is required');
|
|
30
|
+
}
|
|
31
|
+
if (!params.contract) {
|
|
32
|
+
throw new Error('contract is required');
|
|
33
|
+
}
|
|
34
|
+
const ownerSigner = toTransactionSigner(params.owner);
|
|
35
|
+
const addresses = getAddresses(config);
|
|
36
|
+
const programAddress = address(addresses.srsly);
|
|
37
|
+
const contractAddress = address(params.contract);
|
|
38
|
+
// Derive thread PDA
|
|
39
|
+
const rentalAuthority = await deriveRentalAuthority();
|
|
40
|
+
const contractThread = await deriveContractThread(contractAddress, rentalAuthority);
|
|
41
|
+
// Normalize optional schedule
|
|
42
|
+
const paymentsFreq = params.paymentsFreq
|
|
43
|
+
? normalizeSchedule(params.paymentsFreq)
|
|
44
|
+
: null;
|
|
45
|
+
const kitInstruction = await getUpdateContractThreadInstructionAsync({
|
|
46
|
+
payer: ownerSigner,
|
|
47
|
+
contract: contractAddress,
|
|
48
|
+
contractThread,
|
|
49
|
+
lamports: convertSol(params.lamports ?? 0),
|
|
50
|
+
paymentsFreq,
|
|
51
|
+
}, { programAddress });
|
|
52
|
+
return prepareInstructions(kitInstruction, {
|
|
53
|
+
computeUnits: params.computeUnits,
|
|
54
|
+
PublicKey: finalConfig.PublicKey
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=updateContractThread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateContractThread.js","sourceRoot":"","sources":["../../../src/instructions/updateContractThread.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,uCAAuC,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AA+B1D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAkC,EAClC,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,oBAAoB;IACpB,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpF,8BAA8B;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY;QACtC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,cAAc,GAAG,MAAM,uCAAuC,CAClE;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,cAAc;QACd,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC1C,YAAY;KACb,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/esm/kit/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @wuwei-labs/srsly/kit
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Kit-native entry point for @solana/kit users.
|
|
5
|
+
* All instruction functions return InstructionResult (extends Instruction[]).
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
@@ -14,5 +14,13 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @packageDocumentation
|
|
16
16
|
*/
|
|
17
|
-
export
|
|
17
|
+
export { VERSION } from '../version';
|
|
18
|
+
export * from '../utils';
|
|
19
|
+
export * from '../instructions';
|
|
20
|
+
export * from '../accounts';
|
|
21
|
+
export * from '../params';
|
|
22
|
+
export * from '../pda';
|
|
23
|
+
// External re-exports
|
|
24
|
+
export { createDiscountAuth, claim } from '@wuwei-labs/slyvault';
|
|
25
|
+
export * as codama from '../generated/codama';
|
|
18
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAGlB,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC"}
|