diff --git a/packages/website/src/features/Packages/Function.tsx b/packages/website/src/features/Packages/Function.tsx
index 9706e227d..01f35632e 100644
--- a/packages/website/src/features/Packages/Function.tsx
+++ b/packages/website/src/features/Packages/Function.tsx
@@ -587,8 +587,8 @@ export const Function: FC<{
)}
)}
diff --git a/packages/website/src/features/Packages/FunctionOutput.tsx b/packages/website/src/features/Packages/FunctionOutput.tsx
index 13817020a..887772ff2 100644
--- a/packages/website/src/features/Packages/FunctionOutput.tsx
+++ b/packages/website/src/features/Packages/FunctionOutput.tsx
@@ -6,67 +6,77 @@ import { InfoOutlineIcon } from '@chakra-ui/icons';
import { Tooltip } from '@chakra-ui/react';
import { formatEther } from 'viem';
-export const FunctionOutput: FC<{
- output: AbiParameter | readonly AbiParameter[];
- result: any;
-}> = ({ output, result }) => {
- const isArrayOutput = (
- value: AbiParameter | readonly AbiParameter[]
- ): value is readonly AbiParameter[] => isArray(value);
+const isArrayOutput = (
+ value: AbiParameter | readonly AbiParameter[]
+): value is readonly AbiParameter[] => isArray(value);
- const hasComponents = (
- item: AbiParameter
- ): item is AbiParameter & { components: readonly AbiParameter[] } => {
- return 'components' in item && isArray(item.components);
- };
+const hasComponentsKey = (
+ item: AbiParameter
+): item is AbiParameter & { components: readonly AbiParameter[] } => {
+ return 'components' in item && isArray(item.components);
+};
- const ItemLabel: FC<{ name: string; type: string }> = ({ name, type }) => (
-
- {name?.length ? (
-
- {name}
-
- ) : (
- ''
- )}
-
- {type}
+const ItemLabel: FC<{ name: string; type: string }> = ({ name, type }) => (
+
+ {name?.length ? (
+
+ {name}
-
- );
+ ) : (
+ ''
+ )}
+
+ {type}
+
+
+);
+export const FunctionOutput: FC<{
+ abiParameters: AbiParameter | readonly AbiParameter[];
+ methodResult: any;
+}> = ({ abiParameters, methodResult }) => {
const renderOutput = (
- item: AbiParameter,
+ abiParameter: AbiParameter,
value: { [key: string]: any },
index?: number
) => {
- if (item.type === 'tuple' && hasComponents(item) && value) {
+ if (
+ abiParameter.type === 'tuple' &&
+ hasComponentsKey(abiParameter) &&
+ value
+ ) {
return (
{Object.values(value).map((component: any, resIdx: number) => {
return (
);
})}
);
- } else if (item.type === 'tuple[]' && hasComponents(item) && value) {
+ } else if (
+ abiParameter.type === 'tuple[]' &&
+ hasComponentsKey(abiParameter) &&
+ value
+ ) {
return isArray(value)
? value.map((tupleItem, tupleIndex) => (
tuple[{tupleIndex}]
- {item.components.map(
+ {abiParameter.components.map(
(component: AbiParameter, compIdx: number) => (
)
)}
@@ -74,8 +84,8 @@ export const FunctionOutput: FC<{
))
: null;
} else {
- if (isObject(value) && item.name && item.name in value) {
- const outputValue = value[item.name];
+ if (isObject(value) && abiParameter.name && abiParameter.name in value) {
+ const outputValue = value[abiParameter.name];
return (
);
} else if (isArray(value)) {
- if (item.type === 'address[]') {
+ if (abiParameter.type === 'address[]') {
return (
{value.map((val, idx) => (
@@ -118,14 +128,15 @@ export const FunctionOutput: FC<{
gap={2}
justifyItems="center"
py={2}
- data-tooltip-id={`${item.name}${item.type}`}
+ data-tooltip-id={`${abiParameter.name}${abiParameter.type}`}
data-tooltip-float
>
- {(item.type.includes('int128') || item.type.includes('int256')) &&
- result ? (
+ {(abiParameter.type.includes('int128') ||
+ abiParameter.type.includes('int256')) &&
+ methodResult ? (
<>
@@ -134,14 +145,18 @@ export const FunctionOutput: FC<{
color="whiteAlpha.900"
verticalAlign="center"
>
- {result !== null || undefined ? String(result) : '---'}
+ {methodResult !== null || undefined
+ ? String(methodResult)
+ : '---'}
>
) : (
- {result !== null || undefined ? String(result) : '---'}
+ {methodResult !== null || undefined
+ ? String(methodResult)
+ : '---'}
)}
@@ -152,7 +167,7 @@ export const FunctionOutput: FC<{
return (
<>
- {(output as Array).length == 0 && (
+ {(abiParameters as Array).length == 0 && (
This function does not return
@@ -160,20 +175,23 @@ export const FunctionOutput: FC<{
)}
- {isArrayOutput(output) ? (
- output.map((item, index) => (
+ {isArrayOutput(abiParameters) ? (
+ abiParameters.map((abiParameter, index) => (
-
- {renderOutput(item, result, index)}
+
+ {renderOutput(abiParameter, methodResult[index], index)}
))
) : (
- {renderOutput(output, result)}
+ {renderOutput(abiParameters, methodResult)}
)}
>