• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

KarpelesLab / libwallet / 27018188820
22%

Build:
DEFAULT BRANCH: master
Ran 05 Jun 2026 01:40PM UTC
Jobs 1
Files 128
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Jun 2026 01:38PM UTC coverage: 22.486% (+0.07%) from 22.416%
27018188820

push

github

MagicalTux
transfer: SPL Token-2022 with transfer-fee + SPL preflight + bump 0.4.54

Stage 2 of the asset-aware transfer chain. 0.4.53 covered SPL
Token-1 (USDT/USDC); this release fills in the remaining holes.

Token-2022 (wlttx/solana_token2022.go):

- Program id constant for TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb,
  used both for ATA derivation (so a Token-2022 ATA doesn't collide
  with the Token-1 ATA for the same owner+mint) and for the
  TransferChecked / TransferCheckedWithFee instruction's program-id
  slot.
- Mint extension TLV parser. Token-2022 mints with extensions place
  the base 82-byte mint, pad to 165, an AccountType discriminator at
  index 165, then TLV entries from index 166. The parser walks the
  TLV looking for TransferFeeConfig (type id = 1) and decodes both
  the older and newer TransferFee structs (epoch, maximum_fee,
  basis_points). Malformed TLVs that run off the end of the buffer
  fail loud.
- Fee computation matches the on-chain formula exactly:
  ceil(amount * bps / 10_000), capped at maximum_fee, with
  epoch-based selection between older and newer fees (newer wins
  when current_epoch >= newer.epoch — inclusive). Done in a 128-bit
  intermediate so hostile inputs can't roll over.
- TransferCheckedWithFee instruction (19 bytes: discriminator 26,
  sub-instruction 1, u64 amount, u8 decimals, u64 fee).
- Full message builder mirrors buildSPLTransferMessage's layout —
  same account positions, same ATA-create-idempotent prelude, just
  the larger instruction payload and the Token-2022 program id.

signAndSendSolana dispatch:

- Picks the program id via tokenProgramForType(tok.GetType()).
- For Token-2022 mints, fetches the mint account via getAccountInfo
  (base64 encoding so the raw TLV is visible — jsonParsed doesn't
  expose extensions), parses, and routes to the fee path or plain
  path accordingly.
- splFee shows up in the post-broadcast info log alongside the
  mint and amount for grep-ability.

SPL preflight (wlttx/pre... (continued)

99 of 402 new or added lines in 4 files covered. (24.63%)

4287 of 19065 relevant lines covered (22.49%)

99.78 hits per line

Uncovered Changes

Lines Coverage ∆ File
138
41.77
wlttx/solana_token2022.go
78
29.06
-6.73% wlttx/solana.go
76
0.0
wlttx/preflight_spl.go
11
0.0
0.0% wlttx/transaction.go
Jobs
ID Job ID Ran Files Coverage
1 27018188820.1 05 Jun 2026 01:40PM UTC 128
22.49
GitHub Action Run
Source Files on build 27018188820
  • Tree
  • List 128
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27018188820
  • f36c3529 on github
  • Prev Build on master (#27014048686)
  • Next Build on master (#27023772732)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc