* fix: implements dynamic session list * chore: updates log msg --------- Co-authored-by: Gancho Radkov <ganchoradkov@gmail.com>
114 lines
2.4 KiB
TypeScript
114 lines
2.4 KiB
TypeScript
import { Verify, SessionTypes } from '@walletconnect/types'
|
|
import { proxy } from 'valtio'
|
|
|
|
/**
|
|
* Types
|
|
*/
|
|
interface State {
|
|
testNets: boolean
|
|
account: number
|
|
eip155Address: string
|
|
cosmosAddress: string
|
|
solanaAddress: string
|
|
polkadotAddress: string
|
|
nearAddress: string
|
|
multiversxAddress: string
|
|
tronAddress: string
|
|
tezosAddress: string
|
|
kadenaAddress: string
|
|
relayerRegionURL: string
|
|
activeChainId: string
|
|
currentRequestVerifyContext?: Verify.Context
|
|
sessions: SessionTypes.Struct[]
|
|
}
|
|
|
|
/**
|
|
* State
|
|
*/
|
|
const state = proxy<State>({
|
|
testNets: typeof localStorage !== 'undefined' ? Boolean(localStorage.getItem('TEST_NETS')) : true,
|
|
account: 0,
|
|
activeChainId: '1',
|
|
eip155Address: '',
|
|
cosmosAddress: '',
|
|
solanaAddress: '',
|
|
polkadotAddress: '',
|
|
nearAddress: '',
|
|
multiversxAddress: '',
|
|
tronAddress: '',
|
|
tezosAddress: '',
|
|
kadenaAddress: '',
|
|
relayerRegionURL: '',
|
|
sessions: []
|
|
})
|
|
|
|
/**
|
|
* Store / Actions
|
|
*/
|
|
const SettingsStore = {
|
|
state,
|
|
|
|
setAccount(value: number) {
|
|
state.account = value
|
|
},
|
|
|
|
setEIP155Address(eip155Address: string) {
|
|
state.eip155Address = eip155Address
|
|
},
|
|
|
|
setCosmosAddress(cosmosAddresses: string) {
|
|
state.cosmosAddress = cosmosAddresses
|
|
},
|
|
|
|
setSolanaAddress(solanaAddress: string) {
|
|
state.solanaAddress = solanaAddress
|
|
},
|
|
|
|
setPolkadotAddress(polkadotAddress: string) {
|
|
state.polkadotAddress = polkadotAddress
|
|
},
|
|
setNearAddress(nearAddress: string) {
|
|
state.nearAddress = nearAddress
|
|
},
|
|
setKadenaAddress(kadenaAddress: string) {
|
|
state.kadenaAddress = kadenaAddress
|
|
},
|
|
setRelayerRegionURL(relayerRegionURL: string) {
|
|
state.relayerRegionURL = relayerRegionURL
|
|
},
|
|
|
|
setMultiversxAddress(multiversxAddress: string) {
|
|
state.multiversxAddress = multiversxAddress
|
|
},
|
|
|
|
setTronAddress(tronAddress: string) {
|
|
state.tronAddress = tronAddress
|
|
},
|
|
|
|
setTezosAddress(tezosAddress: string) {
|
|
state.tezosAddress = tezosAddress
|
|
},
|
|
|
|
setActiveChainId(value: string) {
|
|
state.activeChainId = value
|
|
},
|
|
|
|
setCurrentRequestVerifyContext(context: Verify.Context) {
|
|
state.currentRequestVerifyContext = context
|
|
},
|
|
setSessions(sessions: SessionTypes.Struct[]) {
|
|
state.sessions = sessions
|
|
},
|
|
|
|
toggleTestNets() {
|
|
state.testNets = !state.testNets
|
|
if (state.testNets) {
|
|
localStorage.setItem('TEST_NETS', 'YES')
|
|
} else {
|
|
localStorage.removeItem('TEST_NETS')
|
|
}
|
|
}
|
|
}
|
|
|
|
export default SettingsStore
|