Skip to content

feat(explorer): improve transaction blocks on the address account pages - #259

Merged
VmMad merged 6 commits into
feat/improve-the-address-account-pagefrom
feat/improve-transaction-blocks-on-the-address-account-pages
Jul 28, 2026
Merged

feat(explorer): improve transaction blocks on the address account pages#259
VmMad merged 6 commits into
feat/improve-the-address-account-pagefrom
feat/improve-transaction-blocks-on-the-address-account-pages

Conversation

@Juligs

@Juligs Juligs commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

fixes #250

@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

You don't have permission to create a Preview Deployment for this Vercel project: rebased-explorer.

View Documentation: https://vercel.com/docs/accounts/team-members-and-roles

@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

4 Skipped Deployments
Project Deployment Actions Updated (UTC)
iota-evm-bridge Skipped Skipped Jul 17, 2026 3:40pm
iota-multisig-toolkit Skipped Skipped Jul 17, 2026 3:40pm
iota-names Skipped Skipped Jul 17, 2026 3:40pm
wallet-dashboard Skipped Skipped Jul 17, 2026 3:40pm

Request Review

@vercel
vercel Bot temporarily deployed to Preview – iota-multisig-toolkit July 17, 2026 11:21 Inactive
@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

You don't have permission to create a Preview Deployment for this Vercel project: iota-names.

View Documentation: https://vercel.com/docs/accounts/team-members-and-roles

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

You don't have permission to create a Preview Deployment for this Vercel project: apps-ui-kit.

View Documentation: https://vercel.com/docs/accounts/team-members-and-roles

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

You don't have permission to create a Preview Deployment for this Vercel project: iota-evm-bridge.

View Documentation: https://vercel.com/docs/accounts/team-members-and-roles

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

You don't have permission to create a Preview Deployment for this Vercel project: wallet-dashboard.

View Documentation: https://vercel.com/docs/accounts/team-members-and-roles

@vercel
vercel Bot temporarily deployed to Preview – iota-names July 17, 2026 15:31 Inactive
@vercel
vercel Bot temporarily deployed to Preview – iota-multisig-toolkit July 17, 2026 15:31 Inactive
@vercel
vercel Bot temporarily deployed to Preview – wallet-dashboard July 17, 2026 15:31 Inactive
@vercel
vercel Bot temporarily deployed to Preview – iota-evm-bridge July 17, 2026 15:31 Inactive
@vercel
vercel Bot temporarily deployed to Preview – iota-multisig-toolkit July 17, 2026 15:40 Inactive
@vercel
vercel Bot temporarily deployed to Preview – iota-evm-bridge July 17, 2026 15:40 Inactive
@vercel
vercel Bot temporarily deployed to Preview – wallet-dashboard July 17, 2026 15:40 Inactive
@vercel
vercel Bot temporarily deployed to Preview – iota-names July 17, 2026 15:40 Inactive
@Juligs Juligs changed the title feat(explorer): improve tramsaction blocks on the address account pages feat(explorer): improve transaction blocks on the address account pages Jul 17, 2026
@Juligs
Juligs marked this pull request as ready for review July 17, 2026 15:46
@Juligs
Juligs requested a review from a team as a code owner July 17, 2026 15:46
@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

You don't have permission to create a Preview Deployment for this Vercel project: iota-multisig-toolkit.

View Documentation: https://vercel.com/docs/accounts/team-members-and-roles

@evavirseda evavirseda left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i would probably move the Activity tab to the second position🙏 and the e2e tests are failing

