Skip to content
Draft

p-ata #102

Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
322 commits
Select commit Hold shift + click to select a range
57f5418
adjust comment/table
rustopian Jul 6, 2025
7d8b797
rm some checks
rustopian Jul 6, 2025
a82e760
workflow handling
rustopian Jul 6, 2025
0b096b0
rm bad failure test
rustopian Jul 6, 2025
bda5609
start caching work
rustopian Jul 6, 2025
2de3d0b
Merge pull request #5 from rustopian/p-ata-dev
rustopian Jul 6, 2025
d8c258d
bench to readme instead of PR comment
rustopian Jul 7, 2025
a1130c1
rm archive
rustopian Jul 7, 2025
2990c56
submodules recursive in CI
rustopian Jul 7, 2025
78ed4dd
reliably build-programs
rustopian Jul 7, 2025
fcb97c9
optimal bump so we're not benching varying entropy
rustopian Jul 7, 2025
1396a4e
Merge branch 'p-ata' into p-ata-dev
rustopian Jul 7, 2025
b80231d
ax double CI
rustopian Jul 7, 2025
4858b41
Merge branch 'p-ata-dev' of https://github.com/rustopian/associated-t…
rustopian Jul 7, 2025
d9748ff
Merge pull request #6 from rustopian/p-ata-dev
rustopian Jul 7, 2025
2109601
discm constants
rustopian Jul 7, 2025
5b13b8b
better failure evaluation
rustopian Jul 7, 2025
4bac9c2
rm comment
rustopian Jul 7, 2025
5aa18f4
reduce cheese
rustopian Jul 7, 2025
738570a
fmt
rustopian Jul 7, 2025
2a25d67
fix multisig test setup
rustopian Jul 7, 2025
895e88f
Merge pull request #7 from rustopian/p-ata-dev
rustopian Jul 7, 2025
a651b20
Merge branch 'solana-program:main' into p-ata
rustopian Jul 7, 2025
59a58a1
refactor test pks etc
rustopian Jul 7, 2025
0154694
Merge pull request #8 from rustopian/p-ata-dev
rustopian Jul 7, 2025
f889d87
cleanup
rustopian Jul 7, 2025
eea6cd3
Merge pull request #9 from rustopian/p-ata-dev
rustopian Jul 7, 2025
8680117
saturating sub, rm more pre-refactor code
rustopian Jul 7, 2025
93ac761
Merge pull request #10 from rustopian/p-ata-dev
rustopian Jul 7, 2025
e98f875
rm old code
rustopian Jul 7, 2025
d9492f2
clean up failure tests, ata impl code
rustopian Jul 7, 2025
529bd59
show details when not byte-identical
rustopian Jul 7, 2025
c744572
Merge pull request #11 from rustopian/p-ata-dev
rustopian Jul 7, 2025
40f6e56
cleanup program id and impl stuff
rustopian Jul 8, 2025
36bc6f1
Merge pull request #12 from rustopian/p-ata-dev
rustopian Jul 8, 2025
bbb0636
avoid accidental system program pk in validation test
rustopian Jul 8, 2025
2d8be50
Merge pull request #13 from rustopian/p-ata-dev
rustopian Jul 8, 2025
b6a7d94
constants
rustopian Jul 8, 2025
9d785ee
account builders
rustopian Jul 8, 2025
556ef76
Merge pull request #14 from rustopian/p-ata-dev
rustopian Jul 8, 2025
1b3b38b
account data comparison service
rustopian Jul 8, 2025
5c1c5a0
common optimal bump across multiple program ids
rustopian Jul 8, 2025
086aa86
always lowest
rustopian Jul 8, 2025
866942e
fix multisig bump test
rustopian Jul 8, 2025
48f79a8
Merge pull request #15 from rustopian/p-ata-dev
rustopian Jul 8, 2025
366e2b6
improve output
rustopian Jul 8, 2025
e2a18cd
improve output summaries
rustopian Jul 8, 2025
d983690
Merge pull request #16 from rustopian/p-ata-dev
rustopian Jul 8, 2025
a255129
failure mode helpers
rustopian Jul 8, 2025
4fb0fd8
Merge pull request #17 from rustopian/p-ata-dev
rustopian Jul 8, 2025
6978c87
dedup
rustopian Jul 8, 2025
a6cc353
AccountType instead of string, readme
rustopian Jul 8, 2025
e38d78e
bench commit
rustopian Jul 8, 2025
4b44948
Merge pull request #18 from rustopian/p-ata-dev
rustopian Jul 8, 2025
ec8e8af
Mention full debug logs in README.md
rustopian Jul 8, 2025
1cb2965
rm some old comments
rustopian Jul 8, 2025
72c0cf4
Merge pull request #19 from rustopian/p-ata-dev
rustopian Jul 8, 2025
6b2aef3
fmt, explanatory comment
rustopian Jul 8, 2025
fe7d1cd
Merge branch 'p-ata' of https://github.com/rustopian/associated-token…
rustopian Jul 8, 2025
b03ebca
fmt, explanatory comment
rustopian Jul 8, 2025
8825ffc
add'l cleanup
rustopian Jul 8, 2025
2fa1e25
trim failure builders a bit
rustopian Jul 8, 2025
36ddb24
rm orphan comment
rustopian Jul 8, 2025
a9a8b83
extract formatter
rustopian Jul 9, 2025
b135c52
rm misleading 'adapt_instruction_data'
rustopian Jul 9, 2025
6473919
rm misleading 'adapt_instruction_data'
rustopian Jul 9, 2025
235c7b9
refactor mint data, etc.
rustopian Jul 9, 2025
9adfcd8
rm comments
rustopian Jul 9, 2025
a6f4ab2
rm formatter dups, cleanup
rustopian Jul 9, 2025
a4a5048
update benches
rustopian Jul 9, 2025
a5ba078
cargo
rustopian Jul 9, 2025
ca7caed
DRY for failure builders
rustopian Jul 9, 2025
0949996
similar helpers for recovernested failures
rustopian Jul 9, 2025
88ec520
comfy-table just for benching
rustopian Jul 9, 2025
6b8362e
use strum to rm manual name fns
rustopian Jul 9, 2025
b3cc103
versions
rustopian Jul 9, 2025
ee180b5
restore optimal bump for recover tests
rustopian Jul 9, 2025
8f7c84a
restore optimal bump for recover tests
rustopian Jul 9, 2025
2a73ac4
save 6 CUs with unsafe in parse_ata_accounts and 1 in process_instruc…
rustopian Jul 10, 2025
2e49943
fmt clippy
rustopian Jul 10, 2025
d8c9beb
save 60 CUs on create_token2022 with pointer eq
rustopian Jul 10, 2025
f20abf4
unchecked accounts for recover
rustopian Jul 10, 2025
ee60b83
no panic in account parse
rustopian Jul 10, 2025
ba7b3c6
need len check for rent, so free good error
rustopian Jul 10, 2025
6f6f822
fmt
rustopian Jul 10, 2025
8ae867f
gt, not eq
rustopian Jul 10, 2025
42cdb25
safety comment
rustopian Jul 10, 2025
139ed0b
nvm, save 2 CUs
rustopian Jul 10, 2025
45f2d54
len match fvalidation in parse_ata_accounts
rustopian Jul 11, 2025
d946d5a
account structs
rustopian Jul 11, 2025
d6ec342
rm dinosaurs
rustopian Jul 11, 2025
60b6805
clean up not(CreateAccountPrefunded) area
rustopian Jul 11, 2025
cd39c18
multisig dup signer attack should-fail test
rustopian Jul 11, 2025
0a5364b
multisig dup signer attack should-fail test
rustopian Jul 11, 2025
a2d966a
longform var names
rustopian Jul 11, 2025
9def9e4
is_owned_by, wrong multisig wallet owner fail test
rustopian Jul 11, 2025
c0392dd
fail test drains lamprots from uninitialized ata
rustopian Jul 11, 2025
d565d8c
fail test drains lamprots from uninitialized ata
rustopian Jul 11, 2025
c2aa95f
fail test drains lamports from uninitialized ata
rustopian Jul 11, 2025
006c675
Merge branch 'p-ata' of https://github.com/rustopian/associated-token…
rustopian Jul 11, 2025
77ae50d
ensure payer is signer for create
rustopian Jul 11, 2025
a03fdec
derive_address for create. Baseline of some benching experiments
rustopian Jul 12, 2025
78d69c6
all validation in RecoverNested
rustopian Jul 14, 2025
8f6fb3d
mark get_token_account_unchecked unsafe
rustopian Jul 14, 2025
f38ab29
rm some debug msgs
rustopian Jul 14, 2025
d269b04
rm empty comment
rustopian Jul 14, 2025
597a8a0
old tests with mollusk adapter
rustopian Jul 14, 2025
ab6ac3f
use actual SPL test files with adapter
rustopian Jul 15, 2025
92a4cba
fmt
rustopian Jul 15, 2025
fa2852d
restore build-programs stuff in script
rustopian Jul 15, 2025
9b7522d
rm benchmarks.yml
rustopian Jul 15, 2025
c17cbc8
rm old build script
rustopian Jul 15, 2025
9f1c0bc
rm unused
rustopian Jul 16, 2025
b6d0c01
start transfer_unchecked, some small cleanup
rustopian Jul 17, 2025
4c289db
transfer_unchecked, validate_point, and some other cleanup
rustopian Jul 18, 2025
537ad31
fmt, clippy
rustopian Jul 18, 2025
4e9a8eb
fix account type
rustopian Jul 18, 2025
de328b1
rm bump/len from adapter (bigger token accounts supported in next com…
rustopian Jul 18, 2025
8811de6
rm old branch
rustopian Jul 18, 2025
35c2bd2
initial token_account_len rework work
rustopian Jul 18, 2025
174379e
init bump/canonical test
rustopian Jul 22, 2025
eaeb6a7
fix syscall return parsing
rustopian Jul 22, 2025
903b802
only 1 means off-curve
rustopian Jul 22, 2025
8143f3e
update some dep'd imports
rustopian Jul 22, 2025
7191fb3
add immutableownerextensions to token2022 account size cpi
rustopian Jul 22, 2025
2f2c1bc
check for spl token, not token2022
rustopian Jul 22, 2025
6b8225d
streamline get_token_account_size
rustopian Jul 22, 2025
164468f
pub(crate) for create_pda_account
rustopian Jul 22, 2025
ae32171
fix comment
rustopian Jul 22, 2025
8a1bf71
fmt
rustopian Jul 22, 2025
c81d74b
rm old comment
rustopian Jul 22, 2025
f1067e1
if account len is multisig, validate is multisig
rustopian Jul 23, 2025
2cf79d2
canonical, not canoncial
rustopian Jul 23, 2025
e0296b5
unit tests for al
rustopian Jul 23, 2025
160bfea
avoid zero init with MaybeUninit
rustopian Jul 23, 2025
1bc61d9
avoid unnecessary clone on one branch
rustopian Jul 23, 2025
d4ee08f
rm unneeded AccountMeta
rustopian Jul 23, 2025
1650ded
MAX_SANE_ACCOUNT_LENGTH and tests
rustopian Jul 23, 2025
e07936d
rm adapter from non_canonical_bump test
rustopian Jul 23, 2025
1115902
rm a few old pseudocode comments
rustopian Jul 24, 2025
b46f8ae
Rm old test pseudocode
rustopian Jul 24, 2025
dcb524a
rm comments
rustopian Jul 24, 2025
2d44753
rm comment
rustopian Jul 24, 2025
ea27e0a
benches use optimal bump when BENCH_ITERATIONS=1
rustopian Jul 24, 2025
58276b0
recover -2 CUs with const instruction data
rustopian Jul 24, 2025
750b221
in-line token extension lengths
rustopian Jul 24, 2025
f23be81
inline extension lengths, plus cross-test with token-2022
rustopian Jul 24, 2025
18b8a19
rm unnecessary is_valid_multisig_data
rustopian Jul 25, 2025
7040c07
only attempt local extension length lookup if token-2022
rustopian Jul 25, 2025
5ff9ad0
simpler but not more expensive program id comp
rustopian Jul 25, 2025
f128eac
benches for create_extended with multiple extensions
rustopian Jul 25, 2025
15b670a
init migrated unit tests
rustopian Jul 27, 2025
7ee3b52
modularize unit test utils
rustopian Jul 28, 2025
02fa573
support all extensions
rustopian Jul 28, 2025
7603f95
exhaustive extension combo test, dep resolutions
rustopian Jul 28, 2025
24b02fa
exhaustive extension test
rustopian Jul 28, 2025
5288cfc
rm old pseudocomments and extra debug prints for exhaustive test
rustopian Jul 28, 2025
3dd10bb
various small test updates
rustopian Jul 28, 2025
8784d1d
Update README.md
rustopian Jul 28, 2025
ad6fbac
some optimizing, readme
rustopian Jul 28, 2025
686d99d
readme benches
rustopian Jul 28, 2025
4b08df7
Header
rustopian Jul 28, 2025
93c9099
add avg 10000 to readme
rustopian Jul 28, 2025
d646b1e
Update README.md
rustopian Jul 28, 2025
9c38bc0
enum for readability, support upcoming extension
rustopian Jul 28, 2025
af84c71
better name for calculate_account_size_from_mint_extensions
rustopian Jul 28, 2025
a145c00
Clean up README.md
rustopian Jul 28, 2025
75dd909
dedup to common util
rustopian Jul 29, 2025
f12185e
Merge branch 'p-ata' of https://github.com/rustopian/associated-token…
rustopian Jul 29, 2025
dc9ec7b
odds and ends
rustopian Jul 29, 2025
0e6939c
safer AccountInfo build in parsing tests
rustopian Jul 29, 2025
8226b92
test_extension_utils.rs
rustopian Jul 29, 2025
b87db86
test context manager for account infos, etc.
rustopian Jul 29, 2025
fd42b68
update to latest pinocchio, rename to create-prefunded-account
rustopian Jul 29, 2025
0d38c1e
factor out size.rs and recover.rs
rustopian Jul 29, 2025
12e8dde
cheaper derivation for CreateIdempotent
rustopian Jul 29, 2025
e81b99d
on-curve create idemp attack test
rustopian Jul 29, 2025
86a9c27
recover_nested bump safety tests
rustopian Jul 29, 2025
5282019
doc comments and some var names
rustopian Jul 30, 2025
492a98c
comments
rustopian Jul 30, 2025
ed543b6
test structure and readme
rustopian Jul 30, 2025
2607f50
update fn name
rustopian Jul 30, 2025
452bb9d
update benches in README
rustopian Jul 30, 2025
f8d5da0
consistency
rustopian Jul 30, 2025
804019b
comment on alternative to find_program_address
rustopian Jul 30, 2025
d591b8a
rm verbiage
rustopian Jul 30, 2025
75d57fd
start unification
rustopian Jul 31, 2025
4a053aa
re-export for bench+test workaround
rustopian Jul 31, 2025
31f6e4b
ignore blocks for doctests
rustopian Jul 31, 2025
12af4c6
mollusk setup helper
rustopian Jul 31, 2025
b111904
use mollusk helper more
rustopian Jul 31, 2025
f3035f7
checkpoint
rustopian Jul 31, 2025
9c201cf
check in
rustopian Jul 31, 2025
7c385a3
check in more unification
rustopian Jul 31, 2025
a96dbdf
unify benches into tests fully
rustopian Aug 1, 2025
c55f4c8
features std in bench commands for now
rustopian Aug 1, 2025
aeefa48
Merge pull request #20 from rustopian/unify-bencher-with-tests
rustopian Aug 1, 2025
22513d1
pk_array macro
rustopian Aug 1, 2025
d838634
fix debug logs etc.
rustopian Aug 1, 2025
9720624
misc cleanup
rustopian Aug 1, 2025
f63755d
reduce adapter
rustopian Aug 1, 2025
5d8aca9
various reductions
rustopian Aug 1, 2025
d062a62
Merge pull request #21 from rustopian/reduce-bench-loc
rustopian Aug 1, 2025
6728ae1
all constructed failure scenarios first assert baseline succeeds, bef…
rustopian Aug 1, 2025
7ceec9e
Failure scenarios all ensure baseline succeeds before mutating to fai…
rustopian Aug 1, 2025
287feec
readme
rustopian Aug 1, 2025
6511d8d
build.rs doc comment
rustopian Aug 1, 2025
5eb44c1
rm unneeded (and wrong) MINT_WITH_TYPE_SIZE
rustopian Aug 2, 2025
0a041d7
rm bumps for RecoverNested
rustopian Aug 2, 2025
a2b465e
update benches after RecoverNested deoptimization
rustopian Aug 2, 2025
19cacb2
various nits, pinocchio_log
rustopian Aug 2, 2025
530d187
clean up is_off_curve when not on solana
rustopian Aug 2, 2025
30133ea
rename to try_find_better_program_derived_address_and_bump, move log
rustopian Aug 2, 2025
e28f76d
rename to reject_if_better_valid_bump_exists
rustopian Aug 2, 2025
a63f8f0
get_mint, not get_mint_unchecked
rustopian Aug 2, 2025
18e0ec4
get_mint to get_decimals_from_mint
rustopian Aug 2, 2025
1744ef8
unsafe/safe fixes
rustopian Aug 2, 2025
9e01bc2
comment on unsafe in size.rs
rustopian Aug 2, 2025
46f9c6f
extension constants instead of huge enum
rustopian Aug 3, 2025
cb715ee
idiomatic test/bench tree (#23)
rustopian Aug 4, 2025
b0824f4
add some more logs before errors
rustopian Aug 4, 2025
b6f65e4
safety comment, rm conversion
rustopian Aug 11, 2025
5716725
comment on mint data verification not needed, inline
rustopian Aug 11, 2025
ecde2ca
recover seeds, bench numbers
rustopian Aug 11, 2025
ac56e05
10000 benches numbers
rustopian Aug 11, 2025
0c09c7c
unnecessary clone
rustopian Aug 11, 2025
7e7e59e
rm needless ok
rustopian Aug 13, 2025
8f76897
use `AccountMeta` helpers
rustopian Aug 13, 2025
11ba50b
use `AccountMeta` helper
rustopian Aug 13, 2025
e2fd815
use pinocchio seeds helper
rustopian Aug 13, 2025
54e7466
rm needless ok
rustopian Aug 13, 2025
8d23bfd
nits and rework of load_token_account fns
rustopian Aug 14, 2025
9fe56d6
use load_unchecked for mint
rustopian Aug 14, 2025
3148874
fix missing ?
rustopian Aug 14, 2025
7a0af28
log for mint account data too small
rustopian Aug 14, 2025
233a028
Simplify rent in parse_create_accounts
rustopian Aug 14, 2025
0b4978a
fmt
rustopian Aug 14, 2025
7d81a60
improve error logs
rustopian Aug 14, 2025
ed836c8
move benches out to different branch
rustopian Aug 19, 2025
b5bd84b
rm deps only used by benches
rustopian Aug 19, 2025
e5b9e28
readme mention bencher branch
rustopian Aug 19, 2025
3d9d08d
rm bench deps from feature
rustopian Aug 19, 2025
7a284b3
rm mollusk tests etc. from this pr
rustopian Sep 17, 2025
be581a7
rm test deps
rustopian Sep 17, 2025
c20bc43
update from mollusk tests branch (#31)
rustopian Sep 23, 2025
8a08709
update to 3.0 create-account-allow-prefund branches (#33)
rustopian Sep 29, 2025
c895b08
Sync (#34)
rustopian Sep 29, 2025
c753a66
Merge branch 'solana-program:main' into p-ata
rustopian Sep 29, 2025
55d495e
rm submodules
rustopian Sep 29, 2025
50a6f7c
Merge branch 'solana-program:main' into p-ata
rustopian Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "p-ata/programs/token"]
path = p-ata/programs/token
url = https://github.com/solana-program/token
[submodule "p-ata/programs/token-2022"]
path = p-ata/programs/token-2022
url = https://github.com/solana-program/token-2022
4 changes: 4 additions & 0 deletions p-ata/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"rust-analyzer.cargo.features": ["std"],
"rust-analyzer.cargo.allFeatures": false
}
Loading