Skip to content

feat: add IDL interact tab#779

Merged
Woody4618 merged 22 commits intosolana-foundation:masterfrom
hoodieshq:development-feat-interactive-idl-ui-part-6
Dec 19, 2025
Merged

feat: add IDL interact tab#779
Woody4618 merged 22 commits intosolana-foundation:masterfrom
hoodieshq:development-feat-interactive-idl-ui-part-6

Conversation

@askov
Copy link
Copy Markdown
Contributor

@askov askov commented Dec 5, 2025

Description

Added interact tab feature.

⚠️ Stories review

Reviewing the stories is optional. This code does not affect production and is intended for developers only.

Type of change

Type of change

  • Bug fix
  • New feature
  • Protocol integration
  • Documentation update
  • Other (please describe):

Screenshots

Success

localhost_3000_address_AXcxp15oz1L4YYtqZo6Qt6EkUj1jtLR6wXYqaJvn4oye_idl_cluster=devnet (1)

Error

localhost_3000_address_AXcxp15oz1L4YYtqZo6Qt6EkUj1jtLR6wXYqaJvn4oye_idl_cluster=devnet

Testing

  • Visit any address that has the "Program IDL" tab. The testing flow depends on the program instructions.

Example 1

// Helper script to create a payload, let's say initialize_poll.mjs
// Usage: node initialize_poll.mjs 105 [<wallet_adddress>]
import { SystemProgram, PublicKey } from '@solana/web3.js';
import BN from 'bn.js';

const programId = new PublicKey('AXcxp15oz1L4YYtqZo6Qt6EkUj1jtLR6wXYqaJvn4oye');
const pollId = new BN(process.argv[2]); // or any unique number
const [pollPDA] = PublicKey.findProgramAddressSync([pollId.toArrayLike(Buffer, 'le', 8)], programId);

const wallet = {
    publicKey: new PublicKey(process.argv[3]),
};

const accounts = {
    signer: wallet.publicKey,
    systemProgram: SystemProgram.programId,
    poll: pollPDA,
};

const args = {
    pollId: pollId,
    description: 'Description',
    pollStart: parseInt(Date.now() / 1000), // current timestamp
    pollEnd: parseInt(Date.now() / 1000 + 86400 * 7), // 7 days later
};

console.log({ accounts, args });
# Payload example
SIGNER:  <WALLET ADDRESS>
SYSTEM:  11111111111111111111111111111111
POLL_PDA: 3TXjgWcgdGa7XcmEku4tnYxqXSSEEKTz6eDyekksh8pH
POLL_ID: 1
DESC:    Description
START:   1764139009
END:     1764743809

Related Issues

Checklist

  • My code follows the project's style guidelines
  • I have added tests that prove my fix/feature works
  • All tests pass locally and in CI
  • I have updated documentation as needed
  • CI/CD checks pass
  • I have included screenshots for protocol screens (if applicable)
  • For security-related features, I have included links to related information

@vercel
Copy link
Copy Markdown

vercel bot commented Dec 5, 2025

@askov is attempting to deploy a commit to the Solana Foundation Team on Vercel.

A member of the Team first needs to authorize it.

@ellipsis-dev
Copy link
Copy Markdown
Contributor

ellipsis-dev bot commented Dec 5, 2025

⚠️ This PR is too big for Ellipsis, but support for larger PRs is coming soon. If you want us to prioritize this feature, let us know at help@ellipsis.dev


Generated with ❤️ by ellipsis.dev

@vercel
Copy link
Copy Markdown

vercel bot commented Dec 5, 2025

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

Project Deployment Review Updated (UTC)
explorer Ready Ready Preview, Comment Dec 18, 2025 5:30pm

@askov askov force-pushed the development-feat-interactive-idl-ui-part-6 branch from 90622b8 to 8be8741 Compare December 17, 2025 10:46
@Woody4618 Woody4618 merged commit dcb3d1e into solana-foundation:master Dec 19, 2025
4 checks passed
Woody4618 pushed a commit that referenced this pull request Dec 22, 2025
## Description

