@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
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.acceptRental = acceptRental;
|
|
10
10
|
const kit_1 = require("@solana/kit");
|
|
11
|
-
const rpc_1 = require("../utils/rpc");
|
|
12
11
|
const instructions_1 = require("../generated/codama/instructions");
|
|
13
12
|
const config_1 = require("../utils/config");
|
|
14
13
|
const signer_1 = require("../utils/signer");
|
|
@@ -17,7 +16,7 @@ const duration_1 = require("../params/duration");
|
|
|
17
16
|
const fleet_1 = require("../accounts/fleet");
|
|
18
17
|
const contract_1 = require("../accounts/contract");
|
|
19
18
|
const config_2 = require("../accounts/config");
|
|
20
|
-
const
|
|
19
|
+
const borrower_1 = require("../accounts/borrower");
|
|
21
20
|
const sage_1 = require("../pda/sage");
|
|
22
21
|
const srsly_1 = require("../pda/srsly");
|
|
23
22
|
const token_1 = require("../pda/token");
|
|
@@ -33,13 +32,13 @@ const discountAuth_1 = require("../utils/discountAuth");
|
|
|
33
32
|
*
|
|
34
33
|
* This function automatically fetches the contract and config to get required
|
|
35
34
|
* data (fleet, vault, gameId), then derives all SAGE accounts (profile faction,
|
|
36
|
-
* starbase, starbase player) and the
|
|
35
|
+
* starbase, starbase player) and the contract thread for automated payments.
|
|
37
36
|
*
|
|
38
37
|
* @param params - Rental acceptance parameters
|
|
39
38
|
* @param config - Optional SDK configuration overrides
|
|
40
39
|
* @returns Array of instructions (Kit format or web3.js if PublicKey in config)
|
|
41
40
|
*
|
|
42
|
-
* @
|
|
41
|
+
* @example
|
|
43
42
|
* ```typescript
|
|
44
43
|
* // Accept a 7-day rental (borrowerProfile auto-fetched)
|
|
45
44
|
* const ixs = await acceptRental({
|
|
@@ -49,27 +48,6 @@ const discountAuth_1 = require("../utils/discountAuth");
|
|
|
49
48
|
* computeUnits: 400_000
|
|
50
49
|
* });
|
|
51
50
|
* ```
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* ```typescript
|
|
55
|
-
* // Accept a 7-day rental (fleet and vault auto-fetched)
|
|
56
|
-
* const ixs = await acceptRental({
|
|
57
|
-
* borrower: wallet,
|
|
58
|
-
* borrowerProfile: borrowerProfileAddress,
|
|
59
|
-
* contract: contractAddress,
|
|
60
|
-
* duration: { days: 7 }
|
|
61
|
-
* });
|
|
62
|
-
*
|
|
63
|
-
* // With referrer and compute budget
|
|
64
|
-
* const ixs2 = await acceptRental({
|
|
65
|
-
* borrower: wallet,
|
|
66
|
-
* borrowerProfile: borrowerProfileAddress,
|
|
67
|
-
* contract: contractAddress,
|
|
68
|
-
* referrer: referrerAddress,
|
|
69
|
-
* duration: { weeks: 2 },
|
|
70
|
-
* computeUnits: 400_000
|
|
71
|
-
* });
|
|
72
|
-
* ```
|
|
73
51
|
*/
|
|
74
52
|
async function acceptRental(params, config) {
|
|
75
53
|
// Merge config
|
|
@@ -86,26 +64,13 @@ async function acceptRental(params, config) {
|
|
|
86
64
|
}
|
|
87
65
|
// Convert borrower to transaction signer
|
|
88
66
|
const borrowerSigner = (0, signer_1.toTransactionSigner)(params.borrower);
|
|
89
|
-
//
|
|
67
|
+
// Get borrowerProfile from borrower_state (always has it) or fallback to param
|
|
90
68
|
let borrowerProfile;
|
|
91
69
|
try {
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
const borrowerState = await (0, accounts_1.fetchBorrowerState)(rpc, borrowerStateAddress);
|
|
95
|
-
const profileOption = borrowerState.data.borrowerProfile;
|
|
96
|
-
if (profileOption && typeof profileOption === 'object' && '__option' in profileOption && profileOption.__option === 'Some') {
|
|
97
|
-
// borrower_state exists and has profile set - use it
|
|
98
|
-
borrowerProfile = profileOption.value;
|
|
99
|
-
}
|
|
100
|
-
else if (params.borrowerProfile) {
|
|
101
|
-
// borrower_state exists but no profile - use provided param
|
|
102
|
-
borrowerProfile = (0, kit_1.address)(params.borrowerProfile);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
throw new Error('borrowerProfile is required when not set in borrower_state');
|
|
106
|
-
}
|
|
70
|
+
const borrowerAccount = await (0, borrower_1.fetchBorrower)(borrowerSigner.address, finalConfig.rpcUrl);
|
|
71
|
+
borrowerProfile = borrowerAccount.data.borrowerProfile;
|
|
107
72
|
}
|
|
108
|
-
catch
|
|
73
|
+
catch {
|
|
109
74
|
// borrower_state doesn't exist yet - require param for first-time borrowers
|
|
110
75
|
if (params.borrowerProfile) {
|
|
111
76
|
borrowerProfile = (0, kit_1.address)(params.borrowerProfile);
|
|
@@ -117,7 +82,7 @@ async function acceptRental(params, config) {
|
|
|
117
82
|
// Fetch config to get vault
|
|
118
83
|
const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
|
|
119
84
|
const vault = configAccount.data.slyvault;
|
|
120
|
-
// Fetch contract to get fleet, gameId
|
|
85
|
+
// Fetch contract to get fleet, gameId
|
|
121
86
|
const contractAccount = await (0, contract_1.fetchContract)(params.contract, finalConfig.rpcUrl);
|
|
122
87
|
const fleet = contractAccount.data.fleet;
|
|
123
88
|
const gameId = contractAccount.data.gameId;
|
|
@@ -134,17 +99,15 @@ async function acceptRental(params, config) {
|
|
|
134
99
|
const faction = fleetState.faction;
|
|
135
100
|
// Derive all SAGE game accounts (profile faction, starbase, starbase player)
|
|
136
101
|
const gameAccounts = await (0, sage_1.deriveGameAccounts)(borrowerProfile, faction, gameId);
|
|
137
|
-
// Derive rental
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
const rental = await (0, srsly_1.deriveRental)(params.contract, rentalSlot);
|
|
102
|
+
// Derive active rental PDA (no more slot logic)
|
|
103
|
+
const rentalState = await (0, srsly_1.deriveActiveRental)(params.contract);
|
|
104
|
+
// Derive rental authority PDA
|
|
141
105
|
const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)();
|
|
142
|
-
// Derive
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const
|
|
147
|
-
const queuedThread = await (0, thread_1.deriveRentalThread)(otherSlotRental, rentalAuthority);
|
|
106
|
+
// Derive contract thread and close_rental fiber (fiber index 1) — only if thread configured
|
|
107
|
+
const thread = (0, kit_1.address)(contractAccount.data.thread);
|
|
108
|
+
const hasThread = thread !== '11111111111111111111111111111111';
|
|
109
|
+
const contractThread = hasThread ? await (0, thread_1.deriveContractThread)(params.contract, rentalAuthority) : undefined;
|
|
110
|
+
const closeRentalFiber = hasThread && contractThread ? await (0, thread_1.deriveFiber)(contractThread, 1) : undefined;
|
|
148
111
|
// Convert duration parameter
|
|
149
112
|
const durationSeconds = (0, duration_1.convertDuration)(params.duration);
|
|
150
113
|
// Get network-specific addresses (atlasMint sourced from on-chain config)
|
|
@@ -158,51 +121,40 @@ async function acceptRental(params, config) {
|
|
|
158
121
|
discountAuth = (0, discountAuth_1.deserializeDiscountAuth)(params.discountAuth);
|
|
159
122
|
}
|
|
160
123
|
const referrer = params.referrer ? (0, kit_1.address)(params.referrer) : undefined;
|
|
161
|
-
// Determine if we need to include scheduleRental
|
|
162
|
-
// Either explicitly requested or contract requires automation
|
|
163
|
-
const shouldSchedule = params.automate || contractAccount.data.automationRequired;
|
|
164
124
|
// Derive vault token account (ATA)
|
|
165
125
|
const vaultTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(vault, atlasMint);
|
|
126
|
+
// Derive contract token account (ATA of contract PDA)
|
|
127
|
+
const contractAddress = (0, kit_1.address)(params.contract);
|
|
128
|
+
const contractTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(contractAddress, atlasMint);
|
|
129
|
+
// Derive borrower token account (ATA)
|
|
130
|
+
const borrowerTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(borrowerSigner.address, atlasMint);
|
|
166
131
|
// Call Codama-generated acceptRental instruction
|
|
167
132
|
const acceptRentalIx = await (0, instructions_1.getAcceptRentalInstructionAsync)({
|
|
168
133
|
borrower: borrowerSigner,
|
|
169
|
-
|
|
170
|
-
borrowerProfileFaction: gameAccounts.profileFaction,
|
|
134
|
+
borrowerTokenAccount,
|
|
171
135
|
fleet: (0, kit_1.address)(fleet),
|
|
172
|
-
contract:
|
|
173
|
-
rentalState
|
|
174
|
-
gameId: (0, kit_1.address)(gameId),
|
|
175
|
-
starbase: gameAccounts.starbase,
|
|
176
|
-
starbasePlayer: gameAccounts.starbasePlayer,
|
|
136
|
+
contract: contractAddress,
|
|
137
|
+
rentalState,
|
|
177
138
|
vault: (0, kit_1.address)(vault),
|
|
178
139
|
vaultTokenAccount,
|
|
140
|
+
contractTokenAccount,
|
|
141
|
+
...(contractThread && { contractThread }),
|
|
142
|
+
...(closeRentalFiber && { closeRentalFiber }),
|
|
179
143
|
referrer,
|
|
180
|
-
mint: atlasMint,
|
|
181
144
|
sageProgram,
|
|
182
145
|
duration: BigInt(durationSeconds),
|
|
183
146
|
discountAuth
|
|
184
147
|
}, { programAddress });
|
|
185
|
-
//
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
borrowerProfileFaction: gameAccounts.profileFaction,
|
|
196
|
-
sageProgram,
|
|
197
|
-
rentalSlot,
|
|
198
|
-
}, { programAddress });
|
|
199
|
-
// Return both instructions as array
|
|
200
|
-
return (0, instructions_2.prepareInstructions)([acceptRentalIx, scheduleRentalIx], {
|
|
201
|
-
computeUnits: params.computeUnits,
|
|
202
|
-
PublicKey: finalConfig.PublicKey
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
// Prepare single instruction with optional compute budget and web3.js conversion
|
|
148
|
+
// Append SAGE pass-through accounts as remaining accounts
|
|
149
|
+
const sageRemainingAccounts = [
|
|
150
|
+
{ address: borrowerProfile, role: kit_1.AccountRole.READONLY },
|
|
151
|
+
{ address: gameAccounts.profileFaction, role: kit_1.AccountRole.READONLY },
|
|
152
|
+
{ address: (0, kit_1.address)(gameId), role: kit_1.AccountRole.READONLY },
|
|
153
|
+
{ address: gameAccounts.starbase, role: kit_1.AccountRole.READONLY },
|
|
154
|
+
{ address: gameAccounts.starbasePlayer, role: kit_1.AccountRole.WRITABLE },
|
|
155
|
+
];
|
|
156
|
+
acceptRentalIx.accounts.push(...sageRemainingAccounts);
|
|
157
|
+
// Prepare instruction with optional compute budget
|
|
206
158
|
return (0, instructions_2.prepareInstructions)(acceptRentalIx, {
|
|
207
159
|
computeUnits: params.computeUnits,
|
|
208
160
|
PublicKey: finalConfig.PublicKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptRental.js","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"acceptRental.js","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @purpose Simplified activateRental instruction wrapper
|
|
4
|
+
*
|
|
5
|
+
* Thin convenience wrapper around Codama-generated activateRental instruction.
|
|
6
|
+
* Manually activates a queued rental when automation is delayed or unavailable.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.activateRental = activateRental;
|
|
10
|
+
const kit_1 = require("@solana/kit");
|
|
11
|
+
const instructions_1 = require("../generated/codama/instructions");
|
|
12
|
+
const config_1 = require("../utils/config");
|
|
13
|
+
const signer_1 = require("../utils/signer");
|
|
14
|
+
const instructions_2 = require("../utils/instructions");
|
|
15
|
+
const config_2 = require("../accounts/config");
|
|
16
|
+
const contract_1 = require("../accounts/contract");
|
|
17
|
+
const rental_1 = require("../accounts/rental");
|
|
18
|
+
const borrower_1 = require("../accounts/borrower");
|
|
19
|
+
const srsly_1 = require("../pda/srsly");
|
|
20
|
+
const thread_1 = require("../pda/thread");
|
|
21
|
+
const token_1 = require("../pda/token");
|
|
22
|
+
/**
|
|
23
|
+
* Manually activate a queued rental
|
|
24
|
+
*
|
|
25
|
+
* This is a fallback for when the Antegen automation thread is delayed.
|
|
26
|
+
* Anyone can call this — it's permissionless. The queued rental will be
|
|
27
|
+
* promoted to active, the fleet will be delegated to the borrower in SAGE,
|
|
28
|
+
* and deferred fees will be paid.
|
|
29
|
+
*
|
|
30
|
+
* @param params - Activate rental parameters
|
|
31
|
+
* @param config - Optional SDK configuration overrides
|
|
32
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
33
|
+
*/
|
|
34
|
+
async function activateRental(params, config) {
|
|
35
|
+
const finalConfig = (0, config_1.mergeConfig)(config);
|
|
36
|
+
if (!params.payer) {
|
|
37
|
+
throw new Error('payer is required');
|
|
38
|
+
}
|
|
39
|
+
if (!params.contract) {
|
|
40
|
+
throw new Error('contract is required');
|
|
41
|
+
}
|
|
42
|
+
const payerSigner = (0, signer_1.toTransactionSigner)(params.payer);
|
|
43
|
+
const addresses = (0, config_1.getAddresses)(config);
|
|
44
|
+
const programAddress = (0, kit_1.address)(addresses.srsly);
|
|
45
|
+
const contractAddress = (0, kit_1.address)(params.contract);
|
|
46
|
+
// Fetch config and contract
|
|
47
|
+
const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
|
|
48
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
49
|
+
const contractAccount = await (0, contract_1.fetchContract)(params.contract, finalConfig.rpcUrl);
|
|
50
|
+
// Derive rental PDAs
|
|
51
|
+
const activeRental = await (0, srsly_1.deriveActiveRental)(contractAddress);
|
|
52
|
+
const queuedRental = await (0, srsly_1.deriveQueuedRental)(contractAddress);
|
|
53
|
+
const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)();
|
|
54
|
+
// Derive thread PDAs — only if thread configured
|
|
55
|
+
const thread = (0, kit_1.address)(contractAccount.data.thread);
|
|
56
|
+
const hasThread = thread !== '11111111111111111111111111111111';
|
|
57
|
+
const contractThread = hasThread ? await (0, thread_1.deriveContractThread)(contractAddress, rentalAuthority) : undefined;
|
|
58
|
+
const closeRentalFiber = hasThread && contractThread ? await (0, thread_1.deriveFiber)(contractThread, 1) : undefined;
|
|
59
|
+
// Fetch queued rental to get borrower info, then fetch borrower state for profile faction
|
|
60
|
+
const queuedRentalAccount = await (0, rental_1.fetchRental)(queuedRental, finalConfig.rpcUrl);
|
|
61
|
+
const borrowerState = await (0, borrower_1.fetchBorrower)(queuedRentalAccount.data.borrowerState, finalConfig.rpcUrl);
|
|
62
|
+
// Get vault from config and derive vault token account
|
|
63
|
+
const vault = configAccount.data.slyvault;
|
|
64
|
+
const vaultTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(vault, atlasMint);
|
|
65
|
+
const kitInstruction = await (0, instructions_1.getActivateRentalInstructionAsync)({
|
|
66
|
+
payer: payerSigner,
|
|
67
|
+
contract: contractAddress,
|
|
68
|
+
contractTokenAccount: contractAccount.data.managedTokenAccount,
|
|
69
|
+
mint: atlasMint,
|
|
70
|
+
borrowerProfile: queuedRentalAccount.data.borrowerProfile,
|
|
71
|
+
borrowerProfileFaction: borrowerState.data.borrowerProfileFaction,
|
|
72
|
+
fleet: contractAccount.data.fleet,
|
|
73
|
+
gameId: contractAccount.data.gameId,
|
|
74
|
+
...(contractThread && { contractThread }),
|
|
75
|
+
...(closeRentalFiber && { closeRentalFiber }),
|
|
76
|
+
vault,
|
|
77
|
+
vaultTokenAccount,
|
|
78
|
+
sageProgram: (0, kit_1.address)(addresses.sage),
|
|
79
|
+
}, { programAddress });
|
|
80
|
+
return (0, instructions_2.prepareInstructions)(kitInstruction, {
|
|
81
|
+
computeUnits: params.computeUnits,
|
|
82
|
+
PublicKey: finalConfig.PublicKey
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=activateRental.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activateRental.js","sourceRoot":"","sources":["../../../src/instructions/activateRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+CH,wCAiEC;AA9GD,qCAAoD;AACpD,mEAAqF;AACrF,4CAA4E;AAC5E,4CAA4E;AAC5E,wDAA4D;AAC5D,+CAAiD;AACjD,mDAAqD;AACrD,+CAAiD;AACjD,mDAAqD;AACrD,wCAA6F;AAC7F,0CAAkE;AAClE,wCAA4D;AAsB5D;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,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,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,4BAA4B;IAC5B,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,eAAe,GAAG,MAAM,IAAA,wBAAa,EAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAEjF,qBAAqB;IACrB,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAkB,EAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAkB,EAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,MAAM,IAAA,6BAAqB,GAAE,CAAC;IAEtD,iDAAiD;IACjD,MAAM,MAAM,GAAG,IAAA,aAAO,EAAC,eAAe,CAAC,IAAI,CAAC,MAAiB,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,KAAK,kCAAkC,CAAC;IAChE,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAoB,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,MAAM,gBAAgB,GAAG,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,IAAA,oBAAW,EAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExG,0FAA0F;IAC1F,MAAM,mBAAmB,GAAG,MAAM,IAAA,oBAAW,EAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAa,EAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAEtG,uDAAuD;IACvD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC1C,MAAM,iBAAiB,GAAG,MAAM,IAAA,oCAA4B,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE/E,MAAM,cAAc,GAAG,MAAM,IAAA,gDAAiC,EAC5D;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,oBAAoB,EAAE,eAAe,CAAC,IAAI,CAAC,mBAAmB;QAC9D,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,eAAe;QACzD,sBAAsB,EAAE,aAAa,CAAC,IAAI,CAAC,sBAAsB;QACjE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK;QACjC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM;QACnC,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,CAAC;QACzC,GAAG,CAAC,gBAAgB,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAC7C,KAAK;QACL,iBAAiB;QACjB,WAAW,EAAE,IAAA,aAAO,EAAC,SAAS,CAAC,IAAe,CAAC;KAChD,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -12,25 +12,22 @@ const instructions_1 = require("../generated/codama/instructions");
|
|
|
12
12
|
const config_1 = require("../utils/config");
|
|
13
13
|
const signer_1 = require("../utils/signer");
|
|
14
14
|
const srsly_1 = require("../pda/srsly");
|
|
15
|
-
const
|
|
15
|
+
const token_1 = require("../pda/token");
|
|
16
16
|
const instructions_2 = require("../utils/instructions");
|
|
17
17
|
const duration_1 = require("../params/duration");
|
|
18
|
-
const rental_1 = require("../utils/rental");
|
|
19
18
|
const config_2 = require("../accounts/config");
|
|
19
|
+
const contract_1 = require("../accounts/contract");
|
|
20
20
|
/**
|
|
21
21
|
* Cancel a rental
|
|
22
22
|
*
|
|
23
|
-
* Allows a borrower to cancel an active rental.
|
|
23
|
+
* Allows a borrower to cancel an active rental. Always targets the active
|
|
24
|
+
* rental PDA (no more slot detection needed).
|
|
24
25
|
*
|
|
25
26
|
* **Cancellation Behavior:**
|
|
26
|
-
* - `cancelDelay = 0`: Instant cancellation
|
|
27
|
-
*
|
|
28
|
-
* - Returns `InstantCancelNotAllowed` error if contract doesn't allow it
|
|
29
|
-
* - `cancelDelay > 0`: Deferred cancellation
|
|
30
|
-
* - Rental continues until `now + cancelDelay`
|
|
31
|
-
* - Existing Cron trigger handles cleanup when `end_time` is reached
|
|
27
|
+
* - `cancelDelay = 0`: Instant cancellation
|
|
28
|
+
* - `cancelDelay > 0`: Deferred cancellation, rental continues until `now + cancelDelay`
|
|
32
29
|
*
|
|
33
|
-
* Both paths refund the borrower for unused time.
|
|
30
|
+
* Both paths refund the borrower for unused time.
|
|
34
31
|
*
|
|
35
32
|
* @param params - Cancellation parameters (borrower, contract, cancelDelay)
|
|
36
33
|
* @param config - Optional SDK configuration overrides
|
|
@@ -44,7 +41,7 @@ const config_2 = require("../accounts/config");
|
|
|
44
41
|
* contract: contractAddress
|
|
45
42
|
* });
|
|
46
43
|
*
|
|
47
|
-
* // Instant cancellation
|
|
44
|
+
* // Instant cancellation
|
|
48
45
|
* const ix2 = await cancelRental({
|
|
49
46
|
* borrower: borrowerWallet,
|
|
50
47
|
* contract: contractAddress,
|
|
@@ -76,28 +73,33 @@ async function cancelRental(params, config) {
|
|
|
76
73
|
const atlasMint = configAccount.data.atlasMint;
|
|
77
74
|
const addresses = (0, config_1.getAddresses)(config);
|
|
78
75
|
const programAddress = (0, kit_1.address)(addresses.srsly);
|
|
79
|
-
//
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
|
|
76
|
+
// Fetch contract to get fleet
|
|
77
|
+
const contractAccount = await (0, contract_1.fetchContract)(params.contract, finalConfig.rpcUrl);
|
|
78
|
+
const fleet = contractAccount.data.fleet;
|
|
79
|
+
// Derive active rental PDA (no more slot logic)
|
|
80
|
+
const rentalState = await (0, srsly_1.deriveActiveRental)(params.contract);
|
|
81
|
+
// Derive contract token account (ATA of contract PDA)
|
|
82
|
+
const contractAddress = (0, kit_1.address)(params.contract);
|
|
83
|
+
const contractTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(contractAddress, atlasMint);
|
|
85
84
|
// Convert duration to seconds (supports { hours: 1 }, { days: 1 }, etc.)
|
|
86
|
-
// Default to 1 hour if not specified (safer than instant cancel
|
|
85
|
+
// Default to 1 hour if not specified (safer than instant cancel)
|
|
87
86
|
const cancelDelay = params.cancelDelay !== undefined
|
|
88
87
|
? BigInt((0, duration_1.convertDuration)(params.cancelDelay))
|
|
89
88
|
: BigInt((0, duration_1.convertDuration)({ hours: 1 }));
|
|
89
|
+
// Resolve contract thread (system_program::ID means no thread configured)
|
|
90
|
+
const thread = (0, kit_1.address)(contractAccount.data.thread);
|
|
91
|
+
const hasThread = thread !== '11111111111111111111111111111111';
|
|
90
92
|
// Call Codama-generated instruction
|
|
91
|
-
// Note: Codama auto-derives config, borrowerState, borrowerTokenAccount,
|
|
92
|
-
// rentalTokenAccount, rentalAuthority, antegenProgram, tokenProgram
|
|
93
|
+
// Note: Codama auto-derives config, borrowerState, borrowerTokenAccount, rentalAuthority
|
|
93
94
|
const kitInstruction = await (0, instructions_1.getCancelRentalInstructionAsync)({
|
|
94
95
|
mint: atlasMint,
|
|
95
96
|
borrower: borrowerSigner,
|
|
96
97
|
rentalState,
|
|
97
|
-
|
|
98
|
-
contract:
|
|
98
|
+
contractTokenAccount,
|
|
99
|
+
contract: contractAddress,
|
|
100
|
+
fleet: (0, kit_1.address)(fleet),
|
|
101
|
+
...(hasThread && { contractThread: thread }),
|
|
99
102
|
cancelDelay,
|
|
100
|
-
rentalSlot,
|
|
101
103
|
}, { programAddress });
|
|
102
104
|
return (0, instructions_2.prepareInstructions)(kitInstruction, {
|
|
103
105
|
computeUnits: params.computeUnits,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelRental.js","sourceRoot":"","sources":["../../../src/instructions/cancelRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"cancelRental.js","sourceRoot":"","sources":["../../../src/instructions/cancelRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyFH,oCAiEC;AAxJD,qCAAoD;AACpD,mEAAmF;AACnF,4CAA4E;AAC5E,4CAA4E;AAC5E,wCAAkD;AAClD,wCAA4D;AAC5D,wDAA4D;AAC5D,iDAAyE;AACzE,+CAAiD;AACjD,mDAAqD;AAuCrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACI,KAAK,UAAU,YAAY,CAChC,MAA0B,EAC1B,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IAExC,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,yCAAyC;IACzC,MAAM,cAAc,GAAG,IAAA,4BAAmB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5D,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,8BAA8B;IAC9B,MAAM,eAAe,GAAG,MAAM,IAAA,wBAAa,EAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IAEzC,gDAAgD;IAChD,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAkB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE9D,sDAAsD;IACtD,MAAM,eAAe,GAAG,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAC5D,MAAM,oBAAoB,GAAG,MAAM,IAAA,oCAA4B,EAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAE5F,yEAAyE;IACzE,iEAAiE;IACjE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS;QAClD,CAAC,CAAC,MAAM,CAAC,IAAA,0BAAe,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1C,0EAA0E;IAC1E,MAAM,MAAM,GAAG,IAAA,aAAO,EAAC,eAAe,CAAC,IAAI,CAAC,MAAiB,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,KAAK,kCAAkC,CAAC;IAEhE,oCAAoC;IACpC,yFAAyF;IACzF,MAAM,cAAc,GAAG,MAAM,IAAA,8CAA+B,EAC1D;QACE,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,cAAc;QACxB,WAAW;QACX,oBAAoB;QACpB,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,IAAA,aAAO,EAAC,KAAgB,CAAC;QAChC,GAAG,CAAC,SAAS,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QAC5C,WAAW;KACZ,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* @purpose Simplified claimBorrower instruction wrapper
|
|
4
4
|
*
|
|
5
5
|
* Thin convenience wrapper around Codama-generated claimBorrower instruction.
|
|
6
|
-
* Allows
|
|
6
|
+
* Allows claiming accumulated ATLAS from a borrower's managed token account.
|
|
7
|
+
* When close is true, bundles a closeBorrower instruction to also close the
|
|
8
|
+
* managed ATA and BorrowerState in a single transaction.
|
|
7
9
|
*/
|
|
8
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
11
|
exports.claimBorrower = claimBorrower;
|
|
@@ -21,48 +23,68 @@ const config_2 = require("../accounts/config");
|
|
|
21
23
|
* account (an ATA with the borrower_state as authority). This instruction
|
|
22
24
|
* transfers those funds to the borrower's personal wallet.
|
|
23
25
|
*
|
|
26
|
+
* The payer and borrower can be different accounts, allowing a third party
|
|
27
|
+
* to pay for the claim transaction on behalf of the borrower.
|
|
28
|
+
*
|
|
29
|
+
* When close is true, a closeBorrower instruction is bundled to also close
|
|
30
|
+
* the managed ATA and BorrowerState PDA in the same transaction.
|
|
31
|
+
*
|
|
24
32
|
* @param params - Borrower claim parameters
|
|
25
33
|
* @param config - Optional SDK configuration overrides
|
|
26
34
|
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
27
35
|
*
|
|
28
36
|
* @example
|
|
29
37
|
* ```typescript
|
|
30
|
-
* //
|
|
38
|
+
* // Self-claim: payer is the borrower
|
|
31
39
|
* const ix = await claimBorrower({
|
|
32
|
-
*
|
|
40
|
+
* payer: borrowerWallet,
|
|
33
41
|
* });
|
|
34
42
|
*
|
|
35
|
-
* //
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
43
|
+
* // Third-party claim: someone else pays
|
|
44
|
+
* const ix2 = await claimBorrower({
|
|
45
|
+
* payer: relayerWallet,
|
|
46
|
+
* borrower: "BORROWER_ADDRESS"
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* // Claim and close the BorrowerState account
|
|
50
|
+
* const ix3 = await claimBorrower({
|
|
51
|
+
* payer: borrowerWallet,
|
|
52
|
+
* close: true
|
|
40
53
|
* });
|
|
41
54
|
* ```
|
|
42
55
|
*/
|
|
43
56
|
async function claimBorrower(params, config) {
|
|
44
|
-
// Merge config
|
|
45
57
|
const finalConfig = (0, config_1.mergeConfig)(config);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
throw new Error('borrower is required');
|
|
58
|
+
if (!params.payer) {
|
|
59
|
+
throw new Error('payer is required');
|
|
49
60
|
}
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
61
|
+
const payerSigner = (0, signer_1.toTransactionSigner)(params.payer);
|
|
62
|
+
const borrowerAddress = params.borrower
|
|
63
|
+
? (0, kit_1.address)(params.borrower)
|
|
64
|
+
: (0, signer_1.getSignerAddress)(payerSigner);
|
|
53
65
|
const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
|
|
54
66
|
const atlasMint = configAccount.data.atlasMint;
|
|
55
67
|
const addresses = (0, config_1.getAddresses)(config);
|
|
56
68
|
const programAddress = (0, kit_1.address)(addresses.srsly);
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
borrower: (0, signer_1.getSignerAddress)(borrowerSigner),
|
|
69
|
+
// Build claim instruction
|
|
70
|
+
const claimIx = await (0, instructions_1.getClaimBorrowerInstructionAsync)({
|
|
71
|
+
payer: payerSigner,
|
|
72
|
+
borrower: borrowerAddress,
|
|
62
73
|
mint: atlasMint,
|
|
63
|
-
close: params.close ?? false,
|
|
64
74
|
}, { programAddress });
|
|
65
|
-
|
|
75
|
+
// If close requested, bundle a closeBorrower instruction after the claim
|
|
76
|
+
if (params.close) {
|
|
77
|
+
const closeIx = await (0, instructions_1.getCloseBorrowerInstructionAsync)({
|
|
78
|
+
payer: payerSigner,
|
|
79
|
+
borrower: borrowerAddress,
|
|
80
|
+
mint: atlasMint,
|
|
81
|
+
}, { programAddress });
|
|
82
|
+
return (0, instructions_2.prepareInstructions)([claimIx, closeIx], {
|
|
83
|
+
computeUnits: params.computeUnits,
|
|
84
|
+
PublicKey: finalConfig.PublicKey
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return (0, instructions_2.prepareInstructions)(claimIx, {
|
|
66
88
|
computeUnits: params.computeUnits,
|
|
67
89
|
PublicKey: finalConfig.PublicKey
|
|
68
90
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claimBorrower.js","sourceRoot":"","sources":["../../../src/instructions/claimBorrower.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"claimBorrower.js","sourceRoot":"","sources":["../../../src/instructions/claimBorrower.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAgFH,sCAoDC;AAlID,qCAAoD;AACpD,mEAAsH;AACtH,4CAA4E;AAC5E,4CAA8F;AAC9F,wDAA4D;AAC5D,+CAAiD;AAmCjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACI,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;QACrC,CAAC,CAAC,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,IAAA,yBAAgB,EAAC,WAAW,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,0BAA0B;IAC1B,MAAM,OAAO,GAAG,MAAM,IAAA,+CAAgC,EACpD;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,SAAS;KAChB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,yEAAyE;IACzE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,MAAM,IAAA,+CAAgC,EACpD;YACE,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,SAAS;SAChB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;QAEF,OAAO,IAAA,kCAAmB,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAA,kCAAmB,EAAC,OAAO,EAAE;QAClC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @purpose Simplified claimContract instruction wrapper
|
|
4
|
+
*
|
|
5
|
+
* Thin convenience wrapper around Codama-generated claimContract instruction.
|
|
6
|
+
* Permissionless — anyone can trigger, but tokens always go to the owner's ATA.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.claimContract = claimContract;
|
|
10
|
+
const kit_1 = require("@solana/kit");
|
|
11
|
+
const instructions_1 = require("../generated/codama/instructions");
|
|
12
|
+
const config_1 = require("../utils/config");
|
|
13
|
+
const signer_1 = require("../utils/signer");
|
|
14
|
+
const instructions_2 = require("../utils/instructions");
|
|
15
|
+
const config_2 = require("../accounts/config");
|
|
16
|
+
const contract_1 = require("../accounts/contract");
|
|
17
|
+
/**
|
|
18
|
+
* Claim contract ATLAS earnings
|
|
19
|
+
*
|
|
20
|
+
* Permissionless — anyone can trigger, but tokens always go to the
|
|
21
|
+
* contract owner's ATA (derived from contract state).
|
|
22
|
+
*
|
|
23
|
+
* @param params - Contract claim parameters
|
|
24
|
+
* @param config - Optional SDK configuration overrides
|
|
25
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
26
|
+
*/
|
|
27
|
+
async function claimContract(params, config) {
|
|
28
|
+
const finalConfig = (0, config_1.mergeConfig)(config);
|
|
29
|
+
if (!params.payer) {
|
|
30
|
+
throw new Error('payer is required');
|
|
31
|
+
}
|
|
32
|
+
if (!params.contract) {
|
|
33
|
+
throw new Error('contract is required');
|
|
34
|
+
}
|
|
35
|
+
const payerSigner = (0, signer_1.toTransactionSigner)(params.payer);
|
|
36
|
+
// Get atlasMint from on-chain config
|
|
37
|
+
const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
|
|
38
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
39
|
+
const addresses = (0, config_1.getAddresses)(config);
|
|
40
|
+
const programAddress = (0, kit_1.address)(addresses.srsly);
|
|
41
|
+
// Fetch contract to get owner and contractTokenAccount
|
|
42
|
+
const contractAccount = await (0, contract_1.fetchContract)(params.contract, finalConfig.rpcUrl);
|
|
43
|
+
const contractAddress = (0, kit_1.address)(params.contract);
|
|
44
|
+
const kitInstruction = await (0, instructions_1.getClaimContractInstructionAsync)({
|
|
45
|
+
payer: payerSigner,
|
|
46
|
+
owner: contractAccount.data.owner,
|
|
47
|
+
mint: atlasMint,
|
|
48
|
+
contract: contractAddress,
|
|
49
|
+
contractTokenAccount: contractAccount.data.managedTokenAccount,
|
|
50
|
+
}, { programAddress });
|
|
51
|
+
return (0, instructions_2.prepareInstructions)(kitInstruction, {
|
|
52
|
+
computeUnits: params.computeUnits,
|
|
53
|
+
PublicKey: finalConfig.PublicKey
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=claimContract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimContract.js","sourceRoot":"","sources":["../../../src/instructions/claimContract.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyCH,sCAwCC;AA/ED,qCAAoD;AACpD,mEAAoF;AACpF,4CAA4E;AAC5E,4CAA4E;AAC5E,wDAA4D;AAC5D,+CAAiD;AACjD,mDAAqD;AAuBrD;;;;;;;;;GASG;AACI,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,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,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,uDAAuD;IACvD,MAAM,eAAe,GAAG,MAAM,IAAA,wBAAa,EAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,MAAM,IAAA,+CAAgC,EAC3D;QACE,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK;QACjC,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,eAAe;QACzB,oBAAoB,EAAE,eAAe,CAAC,IAAI,CAAC,mBAAmB;KAC/D,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|