anza-xyz / anza-xyz/kit

SIMD 385 - Transaction V1 Format

未關閉
#1,222 0 則留言 1 個 reaction 已指派 1 人 已被 @mcintyre94 認領 在 GitHub 檢視
enhancement
主要語言
TypeScript
星號
695
分支
210
平均合併
21 小時 33 分鐘
30 天內合併 PR
90

描述

## Motivation

See SMD: https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0385-transaction-v1.md

This is a new transaction format:
- that encodes/decodes completely differently to the existing formats
- that does not support lookup tables
- enables a new `TransactionConfigMask` for priority fees/other compute budget functionality

## Example use case

Developers need to be able to create/parse/etc v1 transactions!

## Details

- New transaction version, which like legacy does not allow lookup tables
- New codec for this transaction version, described in the SIMD
- Note: v1 transactions have trailing signatures, which is different to current transactions
- Also no signature length encoded in this array, since this is in the message, which now comes before signatures
- We detect v1 transactions by their first byte: 129 (128 | 1)
- legacy and v0 transactions will have the signatures first, which must be <129 (v1 keeps the restriction to max of 12). So we can identify v1 by the first byte, but still need to read first byte of message (after signatures) to distinguish legacy and v0
- Need to allow encoding config mask values
- New way of encoding instruction array
- #1221 will allow 4096 bytes for v1 transactions, but we should add v1 transactions first

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。