@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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified activateRental instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated activateRental instruction.
|
|
5
|
+
* Manually activates a queued rental when automation is delayed or unavailable.
|
|
6
|
+
*/
|
|
7
|
+
import { address } from '@solana/kit';
|
|
8
|
+
import { getActivateRentalInstructionAsync } 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 { fetchConfig } from '../accounts/config';
|
|
13
|
+
import { fetchContract } from '../accounts/contract';
|
|
14
|
+
import { fetchRental } from '../accounts/rental';
|
|
15
|
+
import { fetchBorrower } from '../accounts/borrower';
|
|
16
|
+
import { deriveActiveRental, deriveQueuedRental, deriveRentalAuthority } from '../pda/srsly';
|
|
17
|
+
import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
18
|
+
import { deriveAssociatedTokenAccount } from '../pda/token';
|
|
19
|
+
/**
|
|
20
|
+
* Manually activate a queued rental
|
|
21
|
+
*
|
|
22
|
+
* This is a fallback for when the Antegen automation thread is delayed.
|
|
23
|
+
* Anyone can call this — it's permissionless. The queued rental will be
|
|
24
|
+
* promoted to active, the fleet will be delegated to the borrower in SAGE,
|
|
25
|
+
* and deferred fees will be paid.
|
|
26
|
+
*
|
|
27
|
+
* @param params - Activate rental parameters
|
|
28
|
+
* @param config - Optional SDK configuration overrides
|
|
29
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
30
|
+
*/
|
|
31
|
+
export async function activateRental(params, config) {
|
|
32
|
+
const finalConfig = mergeConfig(config);
|
|
33
|
+
if (!params.payer) {
|
|
34
|
+
throw new Error('payer is required');
|
|
35
|
+
}
|
|
36
|
+
if (!params.contract) {
|
|
37
|
+
throw new Error('contract is required');
|
|
38
|
+
}
|
|
39
|
+
const payerSigner = toTransactionSigner(params.payer);
|
|
40
|
+
const addresses = getAddresses(config);
|
|
41
|
+
const programAddress = address(addresses.srsly);
|
|
42
|
+
const contractAddress = address(params.contract);
|
|
43
|
+
// Fetch config and contract
|
|
44
|
+
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
45
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
46
|
+
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
47
|
+
// Derive rental PDAs
|
|
48
|
+
const activeRental = await deriveActiveRental(contractAddress);
|
|
49
|
+
const queuedRental = await deriveQueuedRental(contractAddress);
|
|
50
|
+
const rentalAuthority = await deriveRentalAuthority();
|
|
51
|
+
// Derive thread PDAs — only if thread configured
|
|
52
|
+
const thread = address(contractAccount.data.thread);
|
|
53
|
+
const hasThread = thread !== '11111111111111111111111111111111';
|
|
54
|
+
const contractThread = hasThread ? await deriveContractThread(contractAddress, rentalAuthority) : undefined;
|
|
55
|
+
const closeRentalFiber = hasThread && contractThread ? await deriveFiber(contractThread, 1) : undefined;
|
|
56
|
+
// Fetch queued rental to get borrower info, then fetch borrower state for profile faction
|
|
57
|
+
const queuedRentalAccount = await fetchRental(queuedRental, finalConfig.rpcUrl);
|
|
58
|
+
const borrowerState = await fetchBorrower(queuedRentalAccount.data.borrowerState, finalConfig.rpcUrl);
|
|
59
|
+
// Get vault from config and derive vault token account
|
|
60
|
+
const vault = configAccount.data.slyvault;
|
|
61
|
+
const vaultTokenAccount = await deriveAssociatedTokenAccount(vault, atlasMint);
|
|
62
|
+
const kitInstruction = await getActivateRentalInstructionAsync({
|
|
63
|
+
payer: payerSigner,
|
|
64
|
+
contract: contractAddress,
|
|
65
|
+
contractTokenAccount: contractAccount.data.managedTokenAccount,
|
|
66
|
+
mint: atlasMint,
|
|
67
|
+
borrowerProfile: queuedRentalAccount.data.borrowerProfile,
|
|
68
|
+
borrowerProfileFaction: borrowerState.data.borrowerProfileFaction,
|
|
69
|
+
fleet: contractAccount.data.fleet,
|
|
70
|
+
gameId: contractAccount.data.gameId,
|
|
71
|
+
...(contractThread && { contractThread }),
|
|
72
|
+
...(closeRentalFiber && { closeRentalFiber }),
|
|
73
|
+
vault,
|
|
74
|
+
vaultTokenAccount,
|
|
75
|
+
sageProgram: address(addresses.sage),
|
|
76
|
+
}, { programAddress });
|
|
77
|
+
return prepareInstructions(kitInstruction, {
|
|
78
|
+
computeUnits: params.computeUnits,
|
|
79
|
+
PublicKey: finalConfig.PublicKey
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=activateRental.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activateRental.js","sourceRoot":"","sources":["../../../src/instructions/activateRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,26 +8,23 @@ import { address } from '@solana/kit';
|
|
|
8
8
|
import { getCancelRentalInstructionAsync } from '../generated/codama/instructions';
|
|
9
9
|
import { mergeConfig, getAddresses } from '../utils/config';
|
|
10
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
11
|
+
import { deriveActiveRental } from '../pda/srsly';
|
|
12
|
+
import { deriveAssociatedTokenAccount } from '../pda/token';
|
|
13
13
|
import { prepareInstructions } from '../utils/instructions';
|
|
14
14
|
import { convertDuration } from '../params/duration';
|
|
15
|
-
import { requireBorrowerRentalSlot } from '../utils/rental';
|
|
16
15
|
import { fetchConfig } from '../accounts/config';
|
|
16
|
+
import { fetchContract } from '../accounts/contract';
|
|
17
17
|
/**
|
|
18
18
|
* Cancel a rental
|
|
19
19
|
*
|
|
20
|
-
* Allows a borrower to cancel an active rental.
|
|
20
|
+
* Allows a borrower to cancel an active rental. Always targets the active
|
|
21
|
+
* rental PDA (no more slot detection needed).
|
|
21
22
|
*
|
|
22
23
|
* **Cancellation Behavior:**
|
|
23
|
-
* - `cancelDelay = 0`: Instant cancellation
|
|
24
|
-
*
|
|
25
|
-
* - Returns `InstantCancelNotAllowed` error if contract doesn't allow it
|
|
26
|
-
* - `cancelDelay > 0`: Deferred cancellation
|
|
27
|
-
* - Rental continues until `now + cancelDelay`
|
|
28
|
-
* - Existing Cron trigger handles cleanup when `end_time` is reached
|
|
24
|
+
* - `cancelDelay = 0`: Instant cancellation
|
|
25
|
+
* - `cancelDelay > 0`: Deferred cancellation, rental continues until `now + cancelDelay`
|
|
29
26
|
*
|
|
30
|
-
* Both paths refund the borrower for unused time.
|
|
27
|
+
* Both paths refund the borrower for unused time.
|
|
31
28
|
*
|
|
32
29
|
* @param params - Cancellation parameters (borrower, contract, cancelDelay)
|
|
33
30
|
* @param config - Optional SDK configuration overrides
|
|
@@ -41,7 +38,7 @@ import { fetchConfig } from '../accounts/config';
|
|
|
41
38
|
* contract: contractAddress
|
|
42
39
|
* });
|
|
43
40
|
*
|
|
44
|
-
* // Instant cancellation
|
|
41
|
+
* // Instant cancellation
|
|
45
42
|
* const ix2 = await cancelRental({
|
|
46
43
|
* borrower: borrowerWallet,
|
|
47
44
|
* contract: contractAddress,
|
|
@@ -73,28 +70,33 @@ export async function cancelRental(params, config) {
|
|
|
73
70
|
const atlasMint = configAccount.data.atlasMint;
|
|
74
71
|
const addresses = getAddresses(config);
|
|
75
72
|
const programAddress = address(addresses.srsly);
|
|
76
|
-
//
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
73
|
+
// Fetch contract to get fleet
|
|
74
|
+
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
75
|
+
const fleet = contractAccount.data.fleet;
|
|
76
|
+
// Derive active rental PDA (no more slot logic)
|
|
77
|
+
const rentalState = await deriveActiveRental(params.contract);
|
|
78
|
+
// Derive contract token account (ATA of contract PDA)
|
|
79
|
+
const contractAddress = address(params.contract);
|
|
80
|
+
const contractTokenAccount = await deriveAssociatedTokenAccount(contractAddress, atlasMint);
|
|
82
81
|
// Convert duration to seconds (supports { hours: 1 }, { days: 1 }, etc.)
|
|
83
|
-
// Default to 1 hour if not specified (safer than instant cancel
|
|
82
|
+
// Default to 1 hour if not specified (safer than instant cancel)
|
|
84
83
|
const cancelDelay = params.cancelDelay !== undefined
|
|
85
84
|
? BigInt(convertDuration(params.cancelDelay))
|
|
86
85
|
: BigInt(convertDuration({ hours: 1 }));
|
|
86
|
+
// Resolve contract thread (system_program::ID means no thread configured)
|
|
87
|
+
const thread = address(contractAccount.data.thread);
|
|
88
|
+
const hasThread = thread !== '11111111111111111111111111111111';
|
|
87
89
|
// Call Codama-generated instruction
|
|
88
|
-
// Note: Codama auto-derives config, borrowerState, borrowerTokenAccount,
|
|
89
|
-
// rentalTokenAccount, rentalAuthority, antegenProgram, tokenProgram
|
|
90
|
+
// Note: Codama auto-derives config, borrowerState, borrowerTokenAccount, rentalAuthority
|
|
90
91
|
const kitInstruction = await getCancelRentalInstructionAsync({
|
|
91
92
|
mint: atlasMint,
|
|
92
93
|
borrower: borrowerSigner,
|
|
93
94
|
rentalState,
|
|
94
|
-
|
|
95
|
-
contract:
|
|
95
|
+
contractTokenAccount,
|
|
96
|
+
contract: contractAddress,
|
|
97
|
+
fleet: address(fleet),
|
|
98
|
+
...(hasThread && { contractThread: thread }),
|
|
96
99
|
cancelDelay,
|
|
97
|
-
rentalSlot,
|
|
98
100
|
}, { programAddress });
|
|
99
101
|
return prepareInstructions(kitInstruction, {
|
|
100
102
|
computeUnits: params.computeUnits,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelRental.js","sourceRoot":"","sources":["../../../src/instructions/cancelRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,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;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cancelRental.js","sourceRoot":"","sources":["../../../src/instructions/cancelRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* @purpose Simplified claimBorrower instruction wrapper
|
|
3
3
|
*
|
|
4
4
|
* Thin convenience wrapper around Codama-generated claimBorrower instruction.
|
|
5
|
-
* Allows
|
|
5
|
+
* Allows claiming accumulated ATLAS from a borrower's managed token account.
|
|
6
|
+
* When close is true, bundles a closeBorrower instruction to also close the
|
|
7
|
+
* managed ATA and BorrowerState in a single transaction.
|
|
6
8
|
*/
|
|
7
9
|
import { address } from '@solana/kit';
|
|
8
|
-
import { getClaimBorrowerInstructionAsync } from '../generated/codama/instructions';
|
|
10
|
+
import { getClaimBorrowerInstructionAsync, getCloseBorrowerInstructionAsync } from '../generated/codama/instructions';
|
|
9
11
|
import { mergeConfig, getAddresses } from '../utils/config';
|
|
10
12
|
import { toTransactionSigner, getSignerAddress } from '../utils/signer';
|
|
11
13
|
import { prepareInstructions } from '../utils/instructions';
|
|
@@ -18,48 +20,68 @@ import { fetchConfig } from '../accounts/config';
|
|
|
18
20
|
* account (an ATA with the borrower_state as authority). This instruction
|
|
19
21
|
* transfers those funds to the borrower's personal wallet.
|
|
20
22
|
*
|
|
23
|
+
* The payer and borrower can be different accounts, allowing a third party
|
|
24
|
+
* to pay for the claim transaction on behalf of the borrower.
|
|
25
|
+
*
|
|
26
|
+
* When close is true, a closeBorrower instruction is bundled to also close
|
|
27
|
+
* the managed ATA and BorrowerState PDA in the same transaction.
|
|
28
|
+
*
|
|
21
29
|
* @param params - Borrower claim parameters
|
|
22
30
|
* @param config - Optional SDK configuration overrides
|
|
23
31
|
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
24
32
|
*
|
|
25
33
|
* @example
|
|
26
34
|
* ```typescript
|
|
27
|
-
* //
|
|
35
|
+
* // Self-claim: payer is the borrower
|
|
28
36
|
* const ix = await claimBorrower({
|
|
29
|
-
*
|
|
37
|
+
* payer: borrowerWallet,
|
|
30
38
|
* });
|
|
31
39
|
*
|
|
32
|
-
* //
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
40
|
+
* // Third-party claim: someone else pays
|
|
41
|
+
* const ix2 = await claimBorrower({
|
|
42
|
+
* payer: relayerWallet,
|
|
43
|
+
* borrower: "BORROWER_ADDRESS"
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* // Claim and close the BorrowerState account
|
|
47
|
+
* const ix3 = await claimBorrower({
|
|
48
|
+
* payer: borrowerWallet,
|
|
49
|
+
* close: true
|
|
37
50
|
* });
|
|
38
51
|
* ```
|
|
39
52
|
*/
|
|
40
53
|
export async function claimBorrower(params, config) {
|
|
41
|
-
// Merge config
|
|
42
54
|
const finalConfig = mergeConfig(config);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
throw new Error('borrower is required');
|
|
55
|
+
if (!params.payer) {
|
|
56
|
+
throw new Error('payer is required');
|
|
46
57
|
}
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
58
|
+
const payerSigner = toTransactionSigner(params.payer);
|
|
59
|
+
const borrowerAddress = params.borrower
|
|
60
|
+
? address(params.borrower)
|
|
61
|
+
: getSignerAddress(payerSigner);
|
|
50
62
|
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
51
63
|
const atlasMint = configAccount.data.atlasMint;
|
|
52
64
|
const addresses = getAddresses(config);
|
|
53
65
|
const programAddress = address(addresses.srsly);
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
borrower: getSignerAddress(borrowerSigner),
|
|
66
|
+
// Build claim instruction
|
|
67
|
+
const claimIx = await getClaimBorrowerInstructionAsync({
|
|
68
|
+
payer: payerSigner,
|
|
69
|
+
borrower: borrowerAddress,
|
|
59
70
|
mint: atlasMint,
|
|
60
|
-
close: params.close ?? false,
|
|
61
71
|
}, { programAddress });
|
|
62
|
-
|
|
72
|
+
// If close requested, bundle a closeBorrower instruction after the claim
|
|
73
|
+
if (params.close) {
|
|
74
|
+
const closeIx = await getCloseBorrowerInstructionAsync({
|
|
75
|
+
payer: payerSigner,
|
|
76
|
+
borrower: borrowerAddress,
|
|
77
|
+
mint: atlasMint,
|
|
78
|
+
}, { programAddress });
|
|
79
|
+
return prepareInstructions([claimIx, closeIx], {
|
|
80
|
+
computeUnits: params.computeUnits,
|
|
81
|
+
PublicKey: finalConfig.PublicKey
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return prepareInstructions(claimIx, {
|
|
63
85
|
computeUnits: params.computeUnits,
|
|
64
86
|
PublicKey: finalConfig.PublicKey
|
|
65
87
|
});
|
|
@@ -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;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmCjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,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;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;QACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,0BAA0B;IAC1B,MAAM,OAAO,GAAG,MAAM,gCAAgC,CACpD;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,gCAAgC,CACpD;YACE,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,SAAS;SAChB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;QAEF,OAAO,mBAAmB,CAAC,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,mBAAmB,CAAC,OAAO,EAAE;QAClC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified claimContract instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated claimContract instruction.
|
|
5
|
+
* Permissionless — anyone can trigger, but tokens always go to the owner's ATA.
|
|
6
|
+
*/
|
|
7
|
+
import { address } from '@solana/kit';
|
|
8
|
+
import { getClaimContractInstructionAsync } 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 { fetchConfig } from '../accounts/config';
|
|
13
|
+
import { fetchContract } from '../accounts/contract';
|
|
14
|
+
/**
|
|
15
|
+
* Claim contract ATLAS earnings
|
|
16
|
+
*
|
|
17
|
+
* Permissionless — anyone can trigger, but tokens always go to the
|
|
18
|
+
* contract owner's ATA (derived from contract state).
|
|
19
|
+
*
|
|
20
|
+
* @param params - Contract claim parameters
|
|
21
|
+
* @param config - Optional SDK configuration overrides
|
|
22
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
23
|
+
*/
|
|
24
|
+
export async function claimContract(params, config) {
|
|
25
|
+
const finalConfig = mergeConfig(config);
|
|
26
|
+
if (!params.payer) {
|
|
27
|
+
throw new Error('payer is required');
|
|
28
|
+
}
|
|
29
|
+
if (!params.contract) {
|
|
30
|
+
throw new Error('contract is required');
|
|
31
|
+
}
|
|
32
|
+
const payerSigner = toTransactionSigner(params.payer);
|
|
33
|
+
// Get atlasMint from on-chain config
|
|
34
|
+
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
35
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
36
|
+
const addresses = getAddresses(config);
|
|
37
|
+
const programAddress = address(addresses.srsly);
|
|
38
|
+
// Fetch contract to get owner and contractTokenAccount
|
|
39
|
+
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
40
|
+
const contractAddress = address(params.contract);
|
|
41
|
+
const kitInstruction = await getClaimContractInstructionAsync({
|
|
42
|
+
payer: payerSigner,
|
|
43
|
+
owner: contractAccount.data.owner,
|
|
44
|
+
mint: atlasMint,
|
|
45
|
+
contract: contractAddress,
|
|
46
|
+
contractTokenAccount: contractAccount.data.managedTokenAccount,
|
|
47
|
+
}, { programAddress });
|
|
48
|
+
return prepareInstructions(kitInstruction, {
|
|
49
|
+
computeUnits: params.computeUnits,
|
|
50
|
+
PublicKey: finalConfig.PublicKey
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=claimContract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimContract.js","sourceRoot":"","sources":["../../../src/instructions/claimContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,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,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAuBrD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,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;IAEtD,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,uDAAuD;IACvD,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,MAAM,gCAAgC,CAC3D;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,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified closeBorrower instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated closeBorrower instruction.
|
|
5
|
+
* Closes a borrower's managed token account and BorrowerState.
|
|
6
|
+
* Requires no active rentals and zero managed ATA balance (claim first).
|
|
7
|
+
*/
|
|
8
|
+
import { address } from '@solana/kit';
|
|
9
|
+
import { getCloseBorrowerInstructionAsync } from '../generated/codama/instructions';
|
|
10
|
+
import { mergeConfig, getAddresses } from '../utils/config';
|
|
11
|
+
import { toTransactionSigner, getSignerAddress } from '../utils/signer';
|
|
12
|
+
import { prepareInstructions } from '../utils/instructions';
|
|
13
|
+
import { fetchConfig } from '../accounts/config';
|
|
14
|
+
/**
|
|
15
|
+
* Close a borrower's managed token account and BorrowerState
|
|
16
|
+
*
|
|
17
|
+
* Closes the managed ATA and BorrowerState PDA, returning lamports to the
|
|
18
|
+
* borrower wallet. Requires no active rentals and zero managed ATA balance.
|
|
19
|
+
* Call claimBorrower first to withdraw any remaining ATLAS.
|
|
20
|
+
*
|
|
21
|
+
* Permissionless — anyone can trigger since lamports always go to the borrower.
|
|
22
|
+
*
|
|
23
|
+
* @param params - Close borrower parameters
|
|
24
|
+
* @param config - Optional SDK configuration overrides
|
|
25
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const ix = await closeBorrower({ payer: borrowerWallet });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export async function closeBorrower(params, config) {
|
|
33
|
+
const finalConfig = mergeConfig(config);
|
|
34
|
+
if (!params.payer) {
|
|
35
|
+
throw new Error('payer is required');
|
|
36
|
+
}
|
|
37
|
+
const payerSigner = toTransactionSigner(params.payer);
|
|
38
|
+
const borrowerAddress = params.borrower
|
|
39
|
+
? address(params.borrower)
|
|
40
|
+
: getSignerAddress(payerSigner);
|
|
41
|
+
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
42
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
43
|
+
const addresses = getAddresses(config);
|
|
44
|
+
const programAddress = address(addresses.srsly);
|
|
45
|
+
const kitInstruction = await getCloseBorrowerInstructionAsync({
|
|
46
|
+
payer: payerSigner,
|
|
47
|
+
borrower: borrowerAddress,
|
|
48
|
+
mint: atlasMint,
|
|
49
|
+
}, { programAddress });
|
|
50
|
+
return prepareInstructions(kitInstruction, {
|
|
51
|
+
computeUnits: params.computeUnits,
|
|
52
|
+
PublicKey: finalConfig.PublicKey
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=closeBorrower.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closeBorrower.js","sourceRoot":"","sources":["../../../src/instructions/closeBorrower.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAyBjD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,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;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;QACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,MAAM,cAAc,GAAG,MAAM,gCAAgC,CAC3D;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,SAAS;KAChB,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"}
|
|
@@ -10,6 +10,8 @@ import { mergeConfig, getAddresses } from '../utils/config';
|
|
|
10
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
11
|
import { fetchContract } from '../accounts/contract';
|
|
12
12
|
import { fetchConfig } from '../accounts/config';
|
|
13
|
+
import { deriveAssociatedTokenAccount } from '../pda/token';
|
|
14
|
+
import { deriveContract } from '../pda/srsly';
|
|
13
15
|
import { prepareInstructions } from '../utils/instructions';
|
|
14
16
|
/**
|
|
15
17
|
* Close a rental contract
|
|
@@ -32,25 +34,19 @@ import { prepareInstructions } from '../utils/instructions';
|
|
|
32
34
|
* const ix = await closeContract({
|
|
33
35
|
* owner: wallet,
|
|
34
36
|
* fleet: fleetAddress
|
|
35
|
-
* // contract derived from fleet PDA
|
|
36
|
-
* // Works even if contract doesn't exist (init_if_needed)
|
|
37
37
|
* });
|
|
38
38
|
*
|
|
39
39
|
* // Option 2: Provide contract only (contract MUST exist)
|
|
40
40
|
* const ix2 = await closeContract({
|
|
41
41
|
* owner: wallet,
|
|
42
42
|
* contract: contractAddress
|
|
43
|
-
* // fleet fetched from contract.fleet
|
|
44
|
-
* // REQUIRES contract to already exist
|
|
45
43
|
* });
|
|
46
44
|
*
|
|
47
45
|
* // Option 3: Provide both (most explicit, no fetching)
|
|
48
46
|
* const ix3 = await closeContract({
|
|
49
47
|
* owner: wallet,
|
|
50
48
|
* fleet: fleetAddress,
|
|
51
|
-
* contract: contractAddress
|
|
52
|
-
* sageProgram: customSageProgram, // Optional
|
|
53
|
-
* destinationTokenAccount: customTokenAccount // Optional
|
|
49
|
+
* contract: contractAddress
|
|
54
50
|
* });
|
|
55
51
|
* ```
|
|
56
52
|
*/
|
|
@@ -82,7 +78,7 @@ export async function closeContract(params, config) {
|
|
|
82
78
|
else if (params.fleet) {
|
|
83
79
|
// Only fleet provided - derive contract from fleet PDA
|
|
84
80
|
fleetAddress = address(params.fleet);
|
|
85
|
-
contractAddress =
|
|
81
|
+
contractAddress = await deriveContract(fleetAddress, programAddress);
|
|
86
82
|
}
|
|
87
83
|
else if (params.contract) {
|
|
88
84
|
// Only contract provided - fetch contract to get fleet
|
|
@@ -98,16 +94,21 @@ export async function closeContract(params, config) {
|
|
|
98
94
|
const sageProgram = params.sageProgram
|
|
99
95
|
? address(params.sageProgram)
|
|
100
96
|
: address(addresses.sage);
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
97
|
+
// Derive contract token account (ATA of contract PDA for ATLAS)
|
|
98
|
+
// For the codama call, we need to provide it since it's not optional in the async input
|
|
99
|
+
// We need contract address to derive it, which may need to be derived from fleet
|
|
100
|
+
// Let codama auto-derive it if we don't have a contract address
|
|
101
|
+
let contractTokenAccount;
|
|
102
|
+
if (contractAddress) {
|
|
103
|
+
contractTokenAccount = await deriveAssociatedTokenAccount(contractAddress, atlasMint);
|
|
104
|
+
}
|
|
105
105
|
// Call Codama-generated instruction
|
|
106
106
|
const kitInstruction = await getCloseContractInstructionAsync({
|
|
107
107
|
owner: ownerSigner,
|
|
108
108
|
contract: contractAddress,
|
|
109
109
|
mint: atlasMint,
|
|
110
110
|
fleet: fleetAddress,
|
|
111
|
+
contractTokenAccount: contractTokenAccount,
|
|
111
112
|
sageProgram,
|
|
112
113
|
}, { programAddress });
|
|
113
114
|
return prepareInstructions(kitInstruction, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeContract.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"closeContract.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified closeContractThread instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated closeContractThread instruction.
|
|
5
|
+
* Closes a per-contract automation thread and reclaims rent.
|
|
6
|
+
*/
|
|
7
|
+
import { AccountRole, address } from '@solana/kit';
|
|
8
|
+
import { getCloseContractThreadInstructionAsync } from '../generated/codama/instructions';
|
|
9
|
+
import { fetchThread } from '../generated/codama/accounts/thread';
|
|
10
|
+
import { mergeConfig, getAddresses, getRpcUrl } from '../utils/config';
|
|
11
|
+
import { toTransactionSigner } from '../utils/signer';
|
|
12
|
+
import { prepareInstructions } from '../utils/instructions';
|
|
13
|
+
import { createRpc } from '../utils/rpc';
|
|
14
|
+
import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
15
|
+
import { deriveRentalAuthority } from '../pda/srsly';
|
|
16
|
+
/**
|
|
17
|
+
* Close a per-contract automation thread
|
|
18
|
+
*
|
|
19
|
+
* Closes the Antegen thread and all fiber PDAs, reclaiming rent to the owner.
|
|
20
|
+
* Fetches the thread account to read `fiberIds`, then derives and passes only
|
|
21
|
+
* the fibers that actually exist as remaining accounts.
|
|
22
|
+
*
|
|
23
|
+
* @param params - Thread closing parameters
|
|
24
|
+
* @param config - Optional SDK configuration overrides
|
|
25
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
26
|
+
*/
|
|
27
|
+
export async function closeContractThread(params, config) {
|
|
28
|
+
const finalConfig = mergeConfig(config);
|
|
29
|
+
if (!params.owner) {
|
|
30
|
+
throw new Error('owner is required');
|
|
31
|
+
}
|
|
32
|
+
if (!params.contract) {
|
|
33
|
+
throw new Error('contract is required');
|
|
34
|
+
}
|
|
35
|
+
const ownerSigner = toTransactionSigner(params.owner);
|
|
36
|
+
const addresses = getAddresses(config);
|
|
37
|
+
const programAddress = address(addresses.srsly);
|
|
38
|
+
const contractAddress = address(params.contract);
|
|
39
|
+
// Derive thread PDA
|
|
40
|
+
const rentalAuthority = await deriveRentalAuthority();
|
|
41
|
+
const contractThread = await deriveContractThread(contractAddress, rentalAuthority);
|
|
42
|
+
// Fetch thread account to read actual fiber_ids
|
|
43
|
+
const rpc = createRpc(getRpcUrl(config));
|
|
44
|
+
const threadAccount = await fetchThread(rpc, contractThread);
|
|
45
|
+
const fiberIds = Array.from(threadAccount.data.fiberIds);
|
|
46
|
+
// Derive fiber PDAs only for fibers that actually exist on the thread
|
|
47
|
+
const fiberAccounts = await Promise.all(fiberIds.map(async (id) => ({
|
|
48
|
+
address: await deriveFiber(contractThread, id),
|
|
49
|
+
role: AccountRole.WRITABLE,
|
|
50
|
+
})));
|
|
51
|
+
const kitInstruction = await getCloseContractThreadInstructionAsync({
|
|
52
|
+
owner: ownerSigner,
|
|
53
|
+
contract: contractAddress,
|
|
54
|
+
thread: contractThread,
|
|
55
|
+
}, { programAddress });
|
|
56
|
+
// Add fiber PDAs as remaining accounts (writable, non-signer)
|
|
57
|
+
kitInstruction.accounts.push(...fiberAccounts);
|
|
58
|
+
return prepareInstructions(kitInstruction, {
|
|
59
|
+
computeUnits: params.computeUnits,
|
|
60
|
+
PublicKey: finalConfig.PublicKey
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=closeContractThread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closeContractThread.js","sourceRoot":"","sources":["../../../src/instructions/closeContractThread.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,sCAAsC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAkB,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAsBrD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiC,EACjC,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,gDAAgD;IAChD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzD,sEAAsE;IACtE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,MAAM,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC;QAC9C,IAAI,EAAE,WAAW,CAAC,QAAiB;KACpC,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,sCAAsC,CACjE;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,cAAc;KACvB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,8DAA8D;IAC9D,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAE/C,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|