display module tx information
This commit is contained in:
parent
6442b52562
commit
eab41bd314
|
@ -43,6 +43,8 @@ export const SAFE_METHODS_NAMES = {
|
||||||
CHANGE_THRESHOLD: 'changeThreshold',
|
CHANGE_THRESHOLD: 'changeThreshold',
|
||||||
REMOVE_OWNER: 'removeOwner',
|
REMOVE_OWNER: 'removeOwner',
|
||||||
SWAP_OWNER: 'swapOwner',
|
SWAP_OWNER: 'swapOwner',
|
||||||
|
ENABLE_MODULE: 'enableModule',
|
||||||
|
DISABLE_MODULE: 'disableModule',
|
||||||
}
|
}
|
||||||
|
|
||||||
const METHOD_TO_ID = {
|
const METHOD_TO_ID = {
|
||||||
|
@ -50,6 +52,8 @@ const METHOD_TO_ID = {
|
||||||
'0x0d582f13': SAFE_METHODS_NAMES.ADD_OWNER_WITH_THRESHOLD,
|
'0x0d582f13': SAFE_METHODS_NAMES.ADD_OWNER_WITH_THRESHOLD,
|
||||||
'0xf8dc5dd9': SAFE_METHODS_NAMES.REMOVE_OWNER,
|
'0xf8dc5dd9': SAFE_METHODS_NAMES.REMOVE_OWNER,
|
||||||
'0x694e80c3': SAFE_METHODS_NAMES.CHANGE_THRESHOLD,
|
'0x694e80c3': SAFE_METHODS_NAMES.CHANGE_THRESHOLD,
|
||||||
|
'0x610b5925': SAFE_METHODS_NAMES.ENABLE_MODULE,
|
||||||
|
'0xe009cfde': SAFE_METHODS_NAMES.DISABLE_MODULE,
|
||||||
}
|
}
|
||||||
|
|
||||||
type SafeMethods = typeof SAFE_METHODS_NAMES[keyof typeof SAFE_METHODS_NAMES]
|
type SafeMethods = typeof SAFE_METHODS_NAMES[keyof typeof SAFE_METHODS_NAMES]
|
||||||
|
@ -127,6 +131,29 @@ export const decodeParamsFromSafeMethod = (data: string): DataDecoded | null =>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// enableModule
|
||||||
|
case '0x610b5925': {
|
||||||
|
const decodedParameters = web3.eth.abi.decodeParameters(['address'], params)
|
||||||
|
return {
|
||||||
|
method: METHOD_TO_ID[methodId],
|
||||||
|
parameters: [
|
||||||
|
{ name: 'module', type: '', value: decodedParameters[0] },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// disableModule
|
||||||
|
case '0xe009cfde': {
|
||||||
|
const decodedParameters = web3.eth.abi.decodeParameters(['address', 'address'], params)
|
||||||
|
return {
|
||||||
|
method: METHOD_TO_ID[methodId],
|
||||||
|
parameters: [
|
||||||
|
{ name: 'prevModule', type: '', value: decodedParameters[0] },
|
||||||
|
{ name: 'module', type: '', value: decodedParameters[1] },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,8 @@ export const TRANSACTIONS_DESC_CHANGE_THRESHOLD_TEST_ID = 'tx-description-change
|
||||||
export const TRANSACTIONS_DESC_SEND_TEST_ID = 'tx-description-send'
|
export const TRANSACTIONS_DESC_SEND_TEST_ID = 'tx-description-send'
|
||||||
export const TRANSACTIONS_DESC_CUSTOM_VALUE_TEST_ID = 'tx-description-custom-value'
|
export const TRANSACTIONS_DESC_CUSTOM_VALUE_TEST_ID = 'tx-description-custom-value'
|
||||||
export const TRANSACTIONS_DESC_CUSTOM_DATA_TEST_ID = 'tx-description-custom-data'
|
export const TRANSACTIONS_DESC_CUSTOM_DATA_TEST_ID = 'tx-description-custom-data'
|
||||||
|
export const TRANSACTIONS_DESC_ADD_MODULE_TEST_ID = 'tx-description-add-module'
|
||||||
|
export const TRANSACTIONS_DESC_REMOVE_MODULE_TEST_ID = 'tx-description-remove-module'
|
||||||
export const TRANSACTIONS_DESC_NO_DATA = 'tx-description-no-data'
|
export const TRANSACTIONS_DESC_NO_DATA = 'tx-description-no-data'
|
||||||
|
|
||||||
export const styles = () => ({
|
export const styles = () => ({
|
||||||
|
@ -96,7 +98,21 @@ const NewThreshold = ({ newThreshold }) => (
|
||||||
</Block>
|
</Block>
|
||||||
)
|
)
|
||||||
|
|
||||||
const SettingsDescription = ({ action, addedOwner, newThreshold, removedOwner }) => {
|
const AddModule = ({ module }) => (
|
||||||
|
<Block data-testid={TRANSACTIONS_DESC_ADD_MODULE_TEST_ID}>
|
||||||
|
<Bold>Add module:</Bold>
|
||||||
|
<EtherscanLink value={module} knownAddress={false} type="address" />
|
||||||
|
</Block>
|
||||||
|
)
|
||||||
|
|
||||||
|
const RemoveModule = ({ module }) => (
|
||||||
|
<Block data-testid={TRANSACTIONS_DESC_REMOVE_MODULE_TEST_ID}>
|
||||||
|
<Bold>Remove module:</Bold>
|
||||||
|
<EtherscanLink value={module} knownAddress={false} type="address" />
|
||||||
|
</Block>
|
||||||
|
)
|
||||||
|
|
||||||
|
const SettingsDescription = ({ action, addedOwner, newThreshold, removedOwner, module }) => {
|
||||||
if (action === SAFE_METHODS_NAMES.REMOVE_OWNER && removedOwner && newThreshold) {
|
if (action === SAFE_METHODS_NAMES.REMOVE_OWNER && removedOwner && newThreshold) {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
@ -128,6 +144,14 @@ const SettingsDescription = ({ action, addedOwner, newThreshold, removedOwner })
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (action === SAFE_METHODS_NAMES.ENABLE_MODULE && module) {
|
||||||
|
return <AddModule module={module} />
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action === SAFE_METHODS_NAMES.DISABLE_MODULE && module) {
|
||||||
|
return <RemoveModule module={module} />
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Block data-testid={TRANSACTIONS_DESC_NO_DATA}>
|
<Block data-testid={TRANSACTIONS_DESC_NO_DATA}>
|
||||||
<Bold>No data available for current transaction</Bold>
|
<Bold>No data available for current transaction</Bold>
|
||||||
|
@ -207,6 +231,7 @@ const TxDescription = ({ classes, tx }) => {
|
||||||
customTx,
|
customTx,
|
||||||
data,
|
data,
|
||||||
modifySettingsTx,
|
modifySettingsTx,
|
||||||
|
module,
|
||||||
newThreshold,
|
newThreshold,
|
||||||
recipient,
|
recipient,
|
||||||
removedOwner,
|
removedOwner,
|
||||||
|
@ -221,6 +246,7 @@ const TxDescription = ({ classes, tx }) => {
|
||||||
addedOwner={addedOwner}
|
addedOwner={addedOwner}
|
||||||
newThreshold={newThreshold}
|
newThreshold={newThreshold}
|
||||||
removedOwner={removedOwner}
|
removedOwner={removedOwner}
|
||||||
|
module={module}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{!upgradeTx && customTx && (
|
{!upgradeTx && customTx && (
|
||||||
|
|
|
@ -47,6 +47,14 @@ export const getTxData = (tx) => {
|
||||||
txData.action = SAFE_METHODS_NAMES.SWAP_OWNER
|
txData.action = SAFE_METHODS_NAMES.SWAP_OWNER
|
||||||
txData.removedOwner = oldOwner
|
txData.removedOwner = oldOwner
|
||||||
txData.addedOwner = newOwner
|
txData.addedOwner = newOwner
|
||||||
|
} else if (tx.decodedParams[SAFE_METHODS_NAMES.ENABLE_MODULE]) {
|
||||||
|
const { module } = tx.decodedParams[SAFE_METHODS_NAMES.ENABLE_MODULE]
|
||||||
|
txData.action = SAFE_METHODS_NAMES.ENABLE_MODULE
|
||||||
|
txData.module = module
|
||||||
|
} else if (tx.decodedParams[SAFE_METHODS_NAMES.DISABLE_MODULE]) {
|
||||||
|
const { module } = tx.decodedParams[SAFE_METHODS_NAMES.DISABLE_MODULE]
|
||||||
|
txData.action = SAFE_METHODS_NAMES.DISABLE_MODULE
|
||||||
|
txData.module = module
|
||||||
}
|
}
|
||||||
} else if (tx.multiSendTx) {
|
} else if (tx.multiSendTx) {
|
||||||
txData.recipient = tx.recipient
|
txData.recipient = tx.recipient
|
||||||
|
|
Loading…
Reference in New Issue