Skip to content

test(osaka): add edge case test vectors for EIP-7883 MODEXP gas calculation #1993

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Aug 7, 2025
Merged
Changes from all commits
Commits
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
114 changes: 113 additions & 1 deletion tests/osaka/eip7883_modexp_gas_increase/vectors.json
Original file line number Diff line number Diff line change
Expand Up @@ -208,5 +208,117 @@
"Name": "marcin-3-balanced",
"GasOld": 1360,
"GasNew": 4080
},
{
"Input": "000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020fd10e29482419533334ff25031f487f1fc0d2d179acc9e2cb7719f4e95f71e430000000000000000000000000000000000000000000000000000000000000000b5d3354acc9731339fb0e64d666aa79675619ea5f5b66b70c5e92640568c51c6",
"Expected": "0000000000000000000000000000000000000000000000000000000000000001",
"Name": "zero-exponent-32bytes",
"GasOld": 200,
"GasNew": 500
},
{
"Input": "0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000208d74b1229cc36912165d7ed62334d5ce0683ad12dbade86cdbd705f46693d6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008f70e8f94c5ad28ed971e258ea3854ebf57131ae4c842e5cafe1c70db8272caf",
"Expected": "0000000000000000000000000000000000000000000000000000000000000001",
"Name": "zero-exponent-64bytes",
"GasOld": 1365,
"GasNew": 8192
},
{
"Input": "0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000309a06db9abffebe2e2b14531c3b729b4c9f74a890a1b86e4e8ee728507536b4d20dd5982acdfd508a8c4549fd0622e6266d59d0ad387eaa9163aeb746c8a37aed45f17f97015c19a1e086c28caa1d0a499bb63b3e0d4e1cff87319d07e3195581",
"Expected": "348b4411d0bf6337d3061169eca6114b54c5c22adbc453834b11e16fc54c73d9c7f34047b0585ab6a11609104235dd91",
"Name": "unequal-base-mod-lengths",
"GasOld": 3060,
"GasNew": 18360
},
{
"Input": "00000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000702c06a45e159cb4c7741ec7533282f",
"Expected": "291e7f48fc3b41",
"Name": "word-boundary-7bytes",
"GasOld": 200,
"GasNew": 500
},
{
"Input": "000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009c38b617604d927dd7ecadecd1b21bdb6022001",
"Expected": "c63e1e2b3d44e3dedf",
"Name": "word-boundary-9bytes",
"GasOld": 200,
"GasNew": 500
},
{
"Input": "000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021425057b404526baca2d46d743728f0a9d2f5ec451e8c5691448e7815a83c2becd8153b299c4e0a3341c06ead40d6a9c989be6e08f11479f09412293da072e793d3470e7620e29e0445590c8d7659ed58b69ec6e9dfa4c1fc15c4654a91f398fd",
"Expected": "5b2936884b205b7f53cef1d677b23e435564ddc25d8601b1a93c822f8b5a657e6b",
"Name": "32byte-boundary-31-32-33",
"GasOld": 2125,
"GasNew": 12750
},
{
"Input": "0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000204d459c333fe2e1ac503a3659b33931c9193190863d27df62003adf014222d472b32aad8de34175ecfe566893f02ae529bc6285c4b4722107f5342f29cfe9fdfe151b6c13559b559685d1eb88a452b457e0f91e6879fe8e3faf52c1cc0cea8bda134318d8e5779c9fb294ec35adc1c9af69d1fc2d091cfbdb3d39a31822b4446ecb02b8e3ae81b97ca7651d50a7c4f09f",
"Expected": "28daf00293ae1dabe2a1a3caefc6fe0f1581bae146c0ad0d7f9650f7c4faf0f0",
"Name": "large-exponent-80bytes",
"GasOld": 3408,
"GasNew": 16368
},
{
"Input": "0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000206ea6c150792130fbfb05b72aacba79157f9b86e05c975cb1585e68fb663801da000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff148f0b9e252c56e138f8c65a832ebca75241a386a918c14f466fb84a22f8b771",
"Expected": "08d8fab720b60be2e3af8437e15e467c625cd8704c2382449e7a50437355c6be",
"Name": "large-exponent-128bytes-lsb",
"GasOld": 4096,
"GasNew": 24576
},
{
"Input": "00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000111d87c",
"Expected": "65",
"Name": "minimal-1byte-all",
"GasOld": 200,
"GasNew": 500
},
{
"Input": "00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004071ec16921dffa0fb375c10cad75c7f4a750fd9562208d5d4d47ac008bafca749f7d9291e15b3515643deecc89abe8f4da3a388bff32cfac6cf53128409376bb998af5c2279288e00890b4e04d043ff8d8ddf14ce4b96ecc8ba20a352fb39fbaa4fb870e26b2e4492efcdc6854b8ccf92a307b7cb6afef227a3d238280d7214368f",
"Expected": "2529b7fe039758e47401e0bb63feab7155d7345437e24fad6f6fb4a7fe6670ded943ba45fed2473921f1e7b6f04212413195b4aa38ac56cd7f9ed037bec0d586",
"Name": "64byte-base-1byte-exp",
"GasOld": 200,
"GasNew": 896
},
{
"Input": "000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000020bfdcc8e5f778ddba5192ab872af34da969f048590a5d4eb7ae02c005de33d5c90000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000000000000000000cf0d1b6669e951fa915414d3da69a8c9d25c35b641c0067dd7b9ace41c7e9053",
"Expected": "7d059d490060260b9f2722e928155843abe4845078a0669bcbfc7675a10ebc87",
"Name": "exponent-72bytes-msb-at-33",
"GasOld": 1706,
"GasNew": 10240
},
{
"Input": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000660bfd6246b7f481d4a9955bb2bd9ee970e21063193ae484c413aea066fc949d",
"Expected": "",
"Name": "zero-length-base-mod",
"GasOld": 200,
"GasNew": 4064
},
{
"Input": "000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100e6c494fcb8039d05cc2133c7aa6ef221e1f27633e99a022941d84fa0bbe764b01ac4d2c86e2fc1f8d59368bd3a0c279f562cedb4b5621ede72f7cb4acd5e3878225427a80c932f22958aaa902ba4d39d4d9ef9609da7f5c9cdc788871d85f2498237741e96d864be6f055c883054274e97e28a137578c1ed1cf5e4eb5a1a549c97315b3fed5e9dfbc9a8ceee6b125eb182667abb5ed57c336bd55c04c002e0b184ef337466696c8cab404f4aa2170c9907e2be22e118720e47856e6115294912f8ca46769892cc4d0df67ffcc5e723a9a8798fe4c504d756f58f7cb6800414006431168ce6c2f86ec70d51ad73947c42834ce176770de3134099f1b51aacebb2f9b95c74aeee4ee9cbaeb6cbc8dd7fb90f178ba9b7ae19ad5599db229b868ed0432e8ed31b556a22197b23a39e93fba545efef6de3f11b9d537e082e273c64a5344622ddfd96cd27a874c44bb96f2be16d683284fa083339937e6429706375dff7c393abcd26e67cddbf8aa43ceb092dd12d0e4c472e4479697d6184ff4dde6e65a19ace7d712c186ffaf8dd3ca3052cd5725b37ed5147331a66608a114f642d6173bd58a8cb28c6b7a8e90b976ca83bd8fc83bba936b4cf0e82d192f66d3c526bf390d5dcd5b1e3a139867e43e01a6e67394b33419acb8a4bab77081a2ce91bcd65bc5bad08de86862670cae78ec2064c09371aa6a477a948950020b145d3e4230b81bd7d96be5869b335afc3cc4b3197aff99f9441090fb050c925003f39ce7c227f5038cda2a37cd9e856435058fb2edbdf34ad9137e71913522a5858023833729dbe7ae1e1b445f01f749599b7827fabf0f4c2e92c60c6f870d827cc154d7cc9c95bf6b2eef4a21b1caef80b425bfd1f21cb30836dba58fb34a75aaecf03acd14c74d600df979673421dcd3f122e4b348a944983b51a83e61ea50dbd7f188df94b97340b949b196cf226264254215bbb53f25ad584c70855579f3fb8f705297bf6a68e2cadc32eb3933b6bb6e4e3efaa6e518a2b7426eb56c4744060bb8c9be50c8213966c0227e9507d74be224673bfe56c44856d9361d681a645812538",
"Expected": "20000c5a76d926aa5a60f13bab4c8c232de4ad42c4d09f01b04ac0beccbea8a24939911b065f62800527fdcfbb0ee843c2bf5e8d02c5141cb173fbb607b3f3845085c1c3f0f301c72cc8d7db666555ba628ee33694bceb859c1e1953995d85474c069e26f849365c833f2b97b3274a0fdd4bc21cbfc4d00b202afed29aa192e03aa635651087404cf8370f16fd355804da06a22716b09f7a94a39f98126237882b01a13d7de25b5a0196d620a1269b240ac908ab125276e7ed4038d63b1812820a71a867f8280d193ca9f13f012893015ae92d9677778000247828526383550c13ba9f3be4b9ca2a5d9ecdc77c6047fcb1bd11a995f3296becf16f67dcf77a60",
"Name": "256byte-all-params",
"GasOld": 698709,
"GasNew": 7862272
},
{
"Input": "00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021000000000000000000000000000000000000000000000000000000000000002014fadab683b091c9cbde019f7a0bdc68a433530323e969b1b258d622c620f84900000000000000000000000000000000000000000000000000000000000000ffffa99f6f95feb7ac53b4ff1bfed874e4f0855076c182570be582a570356f70e930",
"Expected": "5ae98cd73052457257f43b007755e469d1867fbafa6abfd1db32fd8f0851c3d9",
"Name": "33byte-exponent-last-2bytes-ff",
"GasOld": 200,
"GasNew": 500
},
{
"Input": "0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000203fdb9a1dfe54fd10fe2793c41f01be9cdfb3d7ed8c252b441207212bc7c05ee600000000000000000000000000000000000000000000000000000000000000006bd85245a361e3ecd601fa587bc62be2b605cebacc1a1042efba2f80dfe66ed94d529957835bd5f953006f7760cdb6b98157a6ea8cca39fdb5cd7e4fbb5b3c20",
"Expected": "17c21dbded148914b96f2f554df601ae737e5f98ca0fd3f0b84141be20888220",
"Name": "exponent-with-leading-zeros",
"GasOld": 1365,
"GasNew": 8192
},
{
"Input": "00000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002134f975ffeb77c28b5c561b98cb0cba5bb73a9c179e70be3a6ba7dcac9a0369ae4d25957a159e10f428d2a88aad5bea4332ddecd2ed4d2347c958870a8a20ced5a8be2a6057d92c114c29f3c5b4e8add0cd12ac795dc02fe71483c21c797c9c099c38",
"Expected": "3b62ede56212bdf5c8f67a4e10a7786cf5ea6aeae81cfa3069c7c0d0b9a88a7c81",
"Name": "33byte-base-32byte-exp-33byte-mod",
"GasOld": 2108,
"GasNew": 12650
}
]
]
Loading