|
|
|
@ -1,6 +1,6 @@ |
|
|
|
|
import { ContractData } from '@remix-project/core-plugin' |
|
|
|
|
import { ContractList, DeployOptions, RunTabState } from '../types' |
|
|
|
|
import { ADD_INSTANCE, ADD_SAVED_INSTANCE, UPDATE_INSTANCES_BALANCE, ADD_PROVIDER, CLEAR_INSTANCES, CLEAR_SAVED_INSTANCES, CLEAR_RECORDER_COUNT, DISPLAY_NOTIFICATION, DISPLAY_POPUP_MESSAGE, FETCH_ACCOUNTS_LIST_FAILED, FETCH_ACCOUNTS_LIST_REQUEST, FETCH_ACCOUNTS_LIST_SUCCESS, FETCH_CONTRACT_LIST_FAILED, FETCH_CONTRACT_LIST_REQUEST, FETCH_CONTRACT_LIST_SUCCESS, FETCH_PROVIDER_LIST_FAILED, FETCH_PROVIDER_LIST_REQUEST, FETCH_PROVIDER_LIST_SUCCESS, HIDE_NOTIFICATION, HIDE_POPUP_MESSAGE, REMOVE_INSTANCE, REMOVE_PROVIDER, RESET_STATE, SET_BASE_FEE_PER_GAS, SET_CONFIRM_SETTINGS, SET_CURRENT_CONTRACT, SET_CURRENT_FILE, SET_DECODED_RESPONSE, SET_DEPLOY_OPTIONS, SET_EXECUTION_ENVIRONMENT, SET_EXTERNAL_WEB3_ENDPOINT, SET_GAS_LIMIT, SET_GAS_PRICE, SET_GAS_PRICE_STATUS, SET_IPFS_CHECKED_STATE, SET_LOAD_TYPE, SET_MATCH_PASSPHRASE, SET_MAX_FEE, SET_MAX_PRIORITY_FEE, SET_NETWORK_NAME, SET_PASSPHRASE, SET_PATH_TO_SCENARIO, SET_PERSONAL_MODE, SET_RECORDER_COUNT, SET_SELECTED_ACCOUNT, SET_SEND_UNIT, SET_SEND_VALUE, ADD_DEPLOY_OPTION, REMOVE_DEPLOY_OPTION, SET_REMIXD_ACTIVATED, FETCH_PROXY_DEPLOYMENTS, NEW_PROXY_DEPLOYMENT, RESET_PROXY_DEPLOYMENTS, EXTRACT_COMPILER_VERSION } from '../constants' |
|
|
|
|
import { ADD_INSTANCE, ADD_PINNED_INSTANCE, UPDATE_INSTANCES_BALANCE, ADD_PROVIDER, CLEAR_INSTANCES, CLEAR_PINNED_INSTANCES, CLEAR_RECORDER_COUNT, DISPLAY_NOTIFICATION, DISPLAY_POPUP_MESSAGE, FETCH_ACCOUNTS_LIST_FAILED, FETCH_ACCOUNTS_LIST_REQUEST, FETCH_ACCOUNTS_LIST_SUCCESS, FETCH_CONTRACT_LIST_FAILED, FETCH_CONTRACT_LIST_REQUEST, FETCH_CONTRACT_LIST_SUCCESS, FETCH_PROVIDER_LIST_FAILED, FETCH_PROVIDER_LIST_REQUEST, FETCH_PROVIDER_LIST_SUCCESS, HIDE_NOTIFICATION, HIDE_POPUP_MESSAGE, REMOVE_INSTANCE, REMOVE_PROVIDER, RESET_STATE, SET_BASE_FEE_PER_GAS, SET_CONFIRM_SETTINGS, SET_CURRENT_CONTRACT, SET_CURRENT_FILE, SET_DECODED_RESPONSE, SET_DEPLOY_OPTIONS, SET_EXECUTION_ENVIRONMENT, SET_EXTERNAL_WEB3_ENDPOINT, SET_GAS_LIMIT, SET_GAS_PRICE, SET_GAS_PRICE_STATUS, SET_IPFS_CHECKED_STATE, SET_LOAD_TYPE, SET_MATCH_PASSPHRASE, SET_MAX_FEE, SET_MAX_PRIORITY_FEE, SET_NETWORK_NAME, SET_PASSPHRASE, SET_PATH_TO_SCENARIO, SET_PERSONAL_MODE, SET_RECORDER_COUNT, SET_SELECTED_ACCOUNT, SET_SEND_UNIT, SET_SEND_VALUE, ADD_DEPLOY_OPTION, REMOVE_DEPLOY_OPTION, SET_REMIXD_ACTIVATED, FETCH_PROXY_DEPLOYMENTS, NEW_PROXY_DEPLOYMENT, RESET_PROXY_DEPLOYMENTS, EXTRACT_COMPILER_VERSION } from '../constants' |
|
|
|
|
|
|
|
|
|
declare const window: any |
|
|
|
|
interface Action { |
|
|
|
@ -63,7 +63,7 @@ export const runTabInitialState: RunTabState = { |
|
|
|
|
instanceList: [], |
|
|
|
|
error: null |
|
|
|
|
}, |
|
|
|
|
savedInstances: { |
|
|
|
|
pinnedInstances: { |
|
|
|
|
instanceList: [], |
|
|
|
|
error: null |
|
|
|
|
}, |
|
|
|
@ -491,13 +491,13 @@ export const runTabReducer = (state: RunTabState = runTabInitialState, action: A |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
case ADD_SAVED_INSTANCE: { |
|
|
|
|
case ADD_PINNED_INSTANCE: { |
|
|
|
|
const payload: { contractData: ContractData, address: string, name: string, abi?: any, pinnedAt: number, decodedResponse?: Record<number, any> } = action.payload |
|
|
|
|
return { |
|
|
|
|
...state, |
|
|
|
|
savedInstances: { |
|
|
|
|
...state.savedInstances, |
|
|
|
|
instanceList: [...state.savedInstances.instanceList, payload] |
|
|
|
|
pinnedInstances: { |
|
|
|
|
...state.pinnedInstances, |
|
|
|
|
instanceList: [...state.pinnedInstances.instanceList, payload] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -515,25 +515,25 @@ export const runTabReducer = (state: RunTabState = runTabInitialState, action: A |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
case REMOVE_INSTANCE: { |
|
|
|
|
const payload: { index: number, isSavedContract: boolean, shouldDelete: boolean } = action.payload |
|
|
|
|
const payload: { index: number, isPinnedContract: boolean, shouldDelete: boolean } = action.payload |
|
|
|
|
|
|
|
|
|
if (payload.isSavedContract) { |
|
|
|
|
if (payload.isPinnedContract) { |
|
|
|
|
if (payload.shouldDelete) return { |
|
|
|
|
...state, |
|
|
|
|
savedInstances: { |
|
|
|
|
...state.savedInstances, |
|
|
|
|
instanceList: state.savedInstances.instanceList.filter((_, index) => index !== payload.index) |
|
|
|
|
pinnedInstances: { |
|
|
|
|
...state.pinnedInstances, |
|
|
|
|
instanceList: state.pinnedInstances.instanceList.filter((_, index) => index !== payload.index) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else return { |
|
|
|
|
...state, |
|
|
|
|
savedInstances: { |
|
|
|
|
...state.savedInstances, |
|
|
|
|
instanceList: state.savedInstances.instanceList.filter((_, index) => index !== payload.index) |
|
|
|
|
pinnedInstances: { |
|
|
|
|
...state.pinnedInstances, |
|
|
|
|
instanceList: state.pinnedInstances.instanceList.filter((_, index) => index !== payload.index) |
|
|
|
|
}, |
|
|
|
|
instances: { |
|
|
|
|
...state.instances, |
|
|
|
|
instanceList: [...state.instances.instanceList, state.savedInstances.instanceList[payload.index]] |
|
|
|
|
instanceList: [...state.instances.instanceList, state.pinnedInstances.instanceList[payload.index]] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else return { |
|
|
|
@ -555,10 +555,10 @@ export const runTabReducer = (state: RunTabState = runTabInitialState, action: A |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
case CLEAR_SAVED_INSTANCES: { |
|
|
|
|
case CLEAR_PINNED_INSTANCES: { |
|
|
|
|
return { |
|
|
|
|
...state, |
|
|
|
|
savedInstances: { |
|
|
|
|
pinnedInstances: { |
|
|
|
|
instanceList: [], |
|
|
|
|
error: null |
|
|
|
|
} |
|
|
|
@ -566,13 +566,13 @@ export const runTabReducer = (state: RunTabState = runTabInitialState, action: A |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
case SET_DECODED_RESPONSE: { |
|
|
|
|
const payload: { instanceIndex: number, funcIndex: number, response: any, isSavedContract: boolean } = action.payload |
|
|
|
|
if (action.payload.isSavedContract) |
|
|
|
|
const payload: { instanceIndex: number, funcIndex: number, response: any, isPinnedContract: boolean } = action.payload |
|
|
|
|
if (action.payload.isPinnedContract) |
|
|
|
|
return { |
|
|
|
|
...state, |
|
|
|
|
savedInstances: { |
|
|
|
|
...state.savedInstances, |
|
|
|
|
instanceList: state.savedInstances.instanceList.map((instance, index) => { |
|
|
|
|
pinnedInstances: { |
|
|
|
|
...state.pinnedInstances, |
|
|
|
|
instanceList: state.pinnedInstances.instanceList.map((instance, index) => { |
|
|
|
|
if (payload.instanceIndex === index) instance.decodedResponse[payload.funcIndex] = payload.response |
|
|
|
|
return instance |
|
|
|
|
}) |
|
|
|
|