Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
366 commits
Select commit Hold shift + click to select a range
f949df8
add --triplet to windows arch conditional
ameya-deshmukh Dec 13, 2024
8c90c0c
run existing install deps script + remove complexities
ameya-deshmukh Dec 13, 2024
2ca9e7e
fix
ameya-deshmukh Dec 13, 2024
9c2323c
back to --triplet
ameya-deshmukh Dec 16, 2024
197ca62
remove vcpkg + use chocolatey for windows
ameya-deshmukh Dec 16, 2024
956db29
pwsh for windows
ameya-deshmukh Dec 16, 2024
e3c3f09
closed conditionals properly
ameya-deshmukh Dec 16, 2024
c6514bf
try pre-existing scripts
ameya-deshmukh Dec 16, 2024
43235de
fix powershell syntax error
ameya-deshmukh Dec 16, 2024
de9b831
updated build script to use vs 2022
ameya-deshmukh Dec 16, 2024
99fe68f
fixed typo in vsc naming
ameya-deshmukh Dec 16, 2024
8696fe0
set msbuild path
ameya-deshmukh Dec 16, 2024
820b775
locate msbuild
ameya-deshmukh Dec 16, 2024
18b6b0e
added conditional to macos and linux build
ameya-deshmukh Dec 16, 2024
bbbe3c3
conditional archiving
ameya-deshmukh Dec 16, 2024
e77ae1d
fix regex
ameya-deshmukh Dec 16, 2024
5093fd0
files not folders in single release
ameya-deshmukh Dec 17, 2024
5c875fb
use shortened SHA commit hash
ameya-deshmukh Dec 17, 2024
dbf419c
remove feature/ branch from job(s)
ameya-deshmukh Dec 17, 2024
51394b9
removed soljson.js
ameya-deshmukh Dec 17, 2024
197a1c8
Merge pull request #20 from SeismicSystems/feature/all-os-releases
ameya-deshmukh Dec 17, 2024
222597d
Sbool (#21)
sfyll Dec 20, 2024
047a840
Semantic tests missing (#22)
sfyll Dec 23, 2024
df5cc4c
adding precompiles tests (#23)
sfyll Jan 28, 2025
798f268
added secp256k1 semantic test
ssolit Jan 31, 2025
7524284
Merge pull request #24 from SeismicSystems/secp256k1-sign
ssolit Feb 4, 2025
3262ad0
changing codeOwners (#25)
sfyll Feb 7, 2025
29577d8
upstream diff never stale (#26)
sfyll Feb 7, 2025
cc0e87a
Update README.md (#28)
sfyll Feb 7, 2025
ec4facd
Update README.md (#29)
sfyll Feb 7, 2025
e6c8913
Update README.md (#30)
sfyll Feb 10, 2025
1568a95
Sfyll patch 1 (#34)
sfyll Feb 11, 2025
0a9e243
Update workflow (#35)
sfyll Feb 11, 2025
c1fb8b7
fix: bump `actions` from `v3` to `v4` (#36)
ameya-deshmukh Feb 12, 2025
9ba4a57
Fix `boost` link (#37)
ameya-deshmukh Feb 12, 2025
964b505
fix: change terminal message from `solc` to `ssolc` (#38)
ameya-deshmukh Feb 13, 2025
28f109c
Update workflow (#39)
sfyll Mar 10, 2025
69c227e
Unary ops (#40)
sfyll Mar 10, 2025
b8f3d4e
feat: remove auth token req+shift binary releases to repo itself (#41)
ameya-deshmukh Mar 10, 2025
41199cd
feat: fix workflow formatting (#42)
ameya-deshmukh Mar 10, 2025
dbb1e83
fix: make binary releases work on the repo itself (#43)
ameya-deshmukh Mar 12, 2025
dceac9b
adding ubuntu-22.04 (#46)
sfyll Mar 13, 2025
8a7cc5a
Ubuntu 22.04 (#47)
sfyll Mar 13, 2025
d0b18b4
Ubuntu 22.04 (#48)
sfyll Mar 13, 2025
9421e76
Immutable suint err (#49)
ssolit Apr 15, 2025
5bcfaa6
updating tests (#51)
sfyll Apr 21, 2025
52d3a62
Merge remote-tracking branch 'origin/develop' into seismic
sfyll May 5, 2025
c998583
Upstream merge through commit `ab55807` with repaired history (#61)
cdrappi Jul 15, 2025
9abb742
fix: macOS release issue (#54)
ameya-deshmukh Jun 19, 2025
cfb6329
fix: CI (#55)
ameya-deshmukh Jul 11, 2025
aa06f28
soltest: set -eu should instead be -e on mac (#60)
cdrappi Jul 15, 2025
ffa63db
update codeowners to @matthias-wright and @cdrappi (#58)
cdrappi Jul 15, 2025
b06ef97
CI/release: make spacing consistent with other actions (#62)
cdrappi Jul 15, 2025
987d168
Make pedantic mode build; fix failing shielded type tests; add in mis…
cdrappi Jul 17, 2025
5e7e469
Test: expect the default version of solc to be mercury (#68)
cdrappi Jul 17, 2025
0045727
Shielded Integer + Address types should inherit private fields, not r…
cdrappi Jul 17, 2025
1366a10
feat: add support for shielded fixed-size byte arrays (#32) (#65)
matthias-wright Jul 17, 2025
3a95044
run ci faster; publish separate binary for ubuntu-22.04 (#69)
cdrappi Jul 17, 2025
2a87d43
Ubuntu 22.04 support: build a release from self-hosted machine with g…
cdrappi Jul 22, 2025
2aadde4
CI/Build: don't set -j $(nproc) on Mac OS X; don't specify unused USE…
cdrappi Jul 22, 2025
696eb1c
CI: run soltest + semantic tests in GitHub actions (#72)
cdrappi Jul 23, 2025
d4b8c7a
ShieldedFixedBytes should be in Yul validator functions (#77)
ethlaude Aug 18, 2025
39753b5
feat: disallow shielded types as mapping keys (#74)
matthias-wright Sep 22, 2025
44346cf
feat: disallow shielded types as array indices (#75)
matthias-wright Sep 22, 2025
13bff8a
CI/release: mac-osx should build with -DBoost_NO_BOOST_CMAKE=ON (#78)
cdrappi Sep 22, 2025
b7f2bef
Revert "CI/release: mac-osx should build with -DBoost_NO_BOOST_CMAKE=…
cdrappi Sep 23, 2025
72bf88e
Timestamp ms (#76)
ethlaude Sep 29, 2025
1e05717
merge in
cdrappi Sep 29, 2025
65f1ec6
upstream merge through 0.8.30+ @ `872018f28` (#83)
cdrappi Sep 29, 2025
599ee81
CI/Release: remove macos-13 temporarily (#84)
cdrappi Sep 30, 2025
326e7c0
fix: macos build (#85)
ameya-deshmukh Sep 30, 2025
0db9093
CI: fix non-array test errors except one OOG error (#90)
cdrappi Oct 8, 2025
f1796c1
feat: shielded array .length method should always return uint (#87)
matthias-wright Oct 9, 2025
4d13bc1
Array length (now an uint) should use public storage too (#88)
cdrappi Oct 9, 2025
676bdec
feat: change type of shielded array constructor length from suint to …
matthias-wright Nov 12, 2025
7667afc
CI (zellic-audit): run semantic tests with optimizer on for 200 runs …
cdrappi Jan 16, 2026
bca3310
Fix: in UnusedStorageEliminator, CSTORE is indeed a valid storage wri…
cdrappi Jan 16, 2026
dd83ecc
Test: GasMeter should know CLOAD/CSTORE's fix gas costs (#109)
cdrappi Jan 16, 2026
9165989
Fix: GasMeter should handle CLOAD/CSTORE operations (#104)
cdrappi Jan 16, 2026
15ddfef
Failing tests: CSE applies across confidential domain to remove sload…
cdrappi Jan 20, 2026
88bb1dc
Fix: CSE applies across confidential domain to remove sload from a pr…
cdrappi Jan 20, 2026
5c75476
fix: GenericStorageItem::setToZero should check all shielded types (#…
cdrappi Jan 20, 2026
12b94de
fix: `saddress[]` should not be implicitly convertible to `address[]`…
cdrappi Jan 21, 2026
44c01f2
fix(tstore): transient s-types should use tstore/tload (#124)
cdrappi Jan 21, 2026
8cea3d1
fix: --via-ir pipeline should support ShieldedFixedBytes (#125)
cdrappi Jan 21, 2026
1ef32a1
test: add failing test for shielded array deletion
cdrappi Jan 22, 2026
4e35d34
fix: ArrayUtils::clearArray should use CSTORE for shielded arrays
cdrappi Jan 22, 2026
6c1bb1a
test: add tests for shielded types return visibility
samlaf Jan 20, 2026
b30f6b5
test: fix semantic tests
samlaf Jan 21, 2026
fd48956
fix(visibility): prevent returning any shielded type in public/extern…
samlaf Jan 20, 2026
4cfbda5
test: update tests that check disallowing implicit conversion of sadd…
cdrappi Jan 22, 2026
c55e60e
test: update sstore then cload test expectations to reflect new seman…
cdrappi Jan 26, 2026
99ae5ec
test: add yul, syntax & semantic tests for timestamp_seconds/timestam…
cdrappi Jan 26, 2026
05f3c98
fix: --via-ir pipeline should support magic block.timestamp_ms and .t…
cdrappi Jan 26, 2026
09a15ad
test: add EVM version gate test for timestampms instruction
cdrappi Jan 26, 2026
3d15507
fix: gate TIMESTAMPMS opcode to Mercury-compatible VMs
cdrappi Jan 26, 2026
8a2c390
ci(speedup): cache more steps in the solidity build (#140)
cdrappi Jan 26, 2026
8a3ceca
ci(speedup): only reconfigure cmake if something has changed (#143)
cdrappi Jan 27, 2026
9a9374c
test: expect evm version gating for block.timestamp_ms at the Solidit…
cdrappi Jan 26, 2026
dc937a7
fix: gate block.timestamp_ms and block.timestamp_seconds in TypeChecker
cdrappi Jan 26, 2026
a6dc900
test: add SMT test for block.timestamp_seconds aliasing bug
cdrappi Jan 27, 2026
59a4195
fix: alias block.timestamp_seconds to block.timestamp in SMT model
cdrappi Jan 27, 2026
2fca444
ci: don't run CI on PRs to seismic branch in the zellic-audit branch
cdrappi Jan 27, 2026
6c84c4a
ci: remove double apt-get; print ccache stats (#145)
cdrappi Jan 27, 2026
ad883e1
feat(analysis): add shielded storage opcode semantics to type-checker…
samlaf Jan 26, 2026
bf5a8b8
delete cstore->cload sem test (is now syntax test)
samlaf Jan 27, 2026
8fb3c2a
fix(optimiser): cstore shouldn't be eliminated when followed by sstor…
cdrappi Jan 27, 2026
798e2fd
fix(yul-optimiser): dont hoist sloads since they can revert (#151)
samlaf Feb 2, 2026
5f21e45
fix(evmasm-optimiser): mark sload as having effects (#148)
samlaf Feb 3, 2026
62bccfa
test(yul): add tests for timestampms identifier reservation
cdrappi Feb 3, 2026
bc34366
fix(yul): add timestampms to reserved identifier exceptions for pre-M…
cdrappi Feb 3, 2026
5bc3ba7
test(codegen): add tests for string literal to sbytes conversion
cdrappi Feb 3, 2026
0c8d7a2
fix(codegen): support string literal to ShieldedFixedBytes conversion
cdrappi Feb 3, 2026
37d3bd7
test(types): add tests for disallowed saddress member access
cdrappi Feb 3, 2026
7d5cccc
fix(types): restrict saddress members to code and codehash only
cdrappi Feb 3, 2026
473efad
test(codegen): add tests for UDT wrapping shielded primitives
cdrappi Feb 3, 2026
5fbd4d4
fix(codegen): support shielded primitives in user-defined types
cdrappi Feb 3, 2026
f85a66a
test: add regression tests for shielded array storage operations
cdrappi Jan 22, 2026
5354fc5
test(codegen): add regression tests for shielded storage bugs
cdrappi Feb 3, 2026
85f62ae
fix: use cstore/cload for shielded array storage operations
cdrappi Jan 22, 2026
7e6593e
fix(codegen): complete shielded storage opcode fixes for VER-771
cdrappi Feb 3, 2026
d4ca185
test(types): add regression tests for UDVT shielded mapping keys
cdrappi Feb 5, 2026
3a3fbf9
test(codegen): add regression tests for address/saddress to enum conv…
cdrappi Feb 5, 2026
6847fe7
fix(codegen): correct enum conversion guard for address/saddress types
cdrappi Feb 5, 2026
959c4a3
test(codegen): add regression tests for bytes/string push bug
cdrappi Feb 5, 2026
491cec4
test(codegen): add syntax test for byte array helpers with non-shield…
cdrappi Feb 5, 2026
545ed83
fix(codegen): check base type instead of array category for shielded …
cdrappi Feb 5, 2026
5bde633
test(analysis): add syntax tests for shielded types in ABI encoding
cdrappi Feb 5, 2026
3c90140
fix(analysis): reject shielded types in ABI encoding and decoding
cdrappi Feb 5, 2026
a671413
fix(codegen): incorrect store/load instruction when copying (unimplem…
cdrappi Feb 6, 2026
1199286
test(codegen): add regression tests for struct delete with mixed shie…
cdrappi Feb 6, 2026
f6e0052
fix(codegen): use sstore for sub-32-byte fields in struct delete clear
cdrappi Feb 6, 2026
b9d9867
test(analysis): add regression tests for mismatched privacy opcodes
cdrappi Feb 6, 2026
70b588d
test(ir): disable tests that require --via-ir
cdrappi Feb 6, 2026
fe61bfe
ci(ir): use --skip-via-ir for semantic tests until via-ir is re-enabled
cdrappi Feb 6, 2026
e4f327d
chore(ir): disable compiling with --via-ir pipeline until we fully su…
cdrappi Feb 6, 2026
fa9ee13
test(types): expect suint length for dynamic shielded arrays
cdrappi Feb 6, 2026
80b21a5
fix(types): use cload/cstore for dynamic shielded array length
cdrappi Feb 6, 2026
4b3ab63
test(analysis): expect shielded literal leak warnings in non-declarat…
cdrappi Feb 13, 2026
41c9237
fix(analysis): warn on shielded literal conversions in all contexts
cdrappi Feb 13, 2026
4510920
test(types): update existing tests for sbytes dynamic byte array
cdrappi Feb 13, 2026
9fd78c5
test(types): add sbytes dynamic shielded byte array tests
cdrappi Feb 13, 2026
040d93d
fix(codegen): implement sbytes and fix cstore/cload codegen bugs
cdrappi Feb 13, 2026
5392766
docs(types): document sbytes dynamic shielded bytes support
cdrappi Feb 13, 2026
848e611
ci(semantic-tests): add via-IR test runs with --unsafe-via-ir
cdrappi Feb 14, 2026
a2480c2
test(via-ir): update test configuration for via-IR compatibility
cdrappi Feb 14, 2026
46942cf
test(via-ir): add regression tests with compileViaYul:also
cdrappi Feb 14, 2026
4a228e7
fix(via-ir): complete shielded type support for via-IR pipeline
cdrappi Feb 14, 2026
4a3962c
test(types): add EVM version validation tests for shielded types
cdrappi Feb 15, 2026
b35d358
fix(codegen): add EVM version validation for shielded types
cdrappi Feb 15, 2026
19f5b62
test(langutil): add EVM version default consistency test
cdrappi Feb 16, 2026
0fc7ee3
fix(langutil): use single source of truth for default EVM version
cdrappi Feb 16, 2026
a24f7ad
test(yul-optimizer): add cstore/cload optimizer tests
cdrappi Feb 16, 2026
fa63127
fix(yul-optimizer): wire cstore/cload as canonical storage in libyul
cdrappi Feb 16, 2026
5c51224
CI: run semantic tests with optimizer on for 200 runs as well (#99)
cdrappi Jan 16, 2026
21625ff
Test Ver[762]: add KnownStorage tests that should fail with the optim…
cdrappi Jan 16, 2026
1ec3862
Fix Ver[762]: KnownStorage may drop revert (#97)
cdrappi Jan 16, 2026
265f104
Optimizer bug: in UnusedStorageEliminator, CSTORE is indeed a storage…
cdrappi Jan 16, 2026
e229fcf
test: add tests for shielded types return visibility
samlaf Jan 20, 2026
205508d
fix(visibility): prevent returning any shielded type in public/extern…
samlaf Jan 20, 2026
af5f22a
test: fix semantic tests
samlaf Jan 21, 2026
5e4b4c2
test: add comprehensive tests for literal-to-shielded warnings
cdrappi Jan 21, 2026
691e29a
fix: comprehensive literal-to-shielded warning detection
cdrappi Jan 21, 2026
9fe19e7
test: add regression tests for shielded array storage operations
cdrappi Jan 22, 2026
36032e9
fix: use cstore/cload for shielded array storage operations
cdrappi Jan 22, 2026
7e28c6e
fix: `saddress[]` should not be implicitly convertible to `address[]`…
cdrappi Jan 21, 2026
b28a29a
test: update tests that check disallowing implicit conversion of sadd…
cdrappi Jan 22, 2026
bd750c4
test(semantic): update the storage tests to reflect new semantics
samlaf Jan 22, 2026
cac3eec
test: we're now allowed to cload from public storage
cdrappi Jan 23, 2026
ad620cd
test: add comprehensive tests for shielded delete operations
cdrappi Jan 22, 2026
2a26273
fix: use CSTORE for all shielded delete operations
cdrappi Jan 22, 2026
0964988
feat(analysis): add shielded storage opcode semantics to type-checker…
samlaf Jan 26, 2026
4e3a3b5
ci: don't run CI on PRs to seismic branch for now (#147)
cdrappi Jan 27, 2026
b087a07
fix(optimiser): cstore shouldn't be eliminated when followed by sstor…
cdrappi Jan 27, 2026
79cf20b
fix(yul-optimiser): dont hoist sloads since they can revert (#151)
samlaf Feb 2, 2026
265445b
fix(evmasm-optimiser): mark sload as having effects (#148)
samlaf Feb 3, 2026
47fd2d5
test(analysis): add tests for shielded literal array warnings
cdrappi Feb 3, 2026
fcb5002
fix(analysis): detect shielded literals in array literal initializers
cdrappi Feb 3, 2026
b4e8377
test(codegen): add regression tests for shielded storage bugs
cdrappi Feb 3, 2026
bfd8c10
fix(codegen): complete shielded storage opcode fixes for VER-771
cdrappi Feb 3, 2026
270db08
ci(cache): run github actions with smarter cache so builds go faster
cdrappi Feb 3, 2026
86de45e
test(codegen): add tests for transient shielded storage opcodes
cdrappi Feb 3, 2026
a83ce23
fix(codegen): use TSTORE/TLOAD for transient shielded value types
cdrappi Feb 3, 2026
a101692
test(types): add regression tests for UDVT shielded mapping keys
cdrappi Feb 4, 2026
159ab5b
fix(types): reject shielded UDVTs as mapping keys
cdrappi Feb 4, 2026
0923b9c
test(types): add tests for shielded rational shift and exp result types
cdrappi Feb 4, 2026
5c47141
fix(types): return shielded types for rational shift/exp with shielde…
cdrappi Feb 4, 2026
5da38e2
test(codegen): add tests for shielded integer cleanup in unchecked mode
cdrappi Feb 4, 2026
892a07a
fix(codegen): include ShieldedInteger in unchecked arithmetic cleanup
cdrappi Feb 4, 2026
4ecfb7b
test(types): add tests for shielded type comparisons returning sbool
cdrappi Feb 4, 2026
2b22de3
fix(types): return sbool for shielded type comparisons
cdrappi Feb 4, 2026
a1652e3
test(analysis): add syntax tests for shielded types in ABI encoding
cdrappi Feb 5, 2026
65543c9
fix(analysis): reject shielded types in ABI encoding and decoding
cdrappi Feb 5, 2026
1507a3f
test(analysis): add syntax tests for shielded arithmetic info leaks
cdrappi Feb 5, 2026
1d04d89
fix(analysis): warn about shielded integer arithmetic info leaks
cdrappi Feb 5, 2026
85f1bcd
test(codegen): add syntax test for byte array helpers with non-shield…
cdrappi Feb 5, 2026
89db14e
fix(codegen): check base type instead of array category for shielded …
cdrappi Feb 5, 2026
b741c9c
Test: GasMeter should know CLOAD/CSTORE's fix gas costs (#109)
cdrappi Jan 16, 2026
feddc51
Fix: GasMeter should handle CLOAD/CSTORE operations (#104)
cdrappi Jan 16, 2026
cdb3c6d
test(types): add tests for disallowed saddress member access
cdrappi Feb 3, 2026
de94124
fix(types): restrict saddress members to code and codehash only
cdrappi Feb 3, 2026
89bffaa
test(analysis): add syntax tests for shielded control flow warnings
cdrappi Feb 5, 2026
f4c974a
fix(analysis): warn about shielded types in control flow conditions
cdrappi Feb 5, 2026
17d869d
test(codegen): add tests for string literal to sbytes conversion
cdrappi Feb 3, 2026
33d3ac6
fix(codegen): support string literal to ShieldedFixedBytes conversion
cdrappi Feb 3, 2026
861717f
test(analysis): add syntax tests for implicit string literal to sbytesN
cdrappi Feb 5, 2026
47a8cb9
fix(types): reject implicit string literal conversion to sbytesN
cdrappi Feb 5, 2026
bf73267
test(ir): disable tests that require --via-ir
cdrappi Feb 6, 2026
f478aee
ci(ir): use --skip-via-ir for semantic tests until via-ir is re-enabled
cdrappi Feb 6, 2026
53091d9
chore(ir): disable compiling with --via-ir pipeline until we fully su…
cdrappi Feb 6, 2026
f5c23bb
test(types): expect suint length for dynamic shielded arrays
cdrappi Feb 6, 2026
9e2c75d
fix(types): use cload/cstore for dynamic shielded array length
cdrappi Feb 6, 2026
93b32f9
docs(shielded): add SHIELDED_TYPES.md documenting privacy edge cases
cdrappi Feb 10, 2026
49701e5
test(analysis): expect msg.value to shielded type warning
cdrappi Feb 11, 2026
d386333
fix(analysis): warn when msg.value is assigned to shielded type
cdrappi Feb 11, 2026
9ef2657
test(analysis): expect dynamic shielded array length upper-bound warning
cdrappi Feb 11, 2026
e194f28
fix(analysis): warn about dynamic shielded array length upper-bound
cdrappi Feb 11, 2026
da58461
chore(types): document isByteArrayOrString non-shielded assumption
cdrappi Feb 11, 2026
e878d62
test(analysis): expect shielded transient storage rejection
cdrappi Feb 11, 2026
83134ae
fix(analysis): reject shielded types with transient storage
cdrappi Feb 11, 2026
350de81
test(analysis): expect shielded literal leak warnings in non-declarat…
cdrappi Feb 12, 2026
9ada082
fix(analysis): warn on shielded literal conversions in all contexts
cdrappi Feb 12, 2026
30ac621
test(analysis): expect shielded leak warnings for constant exprs
cdrappi Feb 13, 2026
200e1c4
fix(analysis): warn on constant expressions cast to shielded types
cdrappi Feb 13, 2026
e24a568
test(types): update existing tests for sbytes dynamic byte array
cdrappi Feb 13, 2026
08711fa
test(types): add sbytes dynamic shielded byte array tests
cdrappi Feb 13, 2026
5dff0a8
fix(codegen): implement sbytes and fix cstore/cload codegen bugs
cdrappi Feb 13, 2026
8909801
docs(types): document sbytes dynamic shielded bytes support
cdrappi Feb 13, 2026
0a6541c
ci(semantic-tests): add via-IR test runs with --unsafe-via-ir
cdrappi Feb 14, 2026
0bd3b2a
test(via-ir): update test configuration for via-IR compatibility
cdrappi Feb 14, 2026
108cd54
test(via-ir): add regression tests with compileViaYul:also
cdrappi Feb 14, 2026
fda044c
fix(via-ir): complete shielded type support for via-IR pipeline
cdrappi Feb 14, 2026
76ca596
Merge seismic (veridise-audit content) into zellic-audit
drappi-ai Mar 3, 2026
fd364a6
Merge seismic into zellic-audit (pre-resolved) (#210)
cdrappi Mar 3, 2026
5a6a61f
chore(ci): remove 'zellic-audit' branch from test.yml
cdrappi Mar 3, 2026
d0a92cc
Zellic audit fixes (#107)
cdrappi Mar 3, 2026
f346d20
ci(release): add workflow_dispatch trigger (#209)
cdrappi Mar 3, 2026
3be77e1
chore(codeowners): remove matthias from codeowners (#214)
cdrappi Mar 3, 2026
6db9121
Clarify contribution guidelines on typo fixes (#213)
cdrappi Mar 3, 2026
93d0012
test(codegen): add cases for transient/persistent storage delete coll…
drappi-ai Mar 3, 2026
f0054c6
fix(codegen): generate distinct helpers for transient vs persistent s…
drappi-ai Mar 3, 2026
ca204ef
feat(builtins): add rng8/16/32/64/128/256() helper functions
drappi-ai Mar 3, 2026
082d23d
feat(builtins): add ecdh() helper function
drappi-ai Mar 3, 2026
97237b7
feat(builtins): add aes_gcm_encrypt() and aes_gcm_decrypt() helper fu…
drappi-ai Mar 3, 2026
bc6e5ce
feat(builtins): add hkdf() helper function
drappi-ai Mar 3, 2026
86aea2f
feat(builtins): add secp256k1_sign() helper function
drappi-ai Mar 3, 2026
6f02c0b
docs: add CLAUDE.md with repo conventions (#216)
drappi-ai Mar 4, 2026
a2d49d3
test(suint): comprehensive suint test suite (#215)
drappi-ai Mar 4, 2026
df1b589
ci: expand semantic tests to cover more optimizer-runs values (#217)
drappi-ai Mar 5, 2026
fae4ec8
feat(scripts): add local semantic test runner and optimizer sweep scr…
drappi-ai Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
51 changes: 35 additions & 16 deletions .circleci/build_win.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,43 @@ $ErrorActionPreference = "Stop"
cd "$PSScriptRoot\.."

if ("$Env:FORCE_RELEASE" -Or "$Env:CIRCLE_TAG") {
New-Item prerelease.txt -type file
Write-Host "Building release version."
}
else {
# Use last commit date rather than build date to avoid ending up with builds for
# different platforms having different version strings (and therefore producing different bytecode)
# if the CI is triggered just before midnight.
$last_commit_timestamp = git log -1 --date=unix --format=%cd HEAD
$last_commit_date = (Get-Date -Date "1970-01-01 00:00:00Z").toUniversalTime().addSeconds($last_commit_timestamp).ToString("yyyy.M.d")
-join("ci.", $last_commit_date) | out-file -encoding ascii prerelease.txt
New-Item prerelease.txt -type file
Write-Host "Building release version."
} else {
$last_commit_timestamp = git log -1 --date=unix --format=%cd HEAD
$last_commit_date = (Get-Date -Date "1970-01-01 00:00:00Z").ToUniversalTime().AddSeconds($last_commit_timestamp).ToString("yyyy.M.d")
-join("ci.", $last_commit_date) | Out-File -Encoding ascii prerelease.txt
}

mkdir build
cd build
$boost_dir=(Resolve-Path $PSScriptRoot\..\deps\boost\lib\cmake\Boost-*)
..\deps\cmake\bin\cmake -G "Visual Studio 16 2019" -DBoost_DIR="$boost_dir\" -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_INSTALL_PREFIX="$PSScriptRoot\..\upload" ..
if ( -not $? ) { throw "CMake configure failed." }
msbuild solidity.sln /p:Configuration=Release /m:10 /v:minimal
if ( -not $? ) { throw "Build failed." }

$boost_dir = Resolve-Path "$PSScriptRoot\..\deps\boost\lib\cmake\Boost-*"
Write-Host "Using Boost Directory: $boost_dir"

..\deps\cmake\bin\cmake -G "Visual Studio 17 2022" `
-A x64 `
-DBoost_DIR="$boost_dir\" `
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded `
-DCMAKE_INSTALL_PREFIX="$PSScriptRoot\..\upload" ..

if (-not $?) { throw "CMake configure failed." }

# Dynamically locate msbuild using vswhere
$msbuildPath = & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" `
-latest `
-products * `
-requires Microsoft.Component.MSBuild `
-find MSBuild\**\Bin\MSBuild.exe

if (-not (Test-Path $msbuildPath)) {
throw "msbuild not found. Ensure Visual Studio Build Tools are installed with MSBuild."
}

Write-Host "Using msbuild at: $msbuildPath"

& $msbuildPath solidity.sln /p:Configuration=Release /m:10 /v:minimal
if (-not $?) { throw "Build failed." }

..\deps\cmake\bin\cmake --build . -j 10 --target install --config Release
if ( -not $? ) { throw "Install target failed." }
if (-not $?) { throw "Install target failed." }
6 changes: 5 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,14 @@ trim_trailing_whitespace = true
indent_style = tab
indent_size = 4

[*.{py,rst,sh,yml}]
[*.{py,rst,sh}]
indent_style = space
indent_size = 4

[*.{yml}]
indent_style = space
indent_size = 2

[*.{sol,yul}]
indent_style = space
indent_size = 4
Expand Down
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
/docs/style-guide.rst @fulldecent
* @cdrappi
201 changes: 201 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
name: Release
on:
push:
branches:
- seismic
workflow_dispatch:
inputs:
ref:
description: "Commit SHA or branch to build from"
required: false
default: ""
tag_name:
description: "Tag name for the release (defaults to short SHA of the ref)"
required: false
default: ""
latest:
description: "Mark this release as the latest on GitHub"
type: boolean
required: false
default: false
jobs:
build-release:
name: Build and Archive Binaries
runs-on: ${{ matrix.os == 'ubuntu-22.04' && 'ssolc-ubuntu-22.04' || matrix.os }}
strategy:
fail-fast: false
matrix:
# macos-14-large is macos-14 with x86_64
# macos-latest-large is macos-latest (macos-15) with x86_64
os:
[
ubuntu-latest,
ubuntu-22.04,
windows-latest,
macos-latest-large,
macos-latest,
macos-14-large,
macos-14,
]
arch: [x86_64, arm64]
exclude:
- os: macos-latest
arch: x86_64
- os: macos-14
arch: x86_64
- os: macos-14-large # since macos-14-large is x86_64
arch: arm64
- os: macos-latest-large
arch: arm64 # since macos-latest-large is x86_64
steps:
# Checkout source code
- name: Checkout source code
uses: actions/checkout@v4
with:
# For workflow_dispatch: uses the user-provided ref (branch/tag/SHA).
# For push triggers: inputs.ref is empty, so falls back to github.sha (the pushed commit).
ref: ${{ github.event.inputs.ref || github.sha }}
submodules: recursive
# Set up dependencies
- name: Set up dependencies (Linux & macOS)
if: ${{ matrix.os != 'windows-latest' }}
shell: bash
# NOTE: on the self-runner machine (ubuntu-22.04),
# these dependencies are already installed
run: |
if [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then
sudo apt-get update
sudo apt-get install -y build-essential python3 python3-pip \
zlib1g-dev libboost-all-dev libssl-dev ccache
elif [[ "${{ matrix.os }}" == "macos-latest" || "${{ matrix.os }}" == "macos-14" || "${{ matrix.os }}" == "macos-14-large" || "${{ matrix.os }}" == "macos-latest-large" ]]; then
brew update
brew install boost openssl ccache
fi
- name: Set up dependencies (Windows)
if: ${{ matrix.os == 'windows-latest' }}
shell: powershell
run: |
.\scripts\install_deps.ps1
- name: Build Seismic Solidity on Windows
if: ${{ matrix.os == 'windows-latest' }}
shell: powershell
run: |
.\.circleci\build_win.ps1
# Build Seismic Solidity
- name: Build Seismic Solidity on Linux & macOS
if: ${{ matrix.os != 'windows-latest' }}
shell: bash
# For some reason, -j 2 is much faster than -j $(nproc) on macosx
run: |
mkdir build
cd build
if [[ "${{ matrix.os }}" == "macos-latest" || "${{ matrix.os }}" == "macos-14" || "${{ matrix.os }}" == "macos-14-large" || "${{ matrix.os }}" == "macos-latest-large" ]]; then
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} \
-DPEDANTIC=OFF
elif [[ "${{ matrix.os }}" == "ubuntu-latest" || "${{ matrix.os }}" == "ubuntu-22.04" ]]; then
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DPEDANTIC=OFF
fi
JOBS=$([[ "${{ matrix.os }}" == "macos-latest" || "${{ matrix.os }}" == "macos-14" || "${{ matrix.os }}" == "macos-14-large" || "${{ matrix.os }}" == "macos-latest-large" ]] && echo 2 || nproc)
cmake --build . --config Release -j $JOBS
# Archive binary
- name: Archive binary (Linux & macOS)
if: ${{ matrix.os != 'windows-latest' }}
shell: bash
run: |
cd build
if [ "${{ matrix.os }}" = "macos-latest" ]; then
tar -czvf ssolc-macos-arm64.tar.gz solc/solc
elif [ "${{ matrix.os }}" = "macos-latest-large" ]; then
tar -czvf ssolc-macos-latest-x86_64.tar.gz solc/solc
elif [ "${{ matrix.os }}" = "macos-14" ]; then
tar -czvf ssolc-macos-14-arm64.tar.gz solc/solc
elif [ "${{ matrix.os }}" = "macos-14-large" ]; then
tar -czvf ssolc-macos-14-x86_64.tar.gz solc/solc
elif [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then
tar -czvf ssolc-linux-${{ matrix.arch }}.tar.gz solc/solc
elif [[ "${{ matrix.os }}" == "ubuntu-22.04" ]]; then
tar -czvf ssolc-${{ matrix.os }}-${{ matrix.arch }}.tar.gz solc/solc
fi
- name: Archive binary (Windows)
if: ${{ matrix.os == 'windows-latest' }}
shell: powershell
run: |
cd build
Compress-Archive -Path solc/Release/solc.exe -DestinationPath ssolc-windows-${{ matrix.arch }}.zip
# Upload artifacts
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: binaries-${{ matrix.os }}-${{ matrix.arch }}
path: build/*ssolc-*
publish-release:
name: Create Release
needs: build-release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# For workflow_dispatch: uses the user-provided ref (branch/tag/SHA).
# For push triggers: inputs.ref is empty, so falls back to github.sha (the pushed commit).
ref: ${{ github.event.inputs.ref || github.sha }}
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/
- name: Create Release
env:
GITHUB_TOKEN: ${{ github.token }}
run: |-
cd artifacts/

# Move all archives to a flat directory structure
mkdir -p release_files
find . -type f \( -name "*.tar.gz" -o -name "*.zip" \) -exec cp {} release_files/ \;

cd release_files

# Check if files were found
ARCHIVES=$(ls *.tar.gz *.zip 2>/dev/null || echo "")
if [ -z "$ARCHIVES" ]; then
echo "Error: No archive files found in release_files directory!"
exit 1
fi

echo "Found archive files:"
ls -la

# Resolve the actual SHA (handles branch names, tags, etc.)
RESOLVED_SHA=$(git rev-parse HEAD)
SHORT_SHA=$(echo "$RESOLVED_SHA" | cut -c1-7)

# Use provided tag_name (when workflow_dispatch'ing) or fall back to short SHA
TAG_NAME="${{ github.event.inputs.tag_name }}"
if [ -z "$TAG_NAME" ]; then
TAG_NAME="$SHORT_SHA"
fi
echo "Using tag: $TAG_NAME (commit: $RESOLVED_SHA)"

# For workflow_dispatch, use the user's choice (defaults to false).
# For push triggers, inputs.latest is empty so we default to true.
LATEST="${{ github.event.inputs.latest }}"
LATEST_FLAG="--latest=${LATEST:-true}"

# Create release first
gh release create "$TAG_NAME" \
--title "Release $TAG_NAME" \
--notes "Automated release for commit $RESOLVED_SHA." \
--target "$RESOLVED_SHA" \
$LATEST_FLAG

# Then upload each asset separately
shopt -s nullglob
for file in *.tar.gz *.zip; do
echo "Uploading $file..."
gh release upload "$TAG_NAME" "$file" --clobber
done
shopt -u nullglob
2 changes: 1 addition & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
close-pr-label: closed-due-inactivity
days-before-pr-stale: ${{ env.BEFORE_PR_STALE }}
days-before-pr-close: ${{ env.BEFORE_PR_CLOSE }}
exempt-pr-labels: 'external contribution :star:,roadmap,epic'
exempt-pr-labels: 'external contribution :star:,roadmap,epic, upstream diff'
exempt-draft-pr: false
exempt-all-milestones: true
remove-stale-when-updated: true
Expand Down
Loading
Loading