@wuwei-labs/srsly 3.0.0-beta.21 → 3.0.0-beta.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/accounts/borrower.js +12 -5
- package/dist/cjs/accounts/borrower.js.map +1 -1
- package/dist/cjs/accounts/contract.js +12 -5
- package/dist/cjs/accounts/contract.js.map +1 -1
- package/dist/cjs/accounts/index.js +23 -0
- package/dist/cjs/accounts/index.js.map +1 -0
- package/dist/cjs/accounts/rental.js +12 -5
- package/dist/cjs/accounts/rental.js.map +1 -1
- package/dist/cjs/demos.js +190 -62
- package/dist/cjs/demos.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/borrowerState.js +8 -2
- package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/configState.js +4 -6
- package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/contractState.js +27 -34
- package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/index.js +0 -1
- package/dist/cjs/generated/codama/accounts/index.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/rentalState.js +20 -14
- package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/thread.js +0 -10
- package/dist/cjs/generated/codama/accounts/thread.js.map +1 -1
- package/dist/cjs/generated/codama/errors/srsly.js +39 -30
- package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/acceptRental.js +69 -118
- package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/activateRental.js +159 -24
- package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/cancelRental.js +28 -33
- package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/claimBorrower.js +3 -11
- package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/claimContract.js +202 -0
- package/dist/cjs/generated/codama/instructions/claimContract.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeBorrower.js +183 -0
- package/dist/cjs/generated/codama/instructions/closeBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeContract.js +130 -14
- package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/closeContractThread.js +167 -0
- package/dist/cjs/generated/codama/instructions/closeContractThread.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/closeRental.js +10 -121
- package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createBorrower.js +211 -0
- package/dist/cjs/generated/codama/instructions/createBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/createContract.js +46 -30
- package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createContractThread.js +317 -0
- package/dist/cjs/generated/codama/instructions/createContractThread.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js +115 -0
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/deleteRental.js +2 -2
- package/dist/cjs/generated/codama/instructions/deleteRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/index.js +8 -5
- package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/payContract.js +224 -0
- package/dist/cjs/generated/codama/instructions/payContract.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/processContract.js +224 -0
- package/dist/cjs/generated/codama/instructions/processContract.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/reserveRental.js +94 -60
- package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateBorrower.js +7 -43
- package/dist/cjs/generated/codama/instructions/updateBorrower.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateConfig.js +4 -6
- package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateContract.js +6 -16
- package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateContractThread.js +177 -0
- package/dist/cjs/generated/codama/instructions/updateContractThread.js.map +1 -0
- package/dist/cjs/generated/codama/programs/srsly.js +43 -35
- package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/types/bidType.js +30 -0
- package/dist/cjs/generated/codama/types/bidType.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractThreadClosed.js +29 -0
- package/dist/cjs/generated/codama/types/contractThreadClosed.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractThreadCreated.js +29 -0
- package/dist/cjs/generated/codama/types/contractThreadCreated.js.map +1 -0
- package/dist/cjs/generated/codama/types/contractThreadUpdated.js +39 -0
- package/dist/cjs/generated/codama/types/contractThreadUpdated.js.map +1 -0
- package/dist/cjs/generated/codama/types/discountAuthorization.js +2 -0
- package/dist/cjs/generated/codama/types/discountAuthorization.js.map +1 -1
- package/dist/cjs/generated/codama/types/index.js +6 -2
- package/dist/cjs/generated/codama/types/index.js.map +1 -1
- package/dist/cjs/generated/codama/types/queuedRentalRefunded.js +33 -0
- package/dist/cjs/generated/codama/types/queuedRentalRefunded.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalAccepted.js +2 -10
- package/dist/cjs/generated/codama/types/rentalAccepted.js.map +1 -1
- package/dist/cjs/generated/codama/types/rentalActivated.js +2 -0
- package/dist/cjs/generated/codama/types/rentalActivated.js.map +1 -1
- package/dist/cjs/generated/codama/types/rentalExpiredInline.js +31 -0
- package/dist/cjs/generated/codama/types/rentalExpiredInline.js.map +1 -0
- package/dist/cjs/generated/codama/types/rentalStatus.js +4 -3
- package/dist/cjs/generated/codama/types/rentalStatus.js.map +1 -1
- package/dist/cjs/generated/codama/types/reservationCreated.js +9 -4
- package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -1
- package/dist/cjs/generated/codama/types/signal.js +14 -2
- package/dist/cjs/generated/codama/types/signal.js.map +1 -1
- package/dist/cjs/index.js +4 -221
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instructions/acceptRental.js +37 -85
- package/dist/cjs/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/instructions/activateRental.js +85 -0
- package/dist/cjs/instructions/activateRental.js.map +1 -0
- package/dist/cjs/instructions/cancelRental.js +25 -23
- package/dist/cjs/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/instructions/claimBorrower.js +44 -22
- package/dist/cjs/instructions/claimBorrower.js.map +1 -1
- package/dist/cjs/instructions/claimContract.js +56 -0
- package/dist/cjs/instructions/claimContract.js.map +1 -0
- package/dist/cjs/instructions/closeBorrower.js +58 -0
- package/dist/cjs/instructions/closeBorrower.js.map +1 -0
- package/dist/cjs/instructions/closeContract.js +13 -12
- package/dist/cjs/instructions/closeContract.js.map +1 -1
- package/dist/cjs/instructions/closeContractThread.js +66 -0
- package/dist/cjs/instructions/closeContractThread.js.map +1 -0
- package/dist/cjs/instructions/closeRental.js +34 -45
- package/dist/cjs/instructions/closeRental.js.map +1 -1
- package/dist/cjs/instructions/createBorrower.js +64 -0
- package/dist/cjs/instructions/createBorrower.js.map +1 -0
- package/dist/cjs/instructions/createContract.js +2 -34
- package/dist/cjs/instructions/createContract.js.map +1 -1
- package/dist/cjs/instructions/createContractThread.js +78 -0
- package/dist/cjs/instructions/createContractThread.js.map +1 -0
- package/dist/cjs/instructions/deleteBorrower.js +60 -0
- package/dist/cjs/instructions/deleteBorrower.js.map +1 -0
- package/dist/cjs/instructions/deleteRental.js +1 -4
- package/dist/cjs/instructions/deleteRental.js.map +1 -1
- package/dist/cjs/instructions/index.js +43 -49
- package/dist/cjs/instructions/index.js.map +1 -1
- package/dist/cjs/instructions/reserveRental.js +70 -68
- package/dist/cjs/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/instructions/updateBorrower.js +44 -40
- package/dist/cjs/instructions/updateBorrower.js.map +1 -1
- package/dist/cjs/instructions/updateConfig.js +0 -1
- package/dist/cjs/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/instructions/updateContract.js +14 -30
- package/dist/cjs/instructions/updateContract.js.map +1 -1
- package/dist/cjs/instructions/updateContractThread.js +60 -0
- package/dist/cjs/instructions/updateContractThread.js.map +1 -0
- package/dist/cjs/kit/index.js +37 -3
- package/dist/cjs/kit/index.js.map +1 -1
- package/dist/cjs/legacy/index.js +15 -16
- package/dist/cjs/legacy/index.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/params/index.js +21 -0
- package/dist/cjs/params/index.js.map +1 -0
- package/dist/cjs/params/sol.js +71 -0
- package/dist/cjs/params/sol.js.map +1 -0
- package/dist/cjs/pda/constants.js +7 -3
- package/dist/cjs/pda/constants.js.map +1 -1
- package/dist/cjs/pda/index.js +9 -23
- package/dist/cjs/pda/index.js.map +1 -1
- package/dist/cjs/pda/srsly.js +30 -37
- package/dist/cjs/pda/srsly.js.map +1 -1
- package/dist/cjs/pda/thread.js +38 -29
- package/dist/cjs/pda/thread.js.map +1 -1
- package/dist/cjs/utils/addresses.js +2 -1
- package/dist/cjs/utils/addresses.js.map +1 -1
- package/dist/cjs/utils/discountAuth.js +5 -1
- package/dist/cjs/utils/discountAuth.js.map +1 -1
- package/dist/cjs/utils/index.js +3 -5
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/rental.js +23 -109
- package/dist/cjs/utils/rental.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/accounts/borrower.js +12 -5
- package/dist/esm/accounts/borrower.js.map +1 -1
- package/dist/esm/accounts/contract.js +12 -5
- package/dist/esm/accounts/contract.js.map +1 -1
- package/dist/esm/accounts/index.js +7 -0
- package/dist/esm/accounts/index.js.map +1 -0
- package/dist/esm/accounts/rental.js +12 -5
- package/dist/esm/accounts/rental.js.map +1 -1
- package/dist/esm/demos.js +189 -61
- package/dist/esm/demos.js.map +1 -1
- package/dist/esm/generated/codama/accounts/borrowerState.js +9 -3
- package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/configState.js +4 -6
- package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/contractState.js +28 -35
- package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/index.js +0 -1
- package/dist/esm/generated/codama/accounts/index.js.map +1 -1
- package/dist/esm/generated/codama/accounts/rentalState.js +22 -16
- package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/thread.js +0 -10
- package/dist/esm/generated/codama/accounts/thread.js.map +1 -1
- package/dist/esm/generated/codama/errors/srsly.js +37 -28
- package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
- package/dist/esm/generated/codama/instructions/acceptRental.js +70 -119
- package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/activateRental.js +161 -26
- package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/cancelRental.js +29 -34
- package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/claimBorrower.js +4 -12
- package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
- package/dist/esm/generated/codama/instructions/claimContract.js +192 -0
- package/dist/esm/generated/codama/instructions/claimContract.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeBorrower.js +173 -0
- package/dist/esm/generated/codama/instructions/closeBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeContract.js +130 -14
- package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/closeContractThread.js +157 -0
- package/dist/esm/generated/codama/instructions/closeContractThread.js.map +1 -0
- package/dist/esm/generated/codama/instructions/closeRental.js +11 -122
- package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createBorrower.js +201 -0
- package/dist/esm/generated/codama/instructions/createBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/createContract.js +47 -31
- package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createContractThread.js +307 -0
- package/dist/esm/generated/codama/instructions/createContractThread.js.map +1 -0
- package/dist/esm/generated/codama/instructions/deleteBorrower.js +105 -0
- package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +1 -0
- package/dist/esm/generated/codama/instructions/deleteRental.js +2 -2
- package/dist/esm/generated/codama/instructions/deleteRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/index.js +8 -5
- package/dist/esm/generated/codama/instructions/index.js.map +1 -1
- package/dist/esm/generated/codama/instructions/payContract.js +214 -0
- package/dist/esm/generated/codama/instructions/payContract.js.map +1 -0
- package/dist/esm/generated/codama/instructions/processContract.js +214 -0
- package/dist/esm/generated/codama/instructions/processContract.js.map +1 -0
- package/dist/esm/generated/codama/instructions/reserveRental.js +95 -61
- package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateBorrower.js +8 -43
- package/dist/esm/generated/codama/instructions/updateBorrower.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateConfig.js +5 -7
- package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateContract.js +7 -17
- package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateContractThread.js +167 -0
- package/dist/esm/generated/codama/instructions/updateContractThread.js.map +1 -0
- package/dist/esm/generated/codama/programs/srsly.js +43 -35
- package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
- package/dist/esm/generated/codama/types/bidType.js +24 -0
- package/dist/esm/generated/codama/types/bidType.js.map +1 -0
- package/dist/esm/generated/codama/types/contractThreadClosed.js +24 -0
- package/dist/esm/generated/codama/types/contractThreadClosed.js.map +1 -0
- package/dist/esm/generated/codama/types/contractThreadCreated.js +24 -0
- package/dist/esm/generated/codama/types/contractThreadCreated.js.map +1 -0
- package/dist/esm/generated/codama/types/contractThreadUpdated.js +34 -0
- package/dist/esm/generated/codama/types/contractThreadUpdated.js.map +1 -0
- package/dist/esm/generated/codama/types/discountAuthorization.js +3 -1
- package/dist/esm/generated/codama/types/discountAuthorization.js.map +1 -1
- package/dist/esm/generated/codama/types/index.js +6 -2
- package/dist/esm/generated/codama/types/index.js.map +1 -1
- package/dist/esm/generated/codama/types/queuedRentalRefunded.js +28 -0
- package/dist/esm/generated/codama/types/queuedRentalRefunded.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalAccepted.js +2 -10
- package/dist/esm/generated/codama/types/rentalAccepted.js.map +1 -1
- package/dist/esm/generated/codama/types/rentalActivated.js +3 -1
- package/dist/esm/generated/codama/types/rentalActivated.js.map +1 -1
- package/dist/esm/generated/codama/types/rentalExpiredInline.js +26 -0
- package/dist/esm/generated/codama/types/rentalExpiredInline.js.map +1 -0
- package/dist/esm/generated/codama/types/rentalStatus.js +4 -3
- package/dist/esm/generated/codama/types/rentalStatus.js.map +1 -1
- package/dist/esm/generated/codama/types/reservationCreated.js +10 -5
- package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -1
- package/dist/esm/generated/codama/types/signal.js +15 -3
- package/dist/esm/generated/codama/types/signal.js.map +1 -1
- package/dist/esm/index.js +1 -99
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instructions/acceptRental.js +41 -89
- package/dist/esm/instructions/acceptRental.js.map +1 -1
- package/dist/esm/instructions/activateRental.js +82 -0
- package/dist/esm/instructions/activateRental.js.map +1 -0
- package/dist/esm/instructions/cancelRental.js +26 -24
- package/dist/esm/instructions/cancelRental.js.map +1 -1
- package/dist/esm/instructions/claimBorrower.js +45 -23
- package/dist/esm/instructions/claimBorrower.js.map +1 -1
- package/dist/esm/instructions/claimContract.js +53 -0
- package/dist/esm/instructions/claimContract.js.map +1 -0
- package/dist/esm/instructions/closeBorrower.js +55 -0
- package/dist/esm/instructions/closeBorrower.js.map +1 -0
- package/dist/esm/instructions/closeContract.js +13 -12
- package/dist/esm/instructions/closeContract.js.map +1 -1
- package/dist/esm/instructions/closeContractThread.js +63 -0
- package/dist/esm/instructions/closeContractThread.js.map +1 -0
- package/dist/esm/instructions/closeRental.js +35 -46
- package/dist/esm/instructions/closeRental.js.map +1 -1
- package/dist/esm/instructions/createBorrower.js +61 -0
- package/dist/esm/instructions/createBorrower.js.map +1 -0
- package/dist/esm/instructions/createContract.js +2 -34
- package/dist/esm/instructions/createContract.js.map +1 -1
- package/dist/esm/instructions/createContractThread.js +75 -0
- package/dist/esm/instructions/createContractThread.js.map +1 -0
- package/dist/esm/instructions/deleteBorrower.js +57 -0
- package/dist/esm/instructions/deleteBorrower.js.map +1 -0
- package/dist/esm/instructions/deleteRental.js +1 -4
- package/dist/esm/instructions/deleteRental.js.map +1 -1
- package/dist/esm/instructions/index.js +29 -24
- package/dist/esm/instructions/index.js.map +1 -1
- package/dist/esm/instructions/reserveRental.js +71 -69
- package/dist/esm/instructions/reserveRental.js.map +1 -1
- package/dist/esm/instructions/updateBorrower.js +45 -41
- package/dist/esm/instructions/updateBorrower.js.map +1 -1
- package/dist/esm/instructions/updateConfig.js +0 -1
- package/dist/esm/instructions/updateConfig.js.map +1 -1
- package/dist/esm/instructions/updateContract.js +14 -30
- package/dist/esm/instructions/updateContract.js.map +1 -1
- package/dist/esm/instructions/updateContractThread.js +57 -0
- package/dist/esm/instructions/updateContractThread.js.map +1 -0
- package/dist/esm/kit/index.js +11 -3
- package/dist/esm/kit/index.js.map +1 -1
- package/dist/esm/legacy/index.js +13 -14
- package/dist/esm/legacy/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/params/index.js +5 -0
- package/dist/esm/params/index.js.map +1 -0
- package/dist/esm/params/sol.js +68 -0
- package/dist/esm/params/sol.js.map +1 -0
- package/dist/esm/pda/constants.js +6 -2
- package/dist/esm/pda/constants.js.map +1 -1
- package/dist/esm/pda/index.js +3 -21
- package/dist/esm/pda/index.js.map +1 -1
- package/dist/esm/pda/srsly.js +29 -36
- package/dist/esm/pda/srsly.js.map +1 -1
- package/dist/esm/pda/thread.js +37 -29
- package/dist/esm/pda/thread.js.map +1 -1
- package/dist/esm/utils/addresses.js +2 -1
- package/dist/esm/utils/addresses.js.map +1 -1
- package/dist/esm/utils/discountAuth.js +5 -1
- package/dist/esm/utils/discountAuth.js.map +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/rental.js +22 -106
- package/dist/esm/utils/rental.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/idl/srsly.json +1904 -1945
- package/dist/types/accounts/borrower.d.ts.map +1 -1
- package/dist/types/accounts/contract.d.ts.map +1 -1
- package/dist/types/accounts/index.d.ts +7 -0
- package/dist/types/accounts/index.d.ts.map +1 -0
- package/dist/types/accounts/rental.d.ts.map +1 -1
- package/dist/types/demos.d.ts +28 -10
- package/dist/types/demos.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/borrowerState.d.ts +15 -3
- package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/configState.d.ts +0 -4
- package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/contractState.d.ts +51 -74
- package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/index.d.ts +0 -1
- package/dist/types/generated/codama/accounts/index.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/rentalState.d.ts +46 -34
- package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/thread.d.ts +0 -4
- package/dist/types/generated/codama/accounts/thread.d.ts.map +1 -1
- package/dist/types/generated/codama/errors/srsly.d.ts +32 -26
- package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/acceptRental.d.ts +53 -62
- package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/activateRental.d.ts +76 -32
- package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/cancelRental.d.ts +28 -25
- package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts +4 -24
- package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/claimContract.d.ts +79 -0
- package/dist/types/generated/codama/instructions/claimContract.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeBorrower.d.ts +83 -0
- package/dist/types/generated/codama/instructions/closeBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeContract.d.ts +70 -18
- package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/closeContractThread.d.ts +67 -0
- package/dist/types/generated/codama/instructions/closeContractThread.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/closeRental.d.ts +20 -70
- package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/createBorrower.d.ts +88 -0
- package/dist/types/generated/codama/instructions/createBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/createContract.d.ts +28 -32
- package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/createContractThread.d.ts +133 -0
- package/dist/types/generated/codama/instructions/createContractThread.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +55 -0
- package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/deleteRental.d.ts +4 -1
- package/dist/types/generated/codama/instructions/deleteRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/index.d.ts +8 -5
- package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/payContract.d.ts +100 -0
- package/dist/types/generated/codama/instructions/payContract.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/processContract.d.ts +100 -0
- package/dist/types/generated/codama/instructions/processContract.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/reserveRental.d.ts +88 -68
- package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateBorrower.d.ts +21 -19
- package/dist/types/generated/codama/instructions/updateBorrower.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateConfig.d.ts +0 -6
- package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateContract.d.ts +2 -14
- package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateContractThread.d.ts +76 -0
- package/dist/types/generated/codama/instructions/updateContractThread.d.ts.map +1 -0
- package/dist/types/generated/codama/programs/srsly.d.ts +40 -32
- package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/types/bidType.d.ts +18 -0
- package/dist/types/generated/codama/types/bidType.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractThreadClosed.d.ts +17 -0
- package/dist/types/generated/codama/types/contractThreadClosed.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractThreadCreated.d.ts +17 -0
- package/dist/types/generated/codama/types/contractThreadCreated.d.ts.map +1 -0
- package/dist/types/generated/codama/types/contractThreadUpdated.d.ts +24 -0
- package/dist/types/generated/codama/types/contractThreadUpdated.d.ts.map +1 -0
- package/dist/types/generated/codama/types/discountAuthorization.d.ts +5 -1
- package/dist/types/generated/codama/types/discountAuthorization.d.ts.map +1 -1
- package/dist/types/generated/codama/types/index.d.ts +6 -2
- package/dist/types/generated/codama/types/index.d.ts.map +1 -1
- package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts +24 -0
- package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalAccepted.d.ts +2 -10
- package/dist/types/generated/codama/types/rentalAccepted.d.ts.map +1 -1
- package/dist/types/generated/codama/types/rentalActivated.d.ts +7 -1
- package/dist/types/generated/codama/types/rentalActivated.d.ts.map +1 -1
- package/dist/types/generated/codama/types/rentalExpiredInline.d.ts +18 -0
- package/dist/types/generated/codama/types/rentalExpiredInline.d.ts.map +1 -0
- package/dist/types/generated/codama/types/rentalStatus.d.ts +4 -3
- package/dist/types/generated/codama/types/rentalStatus.d.ts.map +1 -1
- package/dist/types/generated/codama/types/reservationCreated.d.ts +9 -4
- package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -1
- package/dist/types/generated/codama/types/signal.d.ts +8 -6
- package/dist/types/generated/codama/types/signal.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -42
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/instructions/acceptRental.d.ts +2 -31
- package/dist/types/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/instructions/activateRental.d.ts +41 -0
- package/dist/types/instructions/activateRental.d.ts.map +1 -0
- package/dist/types/instructions/cancelRental.d.ts +8 -18
- package/dist/types/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/instructions/claimBorrower.d.ts +33 -11
- package/dist/types/instructions/claimBorrower.d.ts.map +1 -1
- package/dist/types/instructions/claimContract.d.ts +40 -0
- package/dist/types/instructions/claimContract.d.ts.map +1 -0
- package/dist/types/instructions/closeBorrower.d.ts +51 -0
- package/dist/types/instructions/closeBorrower.d.ts.map +1 -0
- package/dist/types/instructions/closeContract.d.ts +1 -12
- package/dist/types/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/instructions/closeContractThread.d.ts +40 -0
- package/dist/types/instructions/closeContractThread.d.ts.map +1 -0
- package/dist/types/instructions/closeRental.d.ts +6 -14
- package/dist/types/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/instructions/createBorrower.d.ts +49 -0
- package/dist/types/instructions/createBorrower.d.ts.map +1 -0
- package/dist/types/instructions/createContract.d.ts +1 -41
- package/dist/types/instructions/createContract.d.ts.map +1 -1
- package/dist/types/instructions/createContractThread.d.ts +51 -0
- package/dist/types/instructions/createContractThread.d.ts.map +1 -0
- package/dist/types/instructions/deleteBorrower.d.ts +56 -0
- package/dist/types/instructions/deleteBorrower.d.ts.map +1 -0
- package/dist/types/instructions/deleteRental.d.ts +3 -2
- package/dist/types/instructions/deleteRental.d.ts.map +1 -1
- package/dist/types/instructions/index.d.ts +29 -24
- package/dist/types/instructions/index.d.ts.map +1 -1
- package/dist/types/instructions/reserveRental.d.ts +33 -29
- package/dist/types/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/instructions/updateBorrower.d.ts +23 -29
- package/dist/types/instructions/updateBorrower.d.ts.map +1 -1
- package/dist/types/instructions/updateConfig.d.ts +0 -4
- package/dist/types/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/instructions/updateContract.d.ts +11 -33
- package/dist/types/instructions/updateContract.d.ts.map +1 -1
- package/dist/types/instructions/updateContractThread.d.ts +48 -0
- package/dist/types/instructions/updateContractThread.d.ts.map +1 -0
- package/dist/types/kit/index.d.ts +10 -3
- package/dist/types/kit/index.d.ts.map +1 -1
- package/dist/types/legacy/index.d.ts +13 -39
- package/dist/types/legacy/index.d.ts.map +1 -1
- package/dist/types/params/index.d.ts +5 -0
- package/dist/types/params/index.d.ts.map +1 -0
- package/dist/types/params/sol.d.ts +34 -0
- package/dist/types/params/sol.d.ts.map +1 -0
- package/dist/types/pda/constants.d.ts +6 -2
- package/dist/types/pda/constants.d.ts.map +1 -1
- package/dist/types/pda/index.d.ts +3 -21
- package/dist/types/pda/index.d.ts.map +1 -1
- package/dist/types/pda/srsly.d.ts +13 -15
- package/dist/types/pda/srsly.d.ts.map +1 -1
- package/dist/types/pda/thread.d.ts +17 -18
- package/dist/types/pda/thread.d.ts.map +1 -1
- package/dist/types/utils/addresses.d.ts.map +1 -1
- package/dist/types/utils/discountAuth.d.ts +4 -0
- package/dist/types/utils/discountAuth.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/rental.d.ts +8 -66
- package/dist/types/utils/rental.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -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"}
|
|
@@ -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,75 @@
|
|
|
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
|
+
// Minimum: 3 fiber rents (~0.01 each) + thread rent (~0.01) = 0.04 SOL
|
|
19
|
+
const MINIMUM_THREAD_FUNDING = 40000000n;
|
|
20
|
+
/**
|
|
21
|
+
* Create a per-contract automation thread
|
|
22
|
+
*
|
|
23
|
+
* Creates an Antegen thread with controller fiber (fiber 0, inline).
|
|
24
|
+
* Thread starts **paused** by default. Fiber 1 (rental_close) and
|
|
25
|
+
* fiber 2 (rental_activate) are created lazily when needed by
|
|
26
|
+
* rental_accept and rental_reserve respectively.
|
|
27
|
+
*
|
|
28
|
+
* @param params - Thread creation parameters
|
|
29
|
+
* @param config - Optional SDK configuration overrides
|
|
30
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
31
|
+
*/
|
|
32
|
+
export async function createContractThread(params, config) {
|
|
33
|
+
const finalConfig = mergeConfig(config);
|
|
34
|
+
if (!params.owner) {
|
|
35
|
+
throw new Error('owner is required');
|
|
36
|
+
}
|
|
37
|
+
if (!params.contract) {
|
|
38
|
+
throw new Error('contract is required');
|
|
39
|
+
}
|
|
40
|
+
const ownerSigner = toTransactionSigner(params.owner);
|
|
41
|
+
const ownerAddress = getSignerAddress(params.owner);
|
|
42
|
+
// Get atlasMint and sage program from config
|
|
43
|
+
const configAccount = await fetchConfig(finalConfig.rpcUrl);
|
|
44
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
45
|
+
const addresses = getAddresses(config);
|
|
46
|
+
const programAddress = address(addresses.srsly);
|
|
47
|
+
// Fetch contract to get managed_token_account
|
|
48
|
+
const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
|
|
49
|
+
const contractAddress = address(params.contract);
|
|
50
|
+
// Derive thread and fiber PDAs
|
|
51
|
+
const rentalAuthority = await deriveRentalAuthority();
|
|
52
|
+
const contractThread = await deriveContractThread(contractAddress, rentalAuthority);
|
|
53
|
+
const fiber0 = await deriveFiber(contractThread, 0);
|
|
54
|
+
const closeRentalFiber = await deriveFiber(contractThread, 1);
|
|
55
|
+
// Normalize schedule to cron string
|
|
56
|
+
const paymentsFreq = normalizeSchedule(params.paymentsFreq);
|
|
57
|
+
const kitInstruction = await getCreateContractThreadInstructionAsync({
|
|
58
|
+
payer: ownerSigner,
|
|
59
|
+
mint: atlasMint,
|
|
60
|
+
contract: contractAddress,
|
|
61
|
+
contractThread,
|
|
62
|
+
fiber0,
|
|
63
|
+
closeRentalFiber,
|
|
64
|
+
owner: ownerAddress,
|
|
65
|
+
contractTokenAccount: contractAccount.data.managedTokenAccount,
|
|
66
|
+
sageProgram: address(addresses.sage),
|
|
67
|
+
lamports: MINIMUM_THREAD_FUNDING + convertSol(params.lamports ?? 0),
|
|
68
|
+
paymentsFreq,
|
|
69
|
+
}, { programAddress });
|
|
70
|
+
return prepareInstructions(kitInstruction, {
|
|
71
|
+
computeUnits: params.computeUnits,
|
|
72
|
+
PublicKey: finalConfig.PublicKey
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# 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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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Simplified deleteBorrower instruction wrapper
|
|
3
|
+
*
|
|
4
|
+
* Thin convenience wrapper around Codama-generated deleteBorrower instruction.
|
|
5
|
+
* Admin-only instruction to delete borrower state for schema migrations.
|
|
6
|
+
* Uses UncheckedAccount to bypass deserialization for old-format accounts.
|
|
7
|
+
*/
|
|
8
|
+
import { address } from '@solana/kit';
|
|
9
|
+
import { getDeleteBorrowerInstructionAsync } from '../generated/codama/instructions';
|
|
10
|
+
import { mergeConfig, getAddresses } from '../utils/config';
|
|
11
|
+
import { toTransactionSigner } from '../utils/signer';
|
|
12
|
+
import { prepareInstructions } from '../utils/instructions';
|
|
13
|
+
/**
|
|
14
|
+
* Delete borrower state (admin-only for schema migrations)
|
|
15
|
+
*
|
|
16
|
+
* Used to delete old-format BorrowerState accounts that can't be deserialized
|
|
17
|
+
* with the current struct layout. Returns lamports to the borrower wallet.
|
|
18
|
+
* Uses UncheckedAccount to bypass deserialization.
|
|
19
|
+
*
|
|
20
|
+
* @param params - Delete borrower parameters
|
|
21
|
+
* @param config - Optional SDK configuration overrides
|
|
22
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const ix = await deleteBorrower({
|
|
27
|
+
* admin: adminWallet,
|
|
28
|
+
* borrower: "BORROWER_WALLET_ADDRESS",
|
|
29
|
+
* borrowerState: "BORROWER_STATE_PDA_ADDRESS"
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export async function deleteBorrower(params, config) {
|
|
34
|
+
const finalConfig = mergeConfig(config);
|
|
35
|
+
if (!params.admin) {
|
|
36
|
+
throw new Error('admin is required');
|
|
37
|
+
}
|
|
38
|
+
if (!params.borrower) {
|
|
39
|
+
throw new Error('borrower is required');
|
|
40
|
+
}
|
|
41
|
+
if (!params.borrowerState) {
|
|
42
|
+
throw new Error('borrowerState is required');
|
|
43
|
+
}
|
|
44
|
+
const adminSigner = toTransactionSigner(params.admin);
|
|
45
|
+
const addresses = getAddresses(config);
|
|
46
|
+
const programAddress = address(addresses.srsly);
|
|
47
|
+
const kitInstruction = await getDeleteBorrowerInstructionAsync({
|
|
48
|
+
admin: adminSigner,
|
|
49
|
+
borrower: address(params.borrower),
|
|
50
|
+
borrowerState: address(params.borrowerState),
|
|
51
|
+
}, { programAddress });
|
|
52
|
+
return prepareInstructions(kitInstruction, {
|
|
53
|
+
computeUnits: params.computeUnits,
|
|
54
|
+
PublicKey: finalConfig.PublicKey
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=deleteBorrower.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteBorrower.js","sourceRoot":"","sources":["../../../src/instructions/deleteBorrower.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;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;AA6B5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,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;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,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;IAE3D,MAAM,cAAc,GAAG,MAAM,iCAAiC,CAC5D;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QAC7C,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,aAAwB,CAAC;KACxD,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"}
|
|
@@ -47,9 +47,6 @@ export async function deleteRental(params, config) {
|
|
|
47
47
|
if (!params.admin) {
|
|
48
48
|
throw new Error('admin is required');
|
|
49
49
|
}
|
|
50
|
-
if (!params.borrower) {
|
|
51
|
-
throw new Error('borrower is required');
|
|
52
|
-
}
|
|
53
50
|
if (!params.rentalState) {
|
|
54
51
|
throw new Error('rentalState is required');
|
|
55
52
|
}
|
|
@@ -61,7 +58,7 @@ export async function deleteRental(params, config) {
|
|
|
61
58
|
// Call Codama-generated instruction
|
|
62
59
|
const kitInstruction = await getDeleteRentalInstructionAsync({
|
|
63
60
|
admin: adminSigner,
|
|
64
|
-
borrower: address(params.borrower),
|
|
61
|
+
borrower: address((params.borrower ?? '11111111111111111111111111111111')),
|
|
65
62
|
rentalState: address(params.rentalState)
|
|
66
63
|
}, { programAddress });
|
|
67
64
|
return prepareInstructions(kitInstruction, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deleteRental.js","sourceRoot":"","sources":["../../../src/instructions/deleteRental.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;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,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"deleteRental.js","sourceRoot":"","sources":["../../../src/instructions/deleteRental.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;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,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA+B5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA0B,EAC1B,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;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,iCAAiC;IACjC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,oCAAoC;IACpC,MAAM,cAAc,GAAG,MAAM,+BAA+B,CAC1D;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,kCAAkC,CAAY,CAAC;QACrF,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,WAAsB,CAAC;KACpD,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"}
|
|
@@ -2,28 +2,33 @@
|
|
|
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 './closeBorrower';
|
|
19
|
+
export * from './createBorrower';
|
|
20
|
+
export * from './deleteBorrower';
|
|
21
|
+
export * from './updateBorrower';
|
|
22
|
+
export * from './claimContract';
|
|
23
|
+
export * from './activateRental';
|
|
24
|
+
export * from './createContractThread';
|
|
25
|
+
export * from './closeContractThread';
|
|
26
|
+
export * from './updateContractThread';
|
|
27
|
+
export * from './createConfig';
|
|
28
|
+
export * from './updateConfig';
|
|
29
|
+
export * from './deleteConfig';
|
|
30
|
+
export * from './createAffiliate';
|
|
31
|
+
export * from './approveAffiliate';
|
|
32
|
+
export * from './removeAffiliate';
|
|
33
|
+
export * from './updateAffiliate';
|
|
29
34
|
//# 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,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,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"}
|