Skip to content

Releases: txtx/surfpool

v0.1.13

25 Apr 12:58

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.12...v0.1.13

v0.1.12

22 Apr 18:20

Choose a tag to compare

New Features

#61 New SVM Tricks 🃏 The svm_setTokenAccount RPC method

This PR adds the second of our SVM Tricks RPC method: svm_setTokenAccount. This RPC allows overwriting the token account data for an associated token account in the SVM state.

The RPC method has the following arguments:

  1. The pubkey of the owner of the token account to update
  2. The pubkey of the token mint
  3. An object with any account fields: amount, delegate, delegatedAmount, closeAuthority, and state.
  4. The token program address. The default is the Token 2020 program address.

Any of the fields specified in argument 3 will be applied onto the associated token account for the owner/token/token_program combination.

Here is an example RPC call:

{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "svm_setTokenAccount",
    "params": [
        "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV",
       "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
        {
            "amount": 100000000000,
            "closeAuthority": "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV",
            "delegate": "null",
             "delegateAmount": 0
        }
    ]
}

Pro Tip: Supercharge your interactions with surfpool using txtx runbooks! Check out the latest txtx release which adds the svm::setup_surfnet action

#60 Native Program Support

Up to this point, the auto-generation of Runbooks has only applied for programs written with Anchor.

The release of txtx v0.2.15 enables the deployment of native rust programs as well!

This includes programs created with Pinocchio, Steel and just the solana-program dependency as well. For the fullest set of features, we recommend generating an IDL using Shank if you're writing native Rust programs.

To use this feature, simply run surfpool start in a program directory, and surfpool will create a deployment runbook for you, start your surfnet, and deploy the program to the surfnet!

Fixes

#62 fix(core/simnet): get program data accounts from remote during tx pre-process by @MicaiahReid

When you send a transaction to the surfnet, it is automatically pre-processed to make sure that all accounts referenced in the transaction are either available in the local svm store or are pulled from mainnet.

However, in the case that you are referencing a program that exists on mainnet, it's not enough to pull the program account for proper execution of the transaction. You also need to pull the program data account.

This PR fixes the surfnet behavior such that executable accounts automatically have their program data accounts pulled into the vm as well.

  • Feat/native support by @MicaiahReid in #60
  • feat(rpc): add svm_setTokenAccount rpc method #61

Full Changelog: v0.1.11...v0.1.12

Important

Surfpool is in pre-release—handle with care! It might wipe out or ride smoothly, depending on the swell.
Always stay on the latest version for the best ride.

# macOS (Homebrew)
brew reinstall txtx/taps/surfpool

# Linux (Snapstore)
snap upgrade surfpool

v0.1.11

03 Apr 15:47

Choose a tag to compare

What's Changed

#54 fix(simnet): fetch all accounts before processing instructions

This PR fixes the automatic fetching of accounts before an instruction is executed. Before, only the program ID was fetched. Now, all programs involved in the account are fetched (unless they are available in the local LiteSVM cache).

#53 feat(core): add custom rpc module with svm_setAccount method

This PR adds the first of our SVM Tricks RPC methods: svm_setAccount. This RPC method allows overwriting any of the fields of an account.

The RPC method expects two arguments:

  1. The pubkey of the account to update
  2. An object with any account fields: lamports, data, executable, rent_epoch, and owner.

Any of the fields specified in argument 2. will be applied onto the account associated with argument 1.

Here is an example RPC call:

{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "svm_setAccount",
    "params": [
        "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV",
        {
            "lamports": 100000000000,
            "data": "0x2",
            "executable": false,
            "rent_epoch": 1,
            "owner": "11111111111111111111111111111111"
        }
    ]
}

Full Changelog: v0.1.10...v0.1.11

Important

Surfpool is in pre-release—handle with care! It might wipe out or ride smoothly, depending on the swell.
Always stay on the latest version for the best ride.

# macOS (Homebrew)
brew reinstall txtx/taps/surfpool

# Linux (Snapstore)
snap upgrade surfpool

v0.1.10

26 Mar 12:15

Choose a tag to compare

☀️ New

  • Experimental: Support for Subgraph! Documentation to come.
  • Developers can now rely on an integrated transaction supervisor to perform their deployments. The transaction supervisor is a local web UI assisting developers during their deployments, bringing safety (ability to sign deployments using web wallet) and explainability (explaining bytes being signed).

supervisor

Important

Surfpool is in pre-release—handle with care! It might wipe out or ride smoothly, depending on the swell.
Always stay on the latest version for the best ride.

# macOS (Homebrew)
brew upgrade txtx/taps/surfpool

# Linux (Snapstore)
snap upgrade surfpool

v0.1.9

19 Feb 19:51

Choose a tag to compare

☀️ New

  • Experimental: Support for Subgraph! Documentation to come.

Important

Surfpool is in pre-release—handle with care! It might wipe out or ride smoothly, depending on the swell.
Always stay on the latest version for the best ride.

# macOS (Homebrew)
brew upgrade txtx/taps/surfpool

# Linux (Snapstore)
snap upgrade surfpool

v0.1.8

17 Feb 14:51
948aa12

Choose a tag to compare

feat: draft subgraphs (#41)

Co-authored-by: MicaiahReid <[email protected]>

v0.1.7

12 Feb 03:29
10523d6

Choose a tag to compare

☀️ New

  • Experimental: Support for Geyser plugin

Important

Surfpool is in pre-release—handle with care! It might wipe out or ride smoothly, depending on the swell.
Always stay on the latest version for the best ride.

# macOS (Homebrew)
brew upgrade txtx/taps/surfpool

# Linux (Snapstore)
snap upgrade surfpool

v0.1.6

10 Feb 05:04
5b80a9a

Choose a tag to compare

☀️ New

  • Ability to airdrop pubkeys using command flag -a
  • Ability to airdrop keypairs files using command flag -k
  • Ability to disable tui using command flat --no-tui
  • Ability to bring your own RPC url using command flag -u
  • Experimental compatibility with web wallets (Backpack)
  • Experimental compatibility with Solana explorer

🥚 Easter Egg

  • Break Solana is back! In the terminal UI, pressing F or J fires off transactions — use with caution!

Important

Surfpool is in pre-release—handle with care! It might wipe out or ride smoothly, depending on the swell.
Always stay on the latest version for the best ride.

# macOS (Homebrew)
brew upgrade txtx/taps/surfpool

# Linux (Snapstore)
snap upgrade surfpool

v0.1.5

07 Feb 04:28
3eac001

Choose a tag to compare

☀️ New

  • Introduce get_balance RPC
  • Introduce 3 runloop modes (Clock, Manual, Transaction) #16

🐞 Fixes

  • Ctrl+C close the term UI
brew upgrade txtx/taps/surfpool

v0.1.3

06 Feb 16:32
20e84e1

Choose a tag to compare

v0.1.3 Pre-release
Pre-release

Hello world!

Testing CI / CD Pipeline