@wuwei-labs/srsly 2.0.0-beta.3 → 2.0.0-beta.31
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/README.md +322 -197
- package/dist/cjs/codama/accounts/config.js +88 -0
- package/dist/cjs/codama/accounts/config.js.map +1 -0
- package/dist/cjs/codama/{devnet/accounts → accounts}/contractState.js +2 -7
- package/dist/cjs/codama/accounts/contractState.js.map +1 -0
- package/dist/cjs/codama/{devnet/accounts → accounts}/index.js +1 -1
- package/dist/cjs/codama/accounts/index.js.map +1 -0
- package/dist/cjs/codama/{devnet/accounts → accounts}/rentalState.js +3 -1
- package/dist/cjs/codama/accounts/rentalState.js.map +1 -0
- package/dist/cjs/codama/accounts/thread.js.map +1 -0
- package/dist/cjs/codama/errors/index.js.map +1 -0
- package/dist/cjs/codama/{devnet/errors → errors}/srsly.js +30 -3
- package/dist/cjs/codama/errors/srsly.js.map +1 -0
- package/dist/cjs/codama/index.js.map +1 -0
- package/dist/cjs/codama/{devnet/instructions → instructions}/acceptRental.js +30 -39
- package/dist/cjs/codama/instructions/acceptRental.js.map +1 -0
- package/dist/cjs/codama/{devnet/instructions → instructions}/cancelRental.js +10 -33
- package/dist/cjs/codama/instructions/cancelRental.js.map +1 -0
- package/dist/cjs/codama/{devnet/instructions → instructions}/closeContract.js +15 -23
- package/dist/cjs/codama/instructions/closeContract.js.map +1 -0
- package/dist/cjs/codama/{devnet/instructions → instructions}/closeRental.js +19 -19
- package/dist/cjs/codama/instructions/closeRental.js.map +1 -0
- package/dist/cjs/codama/{devnet/instructions → instructions}/createContract.js +13 -16
- package/dist/cjs/codama/instructions/createContract.js.map +1 -0
- package/dist/cjs/codama/{devnet/instructions → instructions}/index.js +2 -1
- package/dist/cjs/codama/instructions/index.js.map +1 -0
- package/dist/cjs/codama/instructions/initializeConfig.js +131 -0
- package/dist/cjs/codama/instructions/initializeConfig.js.map +1 -0
- package/dist/cjs/codama/{devnet/instructions → instructions}/payRental.js +32 -23
- package/dist/cjs/codama/instructions/payRental.js.map +1 -0
- package/dist/cjs/codama/{devnet/instructions → instructions}/resetRental.js +0 -9
- package/dist/cjs/codama/instructions/resetRental.js.map +1 -0
- package/dist/cjs/codama/instructions/updateConfig.js +145 -0
- package/dist/cjs/codama/instructions/updateConfig.js.map +1 -0
- package/dist/cjs/codama/programs/index.js.map +1 -0
- package/dist/cjs/codama/{devnet/programs → programs}/srsly.js +12 -8
- package/dist/cjs/codama/programs/srsly.js.map +1 -0
- package/dist/cjs/codama/shared/index.js.map +1 -0
- package/dist/cjs/codama/types/clockData.js.map +1 -0
- package/dist/cjs/codama/types/equality.js.map +1 -0
- package/dist/cjs/codama/types/execContext.js.map +1 -0
- package/dist/cjs/codama/types/index.js.map +1 -0
- package/dist/cjs/codama/types/paymentFrequency.js.map +1 -0
- package/dist/cjs/codama/types/serializableAccount.js.map +1 -0
- package/dist/cjs/codama/types/serializableInstruction.js.map +1 -0
- package/dist/cjs/codama/types/threadResponse.js.map +1 -0
- package/dist/cjs/codama/types/trigger.js.map +1 -0
- package/dist/cjs/codama/types/triggerContext.js.map +1 -0
- package/dist/cjs/contract/close.js +74 -31
- package/dist/cjs/contract/close.js.map +1 -1
- package/dist/cjs/contract/create.js +79 -35
- package/dist/cjs/contract/create.js.map +1 -1
- package/dist/cjs/index.js +25 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +53 -0
- package/dist/cjs/rental/accept.js +76 -42
- package/dist/cjs/rental/accept.js.map +1 -1
- package/dist/cjs/rental/cancel.js +40 -28
- package/dist/cjs/rental/cancel.js.map +1 -1
- package/dist/cjs/rental/close.js +42 -30
- package/dist/cjs/rental/close.js.map +1 -1
- package/dist/cjs/rental/reset.js +50 -43
- package/dist/cjs/rental/reset.js.map +1 -1
- package/dist/cjs/types/paymentFrequency.js +58 -0
- package/dist/cjs/types/paymentFrequency.js.map +1 -0
- package/dist/cjs/utils/config.js +216 -0
- package/dist/cjs/utils/config.js.map +1 -0
- package/dist/cjs/utils/constants.js +55 -27
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/cjs/utils/duration.js +77 -0
- package/dist/cjs/utils/duration.js.map +1 -0
- package/dist/cjs/utils/index.js +4 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/instruction-converter.js +66 -0
- package/dist/cjs/utils/instruction-converter.js.map +1 -0
- package/dist/cjs/utils/paymentFrequency.js +60 -0
- package/dist/cjs/utils/paymentFrequency.js.map +1 -0
- package/dist/cjs/utils/profiles.js +38 -18
- package/dist/cjs/utils/profiles.js.map +1 -1
- package/dist/cjs/utils/types.js +6 -0
- package/dist/cjs/utils/types.js.map +1 -0
- package/dist/esm/codama/accounts/config.js +76 -0
- package/dist/esm/codama/accounts/config.js.map +1 -0
- package/dist/esm/codama/{devnet/accounts → accounts}/contractState.js +3 -7
- package/dist/esm/codama/accounts/contractState.js.map +1 -0
- package/dist/esm/codama/{devnet/accounts → accounts}/index.js +1 -1
- package/dist/esm/codama/accounts/index.js.map +1 -0
- package/dist/esm/codama/{devnet/accounts → accounts}/rentalState.js +3 -1
- package/dist/esm/codama/accounts/rentalState.js.map +1 -0
- package/dist/esm/codama/accounts/thread.js.map +1 -0
- package/dist/esm/codama/errors/index.js.map +1 -0
- package/dist/esm/codama/{devnet/errors → errors}/srsly.js +29 -2
- package/dist/esm/codama/errors/srsly.js.map +1 -0
- package/dist/esm/codama/index.js.map +1 -0
- package/dist/esm/codama/{devnet/instructions → instructions}/acceptRental.js +30 -39
- package/dist/esm/codama/instructions/acceptRental.js.map +1 -0
- package/dist/esm/codama/{devnet/instructions → instructions}/cancelRental.js +10 -33
- package/dist/esm/codama/instructions/cancelRental.js.map +1 -0
- package/dist/esm/codama/{devnet/instructions → instructions}/closeContract.js +17 -25
- package/dist/esm/codama/instructions/closeContract.js.map +1 -0
- package/dist/esm/codama/{devnet/instructions → instructions}/closeRental.js +19 -19
- package/dist/esm/codama/instructions/closeRental.js.map +1 -0
- package/dist/esm/codama/{devnet/instructions → instructions}/createContract.js +13 -16
- package/dist/esm/codama/instructions/createContract.js.map +1 -0
- package/dist/esm/codama/{devnet/instructions → instructions}/index.js +2 -1
- package/dist/esm/codama/instructions/index.js.map +1 -0
- package/dist/esm/codama/instructions/initializeConfig.js +121 -0
- package/dist/esm/codama/instructions/initializeConfig.js.map +1 -0
- package/dist/esm/codama/{devnet/instructions → instructions}/payRental.js +34 -25
- package/dist/esm/codama/instructions/payRental.js.map +1 -0
- package/dist/esm/codama/{devnet/instructions → instructions}/resetRental.js +0 -9
- package/dist/esm/codama/instructions/resetRental.js.map +1 -0
- package/dist/esm/codama/instructions/updateConfig.js +135 -0
- package/dist/esm/codama/instructions/updateConfig.js.map +1 -0
- package/dist/esm/codama/programs/index.js.map +1 -0
- package/dist/esm/codama/{devnet/programs → programs}/srsly.js +12 -8
- package/dist/esm/codama/programs/srsly.js.map +1 -0
- package/dist/esm/codama/shared/index.js.map +1 -0
- package/dist/esm/codama/types/clockData.js.map +1 -0
- package/dist/esm/codama/types/equality.js.map +1 -0
- package/dist/esm/codama/types/execContext.js.map +1 -0
- package/dist/esm/codama/types/index.js.map +1 -0
- package/dist/esm/codama/types/paymentFrequency.js.map +1 -0
- package/dist/esm/codama/types/serializableAccount.js.map +1 -0
- package/dist/esm/codama/types/serializableInstruction.js.map +1 -0
- package/dist/esm/codama/types/threadResponse.js.map +1 -0
- package/dist/esm/codama/types/trigger.js.map +1 -0
- package/dist/esm/codama/types/triggerContext.js.map +1 -0
- package/dist/esm/contract/close.js +75 -32
- package/dist/esm/contract/close.js.map +1 -1
- package/dist/esm/contract/create.js +79 -34
- package/dist/esm/contract/create.js.map +1 -1
- package/dist/esm/index.js +8 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +53 -0
- package/dist/esm/rental/accept.js +77 -43
- package/dist/esm/rental/accept.js.map +1 -1
- package/dist/esm/rental/cancel.js +40 -28
- package/dist/esm/rental/cancel.js.map +1 -1
- package/dist/esm/rental/close.js +42 -30
- package/dist/esm/rental/close.js.map +1 -1
- package/dist/esm/rental/reset.js +51 -44
- package/dist/esm/rental/reset.js.map +1 -1
- package/dist/esm/types/paymentFrequency.js +53 -0
- package/dist/esm/types/paymentFrequency.js.map +1 -0
- package/dist/esm/utils/config.js +173 -0
- package/dist/esm/utils/config.js.map +1 -0
- package/dist/esm/utils/constants.js +49 -24
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/duration.js +68 -0
- package/dist/esm/utils/duration.js.map +1 -0
- package/dist/esm/utils/index.js +4 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/instruction-converter.js +62 -0
- package/dist/esm/utils/instruction-converter.js.map +1 -0
- package/dist/esm/utils/paymentFrequency.js +55 -0
- package/dist/esm/utils/paymentFrequency.js.map +1 -0
- package/dist/esm/utils/profiles.js +39 -19
- package/dist/esm/utils/profiles.js.map +1 -1
- package/dist/esm/utils/types.js +5 -0
- package/dist/esm/utils/types.js.map +1 -0
- package/dist/types/codama/accounts/config.d.ts +52 -0
- package/dist/types/codama/accounts/config.d.ts.map +1 -0
- package/dist/types/codama/{devnet/accounts → accounts}/contractState.d.ts +2 -4
- package/dist/types/codama/accounts/contractState.d.ts.map +1 -0
- package/dist/types/codama/{devnet/accounts → accounts}/index.d.ts +1 -1
- package/dist/types/codama/accounts/index.d.ts.map +1 -0
- package/dist/types/codama/{devnet/accounts → accounts}/rentalState.d.ts +2 -0
- package/dist/types/codama/accounts/rentalState.d.ts.map +1 -0
- package/dist/types/codama/accounts/thread.d.ts.map +1 -0
- package/dist/types/codama/errors/index.d.ts.map +1 -0
- package/dist/types/codama/{devnet/errors → errors}/srsly.d.ts +20 -2
- package/dist/types/codama/errors/srsly.d.ts.map +1 -0
- package/dist/types/codama/index.d.ts.map +1 -0
- package/dist/types/codama/instructions/acceptRental.d.ts +135 -0
- package/dist/types/codama/instructions/acceptRental.d.ts.map +1 -0
- package/dist/types/codama/{devnet/instructions → instructions}/cancelRental.d.ts +14 -10
- package/dist/types/codama/instructions/cancelRental.d.ts.map +1 -0
- package/dist/types/codama/instructions/closeContract.d.ts +104 -0
- package/dist/types/codama/instructions/closeContract.d.ts.map +1 -0
- package/dist/types/codama/{devnet/instructions → instructions}/closeRental.d.ts +20 -12
- package/dist/types/codama/instructions/closeRental.d.ts.map +1 -0
- package/dist/types/codama/instructions/createContract.d.ts +112 -0
- package/dist/types/codama/instructions/createContract.d.ts.map +1 -0
- package/dist/types/codama/{devnet/instructions → instructions}/index.d.ts +2 -1
- package/dist/types/codama/instructions/index.d.ts.map +1 -0
- package/dist/types/codama/instructions/initializeConfig.d.ts +60 -0
- package/dist/types/codama/instructions/initializeConfig.d.ts.map +1 -0
- package/dist/types/codama/{devnet/instructions → instructions}/payRental.d.ts +28 -13
- package/dist/types/codama/instructions/payRental.d.ts.map +1 -0
- package/dist/types/codama/{devnet/instructions → instructions}/resetRental.d.ts +3 -3
- package/dist/types/codama/instructions/resetRental.d.ts.map +1 -0
- package/dist/types/codama/instructions/updateConfig.d.ts +93 -0
- package/dist/types/codama/instructions/updateConfig.d.ts.map +1 -0
- package/dist/types/codama/programs/index.d.ts.map +1 -0
- package/dist/types/codama/{devnet/programs → programs}/srsly.d.ts +11 -8
- package/dist/types/codama/programs/srsly.d.ts.map +1 -0
- package/dist/types/codama/shared/index.d.ts.map +1 -0
- package/dist/types/codama/types/clockData.d.ts.map +1 -0
- package/dist/types/codama/types/equality.d.ts.map +1 -0
- package/dist/types/codama/types/execContext.d.ts.map +1 -0
- package/dist/types/codama/types/index.d.ts.map +1 -0
- package/dist/types/codama/types/paymentFrequency.d.ts.map +1 -0
- package/dist/types/codama/types/serializableAccount.d.ts.map +1 -0
- package/dist/types/codama/types/serializableInstruction.d.ts.map +1 -0
- package/dist/types/codama/types/threadResponse.d.ts.map +1 -0
- package/dist/types/codama/types/trigger.d.ts.map +1 -0
- package/dist/types/codama/types/triggerContext.d.ts.map +1 -0
- package/dist/types/contract/close.d.ts +29 -13
- package/dist/types/contract/close.d.ts.map +1 -1
- package/dist/types/contract/create.d.ts +55 -54
- package/dist/types/contract/create.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/rental/accept.d.ts +65 -15
- package/dist/types/rental/accept.d.ts.map +1 -1
- package/dist/types/rental/cancel.d.ts +36 -8
- package/dist/types/rental/cancel.d.ts.map +1 -1
- package/dist/types/rental/close.d.ts +36 -8
- package/dist/types/rental/close.d.ts.map +1 -1
- package/dist/types/rental/reset.d.ts +42 -11
- package/dist/types/rental/reset.d.ts.map +1 -1
- package/dist/types/types/paymentFrequency.d.ts +44 -0
- package/dist/types/types/paymentFrequency.d.ts.map +1 -0
- package/dist/types/utils/config.d.ts +110 -0
- package/dist/types/utils/config.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +14 -11
- package/dist/types/utils/constants.d.ts.map +1 -1
- package/dist/types/utils/duration.d.ts +56 -0
- package/dist/types/utils/duration.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +4 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/instruction-converter.d.ts +117 -0
- package/dist/types/utils/instruction-converter.d.ts.map +1 -0
- package/dist/types/utils/paymentFrequency.d.ts +18 -0
- package/dist/types/utils/paymentFrequency.d.ts.map +1 -0
- package/dist/types/utils/profiles.d.ts +14 -8
- package/dist/types/utils/profiles.d.ts.map +1 -1
- package/dist/types/utils/types.d.ts +6 -0
- package/dist/types/utils/types.d.ts.map +1 -0
- package/package.json +33 -25
- package/target/idl/{srsly-devnet.json → srsly.json} +795 -523
- package/dist/cjs/codama/devnet/accounts/contractState.js.map +0 -1
- package/dist/cjs/codama/devnet/accounts/fleet.js +0 -77
- package/dist/cjs/codama/devnet/accounts/fleet.js.map +0 -1
- package/dist/cjs/codama/devnet/accounts/index.js.map +0 -1
- package/dist/cjs/codama/devnet/accounts/rentalState.js.map +0 -1
- package/dist/cjs/codama/devnet/accounts/thread.js.map +0 -1
- package/dist/cjs/codama/devnet/errors/index.js.map +0 -1
- package/dist/cjs/codama/devnet/errors/srsly.js.map +0 -1
- package/dist/cjs/codama/devnet/index.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/acceptRental.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/cancelRental.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/closeContract.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/closeRental.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/createContract.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/index.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/normalizeAdmin.js +0 -152
- package/dist/cjs/codama/devnet/instructions/normalizeAdmin.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/payRental.js.map +0 -1
- package/dist/cjs/codama/devnet/instructions/resetRental.js.map +0 -1
- package/dist/cjs/codama/devnet/programs/index.js.map +0 -1
- package/dist/cjs/codama/devnet/programs/srsly.js.map +0 -1
- package/dist/cjs/codama/devnet/shared/index.js.map +0 -1
- package/dist/cjs/codama/devnet/types/clockData.js.map +0 -1
- package/dist/cjs/codama/devnet/types/equality.js.map +0 -1
- package/dist/cjs/codama/devnet/types/execContext.js.map +0 -1
- package/dist/cjs/codama/devnet/types/index.js.map +0 -1
- package/dist/cjs/codama/devnet/types/paymentFrequency.js.map +0 -1
- package/dist/cjs/codama/devnet/types/serializableAccount.js.map +0 -1
- package/dist/cjs/codama/devnet/types/serializableInstruction.js.map +0 -1
- package/dist/cjs/codama/devnet/types/threadResponse.js.map +0 -1
- package/dist/cjs/codama/devnet/types/trigger.js.map +0 -1
- package/dist/cjs/codama/devnet/types/triggerContext.js.map +0 -1
- package/dist/cjs/network.js +0 -107
- package/dist/cjs/network.js.map +0 -1
- package/dist/esm/codama/devnet/accounts/contractState.js.map +0 -1
- package/dist/esm/codama/devnet/accounts/fleet.js +0 -64
- package/dist/esm/codama/devnet/accounts/fleet.js.map +0 -1
- package/dist/esm/codama/devnet/accounts/index.js.map +0 -1
- package/dist/esm/codama/devnet/accounts/rentalState.js.map +0 -1
- package/dist/esm/codama/devnet/accounts/thread.js.map +0 -1
- package/dist/esm/codama/devnet/errors/index.js.map +0 -1
- package/dist/esm/codama/devnet/errors/srsly.js.map +0 -1
- package/dist/esm/codama/devnet/index.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/acceptRental.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/cancelRental.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/closeContract.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/closeRental.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/createContract.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/index.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/normalizeAdmin.js +0 -142
- package/dist/esm/codama/devnet/instructions/normalizeAdmin.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/payRental.js.map +0 -1
- package/dist/esm/codama/devnet/instructions/resetRental.js.map +0 -1
- package/dist/esm/codama/devnet/programs/index.js.map +0 -1
- package/dist/esm/codama/devnet/programs/srsly.js.map +0 -1
- package/dist/esm/codama/devnet/shared/index.js.map +0 -1
- package/dist/esm/codama/devnet/types/clockData.js.map +0 -1
- package/dist/esm/codama/devnet/types/equality.js.map +0 -1
- package/dist/esm/codama/devnet/types/execContext.js.map +0 -1
- package/dist/esm/codama/devnet/types/index.js.map +0 -1
- package/dist/esm/codama/devnet/types/paymentFrequency.js.map +0 -1
- package/dist/esm/codama/devnet/types/serializableAccount.js.map +0 -1
- package/dist/esm/codama/devnet/types/serializableInstruction.js.map +0 -1
- package/dist/esm/codama/devnet/types/threadResponse.js.map +0 -1
- package/dist/esm/codama/devnet/types/trigger.js.map +0 -1
- package/dist/esm/codama/devnet/types/triggerContext.js.map +0 -1
- package/dist/esm/network.js +0 -67
- package/dist/esm/network.js.map +0 -1
- package/dist/types/codama/devnet/accounts/contractState.d.ts.map +0 -1
- package/dist/types/codama/devnet/accounts/fleet.d.ts +0 -38
- package/dist/types/codama/devnet/accounts/fleet.d.ts.map +0 -1
- package/dist/types/codama/devnet/accounts/index.d.ts.map +0 -1
- package/dist/types/codama/devnet/accounts/rentalState.d.ts.map +0 -1
- package/dist/types/codama/devnet/accounts/thread.d.ts.map +0 -1
- package/dist/types/codama/devnet/errors/index.d.ts.map +0 -1
- package/dist/types/codama/devnet/errors/srsly.d.ts.map +0 -1
- package/dist/types/codama/devnet/index.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/acceptRental.d.ts +0 -128
- package/dist/types/codama/devnet/instructions/acceptRental.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/cancelRental.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/closeContract.d.ts +0 -96
- package/dist/types/codama/devnet/instructions/closeContract.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/closeRental.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/createContract.d.ts +0 -108
- package/dist/types/codama/devnet/instructions/createContract.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/index.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/normalizeAdmin.d.ts +0 -67
- package/dist/types/codama/devnet/instructions/normalizeAdmin.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/payRental.d.ts.map +0 -1
- package/dist/types/codama/devnet/instructions/resetRental.d.ts.map +0 -1
- package/dist/types/codama/devnet/programs/index.d.ts.map +0 -1
- package/dist/types/codama/devnet/programs/srsly.d.ts.map +0 -1
- package/dist/types/codama/devnet/shared/index.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/clockData.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/equality.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/execContext.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/index.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/paymentFrequency.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/serializableAccount.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/serializableInstruction.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/threadResponse.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/trigger.d.ts.map +0 -1
- package/dist/types/codama/devnet/types/triggerContext.d.ts.map +0 -1
- package/dist/types/network.d.ts +0 -58
- package/dist/types/network.d.ts.map +0 -1
- package/target/idl/srsly-mainnet.json +0 -3011
- package/target/types/srsly-mainnet.ts +0 -1
- /package/dist/cjs/codama/{devnet/accounts → accounts}/thread.js +0 -0
- /package/dist/cjs/codama/{devnet/errors → errors}/index.js +0 -0
- /package/dist/cjs/codama/{devnet/index.js → index.js} +0 -0
- /package/dist/cjs/codama/{devnet/programs → programs}/index.js +0 -0
- /package/dist/cjs/codama/{devnet/shared → shared}/index.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/clockData.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/equality.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/execContext.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/index.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/paymentFrequency.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/serializableAccount.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/serializableInstruction.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/threadResponse.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/trigger.js +0 -0
- /package/dist/cjs/codama/{devnet/types → types}/triggerContext.js +0 -0
- /package/dist/esm/codama/{devnet/accounts → accounts}/thread.js +0 -0
- /package/dist/esm/codama/{devnet/errors → errors}/index.js +0 -0
- /package/dist/esm/codama/{devnet/index.js → index.js} +0 -0
- /package/dist/esm/codama/{devnet/programs → programs}/index.js +0 -0
- /package/dist/esm/codama/{devnet/shared → shared}/index.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/clockData.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/equality.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/execContext.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/index.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/paymentFrequency.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/serializableAccount.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/serializableInstruction.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/threadResponse.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/trigger.js +0 -0
- /package/dist/esm/codama/{devnet/types → types}/triggerContext.js +0 -0
- /package/dist/types/codama/{devnet/accounts → accounts}/thread.d.ts +0 -0
- /package/dist/types/codama/{devnet/errors → errors}/index.d.ts +0 -0
- /package/dist/types/codama/{devnet/index.d.ts → index.d.ts} +0 -0
- /package/dist/types/codama/{devnet/programs → programs}/index.d.ts +0 -0
- /package/dist/types/codama/{devnet/shared → shared}/index.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/clockData.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/equality.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/execContext.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/index.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/paymentFrequency.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/serializableAccount.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/serializableInstruction.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/threadResponse.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/trigger.d.ts +0 -0
- /package/dist/types/codama/{devnet/types → types}/triggerContext.d.ts +0 -0
- /package/target/types/{srsly-devnet.ts → srsly.ts} +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network configuration for the SRSLY SDK
|
|
3
|
+
*/
|
|
4
|
+
// Single codama output - network agnostic
|
|
5
|
+
import * as instructions from '../codama/instructions';
|
|
6
|
+
import * as programs from '../codama/programs';
|
|
7
|
+
const PROGRAM_SETS = {
|
|
8
|
+
mainnet: {
|
|
9
|
+
SAGE_PROGRAM_ADDRESS: 'SAGE2HAwep459SNq61LHvjxPk4pLPEJLoMETef7f7EE',
|
|
10
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'pFACSRuobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq',
|
|
11
|
+
SAGE_GAME_ID: 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr',
|
|
12
|
+
ATLAS_MINT: 'ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx',
|
|
13
|
+
RPC_URL: 'https://api.mainnet-beta.solana.com',
|
|
14
|
+
},
|
|
15
|
+
atlasnet: {
|
|
16
|
+
SAGE_PROGRAM_ADDRESS: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
|
|
17
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
|
|
18
|
+
SAGE_GAME_ID: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
|
|
19
|
+
ATLAS_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
|
|
20
|
+
},
|
|
21
|
+
holosim: {
|
|
22
|
+
SAGE_PROGRAM_ADDRESS: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
|
|
23
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
|
|
24
|
+
SAGE_GAME_ID: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
|
|
25
|
+
ATLAS_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
// Default program set when none is specified
|
|
29
|
+
const DEFAULT_PROGRAM_SET = 'atlasnet';
|
|
30
|
+
// Global configuration state
|
|
31
|
+
let globalConfig = {};
|
|
32
|
+
/**
|
|
33
|
+
* Resolve program addresses based on configuration
|
|
34
|
+
* @param config Effective configuration options
|
|
35
|
+
* @returns Resolved program addresses
|
|
36
|
+
*/
|
|
37
|
+
export function resolveProgramAddresses(config) {
|
|
38
|
+
// Determine which program set to use
|
|
39
|
+
const programSet = config.programs || DEFAULT_PROGRAM_SET;
|
|
40
|
+
// Get program addresses from program sets
|
|
41
|
+
const programConfig = PROGRAM_SETS[programSet];
|
|
42
|
+
if (!programConfig) {
|
|
43
|
+
throw new Error(`Unknown program set: ${programSet}. Available: ${Object.keys(PROGRAM_SETS).join(', ')}`);
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
srslyProgramAddress: config.srslyProgramAddress || 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
|
|
47
|
+
sageProgramAddress: programConfig.SAGE_PROGRAM_ADDRESS, // Fixed - cannot be overridden
|
|
48
|
+
profileFactionProgramAddress: config.profileFactionProgramAddress || programConfig.PROFILE_FACTION_PROGRAM_ADDRESS,
|
|
49
|
+
gameId: config.gameId || programConfig.SAGE_GAME_ID,
|
|
50
|
+
atlasMint: config.atlasMint || programConfig.ATLAS_MINT,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Set global configuration options that will be used as defaults for all SDK operations
|
|
55
|
+
* @param config Configuration options to set globally
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* // Use default atlasnet program addresses
|
|
60
|
+
* setConfig({ programs: 'atlasnet' });
|
|
61
|
+
*
|
|
62
|
+
* // Use holosim program addresses
|
|
63
|
+
* setConfig({ programs: 'holosim' });
|
|
64
|
+
*
|
|
65
|
+
* // Use holosim program addresses with custom game ID
|
|
66
|
+
* setConfig({
|
|
67
|
+
* programs: 'holosim',
|
|
68
|
+
* gameId: 'custom-game-id...'
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* // Can still override per instruction
|
|
72
|
+
* await createContract(params).set({ srslyProgramAddress: 'custom...' });
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export function setConfig(config) {
|
|
76
|
+
globalConfig = { ...config };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get the current global configuration
|
|
80
|
+
* @returns Current global configuration options
|
|
81
|
+
*/
|
|
82
|
+
export function getConfig() {
|
|
83
|
+
return { ...globalConfig };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Clear global configuration (resets to atlasnet program set defaults)
|
|
87
|
+
*/
|
|
88
|
+
export function clearConfig() {
|
|
89
|
+
globalConfig = {};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get the effective configuration by merging global config with provided overrides
|
|
93
|
+
* @param overrides Optional configuration overrides
|
|
94
|
+
* @returns Merged configuration with global defaults and any overrides
|
|
95
|
+
*/
|
|
96
|
+
export function getEffectiveConfig(overrides) {
|
|
97
|
+
return { ...globalConfig, ...overrides };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get the single codama module (network agnostic)
|
|
101
|
+
* @param modulePath The module type ('instructions' or 'programs')
|
|
102
|
+
* @returns The codama module
|
|
103
|
+
*/
|
|
104
|
+
export function getModule(modulePath) {
|
|
105
|
+
return modulePath === 'instructions' ? instructions : programs;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @deprecated Use getModule instead. This function is kept for backward compatibility.
|
|
109
|
+
* Get codama modules (network agnostic)
|
|
110
|
+
*/
|
|
111
|
+
export async function getCachedNetworkModule(modulePath) {
|
|
112
|
+
if (modulePath !== 'instructions' && modulePath !== 'programs') {
|
|
113
|
+
throw new Error(`Unsupported module path: ${modulePath}. Use 'instructions' or 'programs'.`);
|
|
114
|
+
}
|
|
115
|
+
return getModule(modulePath);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Create a chainable config selector with existing configuration state.
|
|
119
|
+
* This enables config chaining by merging new options with existing ones.
|
|
120
|
+
*
|
|
121
|
+
* Used internally when .set() is called on an existing ConfigSelector.
|
|
122
|
+
*
|
|
123
|
+
* @param executeFn - The function to execute with merged configuration
|
|
124
|
+
* @param existingConfig - The current configuration state to merge with
|
|
125
|
+
* @returns A ConfigSelector that can chain additional .set() calls
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* // This creates a chainable selector that merges { programs: 'atlasnet' }
|
|
129
|
+
* // with any additional config options passed to subsequent .set() calls
|
|
130
|
+
* createChainableConfigSelector(executeFn, { programs: 'atlasnet' })
|
|
131
|
+
*/
|
|
132
|
+
function createChainableConfigSelector(executeFn, existingConfig) {
|
|
133
|
+
const selector = {
|
|
134
|
+
set: (additionalOptions) => createChainableConfigSelector(executeFn, { ...existingConfig, ...additionalOptions }),
|
|
135
|
+
build: () => executeFn(existingConfig),
|
|
136
|
+
// Implement PromiseLike to allow direct awaiting
|
|
137
|
+
then(onfulfilled, onrejected) {
|
|
138
|
+
return executeFn(existingConfig).then(onfulfilled, onrejected);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
return selector;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Create the initial fluent config selector for a function.
|
|
145
|
+
* This is the main entry point for the fluent configuration API.
|
|
146
|
+
*
|
|
147
|
+
* The returned selector can be:
|
|
148
|
+
* - Awaited directly (uses global config + atlasnet fallback)
|
|
149
|
+
* - Configured with .set() to override network/constants
|
|
150
|
+
* - Chained with multiple .set() calls
|
|
151
|
+
*
|
|
152
|
+
* @param executeFn - The function to execute with optional configuration
|
|
153
|
+
* @returns A ConfigSelector that supports fluent configuration
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* // Usage patterns:
|
|
157
|
+
* setConfig({ programs: 'mainnet' });
|
|
158
|
+
* await createConfigSelector(executeFn) // Direct await (uses global config)
|
|
159
|
+
* await createConfigSelector(executeFn).set({...}) // Override global config
|
|
160
|
+
* await createConfigSelector(executeFn).set({...}).set({...}) // Chained configs
|
|
161
|
+
*/
|
|
162
|
+
export function createConfigSelector(executeFn) {
|
|
163
|
+
const selector = {
|
|
164
|
+
set: (options) => createChainableConfigSelector(executeFn, getEffectiveConfig(options)),
|
|
165
|
+
build: () => executeFn(getEffectiveConfig()),
|
|
166
|
+
// Implement PromiseLike to allow direct awaiting
|
|
167
|
+
then(onfulfilled, onrejected) {
|
|
168
|
+
return executeFn(getEffectiveConfig()).then(onfulfilled, onrejected);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
return selector;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,57 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
return module.SRSLY_PROGRAM_ADDRESS;
|
|
10
|
-
}
|
|
11
|
-
// Export async function to get program ID
|
|
12
|
-
export async function getProgramId() {
|
|
13
|
-
return await getSrslyProgramAddress();
|
|
1
|
+
import { getConfig, resolveProgramAddresses } from './config';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a string or Address to an Address type
|
|
4
|
+
* This utility ensures consistent address handling across the SDK
|
|
5
|
+
* Note: This is a simple passthrough now since pack functions handle library-specific conversions
|
|
6
|
+
*/
|
|
7
|
+
export function toAddress(value) {
|
|
8
|
+
return value;
|
|
14
9
|
}
|
|
15
|
-
// Constants for program IDs
|
|
16
|
-
export const SAGE_PROGRAM_ADDRESS = 'sAgezwJpDb1aHvzNr3o24cKjsETmFEKghBEyJ1askDi';
|
|
17
|
-
export const PROFILE_FACTION_PROGRAM_ADDRESS = 'pFACSRuobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq';
|
|
18
|
-
export const DEFAULT_GAME_ID = 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr';
|
|
19
10
|
// Seed constants
|
|
20
11
|
export const STARBASE_SEED = 'Starbase';
|
|
21
12
|
export const STARBASE_PLAYER_SEED = 'starbase_player';
|
|
22
13
|
export const SAGE_PLAYER_PROFILE_SEED = 'sage_player_profile';
|
|
23
14
|
export const PROFILE_FACTION_SEED = 'profile_faction';
|
|
15
|
+
// Token conversion constants
|
|
16
|
+
export const ATLAS_TO_STARDUST = 100_000_000; // 1 ATLAS = 100,000,000 stardust
|
|
17
|
+
// PaymentFrequency enum is now exported from codama-generated types
|
|
18
|
+
// Network constants are now managed in config.ts
|
|
19
|
+
export async function getSrslyProgramAddress(config) {
|
|
20
|
+
const globalConfig = getConfig();
|
|
21
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
22
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
23
|
+
return toAddress(resolved.srslyProgramAddress);
|
|
24
|
+
}
|
|
25
|
+
// Export async function to get program ID
|
|
26
|
+
export async function getProgramId() {
|
|
27
|
+
return await getSrslyProgramAddress();
|
|
28
|
+
}
|
|
29
|
+
// Network-specific constants with configuration support
|
|
30
|
+
export async function getSageProgramAddress(config) {
|
|
31
|
+
const globalConfig = getConfig();
|
|
32
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
33
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
34
|
+
// Note: SAGE program address is fixed based on network and cannot be overridden
|
|
35
|
+
return toAddress(resolved.sageProgramAddress);
|
|
36
|
+
}
|
|
37
|
+
export async function getProfileFactionProgramAddress(config) {
|
|
38
|
+
const globalConfig = getConfig();
|
|
39
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
40
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
41
|
+
return toAddress(resolved.profileFactionProgramAddress);
|
|
42
|
+
}
|
|
43
|
+
export async function getSageGameId(config) {
|
|
44
|
+
const globalConfig = getConfig();
|
|
45
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
46
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
47
|
+
return toAddress(resolved.gameId);
|
|
48
|
+
}
|
|
49
|
+
export async function getAtlasMint(config) {
|
|
50
|
+
const globalConfig = getConfig();
|
|
51
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
52
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
53
|
+
return toAddress(resolved.atlasMint);
|
|
54
|
+
}
|
|
24
55
|
// Faction-specific CSS coordinates for starbase derivation
|
|
25
56
|
export const FACTION_SPECIFIC_CSS = {
|
|
26
57
|
mud: { x: 0, y: -39 },
|
|
@@ -32,11 +63,5 @@ export const FACTION_MAPPING = {
|
|
|
32
63
|
2: 'oni',
|
|
33
64
|
3: 'ustur'
|
|
34
65
|
};
|
|
35
|
-
|
|
36
|
-
* Convert PaymentFrequency enum to string (async version)
|
|
37
|
-
*/
|
|
38
|
-
export async function paymentFrequencyToString(freq) {
|
|
39
|
-
const PaymentFrequency = await getPaymentFrequency();
|
|
40
|
-
return PaymentFrequency[freq].toLowerCase();
|
|
41
|
-
}
|
|
66
|
+
// PaymentFrequency utilities are now in utils/paymentFrequency.ts
|
|
42
67
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { PAYMENT_FREQUENCY_CONSTANTS } from '../types/paymentFrequency';
|
|
2
|
+
/**
|
|
3
|
+
* Duration helper functions for converting time units to seconds
|
|
4
|
+
* Uses the same constants as the payment frequency system for consistency
|
|
5
|
+
*/
|
|
6
|
+
const { SECONDS_PER_DECASECOND, SECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, SECONDS_PER_MONTH } = PAYMENT_FREQUENCY_CONSTANTS;
|
|
7
|
+
/**
|
|
8
|
+
* Convert decaseconds (10 seconds) to seconds
|
|
9
|
+
* @param amount Number of decaseconds
|
|
10
|
+
* @returns Number of seconds
|
|
11
|
+
*/
|
|
12
|
+
export function decaseconds(amount) {
|
|
13
|
+
return amount * SECONDS_PER_DECASECOND;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Convert minutes to seconds
|
|
17
|
+
* @param amount Number of minutes
|
|
18
|
+
* @returns Number of seconds
|
|
19
|
+
*/
|
|
20
|
+
export function minutes(amount) {
|
|
21
|
+
return amount * SECONDS_PER_MINUTE;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Convert hours to seconds
|
|
25
|
+
* @param amount Number of hours
|
|
26
|
+
* @returns Number of seconds
|
|
27
|
+
*/
|
|
28
|
+
export function hours(amount) {
|
|
29
|
+
return amount * SECONDS_PER_HOUR;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Convert days to seconds
|
|
33
|
+
* @param amount Number of days
|
|
34
|
+
* @returns Number of seconds
|
|
35
|
+
*/
|
|
36
|
+
export function days(amount) {
|
|
37
|
+
return amount * SECONDS_PER_DAY;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Convert weeks to seconds
|
|
41
|
+
* @param amount Number of weeks
|
|
42
|
+
* @returns Number of seconds
|
|
43
|
+
*/
|
|
44
|
+
export function weeks(amount) {
|
|
45
|
+
return amount * SECONDS_PER_WEEK;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Convert months to seconds
|
|
49
|
+
* @param amount Number of months (31 days each)
|
|
50
|
+
* @returns Number of seconds
|
|
51
|
+
*/
|
|
52
|
+
export function months(amount) {
|
|
53
|
+
return amount * SECONDS_PER_MONTH;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* All duration helper functions
|
|
57
|
+
*/
|
|
58
|
+
export const duration = {
|
|
59
|
+
decaseconds,
|
|
60
|
+
minutes,
|
|
61
|
+
hours,
|
|
62
|
+
days,
|
|
63
|
+
weeks,
|
|
64
|
+
months,
|
|
65
|
+
// Also expose the raw constants for advanced users
|
|
66
|
+
constants: PAYMENT_FREQUENCY_CONSTANTS,
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/utils/duration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;GAGG;AAEH,MAAM,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,GAAG,2BAA2B,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,GAAG,sBAAsB,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,OAAO,MAAM,GAAG,kBAAkB,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,MAAM,GAAG,gBAAgB,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,MAAc;IACjC,OAAO,MAAM,GAAG,eAAe,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,MAAM,GAAG,gBAAgB,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,OAAO,MAAM,GAAG,iBAAiB,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW;IACX,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IAEN,mDAAmD;IACnD,SAAS,EAAE,2BAA2B;CAC9B,CAAC"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluent instruction interface for format conversion between @solana/kit and @solana/web3.js
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Create a fluent instruction wrapper around a kit instruction
|
|
6
|
+
* @param kitInstruction The base instruction in kit format
|
|
7
|
+
* @returns Fluent instruction with conversion methods
|
|
8
|
+
*/
|
|
9
|
+
export function createFluentInstruction(kitInstruction) {
|
|
10
|
+
function web3js(PublicKeyConstructor) {
|
|
11
|
+
if (PublicKeyConstructor) {
|
|
12
|
+
// Return instruction with PublicKey instances
|
|
13
|
+
return {
|
|
14
|
+
keys: kitInstruction.accounts.map(account => ({
|
|
15
|
+
pubkey: new PublicKeyConstructor(account.address),
|
|
16
|
+
isWritable: (account.role & 1) === 1, // Check if writable bit is set
|
|
17
|
+
isSigner: (account.role & 2) === 2, // Check if signer bit is set
|
|
18
|
+
})),
|
|
19
|
+
programId: new PublicKeyConstructor(kitInstruction.programAddress),
|
|
20
|
+
data: kitInstruction.data
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// Return instruction with string addresses
|
|
25
|
+
return {
|
|
26
|
+
keys: kitInstruction.accounts.map(account => ({
|
|
27
|
+
pubkey: account.address,
|
|
28
|
+
isWritable: (account.role & 1) === 1, // Check if writable bit is set
|
|
29
|
+
isSigner: (account.role & 2) === 2, // Check if signer bit is set
|
|
30
|
+
})),
|
|
31
|
+
programId: kitInstruction.programAddress,
|
|
32
|
+
data: kitInstruction.data
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
...kitInstruction,
|
|
38
|
+
web3js
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create a fluent config selector that adds format conversion methods
|
|
43
|
+
* @param baseSelector The base ConfigSelector
|
|
44
|
+
* @returns FluentConfigSelector with additional format conversion methods
|
|
45
|
+
*/
|
|
46
|
+
export function createFluentConfigSelector(baseSelector) {
|
|
47
|
+
async function web3js(PublicKeyConstructor) {
|
|
48
|
+
const fluentInstruction = await baseSelector.build();
|
|
49
|
+
return fluentInstruction.web3js(PublicKeyConstructor);
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
// Override set to return FluentConfigSelector
|
|
53
|
+
set(options) {
|
|
54
|
+
const newBaseSelector = baseSelector.set(options);
|
|
55
|
+
return createFluentConfigSelector(newBaseSelector);
|
|
56
|
+
},
|
|
57
|
+
build: baseSelector.build,
|
|
58
|
+
then: baseSelector.then,
|
|
59
|
+
web3js
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=instruction-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instruction-converter.js","sourceRoot":"","sources":["../../../src/utils/instruction-converter.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6GH;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,cAA8B;IACpE,SAAS,MAAM,CAAa,oBAAuD;QACjF,IAAI,oBAAoB,EAAE,CAAC;YACzB,8CAA8C;YAC9C,OAAO;gBACL,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC5C,MAAM,EAAE,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;oBACjD,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,+BAA+B;oBACrE,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAI,6BAA6B;iBACpE,CAAC,CAAC;gBACH,SAAS,EAAE,IAAI,oBAAoB,CAAC,cAAc,CAAC,cAAc,CAAC;gBAClE,IAAI,EAAE,cAAc,CAAC,IAAI;aAC1B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,OAAO;gBACL,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC5C,MAAM,EAAE,OAAO,CAAC,OAAO;oBACvB,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,+BAA+B;oBACrE,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAI,6BAA6B;iBACpE,CAAC,CAAC;gBACH,SAAS,EAAE,cAAc,CAAC,cAAc;gBACxC,IAAI,EAAE,cAAc,CAAC,IAAI;aAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,cAAc;QACjB,MAAM;KACc,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAA+B;IAE/B,KAAK,UAAU,MAAM,CAAa,oBAAuD;QACvF,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO,iBAAiB,CAAC,MAAM,CAAC,oBAA2B,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,8CAA8C;QAC9C,GAAG,CAAC,OAAY;YACd,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,0BAA0B,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,MAAM;KACoB,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { PaymentFrequency } from '../codama/types/paymentFrequency';
|
|
2
|
+
import { PAYMENT_FREQUENCY_MAP, PAYMENT_FREQUENCY_CONSTANTS } from '../types/paymentFrequency';
|
|
3
|
+
/**
|
|
4
|
+
* Payment frequency conversion utilities
|
|
5
|
+
* Mirrors the Rust implementation in programs/srsly/src/utils.rs
|
|
6
|
+
* Uses auto-generated constants and mappings from Rust source
|
|
7
|
+
*/
|
|
8
|
+
// Auto-synced constants from Rust constants.rs
|
|
9
|
+
const { SECONDS_PER_DECASECOND, SECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, SECONDS_PER_MONTH } = PAYMENT_FREQUENCY_CONSTANTS;
|
|
10
|
+
/**
|
|
11
|
+
* Converts a PaymentFrequency enum value to seconds
|
|
12
|
+
* Mirrors the to_seconds() method from the Rust implementation
|
|
13
|
+
*/
|
|
14
|
+
export function paymentFrequencyToSeconds(frequency) {
|
|
15
|
+
switch (frequency) {
|
|
16
|
+
case PaymentFrequency.Decasecond:
|
|
17
|
+
return SECONDS_PER_DECASECOND;
|
|
18
|
+
case PaymentFrequency.Minute:
|
|
19
|
+
return SECONDS_PER_MINUTE;
|
|
20
|
+
case PaymentFrequency.Hourly:
|
|
21
|
+
return SECONDS_PER_HOUR;
|
|
22
|
+
case PaymentFrequency.Daily:
|
|
23
|
+
case PaymentFrequency.DailyOld:
|
|
24
|
+
return SECONDS_PER_DAY;
|
|
25
|
+
case PaymentFrequency.Weekly:
|
|
26
|
+
return SECONDS_PER_WEEK;
|
|
27
|
+
case PaymentFrequency.Monthly:
|
|
28
|
+
return SECONDS_PER_MONTH;
|
|
29
|
+
default:
|
|
30
|
+
throw new Error(`Unknown payment frequency: ${frequency}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Converts a payment frequency string to seconds
|
|
35
|
+
* Uses auto-generated mapping from Rust PaymentFrequency enum
|
|
36
|
+
*/
|
|
37
|
+
export function paymentFrequencyStringToSeconds(frequencyString) {
|
|
38
|
+
const frequency = PAYMENT_FREQUENCY_MAP[frequencyString];
|
|
39
|
+
if (frequency === undefined) {
|
|
40
|
+
throw new Error(`Invalid payment frequency string: ${frequencyString}`);
|
|
41
|
+
}
|
|
42
|
+
return paymentFrequencyToSeconds(frequency);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Validates that a duration is a multiple of the payment frequency
|
|
46
|
+
* Uses auto-generated types from Rust PaymentFrequency enum
|
|
47
|
+
*/
|
|
48
|
+
export function validateDurationAlignment(duration, frequencyString) {
|
|
49
|
+
const durationNumber = Number(duration);
|
|
50
|
+
const frequencySeconds = paymentFrequencyStringToSeconds(frequencyString);
|
|
51
|
+
if (durationNumber % frequencySeconds !== 0) {
|
|
52
|
+
throw new Error(`Duration (${duration} seconds) must be a multiple of ${frequencyString} frequency (${frequencySeconds} seconds)`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=paymentFrequency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paymentFrequency.js","sourceRoot":"","sources":["../../../src/utils/paymentFrequency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAEL,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AAEH,+CAA+C;AAC/C,MAAM,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,GAAG,2BAA2B,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAA2B;IACnE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,sBAAsB,CAAC;QAChC,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,kBAAkB,CAAC;QAC5B,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,QAAQ;YAC5B,OAAO,eAAe,CAAC;QACzB,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,iBAAiB,CAAC;QAC3B;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAAC,eAAuC;IACrF,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAyB,EACzB,eAAuC;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,+BAA+B,CAAC,eAAe,CAAC,CAAC;IAE1E,IAAI,cAAc,GAAG,gBAAgB,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,mCAAmC,eAAe,eAAe,gBAAgB,WAAW,CAClH,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getBytesEncoder, getAddressEncoder, getProgramDerivedAddress } from '@solana/kit';
|
|
2
|
-
import {
|
|
2
|
+
import { FACTION_MAPPING, FACTION_SPECIFIC_CSS, PROFILE_FACTION_SEED, SAGE_PLAYER_PROFILE_SEED, STARBASE_PLAYER_SEED, STARBASE_SEED } from './constants';
|
|
3
|
+
import { getSageGameId, getSageProgramAddress, getProfileFactionProgramAddress } from './constants';
|
|
3
4
|
/**
|
|
4
5
|
* Helper function to convert a string seed to a Uint8Array
|
|
5
6
|
* This is necessary for @solana/kit's getBytesEncoder().encode()
|
|
@@ -14,11 +15,13 @@ function seedToBytes(seed) {
|
|
|
14
15
|
* Helper function to derive the borrower's profile faction account
|
|
15
16
|
*
|
|
16
17
|
* @param profile The borrower's profile address
|
|
18
|
+
* @param config Optional configuration for network-specific constants
|
|
17
19
|
* @returns Promise that resolves to the derived profile faction address
|
|
18
20
|
*/
|
|
19
|
-
export async function deriveProfileFaction(profile) {
|
|
21
|
+
export async function deriveProfileFaction(profile, config) {
|
|
22
|
+
const programAddress = await getProfileFactionProgramAddress(config);
|
|
20
23
|
const [address] = await getProgramDerivedAddress({
|
|
21
|
-
programAddress:
|
|
24
|
+
programAddress: programAddress,
|
|
22
25
|
seeds: [
|
|
23
26
|
seedToBytes(PROFILE_FACTION_SEED),
|
|
24
27
|
getAddressEncoder().encode(profile)
|
|
@@ -30,16 +33,21 @@ export async function deriveProfileFaction(profile) {
|
|
|
30
33
|
* Helper function to derive the sage player profile
|
|
31
34
|
*
|
|
32
35
|
* @param borrowerProfile The borrower's profile address
|
|
33
|
-
* @param gameId The game ID (
|
|
36
|
+
* @param gameId The game ID (if not provided, uses network-specific default)
|
|
37
|
+
* @param config Optional configuration for network-specific constants
|
|
34
38
|
* @returns Promise that resolves to the derived sage player profile address
|
|
35
39
|
*/
|
|
36
|
-
export async function deriveSagePlayerProfile(borrowerProfile, gameId
|
|
40
|
+
export async function deriveSagePlayerProfile(borrowerProfile, gameId, config) {
|
|
41
|
+
const [programAddress, actualGameId] = await Promise.all([
|
|
42
|
+
getSageProgramAddress(config),
|
|
43
|
+
gameId || getSageGameId(config)
|
|
44
|
+
]);
|
|
37
45
|
const [address] = await getProgramDerivedAddress({
|
|
38
|
-
programAddress:
|
|
46
|
+
programAddress: programAddress,
|
|
39
47
|
seeds: [
|
|
40
48
|
seedToBytes(SAGE_PLAYER_PROFILE_SEED),
|
|
41
49
|
getAddressEncoder().encode(borrowerProfile),
|
|
42
|
-
getAddressEncoder().encode(
|
|
50
|
+
getAddressEncoder().encode(actualGameId)
|
|
43
51
|
]
|
|
44
52
|
});
|
|
45
53
|
return address;
|
|
@@ -48,10 +56,11 @@ export async function deriveSagePlayerProfile(borrowerProfile, gameId = DEFAULT_
|
|
|
48
56
|
* Helper function to derive the starbase address based on faction
|
|
49
57
|
*
|
|
50
58
|
* @param faction The faction (1/2/3 or 'mud'/'oni'/'ustur')
|
|
51
|
-
* @param gameId The game ID (
|
|
59
|
+
* @param gameId The game ID (if not provided, uses network-specific default)
|
|
60
|
+
* @param config Optional configuration for network-specific constants
|
|
52
61
|
* @returns Promise that resolves to the derived starbase address
|
|
53
62
|
*/
|
|
54
|
-
export async function deriveStarbase(faction, gameId
|
|
63
|
+
export async function deriveStarbase(faction, gameId, config) {
|
|
55
64
|
// Convert faction to string representation if it's a number
|
|
56
65
|
const factionName = typeof faction === 'number'
|
|
57
66
|
? FACTION_MAPPING[faction]
|
|
@@ -62,6 +71,11 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
|
|
|
62
71
|
}
|
|
63
72
|
// Get coordinates for the faction
|
|
64
73
|
const coords = FACTION_SPECIFIC_CSS[factionName];
|
|
74
|
+
// Get network-specific constants
|
|
75
|
+
const [programAddress, actualGameId] = await Promise.all([
|
|
76
|
+
getSageProgramAddress(config),
|
|
77
|
+
gameId || getSageGameId(config)
|
|
78
|
+
]);
|
|
65
79
|
// Convert coordinates to bytes (little-endian, two's complement)
|
|
66
80
|
const xCoord = new DataView(new ArrayBuffer(8));
|
|
67
81
|
const yCoord = new DataView(new ArrayBuffer(8));
|
|
@@ -71,10 +85,10 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
|
|
|
71
85
|
const xBytes = new Uint8Array(xCoord.buffer);
|
|
72
86
|
const yBytes = new Uint8Array(yCoord.buffer);
|
|
73
87
|
const [address] = await getProgramDerivedAddress({
|
|
74
|
-
programAddress:
|
|
88
|
+
programAddress: programAddress,
|
|
75
89
|
seeds: [
|
|
76
90
|
seedToBytes(STARBASE_SEED),
|
|
77
|
-
getAddressEncoder().encode(
|
|
91
|
+
getAddressEncoder().encode(actualGameId),
|
|
78
92
|
getBytesEncoder().encode(xBytes),
|
|
79
93
|
getBytesEncoder().encode(yBytes)
|
|
80
94
|
]
|
|
@@ -87,15 +101,18 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
|
|
|
87
101
|
* @param sagePlayerProfile The sage player profile address
|
|
88
102
|
* @param starbase The starbase address
|
|
89
103
|
* @param starbaseSeqId The starbase sequence ID (defaults to 0)
|
|
104
|
+
* @param config Optional configuration for network-specific constants
|
|
90
105
|
* @returns Promise that resolves to the derived starbase player address
|
|
91
106
|
*/
|
|
92
|
-
export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId = 0) {
|
|
107
|
+
export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId = 0, config) {
|
|
108
|
+
// Get network-specific SAGE program address
|
|
109
|
+
const programAddress = await getSageProgramAddress(config);
|
|
93
110
|
// Convert sequence ID to bytes (little-endian uint16)
|
|
94
111
|
const seqIdView = new DataView(new ArrayBuffer(2));
|
|
95
112
|
seqIdView.setUint16(0, starbaseSeqId, true);
|
|
96
113
|
const seqIdBytes = new Uint8Array(seqIdView.buffer);
|
|
97
114
|
const [address] = await getProgramDerivedAddress({
|
|
98
|
-
programAddress:
|
|
115
|
+
programAddress: programAddress,
|
|
99
116
|
seeds: [
|
|
100
117
|
seedToBytes(STARBASE_PLAYER_SEED),
|
|
101
118
|
getAddressEncoder().encode(starbase),
|
|
@@ -110,19 +127,22 @@ export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbase
|
|
|
110
127
|
*
|
|
111
128
|
* @param profile The borrower's profile address
|
|
112
129
|
* @param faction The faction (1/2/3 or 'mud'/'oni'/'ustur')
|
|
113
|
-
* @param gameId The game ID (
|
|
130
|
+
* @param gameId The game ID (if not provided, uses network-specific default)
|
|
114
131
|
* @param starbaseSeqId The starbase sequence ID (defaults to 0)
|
|
132
|
+
* @param config Optional configuration for network-specific constants
|
|
115
133
|
* @returns Promise that resolves to the three derived addresses
|
|
116
134
|
*/
|
|
117
|
-
export async function deriveGameAccounts(profile, faction, gameId
|
|
135
|
+
export async function deriveGameAccounts(profile, faction, gameId, starbaseSeqId = 0, config) {
|
|
136
|
+
// Get the actual game ID to use
|
|
137
|
+
const actualGameId = gameId || await getSageGameId(config);
|
|
118
138
|
// Derive the three accounts in parallel
|
|
119
139
|
const [profileFaction, sagePlayerProfile, starbase] = await Promise.all([
|
|
120
|
-
deriveProfileFaction(profile),
|
|
121
|
-
deriveSagePlayerProfile(profile,
|
|
122
|
-
deriveStarbase(faction,
|
|
140
|
+
deriveProfileFaction(profile, config),
|
|
141
|
+
deriveSagePlayerProfile(profile, actualGameId, config),
|
|
142
|
+
deriveStarbase(faction, actualGameId, config)
|
|
123
143
|
]);
|
|
124
144
|
// Derive starbasePlayer using the results from above
|
|
125
|
-
const starbasePlayer = await deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId);
|
|
145
|
+
const starbasePlayer = await deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId, config);
|
|
126
146
|
return {
|
|
127
147
|
profileFaction,
|
|
128
148
|
starbase,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/utils/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/utils/profiles.ts"],"names":[],"mappings":"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"}
|