@wuwei-labs/srsly 3.0.0-beta.21 → 3.0.0-beta.22
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/index.js +23 -0
- package/dist/cjs/accounts/index.js.map +1 -0
- package/dist/cjs/demos.js +157 -57
- 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 +0 -2
- package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/contractState.js +23 -30
- 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/errors/srsly.js +43 -43
- package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/acceptRental.js +60 -47
- package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/activateRental.js +144 -22
- package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/cancelRental.js +13 -42
- package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/claimContract.js +197 -0
- package/dist/cjs/generated/codama/instructions/claimContract.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 +154 -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 +40 -24
- package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createContractThread.js +299 -0
- package/dist/cjs/generated/codama/instructions/createContractThread.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/index.js +6 -5
- package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/payContract.js +237 -0
- package/dist/cjs/generated/codama/instructions/payContract.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/reserveRental.js +81 -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 +0 -2
- package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateContract.js +0 -10
- 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 +36 -36
- 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/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/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/index.js +4 -221
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instructions/acceptRental.js +23 -79
- package/dist/cjs/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/instructions/activateRental.js +83 -0
- package/dist/cjs/instructions/activateRental.js.map +1 -0
- package/dist/cjs/instructions/cancelRental.js +21 -23
- package/dist/cjs/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/instructions/claimBorrower.js +27 -14
- 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/closeContract.js +13 -12
- package/dist/cjs/instructions/closeContract.js.map +1 -1
- package/dist/cjs/instructions/closeContractThread.js +58 -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 +74 -0
- package/dist/cjs/instructions/createContractThread.js.map +1 -0
- package/dist/cjs/instructions/index.js +41 -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 +13 -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 +4 -2
- package/dist/cjs/pda/constants.js.map +1 -1
- package/dist/cjs/pda/index.js +7 -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 +37 -24
- package/dist/cjs/pda/thread.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/index.js +7 -0
- package/dist/esm/accounts/index.js.map +1 -0
- package/dist/esm/demos.js +156 -56
- 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 +0 -2
- package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/contractState.js +24 -31
- 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/errors/srsly.js +41 -41
- package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
- package/dist/esm/generated/codama/instructions/acceptRental.js +60 -47
- package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/activateRental.js +146 -24
- package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/cancelRental.js +14 -43
- package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
- package/dist/esm/generated/codama/instructions/claimContract.js +187 -0
- package/dist/esm/generated/codama/instructions/claimContract.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 +144 -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 +41 -25
- package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createContractThread.js +289 -0
- package/dist/esm/generated/codama/instructions/createContractThread.js.map +1 -0
- package/dist/esm/generated/codama/instructions/index.js +6 -5
- package/dist/esm/generated/codama/instructions/index.js.map +1 -1
- package/dist/esm/generated/codama/instructions/payContract.js +227 -0
- package/dist/esm/generated/codama/instructions/payContract.js.map +1 -0
- package/dist/esm/generated/codama/instructions/reserveRental.js +82 -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 +0 -2
- package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateContract.js +1 -11
- 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 +36 -36
- 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/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/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/index.js +1 -99
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instructions/acceptRental.js +26 -82
- package/dist/esm/instructions/acceptRental.js.map +1 -1
- package/dist/esm/instructions/activateRental.js +80 -0
- package/dist/esm/instructions/activateRental.js.map +1 -0
- package/dist/esm/instructions/cancelRental.js +22 -24
- package/dist/esm/instructions/cancelRental.js.map +1 -1
- package/dist/esm/instructions/claimBorrower.js +27 -14
- 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/closeContract.js +13 -12
- package/dist/esm/instructions/closeContract.js.map +1 -1
- package/dist/esm/instructions/closeContractThread.js +55 -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 +71 -0
- package/dist/esm/instructions/createContractThread.js.map +1 -0
- package/dist/esm/instructions/index.js +27 -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 +11 -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 +3 -1
- 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 +36 -24
- package/dist/esm/pda/thread.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 +1704 -1909
- package/dist/types/accounts/index.d.ts +7 -0
- package/dist/types/accounts/index.d.ts.map +1 -0
- package/dist/types/demos.d.ts +24 -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/errors/srsly.d.ts +39 -39
- package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/acceptRental.d.ts +50 -35
- package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/activateRental.d.ts +72 -32
- package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/cancelRental.d.ts +20 -28
- package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts +3 -18
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/claimContract.d.ts +75 -0
- package/dist/types/generated/codama/instructions/claimContract.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 +63 -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 +125 -0
- package/dist/types/generated/codama/instructions/createContractThread.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/index.d.ts +6 -5
- package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/payContract.d.ts +104 -0
- package/dist/types/generated/codama/instructions/payContract.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/reserveRental.d.ts +84 -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 +34 -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/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/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/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 +27 -10
- 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/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 +50 -0
- package/dist/types/instructions/createContractThread.d.ts.map +1 -0
- package/dist/types/instructions/index.d.ts +27 -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 +11 -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 +3 -1
- 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/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,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,29 @@ 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 }));
|
|
87
86
|
// Call Codama-generated instruction
|
|
88
|
-
// Note: Codama auto-derives config, borrowerState, borrowerTokenAccount,
|
|
89
|
-
// rentalTokenAccount, rentalAuthority, antegenProgram, tokenProgram
|
|
87
|
+
// Note: Codama auto-derives config, borrowerState, borrowerTokenAccount, rentalAuthority
|
|
90
88
|
const kitInstruction = await getCancelRentalInstructionAsync({
|
|
91
89
|
mint: atlasMint,
|
|
92
90
|
borrower: borrowerSigner,
|
|
93
91
|
rentalState,
|
|
94
|
-
|
|
95
|
-
contract:
|
|
92
|
+
contractTokenAccount,
|
|
93
|
+
contract: contractAddress,
|
|
94
|
+
fleet: address(fleet),
|
|
96
95
|
cancelDelay,
|
|
97
|
-
rentalSlot,
|
|
98
96
|
}, { programAddress });
|
|
99
97
|
return prepareInstructions(kitInstruction, {
|
|
100
98
|
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,7 +2,7 @@
|
|
|
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
6
|
*/
|
|
7
7
|
import { address } from '@solana/kit';
|
|
8
8
|
import { getClaimBorrowerInstructionAsync } from '../generated/codama/instructions';
|
|
@@ -18,22 +18,31 @@ import { fetchConfig } from '../accounts/config';
|
|
|
18
18
|
* account (an ATA with the borrower_state as authority). This instruction
|
|
19
19
|
* transfers those funds to the borrower's personal wallet.
|
|
20
20
|
*
|
|
21
|
+
* The payer and borrower can be different accounts, allowing a third party
|
|
22
|
+
* to pay for the claim transaction on behalf of the borrower.
|
|
23
|
+
*
|
|
21
24
|
* @param params - Borrower claim parameters
|
|
22
25
|
* @param config - Optional SDK configuration overrides
|
|
23
26
|
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
24
27
|
*
|
|
25
28
|
* @example
|
|
26
29
|
* ```typescript
|
|
27
|
-
* //
|
|
30
|
+
* // Self-claim: payer is the borrower
|
|
28
31
|
* const ix = await claimBorrower({
|
|
29
|
-
*
|
|
32
|
+
* payer: borrowerWallet,
|
|
33
|
+
* // borrower defaults to payer
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* // Third-party claim: someone else pays
|
|
37
|
+
* const ix2 = await claimBorrower({
|
|
38
|
+
* payer: relayerWallet,
|
|
39
|
+
* borrower: "BORROWER_ADDRESS"
|
|
30
40
|
* });
|
|
31
41
|
*
|
|
32
|
-
* //
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* borrower: keypair
|
|
42
|
+
* // Claim and close the BorrowerState account
|
|
43
|
+
* const ix3 = await claimBorrower({
|
|
44
|
+
* payer: borrowerWallet,
|
|
45
|
+
* close: true
|
|
37
46
|
* });
|
|
38
47
|
* ```
|
|
39
48
|
*/
|
|
@@ -41,11 +50,15 @@ export async function claimBorrower(params, config) {
|
|
|
41
50
|
// Merge config
|
|
42
51
|
const finalConfig = mergeConfig(config);
|
|
43
52
|
// Validate required params
|
|
44
|
-
if (!params.
|
|
45
|
-
throw new Error('
|
|
53
|
+
if (!params.payer) {
|
|
54
|
+
throw new Error('payer is required');
|
|
46
55
|
}
|
|
47
|
-
// Convert
|
|
48
|
-
const
|
|
56
|
+
// Convert payer to transaction signer
|
|
57
|
+
const payerSigner = toTransactionSigner(params.payer);
|
|
58
|
+
// Resolve borrower address: use provided or default to payer
|
|
59
|
+
const borrowerAddress = params.borrower
|
|
60
|
+
? address(params.borrower)
|
|
61
|
+
: getSignerAddress(payerSigner);
|
|
49
62
|
// Get atlasMint from on-chain config
|
|
50
63
|
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
51
64
|
const atlasMint = configAccount.data.atlasMint;
|
|
@@ -54,8 +67,8 @@ export async function claimBorrower(params, config) {
|
|
|
54
67
|
// Call Codama-generated instruction
|
|
55
68
|
// Most accounts are auto-derived (config, borrowerState, managed account, destination)
|
|
56
69
|
const kitInstruction = await getClaimBorrowerInstructionAsync({
|
|
57
|
-
payer:
|
|
58
|
-
borrower:
|
|
70
|
+
payer: payerSigner,
|
|
71
|
+
borrower: borrowerAddress,
|
|
59
72
|
mint: atlasMint,
|
|
60
73
|
close: params.close ?? false,
|
|
61
74
|
}, { programAddress });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claimBorrower.js","sourceRoot":"","sources":["../../../src/instructions/claimBorrower.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,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"claimBorrower.js","sourceRoot":"","sources":["../../../src/instructions/claimBorrower.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,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkCjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,6DAA6D;IAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;QACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAElC,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,oCAAoC;IACpC,uFAAuF;IACvF,MAAM,cAAc,GAAG,MAAM,gCAAgC,CAC3D;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;KAC7B,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,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified claimContract instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated claimContract instruction.
|
|
5
|
+
* Allows contract owners to claim accumulated ATLAS from the contract's escrow.
|
|
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
|
+
* Transfers `owner_claimable` ATLAS from the contract's token account
|
|
18
|
+
* to the owner's wallet. No OwnerState needed — claims directly from
|
|
19
|
+
* the per-contract escrow.
|
|
20
|
+
*
|
|
21
|
+
* @param params - Contract claim parameters
|
|
22
|
+
* @param config - Optional SDK configuration overrides
|
|
23
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
24
|
+
*/
|
|
25
|
+
export async function claimContract(params, config) {
|
|
26
|
+
const finalConfig = mergeConfig(config);
|
|
27
|
+
if (!params.owner) {
|
|
28
|
+
throw new Error('owner is required');
|
|
29
|
+
}
|
|
30
|
+
if (!params.contract) {
|
|
31
|
+
throw new Error('contract is required');
|
|
32
|
+
}
|
|
33
|
+
const ownerSigner = toTransactionSigner(params.owner);
|
|
34
|
+
// Get atlasMint from on-chain config
|
|
35
|
+
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
36
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
37
|
+
const addresses = getAddresses(config);
|
|
38
|
+
const programAddress = address(addresses.srsly);
|
|
39
|
+
// Fetch contract to get fleet and contractTokenAccount
|
|
40
|
+
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
41
|
+
const contractAddress = address(params.contract);
|
|
42
|
+
const kitInstruction = await getClaimContractInstructionAsync({
|
|
43
|
+
owner: ownerSigner,
|
|
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;AAsBrD;;;;;;;;;;GAUG;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,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"}
|
|
@@ -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,55 @@
|
|
|
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 { mergeConfig, getAddresses } from '../utils/config';
|
|
10
|
+
import { toTransactionSigner } from '../utils/signer';
|
|
11
|
+
import { prepareInstructions } from '../utils/instructions';
|
|
12
|
+
import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
13
|
+
import { deriveRentalAuthority } from '../pda/srsly';
|
|
14
|
+
/**
|
|
15
|
+
* Close a per-contract automation thread
|
|
16
|
+
*
|
|
17
|
+
* Closes the Antegen thread and any existing fiber PDAs, reclaiming rent to the owner.
|
|
18
|
+
* Fiber PDAs are derived and passed as remaining accounts. Only initialized fibers
|
|
19
|
+
* will be closed on-chain.
|
|
20
|
+
*
|
|
21
|
+
* @param params - Thread closing parameters
|
|
22
|
+
* @param config - Optional SDK configuration overrides
|
|
23
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
24
|
+
*/
|
|
25
|
+
export async function closeContractThread(params, config) {
|
|
26
|
+
const finalConfig = mergeConfig(config);
|
|
27
|
+
if (!params.owner) {
|
|
28
|
+
throw new Error('owner is required');
|
|
29
|
+
}
|
|
30
|
+
if (!params.contract) {
|
|
31
|
+
throw new Error('contract is required');
|
|
32
|
+
}
|
|
33
|
+
const ownerSigner = toTransactionSigner(params.owner);
|
|
34
|
+
const addresses = getAddresses(config);
|
|
35
|
+
const programAddress = address(addresses.srsly);
|
|
36
|
+
const contractAddress = address(params.contract);
|
|
37
|
+
// Derive thread and fiber PDAs
|
|
38
|
+
const rentalAuthority = await deriveRentalAuthority();
|
|
39
|
+
const contractThread = await deriveContractThread(contractAddress, rentalAuthority);
|
|
40
|
+
const closeRentalFiber = await deriveFiber(contractThread, 1);
|
|
41
|
+
const activateRentalFiber = await deriveFiber(contractThread, 2);
|
|
42
|
+
const kitInstruction = await getCloseContractThreadInstructionAsync({
|
|
43
|
+
owner: ownerSigner,
|
|
44
|
+
contract: contractAddress,
|
|
45
|
+
thread: contractThread,
|
|
46
|
+
}, { programAddress });
|
|
47
|
+
// Add fiber PDAs as remaining accounts (writable, non-signer)
|
|
48
|
+
// On-chain handler filters to only initialized accounts
|
|
49
|
+
kitInstruction.accounts.push({ address: closeRentalFiber, role: AccountRole.WRITABLE }, { address: activateRentalFiber, role: AccountRole.WRITABLE });
|
|
50
|
+
return prepareInstructions(kitInstruction, {
|
|
51
|
+
computeUnits: params.computeUnits,
|
|
52
|
+
PublicKey: finalConfig.PublicKey
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# 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,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,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,+BAA+B;IAC/B,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,mBAAmB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAEjE,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,wDAAwD;IACxD,cAAc,CAAC,QAAQ,CAAC,IAAI,CAC1B,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,EACzD,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,CAC7D,CAAC;IAEF,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -6,32 +6,29 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { address } from '@solana/kit';
|
|
8
8
|
import { getCloseRentalInstructionAsync } from '../generated/codama/instructions';
|
|
9
|
-
import { fetchRentalState } from '../generated/codama/accounts';
|
|
10
9
|
import { mergeConfig, getAddresses } from '../utils/config';
|
|
11
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
12
11
|
import { fetchContract } from '../accounts/contract';
|
|
13
12
|
import { fetchConfig } from '../accounts/config';
|
|
14
13
|
import { fetchFleet } from '../accounts/fleet';
|
|
14
|
+
import { fetchRental } from '../accounts/rental';
|
|
15
|
+
import { fetchBorrower } from '../accounts/borrower';
|
|
15
16
|
import { deriveGameAccounts } from '../pda/sage';
|
|
16
|
-
import {
|
|
17
|
-
import { deriveRentalThread } from '../pda/thread';
|
|
17
|
+
import { deriveActiveRental, deriveBorrowerState } from '../pda/srsly';
|
|
18
18
|
import { prepareInstructions } from '../utils/instructions';
|
|
19
|
-
import { createRpc } from '../utils/rpc';
|
|
20
|
-
import { requireExistingRentalSlot } from '../utils/rental';
|
|
21
19
|
/**
|
|
22
20
|
* Close a rental
|
|
23
21
|
*
|
|
24
22
|
* Closes a completed rental and transfers the fleet back to the owner.
|
|
25
|
-
*
|
|
23
|
+
* Always targets the active rental PDA.
|
|
26
24
|
*
|
|
27
25
|
* This function automatically:
|
|
28
|
-
* - Fetches contract to get owner,
|
|
29
|
-
* - Fetches
|
|
26
|
+
* - Fetches contract to get owner, fleet, gameId
|
|
27
|
+
* - Fetches the active rental to get borrower (if not provided)
|
|
28
|
+
* - Fetches the borrower's SAGE profile from borrower_state
|
|
30
29
|
* - Derives required SAGE accounts (starbase, starbase player)
|
|
31
|
-
* - Derives rental thread for automated payments
|
|
32
|
-
* - Codama auto-derives contractTokenAccount as ATA
|
|
33
30
|
*
|
|
34
|
-
* @param params - Rental closure parameters (payer,
|
|
31
|
+
* @param params - Rental closure parameters (payer, contract)
|
|
35
32
|
* @param config - Optional SDK configuration overrides
|
|
36
33
|
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
37
34
|
*
|
|
@@ -39,7 +36,6 @@ import { requireExistingRentalSlot } from '../utils/rental';
|
|
|
39
36
|
* ```typescript
|
|
40
37
|
* const ix = await closeRental({
|
|
41
38
|
* payer: ownerWallet,
|
|
42
|
-
* rentalSlot: 0,
|
|
43
39
|
* contract: contractAddress
|
|
44
40
|
* });
|
|
45
41
|
* ```
|
|
@@ -56,34 +52,21 @@ export async function closeRental(params, config) {
|
|
|
56
52
|
}
|
|
57
53
|
// Fetch contract to get owner, fleet, gameId
|
|
58
54
|
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
59
|
-
const owner = contractAccount.data.owner;
|
|
60
55
|
const fleet = contractAccount.data.fleet;
|
|
61
56
|
const gameId = contractAccount.data.gameId;
|
|
62
57
|
// Convert payer to transaction signer
|
|
63
58
|
const payerSigner = toTransactionSigner(params.payer);
|
|
64
|
-
//
|
|
65
|
-
const
|
|
66
|
-
const otherSlot = rentalSlot === 0 ? 1 : 0;
|
|
67
|
-
// Fetch fleet data to get faction (for SAGE account derivation)
|
|
68
|
-
const fleetState = await fetchFleet(fleet, finalConfig.rpcUrl);
|
|
69
|
-
const faction = fleetState.faction;
|
|
70
|
-
const ownerProfile = fleetState.ownerProfile;
|
|
71
|
-
// Derive SAGE game accounts (we need owner's profile for starbase player)
|
|
72
|
-
const gameAccounts = await deriveGameAccounts(ownerProfile, faction, gameId);
|
|
73
|
-
// Derive rental and rental authority PDAs
|
|
74
|
-
const rental = await deriveRental(params.contract, rentalSlot);
|
|
75
|
-
const rentalAuthority = await deriveRentalAuthority();
|
|
59
|
+
// Derive active rental PDA (no more slot logic)
|
|
60
|
+
const rentalState = await deriveActiveRental(params.contract);
|
|
76
61
|
// Get borrower - use provided value, or fetch from rental state, or fall back to payer
|
|
77
62
|
let borrower;
|
|
78
63
|
if (params.borrower) {
|
|
79
|
-
borrower = params.borrower;
|
|
64
|
+
borrower = address(params.borrower);
|
|
80
65
|
}
|
|
81
66
|
else {
|
|
82
|
-
// Try to fetch from rental state
|
|
83
67
|
try {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
borrower = rentalState.data.borrower;
|
|
68
|
+
const rental = await fetchRental(rentalState, finalConfig.rpcUrl);
|
|
69
|
+
borrower = rental.data.borrower;
|
|
87
70
|
}
|
|
88
71
|
catch {
|
|
89
72
|
// Rental state doesn't exist, fall back to payer
|
|
@@ -92,37 +75,43 @@ export async function closeRental(params, config) {
|
|
|
92
75
|
}
|
|
93
76
|
// Derive borrower state PDA
|
|
94
77
|
const borrowerState = await deriveBorrowerState(borrower);
|
|
95
|
-
//
|
|
96
|
-
|
|
78
|
+
// Fetch borrower's SAGE profile from borrower_state to derive game accounts
|
|
79
|
+
let borrowerProfile;
|
|
80
|
+
let faction;
|
|
81
|
+
try {
|
|
82
|
+
const borrowerAccount = await fetchBorrower(borrower, finalConfig.rpcUrl);
|
|
83
|
+
borrowerProfile = borrowerAccount.data.borrowerProfile;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// Borrower state doesn't exist, fallback to fleet owner profile
|
|
87
|
+
const fleetState = await fetchFleet(fleet, finalConfig.rpcUrl);
|
|
88
|
+
borrowerProfile = fleetState.ownerProfile;
|
|
89
|
+
faction = fleetState.faction;
|
|
90
|
+
}
|
|
91
|
+
// Get faction from fleet if not set above
|
|
92
|
+
if (faction === undefined) {
|
|
93
|
+
const fleetState = await fetchFleet(fleet, finalConfig.rpcUrl);
|
|
94
|
+
faction = fleetState.faction;
|
|
95
|
+
}
|
|
96
|
+
// Derive SAGE game accounts using borrower's profile
|
|
97
|
+
const gameAccounts = await deriveGameAccounts(borrowerProfile, faction, gameId);
|
|
97
98
|
// Get atlasMint from on-chain config
|
|
98
99
|
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
99
|
-
const atlasMint = configAccount.data.atlasMint;
|
|
100
100
|
const addresses = getAddresses(config);
|
|
101
101
|
const sageProgram = address(addresses.sage);
|
|
102
102
|
const programAddress = address(addresses.srsly);
|
|
103
|
-
// Derive queuedThread from the other slot's rental
|
|
104
|
-
const otherSlotRental = await deriveRental(params.contract, otherSlot);
|
|
105
|
-
const queuedThread = await deriveRentalThread(otherSlotRental, rentalAuthority);
|
|
106
|
-
// Derive ownerState PDA from owner address
|
|
107
|
-
const ownerState = await deriveOwnerState(owner);
|
|
108
103
|
// Call Codama-generated instruction
|
|
109
|
-
// Note: ownerTokenAccount is auto-derived by Codama as ATA for ownerState + mint
|
|
110
104
|
const kitInstruction = await getCloseRentalInstructionAsync({
|
|
111
105
|
payer: payerSigner,
|
|
112
|
-
|
|
113
|
-
borrower: address(borrower),
|
|
106
|
+
borrower,
|
|
114
107
|
borrowerState,
|
|
115
|
-
ownerState,
|
|
116
108
|
contract: address(params.contract),
|
|
117
|
-
rentalState
|
|
118
|
-
rentalThread,
|
|
109
|
+
rentalState,
|
|
119
110
|
fleet: address(fleet),
|
|
120
111
|
gameId: address(gameId),
|
|
121
112
|
starbase: gameAccounts.starbase,
|
|
122
113
|
starbasePlayer: gameAccounts.starbasePlayer,
|
|
123
|
-
queuedThread,
|
|
124
114
|
sageProgram,
|
|
125
|
-
rentalSlot,
|
|
126
115
|
}, { programAddress });
|
|
127
116
|
return prepareInstructions(kitInstruction, {
|
|
128
117
|
computeUnits: params.computeUnits,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified createBorrower instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated createBorrower instruction.
|
|
5
|
+
* Creates a BorrowerState PDA with managed token account for a borrower.
|
|
6
|
+
* Derives SAGE accounts (profileFaction, starbase, starbasePlayer) from
|
|
7
|
+
* borrowerProfile + faction automatically.
|
|
8
|
+
*/
|
|
9
|
+
import { address } from '@solana/kit';
|
|
10
|
+
import { getCreateBorrowerInstructionAsync } from '../generated/codama/instructions';
|
|
11
|
+
import { mergeConfig, getAddresses } from '../utils/config';
|
|
12
|
+
import { toTransactionSigner } from '../utils/signer';
|
|
13
|
+
import { prepareInstructions } from '../utils/instructions';
|
|
14
|
+
import { fetchConfig } from '../accounts/config';
|
|
15
|
+
import { deriveGameAccounts } from '../pda/sage';
|
|
16
|
+
/**
|
|
17
|
+
* Create a borrower state account
|
|
18
|
+
*
|
|
19
|
+
* Creates a BorrowerState PDA and an associated managed token account.
|
|
20
|
+
* The managed token account holds ATLAS refunds from reservation knockoffs.
|
|
21
|
+
*
|
|
22
|
+
* Derives borrowerProfileFaction, starbase, and starbasePlayer PDAs
|
|
23
|
+
* automatically from the borrowerProfile and faction.
|
|
24
|
+
*
|
|
25
|
+
* @param params - Borrower creation parameters
|
|
26
|
+
* @param config - Optional SDK configuration overrides
|
|
27
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
28
|
+
*/
|
|
29
|
+
export async function createBorrower(params, config) {
|
|
30
|
+
const finalConfig = mergeConfig(config);
|
|
31
|
+
if (!params.borrower) {
|
|
32
|
+
throw new Error('borrower is required');
|
|
33
|
+
}
|
|
34
|
+
if (!params.borrowerProfile) {
|
|
35
|
+
throw new Error('borrowerProfile is required');
|
|
36
|
+
}
|
|
37
|
+
if (params.faction === undefined || params.faction === null) {
|
|
38
|
+
throw new Error('faction is required (\'mud\' | \'oni\' | \'ustur\' or 1 | 2 | 3)');
|
|
39
|
+
}
|
|
40
|
+
const borrowerSigner = toTransactionSigner(params.borrower);
|
|
41
|
+
// Get atlasMint from on-chain config and gameId from addresses
|
|
42
|
+
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
43
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
44
|
+
const addresses = getAddresses(config);
|
|
45
|
+
const programAddress = address(addresses.srsly);
|
|
46
|
+
// Derive all SAGE accounts from profile + faction
|
|
47
|
+
const gameAccounts = await deriveGameAccounts(address(params.borrowerProfile), params.faction, address(addresses.gameId));
|
|
48
|
+
const kitInstruction = await getCreateBorrowerInstructionAsync({
|
|
49
|
+
borrower: borrowerSigner,
|
|
50
|
+
mint: atlasMint,
|
|
51
|
+
borrowerProfile: address(params.borrowerProfile),
|
|
52
|
+
borrowerProfileFaction: gameAccounts.profileFaction,
|
|
53
|
+
starbase: gameAccounts.starbase,
|
|
54
|
+
starbasePlayer: gameAccounts.starbasePlayer,
|
|
55
|
+
}, { programAddress });
|
|
56
|
+
return prepareInstructions(kitInstruction, {
|
|
57
|
+
computeUnits: params.computeUnits,
|
|
58
|
+
PublicKey: finalConfig.PublicKey
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=createBorrower.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBorrower.js","sourceRoot":"","sources":["../../../src/instructions/createBorrower.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA4BjD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5D,+DAA+D;IAC/D,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,kDAAkD;IAClD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,OAAO,CAAC,MAAM,CAAC,eAA0B,CAAC,EAC1C,MAAM,CAAC,OAAO,EACd,OAAO,CAAC,SAAS,CAAC,MAAiB,CAAC,CACrC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,iCAAiC,CAC5D;QACE,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,eAA0B,CAAC;QAC3D,sBAAsB,EAAE,YAAY,CAAC,cAAc;QACnD,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,cAAc,EAAE,YAAY,CAAC,cAAc;KAC5C,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"}
|