Comment thread apps/explorer/src/components/transactions/TransactionsForAddress.tsx Outdated
Comment thread apps/explorer/src/lib/ui/utils/generateActivityTableColumns.tsx Outdated
Comment thread apps/explorer/src/components/transactions/TransactionsForAddress.tsx Outdated
Comment thread apps/explorer/src/components/transactions/TransactionsForAddress.tsx Outdated
Comment thread apps/explorer/src/components/transactions/TransactionsForAddress.tsx Outdated
Comment thread apps/explorer/src/lib/ui/utils/generateTransactionsTableColumns.tsx
Comment thread apps/explorer/src/lib/ui/utils/generateTransactionsTableColumns.tsx
Comment thread apps/explorer/src/lib/ui/utils/generateTransactionsTableColumns.tsx
Comment thread apps/explorer/src/lib/ui/utils/generateTransactionsTableColumns.tsx
Comment thread apps/explorer/src/lib/ui/utils/generateTransactionsTableColumns.tsx
@Juligs
Juligs requested a review from evavirseda July 27, 2026 08:24

@evavirseda evavirseda left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changeset in the uikit 🙏

Comment thread apps/explorer/src/lib/ui/utils/generateActivityTableColumns.tsx
@Juligs
Juligs requested a review from evavirseda July 27, 2026 18:04

@evavirseda evavirseda left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

last comments 🙏

Comment on lines 57 to 59
const isSender = txn.transaction?.data.sender === address;
return direction === TransactionDirection.Sent ? isSender : !isSender;
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Send is showing a positive balance change, and its a bit confusing 🙈

Image
Suggested change
const isSender = txn.transaction?.data.sender === address;
return direction === TransactionDirection.Sent ? isSender : !isSender;
}
const balanceChange = getIotaBalanceChangeForAddress(txn, address);
const isReceived =
balanceChange && balanceChange.amount !== '0'
? Number(balanceChange.amount) > 0
: txn.transaction?.data.sender !== address;
return direction === TransactionDirection.Sent ? !isReceived : isReceived;
}

{typeLabel}
</span>
<span className="text-body-sm text-iota-primary-30 dark:text-iota-primary-80">
{functionName ?? formatDigest(digest)}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removing the digest from some transactions isnt a good idea 🙈 because users lose the ability to click directly and navigate to the transaction

what i was suggesting (#259 (comment) and in slack) was simply adding an additional column for the function, rather than replacing the digest

Suggested change
{functionName ?? formatDigest(digest)}
{formatDigest(digest)}

Comment on lines +89 to +104
/**
* Name of the last Move function called in a programmable transaction block, if any (e.g.
* `request_add_stake`). Transactions with no Move call (plain transfers) have none.
*/
export function getTransactionFunctionName(txn: IotaTransactionBlockResponse): string | undefined {
const transaction = txn.transaction?.data.transaction;
if (transaction?.kind !== 'ProgrammableTransaction') {
return undefined;
}
const moveCalls = transaction.transactions
.filter(
(command): command is { MoveCall: MoveCallIotaTransaction } => 'MoveCall' in command,
)
.map((command) => command.MoveCall);
return moveCalls.at(-1)?.function;
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/**
* Name of the last Move function called in a programmable transaction block, if any (e.g.
* `request_add_stake`). Transactions with no Move call (plain transfers) have none.
*/
export function getTransactionFunctionName(txn: IotaTransactionBlockResponse): string | undefined {
const transaction = txn.transaction?.data.transaction;
if (transaction?.kind !== 'ProgrammableTransaction') {
return undefined;
}
const moveCalls = transaction.transactions
.filter(
(command): command is { MoveCall: MoveCallIotaTransaction } => 'MoveCall' in command,
)
.map((command) => command.MoveCall);
return moveCalls.at(-1)?.function;
}
/**
* The last Move call in a programmable transaction block, if any (e.g. `request_add_stake` on
* the staking package). Transactions with no Move call (plain transfers) have none.
*/
export function getLastMoveCall(
txn: IotaTransactionBlockResponse,
): MoveCallIotaTransaction | undefined {
const transaction = txn.transaction?.data.transaction;
if (transaction?.kind !== 'ProgrammableTransaction') {
return undefined;
}
const moveCalls = transaction.transactions
.filter(
(command): command is { MoveCall: MoveCallIotaTransaction } => 'MoveCall' in command,
)
.map((command) => command.MoveCall);
return moveCalls.at(-1);
}

</span>
<span className="text-body-sm text-iota-primary-30 dark:text-iota-primary-80">
{formatDigest(digest)}
{functionName ?? formatDigest(digest)}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
{functionName ?? formatDigest(digest)}
{formatDigest(digest)}

</TableCellText>
</TableCellBase>
);
},

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image
Suggested change
},
{
header: 'Function',
accessorKey: 'function',
cell: ({ row }) => {
const kind = row.original.transaction?.data.transaction.kind;
const kindLabel = kind === 'ProgrammableTransaction' ? 'Programmable Tx' : '--';
const moveCall = getLastMoveCall(row.original);
return (
<TableCellBase>
<div className="flex flex-col">
<span className="text-label-lg text-iota-neutral-40 dark:text-iota-neutral-60">
{kindLabel}
</span>
{moveCall && (
<ObjectLink
objectId={`${moveCall.package}?module=${moveCall.module}`}
copyText={moveCall.package}
showAddressAlias={false}
label={moveCall.function}
className="text-body-sm"
/>
)}
</div>
</TableCellBase>
);
},
},