Added manual autocomplete feature for IDL accounts (interactive tab).
### ⚠️ Important
This PR depends on
#779, so there is
actually only one commit. Should be rebased as soon as the base PR is
merged

## Type of change

<!-- Check the appropriate options that apply to this PR -->

-   [ ] Bug fix
-   [x] New feature
-   [ ] Protocol integration
-   [ ] Documentation update
-   [ ] Other (please describe):

## Screenshots

### Popover example 1
<img width="1717" height="798" alt="Screenshot 2025-12-08 194133"
src="https://github.com/user-attachments/assets/05fec904-cbf8-4845-ba19-26952e7f953f"
/>

### Popover example 2
<img width="1566" height="883" alt="Screenshot 2025-12-11 185203"
src="https://github.com/user-attachments/assets/be1fda10-f363-499d-bf05-c9c7a845ef5b"
/>


[screen-capture.webm](https://github.com/user-attachments/assets/e2247117-58db-4028-bc59-5f517a542634)

## Testing
### Example
- Visit
http://localhost:3000/address/AXcxp15oz1L4YYtqZo6Qt6EkUj1jtLR6wXYqaJvn4oye/idl?cluster=devnet
- Click the "Interact" tab
- Expand the "InitializePoll" instruction
- Experiment with autocomplete

## Related Issues
N/A

## Checklist

<!-- Verify that you have completed the following before requesting
review -->

-   [x] My code follows the project's style guidelines
-   [x] I have added tests that prove my fix/feature works
-   [x] All tests pass locally and in CI
-   [x] I have updated documentation as needed
-   [x] CI/CD checks pass
-   [ ] I have included screenshots for protocol screens (if applicable)
- [ ] For security-related features, I have included links to related
information

---------

Co-authored-by: Sergo <rogaldh@radsh.red>
Woody4618 pushed a commit that referenced this pull request Dec 29, 2025
## Description

Implemented vector/array arg inputs for IDL forms.

### ⚠️ Important
This PR depends on
#779, so there is
actually only one commit. Should be rebased as soon as the base PR is
merged

## Type of change

<!-- Check the appropriate options that apply to this PR -->

-   [ ] Bug fix
-   [x] New feature
-   [ ] Protocol integration
-   [ ] Documentation update
-   [ ] Other (please describe):

## Screenshots
<img width="1394" height="2355"
alt="localhost_3000_address_AXcxp15oz1L4YYtqZo6Qt6EkUj1jtLR6wXYqaJvn4oye_idl_cluster=devnet
(3)"
src="https://github.com/user-attachments/assets/37ec0cb8-c7e5-4092-b589-454a7178321f"
/>

[screen-capture
(2).webm](https://github.com/user-attachments/assets/df1c64f8-1fe4-44c3-9688-cd3b452aec4a)

## Testing
- Visit
http://localhost:3000/address/AXcxp15oz1L4YYtqZo6Qt6EkUj1jtLR6wXYqaJvn4oye/idl?cluster=devnet
- Expand `initializePollWithCandidates` (vector example) or
`initializePollWithTwoCandidates` (array example) and experiment with
inputs

## Related Issues
N/A

## Checklist

<!-- Verify that you have completed the following before requesting
review -->

-   [x] My code follows the project's style guidelines
-   [x] I have added tests that prove my fix/feature works
-   [x] All tests pass locally and in CI
-   [x] I have updated documentation as needed
-   [x] CI/CD checks pass
-   [ ] I have included screenshots for protocol screens (if applicable)
- [ ] For security-related features, I have included links to related
information

---------

Co-authored-by: Sergo <rogaldh@radsh.red>
@rogaldh rogaldh deleted the development-feat-interactive-idl-ui-part-6 branch January 24, 2026 10:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants