@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
|
@@ -10,7 +10,6 @@ import { mergeConfig, getAddresses } from '../utils/config';
|
|
|
10
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
11
|
import { convertAmount, stardustToAtlas } from '../params/amount';
|
|
12
12
|
import { convertDuration } from '../params/duration';
|
|
13
|
-
import { normalizeSchedule } from '../params/schedule';
|
|
14
13
|
import { fetchFleet } from '../accounts/fleet';
|
|
15
14
|
import { fetchConfig } from '../accounts/config';
|
|
16
15
|
import { prepareInstructions } from '../utils/instructions';
|
|
@@ -28,34 +27,9 @@ import { prepareInstructions } from '../utils/instructions';
|
|
|
28
27
|
* const ix = await createContract({
|
|
29
28
|
* owner: wallet,
|
|
30
29
|
* fleet: fleetAddress,
|
|
31
|
-
* // ownerProfile and gameId fetched automatically from fleet
|
|
32
30
|
* rate: 100,
|
|
33
|
-
* durationMax: { days: 30 }
|
|
34
|
-
* paymentsFreq: '@daily'
|
|
31
|
+
* durationMax: { days: 30 }
|
|
35
32
|
* });
|
|
36
|
-
*
|
|
37
|
-
* // Explicit ownerProfile and gameId (skips fetch)
|
|
38
|
-
* const ix2 = await createContract({
|
|
39
|
-
* owner: wallet,
|
|
40
|
-
* fleet: fleetAddress,
|
|
41
|
-
* ownerProfile: profileAddress, // Explicitly provided
|
|
42
|
-
* gameId: gameAddress, // Explicitly provided
|
|
43
|
-
* rate: 100,
|
|
44
|
-
* durationMax: { days: 30 },
|
|
45
|
-
* paymentsFreq: '@daily'
|
|
46
|
-
* });
|
|
47
|
-
*
|
|
48
|
-
* // With web3.js
|
|
49
|
-
* import { PublicKey } from '@solana/web3.js';
|
|
50
|
-
* setSdkConfig({ network: 'atlasnet', PublicKey });
|
|
51
|
-
* const web3Ix = await createContract({
|
|
52
|
-
* owner: keypair,
|
|
53
|
-
* fleet: fleetPubkey,
|
|
54
|
-
* rate: 100,
|
|
55
|
-
* durationMax: { days: 30 },
|
|
56
|
-
* paymentsFreq: '@daily'
|
|
57
|
-
* });
|
|
58
|
-
* // web3Ix.keys[0].pubkey is a PublicKey instance
|
|
59
33
|
* ```
|
|
60
34
|
*/
|
|
61
35
|
export async function createContract(params, config) {
|
|
@@ -74,9 +48,6 @@ export async function createContract(params, config) {
|
|
|
74
48
|
if (!params.durationMax) {
|
|
75
49
|
throw new Error('durationMax is required');
|
|
76
50
|
}
|
|
77
|
-
if (!params.paymentsFreq) {
|
|
78
|
-
throw new Error('paymentsFreq is required');
|
|
79
|
-
}
|
|
80
51
|
// Convert owner to transaction signer
|
|
81
52
|
const ownerSigner = toTransactionSigner(params.owner);
|
|
82
53
|
// Fetch fleet data (source of truth for ownerProfile and gameId)
|
|
@@ -95,7 +66,6 @@ export async function createContract(params, config) {
|
|
|
95
66
|
? convertDuration(params.durationMin)
|
|
96
67
|
: 3600; // Default 1 hour
|
|
97
68
|
const durationMaxSeconds = convertDuration(params.durationMax);
|
|
98
|
-
const normalizedSchedule = normalizeSchedule(params.paymentsFreq);
|
|
99
69
|
// Validate duration logic
|
|
100
70
|
if (durationMaxSeconds < durationMinSeconds) {
|
|
101
71
|
throw new Error(`durationMax (${durationMaxSeconds}s) must be >= durationMin (${durationMinSeconds}s)`);
|
|
@@ -121,11 +91,9 @@ export async function createContract(params, config) {
|
|
|
121
91
|
rate: rateStardust,
|
|
122
92
|
durationMin: BigInt(durationMinSeconds),
|
|
123
93
|
durationMax: BigInt(durationMaxSeconds),
|
|
124
|
-
paymentsFreq: normalizedSchedule,
|
|
125
94
|
ownerKeyIndex: params.ownerKeyIndex ?? 0,
|
|
126
95
|
cancelDelayMin: cancelDelayMinSeconds,
|
|
127
|
-
reservationsDisabled: params.reservationsDisabled ?? true
|
|
128
|
-
automationRequired: params.automationRequired ?? true
|
|
96
|
+
reservationsDisabled: params.reservationsDisabled ?? true
|
|
129
97
|
}, { programAddress });
|
|
130
98
|
return prepareInstructions(kitInstruction, {
|
|
131
99
|
computeUnits: params.computeUnits,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createContract.js","sourceRoot":"","sources":["../../../src/instructions/createContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"createContract.js","sourceRoot":"","sources":["../../../src/instructions/createContract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified createContractThread instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated createContractThread instruction.
|
|
5
|
+
* Creates a per-contract automation thread with fiber-based dispatch.
|
|
6
|
+
*/
|
|
7
|
+
import { address } from '@solana/kit';
|
|
8
|
+
import { getCreateContractThreadInstructionAsync } from '../generated/codama/instructions';
|
|
9
|
+
import { mergeConfig, getAddresses } from '../utils/config';
|
|
10
|
+
import { toTransactionSigner, getSignerAddress } from '../utils/signer';
|
|
11
|
+
import { prepareInstructions } from '../utils/instructions';
|
|
12
|
+
import { fetchConfig } from '../accounts/config';
|
|
13
|
+
import { fetchContract } from '../accounts/contract';
|
|
14
|
+
import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
15
|
+
import { deriveRentalAuthority } from '../pda/srsly';
|
|
16
|
+
import { normalizeSchedule } from '../params/schedule';
|
|
17
|
+
import { convertSol } from '../params/sol';
|
|
18
|
+
/**
|
|
19
|
+
* Create a per-contract automation thread
|
|
20
|
+
*
|
|
21
|
+
* Creates an Antegen thread with controller fiber (fiber 0, inline).
|
|
22
|
+
* Thread starts **paused** by default. Fiber 1 (rental_close) and
|
|
23
|
+
* fiber 2 (rental_activate) are created lazily when needed by
|
|
24
|
+
* rental_accept and rental_reserve respectively.
|
|
25
|
+
*
|
|
26
|
+
* @param params - Thread creation parameters
|
|
27
|
+
* @param config - Optional SDK configuration overrides
|
|
28
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
29
|
+
*/
|
|
30
|
+
export async function createContractThread(params, config) {
|
|
31
|
+
const finalConfig = mergeConfig(config);
|
|
32
|
+
if (!params.owner) {
|
|
33
|
+
throw new Error('owner is required');
|
|
34
|
+
}
|
|
35
|
+
if (!params.contract) {
|
|
36
|
+
throw new Error('contract is required');
|
|
37
|
+
}
|
|
38
|
+
const ownerSigner = toTransactionSigner(params.owner);
|
|
39
|
+
const ownerAddress = getSignerAddress(params.owner);
|
|
40
|
+
// Get atlasMint and sage program from config
|
|
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
|
+
// Fetch contract to get managed_token_account
|
|
46
|
+
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
47
|
+
const contractAddress = address(params.contract);
|
|
48
|
+
// Derive thread and fiber PDAs
|
|
49
|
+
const rentalAuthority = await deriveRentalAuthority();
|
|
50
|
+
const contractThread = await deriveContractThread(contractAddress, rentalAuthority);
|
|
51
|
+
const closeRentalFiber = await deriveFiber(contractThread, 1);
|
|
52
|
+
// Normalize schedule to cron string
|
|
53
|
+
const paymentsFreq = normalizeSchedule(params.paymentsFreq);
|
|
54
|
+
const kitInstruction = await getCreateContractThreadInstructionAsync({
|
|
55
|
+
payer: ownerSigner,
|
|
56
|
+
mint: atlasMint,
|
|
57
|
+
contract: contractAddress,
|
|
58
|
+
contractThread,
|
|
59
|
+
closeRentalFiber,
|
|
60
|
+
owner: ownerAddress,
|
|
61
|
+
contractTokenAccount: contractAccount.data.managedTokenAccount,
|
|
62
|
+
sageProgram: address(addresses.sage),
|
|
63
|
+
lamports: convertSol(params.lamports ?? 0.01),
|
|
64
|
+
paymentsFreq,
|
|
65
|
+
}, { programAddress });
|
|
66
|
+
return prepareInstructions(kitInstruction, {
|
|
67
|
+
computeUnits: params.computeUnits,
|
|
68
|
+
PublicKey: finalConfig.PublicKey
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=createContractThread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createContractThread.js","sourceRoot":"","sources":["../../../src/instructions/createContractThread.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,28 +2,31 @@
|
|
|
2
2
|
* Instruction wrappers for SRSLY
|
|
3
3
|
* @module instructions
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
5
|
+
export * from './createContract';
|
|
6
|
+
export * from './updateContract';
|
|
7
|
+
export * from './closeContract';
|
|
8
|
+
export * from './deleteContract';
|
|
9
|
+
export * from './setDelegate';
|
|
10
|
+
export * from './acceptRental';
|
|
11
|
+
export * from './cancelRental';
|
|
12
|
+
export * from './closeRental';
|
|
13
|
+
export * from './releaseRental';
|
|
14
|
+
export * from './invalidateRental';
|
|
15
|
+
export * from './reserveRental';
|
|
16
|
+
export * from './deleteRental';
|
|
17
|
+
export * from './claimBorrower';
|
|
18
|
+
export * from './createBorrower';
|
|
19
|
+
export * from './updateBorrower';
|
|
20
|
+
export * from './claimContract';
|
|
21
|
+
export * from './activateRental';
|
|
22
|
+
export * from './createContractThread';
|
|
23
|
+
export * from './closeContractThread';
|
|
24
|
+
export * from './updateContractThread';
|
|
25
|
+
export * from './createConfig';
|
|
26
|
+
export * from './updateConfig';
|
|
27
|
+
export * from './deleteConfig';
|
|
28
|
+
export * from './createAffiliate';
|
|
29
|
+
export * from './approveAffiliate';
|
|
30
|
+
export * from './removeAffiliate';
|
|
31
|
+
export * from './updateAffiliate';
|
|
29
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instructions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instructions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -2,50 +2,46 @@
|
|
|
2
2
|
* @purpose Simplified reserveRental instruction wrapper
|
|
3
3
|
*
|
|
4
4
|
* Thin convenience wrapper around Codama-generated reserveRental instruction.
|
|
5
|
-
* Reserves a rental contract using
|
|
5
|
+
* Reserves a rental contract using ATLAS for a GBM-style auction.
|
|
6
6
|
*/
|
|
7
7
|
import { address } from '@solana/kit';
|
|
8
|
-
import { createRpc } from '../utils/rpc';
|
|
9
8
|
import { getReserveRentalInstructionAsync } from '../generated/codama/instructions';
|
|
10
9
|
import { mergeConfig, getAddresses } from '../utils/config';
|
|
11
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
|
+
import { convertAmount } from '../params/amount';
|
|
12
|
+
import { convertDuration } from '../params/duration';
|
|
12
13
|
import { fetchContract } from '../accounts/contract';
|
|
13
14
|
import { fetchConfig } from '../accounts/config';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
15
|
+
import { fetchBorrower } from '../accounts/borrower';
|
|
16
|
+
import { fetchRental } from '../accounts/rental';
|
|
17
|
+
import { RentalStatus } from '../generated/codama/types';
|
|
18
|
+
import { deriveQueuedRental, deriveRentalAuthority } from '../pda/srsly';
|
|
16
19
|
import { deriveAssociatedTokenAccount } from '../pda/token';
|
|
20
|
+
import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
17
21
|
import { prepareInstructions } from '../utils/instructions';
|
|
22
|
+
import { deserializeDiscountAuth } from '../utils/discountAuth';
|
|
18
23
|
/**
|
|
19
24
|
* Reserve a rental contract via GBM-style auction
|
|
20
25
|
*
|
|
21
|
-
* Allows a user to reserve (bid on) a rental contract using
|
|
22
|
-
*
|
|
23
|
-
*
|
|
26
|
+
* Allows a user to reserve (bid on) a rental contract using ATLAS tokens.
|
|
27
|
+
* Winners get an exclusive reservation window to accept the rental once
|
|
28
|
+
* the current rental ends.
|
|
24
29
|
*
|
|
25
|
-
* The reservation
|
|
26
|
-
*
|
|
27
|
-
* - If `useAtlas=true`: Transfers ATLAS from challenger's wallet
|
|
30
|
+
* The reservation uses the queued rental PDA and requires the contract
|
|
31
|
+
* thread and activate_rental fiber for scheduling.
|
|
28
32
|
*
|
|
29
33
|
* @param params - Reservation parameters
|
|
30
34
|
* @param config - Optional SDK configuration overrides
|
|
31
35
|
* @returns Array of instructions (Kit format or web3.js if PublicKey in config)
|
|
32
36
|
*
|
|
33
|
-
* @
|
|
37
|
+
* @example
|
|
34
38
|
* ```typescript
|
|
35
|
-
* // Reserve with 5
|
|
39
|
+
* // Reserve with 5 ATLAS for a 7-day rental
|
|
36
40
|
* const ixs = await reserveRental({
|
|
37
41
|
* challenger: wallet,
|
|
38
42
|
* contract: "CONTRACT_ADDRESS",
|
|
39
|
-
* amount: 5,
|
|
40
|
-
*
|
|
41
|
-
* });
|
|
42
|
-
*
|
|
43
|
-
* // Reserve with 5 point-equivalents in ATLAS
|
|
44
|
-
* const ixs2 = await reserveRental({
|
|
45
|
-
* challenger: wallet,
|
|
46
|
-
* contract: "CONTRACT_ADDRESS",
|
|
47
|
-
* amount: 5, // 5 * atlas_per_point = ATLAS lamports transferred
|
|
48
|
-
* useAtlas: true,
|
|
43
|
+
* amount: 5,
|
|
44
|
+
* duration: { days: 7 },
|
|
49
45
|
* computeUnits: 200_000
|
|
50
46
|
* });
|
|
51
47
|
* ```
|
|
@@ -63,69 +59,75 @@ export async function reserveRental(params, config) {
|
|
|
63
59
|
if (params.amount === undefined || params.amount === null) {
|
|
64
60
|
throw new Error('amount is required');
|
|
65
61
|
}
|
|
62
|
+
if (!params.duration) {
|
|
63
|
+
throw new Error('duration is required');
|
|
64
|
+
}
|
|
66
65
|
// Convert challenger to transaction signer
|
|
67
66
|
const challengerSigner = toTransactionSigner(params.challenger);
|
|
68
67
|
// Get network-specific addresses
|
|
69
68
|
const addresses = getAddresses(config);
|
|
70
69
|
const programAddress = address(addresses.srsly);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
// Fetch contract to get owner for ownerState derivation
|
|
74
|
-
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
75
|
-
// Fetch config for mint and validation
|
|
70
|
+
const sageProgram = address(addresses.sage);
|
|
71
|
+
// Fetch config for mint
|
|
76
72
|
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
77
73
|
const atlasMint = configAccount.data.atlasMint;
|
|
78
|
-
//
|
|
79
|
-
const
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
//
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
74
|
+
// Fetch contract to get contractTokenAccount
|
|
75
|
+
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
76
|
+
// Derive queued rental PDA
|
|
77
|
+
const rentalState = await deriveQueuedRental(params.contract);
|
|
78
|
+
// Derive rental authority
|
|
79
|
+
const rentalAuthority = await deriveRentalAuthority();
|
|
80
|
+
// Derive contract thread and activate_rental fiber (fiber index 2)
|
|
81
|
+
const contractThread = await deriveContractThread(params.contract, rentalAuthority);
|
|
82
|
+
const activateRentalFiber = await deriveFiber(contractThread, 2);
|
|
83
|
+
// Derive contract token account (ATA of contract PDA)
|
|
84
|
+
const contractAddress = address(params.contract);
|
|
85
|
+
const contractTokenAccount = await deriveAssociatedTokenAccount(contractAddress, atlasMint);
|
|
86
|
+
// Derive challenger's token account
|
|
87
|
+
const challengerTokenAccount = await deriveAssociatedTokenAccount(challengerSigner.address, atlasMint);
|
|
88
|
+
// Convert amount to stardust
|
|
89
|
+
const amountValue = convertAmount(params.amount);
|
|
90
|
+
// Convert duration to seconds
|
|
91
|
+
const durationSeconds = convertDuration(params.duration);
|
|
92
|
+
// Deserialize discount auth if provided
|
|
93
|
+
let discountAuth = null;
|
|
94
|
+
if (params.discountAuth) {
|
|
95
|
+
discountAuth = deserializeDiscountAuth(params.discountAuth);
|
|
96
|
+
}
|
|
97
|
+
const referrer = params.referrer ? address(params.referrer) : undefined;
|
|
88
98
|
// Build instruction input
|
|
89
99
|
const instructionInput = {
|
|
90
100
|
challenger: challengerSigner,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
contract: contractAddress,
|
|
102
|
+
contractThread,
|
|
103
|
+
activateRentalFiber,
|
|
104
|
+
contractTokenAccount,
|
|
105
|
+
challengerTokenAccount,
|
|
106
|
+
rentalState,
|
|
107
|
+
referrer,
|
|
108
|
+
sageProgram,
|
|
96
109
|
amount: amountValue,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
defenderState: undefined,
|
|
100
|
-
defenderManagedTokenAccount: undefined,
|
|
110
|
+
duration: BigInt(durationSeconds),
|
|
111
|
+
discountAuth,
|
|
101
112
|
};
|
|
102
|
-
// If
|
|
103
|
-
if
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const defenderState = contractAccount.data.reservationHolder.value;
|
|
113
|
-
instructionInput.defenderState = defenderState;
|
|
114
|
-
// Fetch defender state to get their managed token account
|
|
115
|
-
const rpc = createRpc(finalConfig.rpcUrl || 'https://api.devnet.solana.com');
|
|
116
|
-
try {
|
|
117
|
-
const defenderStateAccount = await fetchBorrowerState(rpc, defenderState);
|
|
118
|
-
if (defenderStateAccount.data.managedTokenAccount) {
|
|
119
|
-
instructionInput.defenderManagedTokenAccount = defenderStateAccount.data.managedTokenAccount;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
// Defender state might not exist or be readable, continue without it
|
|
113
|
+
// If there's a current queued reservation, provide defender accounts
|
|
114
|
+
// Fetch queued rental to check if there's an existing reservation holder
|
|
115
|
+
try {
|
|
116
|
+
const queuedRental = await fetchRental(rentalState, finalConfig.rpcUrl);
|
|
117
|
+
if (queuedRental.data.status === RentalStatus.Queued) {
|
|
118
|
+
const defenderBorrowerState = queuedRental.data.borrowerState;
|
|
119
|
+
instructionInput.defenderState = defenderBorrowerState;
|
|
120
|
+
// Fetch defender's managed token account from their borrower state
|
|
121
|
+
const defenderAccount = await fetchBorrower(defenderBorrowerState, finalConfig.rpcUrl);
|
|
122
|
+
instructionInput.defenderManagedTokenAccount = defenderAccount.data.managedTokenAccount;
|
|
124
123
|
}
|
|
125
124
|
}
|
|
125
|
+
catch {
|
|
126
|
+
// Queued rental doesn't exist or is Available — no defender
|
|
127
|
+
}
|
|
126
128
|
// Call Codama-generated instruction
|
|
127
129
|
const kitInstruction = await getReserveRentalInstructionAsync(instructionInput, { programAddress });
|
|
128
|
-
// Prepare instructions with optional compute budget
|
|
130
|
+
// Prepare instructions with optional compute budget
|
|
129
131
|
return prepareInstructions(kitInstruction, {
|
|
130
132
|
computeUnits: params.computeUnits,
|
|
131
133
|
PublicKey: finalConfig.PublicKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserveRental.js","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reserveRental.js","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,55 +2,42 @@
|
|
|
2
2
|
* @purpose Simplified updateBorrower instruction wrapper
|
|
3
3
|
*
|
|
4
4
|
* Thin convenience wrapper around Codama-generated updateBorrower instruction.
|
|
5
|
-
* Updates the borrower's
|
|
5
|
+
* Updates the borrower's SAGE profile addresses.
|
|
6
6
|
*/
|
|
7
7
|
import { address } from '@solana/kit';
|
|
8
|
-
import {
|
|
8
|
+
import { getUpdateBorrowerInstruction } from '../generated/codama/instructions';
|
|
9
9
|
import { mergeConfig, getAddresses } from '../utils/config';
|
|
10
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
11
|
import { prepareInstructions } from '../utils/instructions';
|
|
12
|
-
import {
|
|
12
|
+
import { deriveBorrowerState } from '../pda/srsly';
|
|
13
13
|
/**
|
|
14
14
|
* Update borrower account
|
|
15
15
|
*
|
|
16
|
-
* Updates the borrower's SAGE
|
|
17
|
-
*
|
|
18
|
-
* will be used for refunds and payment claims if initialized.
|
|
16
|
+
* Updates the borrower's SAGE-related addresses. These addresses are stored
|
|
17
|
+
* on-chain in the BorrowerState and used during rental operations.
|
|
19
18
|
*
|
|
20
|
-
* This
|
|
19
|
+
* This is a synchronous instruction (no async account resolution needed).
|
|
20
|
+
* The borrower state PDA is derived from the borrower's address.
|
|
21
21
|
*
|
|
22
22
|
* @param params - Update borrower parameters
|
|
23
23
|
* @param config - Optional SDK configuration overrides
|
|
24
24
|
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
25
25
|
*
|
|
26
|
-
* @
|
|
26
|
+
* @example
|
|
27
27
|
* ```typescript
|
|
28
28
|
* // Update borrower's SAGE profile
|
|
29
29
|
* const ix = await updateBorrower({
|
|
30
30
|
* borrower: wallet,
|
|
31
31
|
* borrowerProfile: "NEW_BORROWER_PROFILE_ADDRESS"
|
|
32
32
|
* });
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ```typescript
|
|
37
|
-
* // Set SAGE profile
|
|
38
|
-
* const ix = await updateBorrower({
|
|
39
|
-
* borrower: borrowerWallet,
|
|
40
|
-
* borrowerProfile: borrowerProfileAddress
|
|
41
|
-
* });
|
|
42
33
|
*
|
|
43
|
-
* //
|
|
34
|
+
* // Update all SAGE addresses at once
|
|
44
35
|
* const ix2 = await updateBorrower({
|
|
45
|
-
* borrower:
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* const ix3 = await updateBorrower({
|
|
51
|
-
* borrower: borrowerWallet,
|
|
52
|
-
* borrowerProfile: borrowerProfileAddress,
|
|
53
|
-
* refundDestination: newTokenAccount
|
|
36
|
+
* borrower: wallet,
|
|
37
|
+
* borrowerProfile: profileAddr,
|
|
38
|
+
* borrowerProfileFaction: factionAddr,
|
|
39
|
+
* starbase: starbaseAddr,
|
|
40
|
+
* starbasePlayer: starbasePlayerAddr
|
|
54
41
|
* });
|
|
55
42
|
* ```
|
|
56
43
|
*/
|
|
@@ -61,25 +48,42 @@ export async function updateBorrower(params, config) {
|
|
|
61
48
|
if (!params.borrower) {
|
|
62
49
|
throw new Error('borrower is required');
|
|
63
50
|
}
|
|
51
|
+
// At least one field must be updated
|
|
52
|
+
if (params.borrowerProfile === undefined &&
|
|
53
|
+
params.borrowerProfileFaction === undefined &&
|
|
54
|
+
params.starbase === undefined &&
|
|
55
|
+
params.starbasePlayer === undefined) {
|
|
56
|
+
throw new Error('At least one SAGE address field must be provided to update');
|
|
57
|
+
}
|
|
64
58
|
// Convert borrower to transaction signer
|
|
65
59
|
const borrowerSigner = toTransactionSigner(params.borrower);
|
|
66
|
-
// Get
|
|
67
|
-
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
68
|
-
const atlasMint = configAccount.data.atlasMint;
|
|
60
|
+
// Get program address
|
|
69
61
|
const addresses = getAddresses(config);
|
|
70
62
|
const programAddress = address(addresses.srsly);
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
//
|
|
74
|
-
const
|
|
63
|
+
// Derive borrower state PDA
|
|
64
|
+
const borrowerState = await deriveBorrowerState(borrowerSigner.address);
|
|
65
|
+
// Build data args: null means "don't update" (Option::None)
|
|
66
|
+
const borrowerProfile = params.borrowerProfile
|
|
67
|
+
? address(params.borrowerProfile)
|
|
68
|
+
: null;
|
|
69
|
+
const borrowerProfileFaction = params.borrowerProfileFaction
|
|
70
|
+
? address(params.borrowerProfileFaction)
|
|
71
|
+
: null;
|
|
72
|
+
const starbase = params.starbase
|
|
73
|
+
? address(params.starbase)
|
|
74
|
+
: null;
|
|
75
|
+
const starbasePlayer = params.starbasePlayer
|
|
76
|
+
? address(params.starbasePlayer)
|
|
77
|
+
: null;
|
|
78
|
+
// Call Codama-generated instruction (sync - not async)
|
|
79
|
+
const kitInstruction = getUpdateBorrowerInstruction({
|
|
75
80
|
borrower: borrowerSigner,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
const kitInstruction = await getUpdateBorrowerInstructionAsync(instructionAccounts, { programAddress });
|
|
81
|
+
borrowerState,
|
|
82
|
+
borrowerProfile,
|
|
83
|
+
borrowerProfileFaction,
|
|
84
|
+
starbase,
|
|
85
|
+
starbasePlayer,
|
|
86
|
+
}, { programAddress });
|
|
83
87
|
return prepareInstructions(kitInstruction, {
|
|
84
88
|
computeUnits: params.computeUnits,
|
|
85
89
|
PublicKey: finalConfig.PublicKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateBorrower.js","sourceRoot":"","sources":["../../../src/instructions/updateBorrower.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"updateBorrower.js","sourceRoot":"","sources":["../../../src/instructions/updateBorrower.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAwCnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,qCAAqC;IACrC,IACE,MAAM,CAAC,eAAe,KAAK,SAAS;QACpC,MAAM,CAAC,sBAAsB,KAAK,SAAS;QAC3C,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC7B,MAAM,CAAC,cAAc,KAAK,SAAS,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,yCAAyC;IACzC,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5D,sBAAsB;IACtB,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAExE,4DAA4D;IAC5D,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe;QAC5C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAA0B,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,sBAAsB,GAAG,MAAM,CAAC,sBAAsB;QAC1D,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAiC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;QAC9B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc;QAC1C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,cAAyB,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC;IAET,uDAAuD;IACvD,MAAM,cAAc,GAAG,4BAA4B,CACjD;QACE,QAAQ,EAAE,cAAc;QACxB,aAAa;QACb,eAAe;QACf,sBAAsB;QACtB,QAAQ;QACR,cAAc;KACf,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -83,7 +83,6 @@ export async function updateConfig(params, config) {
|
|
|
83
83
|
reservationsEnabled: toOption(params.reservationsEnabled),
|
|
84
84
|
pointsPerDay: toOption(params.pointsPerDay),
|
|
85
85
|
cancellationPenalty: toOption(params.cancellationPenalty),
|
|
86
|
-
reservationWindowHours: toOption(params.reservationWindowHours),
|
|
87
86
|
minCaptureThreshold: toOption(params.minCaptureThreshold),
|
|
88
87
|
weightBase: toOption(params.weightBase),
|
|
89
88
|
weightMultiplier: toOption(params.weightMultiplier),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateConfig.js","sourceRoot":"","sources":["../../../src/instructions/updateConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,IAAI,EACJ,IAAI,GAGL,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAG5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"updateConfig.js","sourceRoot":"","sources":["../../../src/instructions/updateConfig.ts"],"names":[],"mappings":"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"}
|