anchor
anchor copied to clipboard
Add Transactions V2 support
This feature of Solana went live yesterday: https://docs.solana.com/proposals/transactions-v2
Can Anchor upgrade it's Solana dependencies so that provider.connect.sendTransaction accepts VersionedTransactions?
Thank you!
On it
On Tue, Oct 11, 2022, 3:45 PM Armani Ferrante @.***> wrote:
Assigned #2220 https://github.com/coral-xyz/anchor/issues/2220 to @Henry-E https://github.com/Henry-E.
— Reply to this email directly, view it on GitHub https://github.com/coral-xyz/anchor/issues/2220#event-7563621389, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADAHMGEIEUXXTM3MBLX6KPTWCV4QZANCNFSM6AAAAAARCLQDRI . You are receiving this because you were assigned.Message ID: @.***>
As well as updating dependencies we will need to look into where the internals of anchor have to be updated in order to start passing VersionedTransaction objects instead of Transaction objects to sendTransaction.
How is progress on support for versioned transactions in Anchor going? I see that the PR bumping the web3.js package version was merged. Will that update be in the next release of the @project-serum/anchor package?
With the updated version of the package you should be able to pass in versioned transactions. I'll have to check with armani what the plan is for updating packages etc.
Ok, great! I imagine we will also be able to create and query lookup tables as well? If possible, could you give me an ETA for when the package will be updated? Once you've talked with Armani ofc.
I don't really know about creating and querying lookup tables. That's presumably all part of the web3 package. No estimate on when the anchor package will be released but it's been noted.
On Thu, Oct 27, 2022, 3:52 PM nibbus @.***> wrote:
Ok, great! I imagine we will also be able to create and query lookup tables as well? If possible, could you give me an ETA for when the package will be updated? Once you've talked with Armani ofc.
— Reply to this email directly, view it on GitHub https://github.com/coral-xyz/anchor/issues/2220#issuecomment-1293645522, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADAHMGBVOLWHYQ34FG2JJBLWFKJMBANCNFSM6AAAAAARCLQDRI . You are receiving this because you were mentioned.Message ID: @.***>
Thanks for the reply! Yes all LUT functionality is handled by the updated web3.js version, so once this is released all the functionality should work. And thanks for taking note. I'll keep an eye out for the next release.
Hey there 👋,
Wonder if there are any updates? Our team is super pumped to be able to integrate transaction v2 with Anchor!
Hi guys, just checking in, any word on this update @Henry-E?
I still haven't gotten any response from anyone about what integration with transactions v2 would look like? What support does anchor need to add in. It's all in the web3 library?
The local validator that runs during tests needs a version update. I didn't see any other issues or PRs for this unless I'm missing something. Should I create one?
The Solana and web3 versions have all been updated for the next version.
Ah, beautiful, ty. When is that coming out?
ASAP, just waiting on an important PR to finish and then we'll release.
On Tue, Dec 6, 2022, 3:01 PM Pindaroso @.***> wrote:
Ah, beautiful, ty. When is that coming out?
— Reply to this email directly, view it on GitHub https://github.com/coral-xyz/anchor/issues/2220#issuecomment-1339514392, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADAHMGHQCZEF4BG3KV6WWPDWL5IK5ANCNFSM6AAAAAARCLQDRI . You are receiving this because you modified the open/close state.Message ID: @.***>
Any update on this?
We released a new version
how to handle it in anchor web3. I am not able to see any example or test leveraging lookup tables.
It's a Solana web3.js package feature, unrelated to anchor. Though with the updated web3.js package in the new anchor you should be able to pass the new arguments in
I'll happily reopen this issue and look into it if someone can give a clear proposal on what support for the new versioned transactions should look like.
From the docs https://docs.solana.com/developing/lookup-tables#how-to-use-an-address-lookup-table-in-a-transaction , it looks kind of like the usage is that you create instructions as normal for the transaction but at the very end pass in the lookuptable address
const messageV0 = new web3.TransactionMessage({
payerKey: payer.publicKey,
recentBlockhash: blockhash,
instructions: arrayOfInstructions, // note this is an array of instructions
}).compileToV0Message([lookupTableAccount]);
So I suppose that anchor should start compiling messages for transactions this way (without exposing all of it to the user) with the option to pass in a lookupTableAccount somewhere in the existing transaction builder syntax?
It seems like all you have to do is add any lookupTableAccounts you need to the transaction and it will automatically obtain any public keys in it? But it's confusing because at some stage the lookupTableAccount needs to be fetched in order to minimize the size of the transaction and none of these look like async functions? So it must be that you pass a really large message/transaction to the first RPC which then converts your transaction into something that's less than 1230 bytes. Which seems like an odd way to do it but I can't see where else the conversion from a 32 byte regular pubkey to a 2 byte index in lookup table happens.
Hi everyone, I am Kawasaki, core dev of EpicsDAO. I created an Epics Alpha quest with this issue to solve this issue faster. https://alpha.epics.dev/en/quest/UXVlc3Q6MTMy/
A developer who made a PR and it's merged by the repo owner properly will be able to redeem 30,000 $EPCT.
I hope this helps the Anchor community. Thank you very much 🙏
I still haven't gotten any response from anyone about what integration with transactions v2 would look like? What support does anchor need to add in. It's all in the web3 library?
I believe it's something like what @jordansexton says in this discussion. They just need to know that Anchor has type support for versioned transactions before they go ahead with integrating versioned transaction support for useAnchorWallet
This is helpful thanks. I'm just trying to figure out the best way to add support at the moment without breaking too much other stuff.
On Fri, Feb 24, 2023, 1:34 PM Ademola @.***> wrote:
I still haven't gotten any response from anyone about what integration with transactions v2 would look like? What support does anchor need to add in. It's all in the web3 library?
I believe it's something like what @jordansexton https://github.com/jordansexton says in this discussion https://github.com/solana-labs/wallet-adapter/pull/626#issuecomment-1292309846. They just need to know that Anchor has type support for versioned transactions before they go ahead with integrating versioned transaction support for useAnchorWallet
— Reply to this email directly, view it on GitHub https://github.com/coral-xyz/anchor/issues/2220#issuecomment-1443689570, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADAHMGG3CK7PRBZJGLD77FDWZC2GNANCNFSM6AAAAAARCLQDRI . You are receiving this because you modified the open/close state.Message ID: @.***>
Oh got it. I didn't see this reply on time and raised the same issue on the anchor discord which might be kind of a nuisance, sorry about that!
I'll also do some experimenting on my end and see what I come up with
Hey guys 👋 any update on this issue? Is it currently possible to send a tx that utilizes LUT into an an anchor-based program?
Anchor supports versioned transactions. https://github.com/coral-xyz/anchor/pull/2427 . So you'll be able to pass in look up tables but you'll to use the solana ts library to do it.