@Juligs
Juligs requested a review from evavirseda July 28, 2026 09:59
@github-actions
github-actions Bot temporarily deployed to Preview – wallet-dashboard July 28, 2026 14:58 Inactive
@github-actions
github-actions Bot temporarily deployed to Preview – explorer July 28, 2026 14:58 Inactive
@github-actions
github-actions Bot temporarily deployed to Preview – names-dapp July 28, 2026 14:58 Inactive
@github-actions
github-actions Bot temporarily deployed to Preview – ui-kit July 28, 2026 14:58 Inactive
@github-actions
github-actions Bot temporarily deployed to Preview – evm-bridge July 28, 2026 14:58 Inactive
@github-actions

Copy link
Copy Markdown

This pull request has been deployed to Vercel.

Latest commit: d572202
✅ Preview: https://apps-ui-fg9m491l1-iota1.vercel.app
🔍 Inspect: https://vercel.com/iota/apps-ui-kit/FQTg9AvuUtpVFVdVSsNmB5kwfPLj

View Workflow Logs

@github-actions

Copy link
Copy Markdown

This pull request has been deployed to Vercel.

Latest commit: d572202
✅ Preview: https://iota-evm-bridge-1fu0mflhp-iota1.vercel.app
🔍 Inspect: https://vercel.com/iota/iota-evm-bridge/3zBTu5cANawKk1QdC5c13YryN8tV

View Workflow Logs

@github-actions

Copy link
Copy Markdown

This pull request has been deployed to Vercel.

Latest commit: d572202
✅ Preview: https://wallet-dashboard-8upd5it4m-iota1.vercel.app
🔍 Inspect: https://vercel.com/iota/wallet-dashboard/GuNKmrQmqJGXae6eq21yBGD5VqV4

View Workflow Logs

@github-actions

Copy link
Copy Markdown

This pull request has been deployed to Vercel.

Latest commit: d572202
✅ Preview: https://iota-names-ljjg3fw2b-iota1.vercel.app
🔍 Inspect: https://vercel.com/iota/iota-names/EYX5xNkuHRmSavv6bqckTxbwsGnp

View Workflow Logs

@VmMad
VmMad force-pushed the feat/improve-transaction-blocks-on-the-address-account-pages branch from d572202 to c78f585 Compare July 28, 2026 16:41
@github-actions
github-actions Bot temporarily deployed to Preview – explorer July 28, 2026 16:43 Inactive
@github-actions

Copy link
Copy Markdown

This pull request has been deployed to Vercel.

Latest commit: c78f585
✅ Preview: https://rebased-explorer-r53woccug-iota1.vercel.app
🔍 Inspect: https://vercel.com/iota/rebased-explorer/CJyYrsfdSxos7rJyfsWXhBPSmxKt

View Workflow Logs

@VmMad
VmMad merged commit bf352b1 into develop Jul 28, 2026
18 of 22 checks passed
@VmMad
VmMad deleted the feat/improve-transaction-blocks-on-the-address-account-pages branch July 28, 2026 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve the transaction blocks section on the address / account pages

3 participants