@aztec/protocol-contracts 0.65.0 → 0.65.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "transpiled": true,
3
- "noir_version": "0.39.0+5569eb8ea1578265649219a5497a61c4d93e8d83-x8664",
3
+ "noir_version": "1.0.0-beta.0+c8ff97767236adc0817b37c116f045c62eb981a1-x8664",
4
4
  "name": "ContractInstanceDeployer",
5
5
  "functions": [
6
6
  {
@@ -9,7 +9,7 @@
9
9
  "custom_attributes": [],
10
10
  "abi": {
11
11
  "error_types": {
12
- "16957488177269924912": {
12
+ "16541607464495309456": {
13
13
  "error_kind": "fmtstring",
14
14
  "item_types": [],
15
15
  "length": 16
@@ -87,8 +87,8 @@
87
87
  "visibility": "public"
88
88
  }
89
89
  },
90
- "bytecode": "H4sIAAAAAAAA/9VZS27bMBClLcmy5Mh27RsE6K4FxFj+ZGegn5xDTewT9ABadNOeuiHMkZ5Hk8KAh0U8QEBZQ715fDMiKWZgTjZ+/Rv469i3I9M36rP3bXmdWUWsMiTPwY3wHN4Iz+hGeMaKPAcCT9fS+5aY0zuXmtP72HPiwy7REfjNv4BY0D++zXw7BL9iYmwmDFYLf1dWz5k5N2X+q8xjpmHw14Q/DoNfEu8vTYePY6G4kW+fmk7LJ3jGWeGvsYgJl3xD8H1lvgh835gPa/g782HdEyfSbQRjUayrXei80NhSGNvgjdaYTju8R1rnJmiNWsp5xvhw/sSnoD5Nx2fEfDH4MuZLwEf6u/Ye+vHcp9DvM9znNRmZfg2Tn3KOWoeoqTgA/qtVku48J3FzHht9qHsMet4zfUKsFahPCP2dPss3+NO1s7QxrUVMT9SINBtjf+bLwBc353Fy/zuGOIhFPBLW/5P/PfPtCJ6h5+dC/BGLf8ZbuIcacaxIuEf93Tv50V9PzKl+flF/05+n9DbVm0qas/Xwty1+Fob/kfDzMPgbwp+EwW/3MndB8B9Kwi/C8H8k/GmY+mn3krMw/A+EPw+CXx1o3f1gOmvnB3+9gPt6c7e1l+yJMH7OuIbaEy0YH64Prr/OtxS4zgUfz+FSiLMU4khYmSLWnSLW7J2OcayINVHEmipiaeYxVcTS1CtXxCoUsTTrXlMvyqO0T3O29215pUn7NEV8K+3TNL/dSWuqr1jQEMeXsP4/mc6TIDztA6059K5TDIxdBIp96XpN8QuBD/HOBd81h7KHH+u1fay31pbHTbVq81kwrvwefhPhfIz9pbVf2vcpal1K3/1T0NVZDL6C+RLwEUfpu38aiP8l+mP8ueDj6/+luVyY/no4YePGM669ypi78z/pbD7w/LW+9N2k+Lnpz9f/63wR9eF76VzgOhd8fH+SC3FyIc4tYvEzetTQ1TXpFDedXyuX2133Dy6aixJzfu5vWPyE9f/tf+PYqL1mzj9ua3tc1cd6Xb+8VM/1guE7G4JOfwHiE0IYFR8AAA==",
91
- "debug_symbols": "tdfRioQgFAbgd/HaC49aZq+yLIOVDYJYWC0s0buvDbO7w8zl8N8ER06fEf7I2dngu+16CWmcFtZ+7CxOvVvDlEq1H5x1OcQYrpfHZSbOh1W3/mV26SyX1eWVtUpy5tPAWi3K22OIvqyZ+uAvnea305i/zqo5PjmzGiZXMLmGyQYmNzDZomQSAkcTjpY4WuFojaMrHF3jaIOjGxyNSyPh0ki4NBIujYRLI+HSSLg00ptptOreWX7ti22AdgO0Lc6WAmgT0JZAWwFtDbQroA3MpQTmUgJzKVG5PEr15XJwXfT3wWrcUv8wZ63fs38aueY89X7Ysj+Hr/+56zzLSnOtb1d7Kah8IClTNikb/QA=",
90
+ "bytecode": "H4sIAAAAAAAA/9VZ227aQBBdsI2xiQmFP4jUt1ayCdc3pF7yHSiBL+gH+KEv7VeXFTv2YTypkJipykjRGs/6zNkz4931pufONjz99cJ1HNqB6xr12YW2vM0qRazSkmfvTnj274RndCc8Y0WePYGnb+l9S9z5nUvd+X3sOPFhn+gI/O5vQCzo79Bmoe2DXzExVSYMVgt/Uy5eM3dpyvyfs4CZ2uAvCX9og18S7y91i49jobhRaF/qVssXeMZbEa6xiAmXfH3wfWW+CHzfmA9r+DvzYd0TJ9JtAGNRrKuNdV5obCmMrfdO61yrHd4jrXNnWqMV5TxjfDh/4lNQn7rlM2C+GHwZ8yXgI/19+wT9eO5T6PcZ7vOajFy3hslPOUetLWoqNsA/2ULSneckri9jow91j0HPJ6aPxVqB+ljo7/WZvcOfrr2ltWssYnqiRqTZEPszXwa+uL6Mk4ffMcRBLOKRsP6fwu/H0A7gGXp+IsQfsPgXvIV7qBHHioR71N+/kx/D9cid6+cn9XfdeUpvU71aSHO2Hv66wc9s+B8JP7fBXxH+yAa/2cs8mODPS8IvbPhvCX9sUz/NXvLRhv+B8Ccm+IsDrbsfXGvN/BCup3Bfb+6uqmv2RBg/Z1yt9kRTxofrg+uv980ErhPBx3M4E+LMhDgSVqaI9aCI9fifjnGoiDVSxBorYmnmMVXE0tQrV8QqFLE0615TL8qjtE/ztgtteaNJ+zRF/Erap2l+u5PWVF+xoCGOL2H9fzCdRyY8qzmtOfSuUwyMXRjFvna9pviFwId454LvlkPZw3Jz3G6W29OWrFrNt00+C8aV38NvIpyPsb+09kv7PkWtS+m7fwy6eovBVzBfAj7iKH33j434X6M/xp8IPr7+X5vLqeuuhyM2bjzj2qmMuT3/k87mjeev5bXvJsXPXXe+/lfni6gP30vnAteJ4OP7k1yIkwtx7hGLn9Gjhr6uSae4bv1auVxv2n9w0VyUuMtzf8fiJ6z/r/Abx0btLXP+cb2vjs/74365f3tbvO6nDN9bH3T6A/vRhmkVHwAA",
91
+ "debug_symbols": "tdfNaoQwFAXgd8k6i9z8TIyvUsoQNQ6BECVqoYjv3jhM26GzLGcj3HD9IpJDuDsbQrfdrjGP08Lat52lqfdrnHKt9oOzrsSU4u36vMzE+XDq3r/MPp/lsvqyslZJzkIeWKtFfXuMKdQ1aw7+0mm/O6396TR0vHPmNEw2MPkCky1MbmCyQ8kkBI4mHC1xtMLRGkcbHH3B0RZHNzgal0bCpZFwaSRcGgmXRsKlkXBppH+m0alHZ/21L7YF2g3QdjhbCqBNQFsCbQW0NdA2QBuYSwnMpQTmUqJyedTqw5fouxQeg9W45f5pzlo/5/Bn5JrL1IdhK+Ecvn7nrvMsK821vl/ttaD6gaRs3aRu9AU=",
92
92
  "brillig_names": [
93
93
  "compute_note_hash_and_optionally_a_nullifier"
94
94
  ]
@@ -464,6 +464,12 @@
464
464
  "type": {
465
465
  "kind": "field"
466
466
  }
467
+ },
468
+ {
469
+ "name": "total_mana_used",
470
+ "type": {
471
+ "kind": "field"
472
+ }
467
473
  }
468
474
  ],
469
475
  "kind": "struct",
@@ -1773,6 +1779,12 @@
1773
1779
  "type": {
1774
1780
  "kind": "field"
1775
1781
  }
1782
+ },
1783
+ {
1784
+ "name": "total_mana_used",
1785
+ "type": {
1786
+ "kind": "field"
1787
+ }
1776
1788
  }
1777
1789
  ],
1778
1790
  "kind": "struct",
@@ -1887,8 +1899,8 @@
1887
1899
  "visibility": "databus"
1888
1900
  }
1889
1901
  },
1890
- "bytecode": "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sZOaPk9rrjurue4rzXXnNbHvNH3+oLnuJ811v2iu+10T+7+HHVykz+wVLn5dTs11uTXXXaaJ5df0WVBzXWHNdUU118VoYsU1fZbUXFdac11ZzXUVNLFKmj4ra667UnNdFc1112pi1TR91tBcF9BcF6e5LkETS9L0may5rrbmurqa6xpoYo00fTbRXNdMc10LzXWtNbG2mj7ba667XnNdB811N2tit2j6vE1zXWfNdV0116VoYmmaPtM11/XUXHeH5rq7NLF7NH3eq7nufs11fTXXDdDEBmn6HKK57kHNdUM11z2qiT2m6fMJzXVPaq57WnPdFE1smqbPGZrrZmmum6O5br4mtlDT52LNdUs11y3XXLdKE1uj6XOd5roNmus2aa7bqolt1/T5mua6nZrr3tBc95Ym9o6mzz2a6/Zprjugue5dTex9TZ+HNdd9pLnuiOa6zzSxzzV9fqm57rjmupOa685oYuc0fX6tue685rrvNNf9qIn9rOnzV811v2uu+78Hl13kuhyaWK6KF+8zj+a6yzTX5ddcV0gTK6Lps5jmuhjNdcU115XSxMpo+iynua6C5rpKmuuu0MSu0vR5tea6azXXVdNcV1MTczR9BjXXJWiuS9JcV0sTq6Pps57mugaa6xpprmuqiTXX9NlSc11rzXVtNdelaWLpmj57aq67Q3NdL81192hi92r6vF9zXV/Ndf011w3SxIZo+nxQc91QzXWPaK57TBN7QtPnk5rrntZcN1Jz3RhNbJymzwma657VXDdRc92LmthLmj5f0Vw3RXPdNM11MzWx2Zo+52qum6+5bqHmuiWa2DJNnys0163SXLdGc916TWyjps/Nmuu2aq7brrluhyb2uqbPNzXXvaW57h3NdXs1sf2aPg9qrntXc937mus+1MQ+1vT5iea6zzTXfa657pgmdkLT5ynNdWc0153TXPeNJvatps/vNdf9qLnuZ811v2liFzR9Zqt08etyVLr4dbk01+XVxPJp+iygua6Q5roimuuu0sSu1vR5rea6aprramiuczSxoKbPBM11SZrrkjXX1dHE6mn6bKC5rpHmuiaa65prYi01fbbWXNdWc117zXU3aGI3avq8WXPdLZrrbtNc10UT66bpM0VzXZrmunTNdbdrYndq+rxLc909muvu1VzXRxPrp+lzgOa6QZrrhmiue0gTe1jT56Oa6x7TXPeE5rqnNLERmj5Haa4bo7lunOa6ZzSx5zR9Pq+57kXNdS9prpusiU3V9Dldc91MzXWzNdfN08QWaPpcpLluiea6ZZrrVmpiqzV9rtVct15z3UbNdVs0sW2aPl/VXLdDc93rmut2aWJva/rcrblur+a6/ZrrTmhipzR9ntFcd05z3dea677VxL7X9Pmj5rqfNdf9qrnugiaW7fKL95nj8otfl0tzXR7Ndfk0sQKaPgtpriuiua6Y5rpYTayEps9SmuvKaK4rp7muoiZ2uabPKzTXXaW57mrNdVU1seqaPmtqrnM01wU11yVqYiFNn7U019XRXFdPc11DTayxps+mmuuaa65rqbmujSbWTtPndZrrbtBcd6Pmuo6a2K2aPjtpruuiua6b5rpUTayHps8MzXW3a667U3Pd3ZpYb02f92mu66O5rp/muoGa2GBNnw9orntIc93DmuuGaWKPa/ocrrnuKc11IzTXjdbExmr6HK+57hnNdc9prpuhic3S9DlHc908zXULNNct1sSWavpcrrlupea61Zrr1mliGzR9btJct0Vz3TbNda9pYjs1fb6huW6X5rq3Ndft0cT2afo8oLnukOa69zTXHdbEPtL0eURz3aea645qrvtSEzuu6fOk5rrTmuvOaq77WhM7r+nzO811P2iu+0lzXaXKF7/u5sr+113mXZvpv7OH/83mthxuaxD+78ClHc5lEf2i+w8F4hMvi/rzAeYPXhbuU1Ifr0+B/gPhx19HNX74j/4zj0UdBcP/nS1CS++avOF4VMS/TSL6y5Yp1tTn/yU5TjcP4r3+cwr07x5x0T783v9L6RP+uon/i2f+uWyZrskRdfF5iPI5l82nn8y6Rs5bg383Zifziczj1I3Ni+XKNFa/cUdenyvqr+POlan/zHMa5fP/yHGRa/36za4Zx/+6NlL7glF/nUePRz3e0qtNOR/+M3+D8PnAJRxJoUDgv9qH+88V9dc8ivz/58r08xXD/50vgj9yHA3+JWdGUoqTEUzJSElI6dEjPi2lWKb+oyI0UzqFP3KZtRbpj6DwWhEnXEN91yK/eqpbizLfc+poEo75rVORa5HXn+Sa7uZBgvA8OdFRF18/lAalIrSJ1DVX1MXXkVyZfjb8texRud1W9CL95db0VzDq4vOrrgt/bepf1i/v3wZRGK38OLL5cBT04fCuYajl4T9D/X9ey+8Mv+au5Ynp3LU8LtWWWp4j089lvibyuiYRP9PkIj/TNOJnml7kZ5pF/Eyzi/xM84ifaX6Rn2kR8TMtLvIzLSN+puVFfqZVxM+0usjPtI74mdYX+Zk2ET/T5iI/0zbiZ9pe5GfaRfxMu4v8TPuIn2l/kZ+5LuJnrrvIz1wf8TPXX+Rnboj4mRsu8jMdIn6mw0V+5saIn7nxIj9zU8TP3HSRn7k54mduvsjPdIz4mY4X+ZlbIn7mlov8zK0RP/P/tXcf0FFUDRvHZ7PpJCQQEBWwoL52zYaAYMWCvXeUIpCAiFQBQUUDIioiqFiwiwpiAUURVEQUFaUooiC99957+97125v8c3OfBV4zFI9zTk52Z357+9xpd2ZqCXMHzB3C3AlzpzC1YWoLUwemjjB1YepaxrU9L8Z9q8r+9muhhvb+gucV3W+M8yfunIAVn+cV7lM9K/5kz89tSGYoYMVn0mOXD/f5/jJ5BekJWMti84rmwyyLwzKeWzkfztW2wpO/+/RVGvm8PW10ANtd5j+x3dnLYvOK5mNf25063roi8tnfvu//90n9auPhKcORfsYVnhLyvPzJlEEQ80xZmrJNpLeWJWFZbF7heJIj3815Qzssk444y18e+R55HbUXj9+Y36c74o+34i+Ubsc8u1ySHD7J4cPHnBdGPoePl8Ltx1y48Xc9z2xkb8eDXtHzpkyrSU+CP+mpbNIT7xUuO7sMTPxmPYyFD4j/Jix7mYkr2fO1Pw9Fy1uso6zTLW+XgQorfh/DOpB1yrJOsPKW4PAxjry5+voEa1kslsVby9jXmzJhX+9zH9so2rYt4MivmZ/o8K52lOYVLd9EK29J/uQtK1rdJyJOE38K5ufkNmjb+OoWjT1rss/bmXKrAMP6ivGKtv0EEZZnfbfDDCI8TofC+cAmke8H+nzgisiXQ/p8YFbl/XZtx5ftUSg3y+d9C+f5QOYlv31azv5NwPv3fGB4+vd8YOHPtvn3fGDhz7Y5WM4HGlMPpp4wd8HcJUx9mPrCNIBpIExDmIbC5MDkCJMLkytMI5hGwjSGaSzM3TB3C9MEpokw98DcI0xTmKbC3AtzrzDNYJoJ0xymuTAtYFoI0xKmpTCtYFoJ0xqmtTD3wdwnTBuYNsK0hWkrTDuYdsLcD3O/MO1h2gvTAaaDMA/APCDMgzAPCvMQzEPCdITpKMzDMA8L8wjMI8LkweQJ0wmmkzCdYToL8yjMo8J0gekizGMwjwnTFaarMI/DPC7MEzBPCPMkzJPCdIPpJsxTME8J0x2muzBPwzwtTA+YHsL0hOkpzDMwzwjzLMyzwjwH85wwvWB6CfM8zPPCvADzgjAvwrwozEswLwnTG6a3MC/DvCzMKzCvCPMqzKvCvAbzmjCvw7wuzBswbwjzJsybwrwF85YwfWD6CPM2zNvCvAPzjjDvwrwrTF+YvsL0g+knzHsw7wnTH6a/MO/DvC/MBzAfCPMhzIfCfATzkTADYAYIMxBmoDAfw3wszCcwnwgzCGaQMJ/CfCrMZzCfCTMYZrAwn8N8LswQmCHCDIUZKswXMF8I8yXMl8J8BfOVMMNghgnzNczXwgyHGS7MNzDfCDMCZoQw38J8K8x3MN8JMxJmpDDfw3wvzA8wPwjzI8yPwoyCGSXMTzA/CfMzzM/CjIYZLcwYmDHCjIUZK8w4mHHC/ALzizC/wvwqzHiY8cL8BvObMBNgJgjzO8zvwvwB84cwE2EmCjMJZpIwf8L8KcxkmMnCTIGZIsxUmKnCTIOZJsx0mOnCzICZIcxMmJnCzIKZJcxsmNnCzIGZI8xcmLnCzIOZJ8x8mPnCLIBZIMxCmIXCLIJZJMximMXCLIFZIsxSmKXCLINZJsxymOXCrIBZIcxKmJXCrIJZJcxqmNXCrIFZI8xamLXCrINZJ8x6mPXCbIDZIMxGmI3CbILZJMxmmM3CbIHZIsxWmK3CbIPZJsx2mO3C7IDZIcxOmJ3C7ILZJcxumN3CeJ0KjPlsmwBMQJgYmBhhgjBBYWJhYoWJg4kTJh4mXpgEmARhEmEShUmCSRImGSZZmBIwJYRJgUkRJhUmVZiSMCWFSYNJEyYdJl2YUjClhCkNU1qYDJgMYcrAlBGmLExZYQ6DOUyYcjDlhDkc5nBhjoA5QpgjYY4UpjxMeWEqwFQQpiJMRWGOgjlKmKNhjhbmGJhjhDkW5lhhKsFUEuY4mOOEOR7meGFOgDlBmP/A/EeYE2FOFOYkmJOEORnmZGFOgTlFmFNhThXmNJjThDkd5nRhzoA5Q5gzYc4UJhMmU5gQTEiYLJgsYSrDVBYmGyZbmCowVYSpClNVmLNgzhKmGkw1YarDVBfmbJizhTkH5hxhzoU5V5jzYM4T5nyY84W5AOYCYWrA1BDmQpgLhbkI5iJhLoa5WJhLYC4RpiZMTWEuhblUmMtgLhPmcpjLhbkC5gphroS5UpirYK4S5mqYq4W5BuYaYa6FuVaY62CuE+Z6mOuFuQHmBmFuhLlRmJtgbhLmZpibhbkF5hZhboW5VZjbYG4T5naY24WpBVNLmDtg7hDmTpg7hakNU1uYOjB1hKkLU1eYejD1hLkL5i5h6sPUF6YBTANhGsI0FCYHJkeYXJhcYRrBNBKmMUxjYe6GuVuYJjBNhLkH5h5hmsI0FeZemHuFaQbTTJjmMM2FaQHTQpiWMC2FaQXTSpjWMK2FuQ/mPmHawLQRpi1MW2HawbQT5n6Y+4VpD9NemA4wHYR5AOYBYR6EeVCYh2AeEqYjTEdhHoZ5WJhHYB4RJg8mT5hOMJ2E6QzTWZhHYR4VpgtMF2Eeg3lMmK4wXYV5HOZxYZ6AeUKYJ2GeFKYbTDdhnoJ5SpjuMN2FeRrmaWF6wPQQpidMT2GegXlGmGdhnhXmOZjnhOkF00uY52GeF+YFmBeEeRHmRWFegnlJmN4wvYV5GeZlYV6BeUWYV2FeFeY1mNeEeR3mdWHegHlDmDdh3hTmLZi3hOkD00eYt2HeFuYdmHeEeRfmXWH6wvQVph9MP2Heg3lPmP4w/YV5H+Z9YT6A+UCYD2E+FOYjmI+EGQAzQJiBMAOF+RjmY2E+gflEmEEwg4T5FOZTYT6D+UyYwTCDhfkc5nNhhsAMEWYozFBhvoD5QpgvYb4U5iuYr4QZBjNMmK9hvhZmOMxwYb6B+UaYETAjhPkW5lthvoP5TpiRMCOF+R7me2F+gPlBmB9hfhRmFMwoYX6C+UmYn2F+FmY0zGhhxsCMEWYszFhhxsGME+YXmF+E+RXmV2HGw4wX5jeY34SZADNBmN9hfhfmD5g/hJkIM1GYSTCThPkT5k9hJsNMFmYKzBRhpsJMFWYazDRhpsNMF2YGzAxhZsLMFGYWzCxhZsPMFmYOzBxh5sLMFWYezDxh5sPMF2YBzAJhFsIsFGYRzCJhFsMsFmYJzBJhlsIsFWYZzDJhlsMsF2YFzAphVsKsFGYVzCphVsOsFmYNzBph1sKsFWYdzDph1sOsF2YDzAZhNsJsFGYTzCZhNsNsFmYLzBZhtsJsFWYbzDZhtsNsF2YHzA5hdsLsFGYXzC5hdsPsFsbrXGDMZ9sEYALCxMDECBOECQoTCxMrTBxMnDDxMPHCJMAkCJMIkyhMEkySMMkwycKUgCkhTApMijCpMKnClIQpKUwaTJow6TDpwpSCKSVMaZjSwmTAZAhTBqaMMGVhygpzGMxhwpSDKSfM4TCHC3MEzBHCHAlzpDDlYcoLUwGmgjAVYSoKcxTMUcIcDXO0MMfAHCPMsTDHClMJppIwx8EcBxOEOR7meMvsr+d8+vK8klBuZrRniZm44/2JOxSw4vM8bF/w/2B9Vtm+Pudzb5/BFRNT4Oy2Zb8bwKQlPJn263qGpmm3f70bIKZweumCVpyeV/Q5eH6Uf7WsrCp+P9/TVV/528fI/9g8d1mHp72pr/BUBX2EXXZBn8vOp+cBh6K998e0lYQ8L3/K37/DPFN+B+qZmCmRyjiYn4kZF/linonZH88N82/dyMzfDrDvs7cD/jwrMbTX2wETf7Ln43YJ2wHXsxhdz5k05ZPoT/lkBqzwmZ5ER/mYukxyLDNhmefhxSEs+kTkkZ6fze85r2KkUNIdYdrP8Uxy5IfzuF6Uw7pr5yfeCtdVbwmOcF3PB7XLkL8LiP8mHnueHY8rzb7uY2VmR207QUd67LqJF96EF2f5kyKZDi8fGOMOk20uZi/CPD2mIC2nWvtGsY48hP+fbcWduIe4g1bcxldF3JkizMAewtzbMo0R+c9GmQ6y8s96S0T41aK4uChuT+Xp83Nhs+198KBXdB+c8ad6Rdv3311PEx1lYPKd7HO+S+wh34w//JeCPAStMFzefuatHX6K5c3v+d5CV58e41jG7YTP5Rey15nLsd5eK/ohzyu6XXeVmSnPeOHZr9Ff7egLXW2M/cK11nbOtU127W8Eiq8sM5O8ou2oGMMP7alPusmqrxSU796Uv/G10AZutcqVfYO9zWffxvdYmuXmGMXz/n5fkwoTZ6UjxbEsnJe6VvmUjCxj+fC39nbF+LYon/pW+fD3pnzSrN8z/abNpGGZH/vA6Y68si2kWXk1vjHWxcHW8TrPB6QgP+EpNs+X/ITC6RhqbXvZruIQL/PleQX5pmebZb7pWTemzNItb9cvy4RhResvze9Vf8n1mb51lP6S+858t6UK29WPmPzHiHTZx3OlsKw4j7XtOuK2tZQjPXZb7mjlKyMyn/sMaY5wjC/tiDcDJt6Kt7QVb7h+xllp2FN7s/crTD7jhU+30mB8pyjHF1z3g17Rdm2//9P4rugHu1jrJNcF7l/3EnEz/0FHfqLlnz5N5L+bI/++ttf/XiOw2w3Ll3VWykqz8T0cfa9dDiw31/bSTgN9KUe5mW0Vy9381lW3xrFu0xx5tLd3/vQRoaxUR349K/0ZjnybZWWwjPtx9hS0vjNP4foab20rPUdYJk6WNfskuwxZ7qzzkla67DAZhlqHXNsxex3qE2U7kyrSqdLHfs3eDuafZxbeTp/x/RzpS43ye+4THuzv4xgQSeeBfh9HccefXaX+WQ3rnxUKVc8O5WaHquzv+LOqVataPatBZvZZOQ0b5WRX3t/x51arnpNZvVFu/VAolJWTmbun+F3XYLgfHp7MdRxe56Hn/hH9MGzPh1v9V5wjvrAbG8UFxP+/wnDMi80rPM91/YfXxYw3cSfnFU2jWVYCy+KseFIi31leDMukI87yo7G9C0+8lmV+n+6IP9GKv1C6HfPs62IlHL6Ew4frZ6TVbzDvxXkeiW3Bj/WkanbVULVq9as1rNqwUfXshg32tJ64rgH69S5rs90y7YPHB3b+Pa9gu2X8Qqx3E6OkOVB8aa5mpzkGcbjOF7uuZRZjevLLMB5lGHDEaR/bGT9TnKtkPcQ5wjHLEh3x8hyiXXeJVryuYzsTR7Lnbg/2O/UCnh9lm5UZEHmwyyQQJT2eV3x9RZyVnvkow6XWfpvrOk+4zhdHcbFRHPOU33d6xd9fNaxetVH1ypUbhCpXz8mtHqq6p/6qTaCg7LmsuPvpJEc+i2/cXdUqh/R7zv57/HiovOcsCHMJzCXC1ISpKcylMJcKcxnMZcKo95zRqPec0aj3nNGo95zRqPec0aj3nNGo95zRqPec0aj3nNGo95zRqPec0aj3nNGo95yFlx/S43QjYxe5jnle0e2cP2NIQv+O08UyjvsMwal9ZNc4XdN+XeN0TbsNh3+uVzi9DCPauVJfx5pmVvF7rGnmvr7HPmgtY33xPfYhq3z82Ddh+fhR/uHyyRDpN5/DkzkX4nnucw6mjA7UWNxzIt8P5rG42ZHP5jjcnPz8u+9fZzzpXtF1iX0T+5ziiMd17Giuc9hjAPl5X9+57tou+PzO9fwxVIlIZ9Aruq7Yx/48VglaYbi8vZ21w0/aP/ktMraT52tcY1pjrPTxt0yvP+OYM7PtMVrXR/6H09rVc9eJqkN77JM9rsw2dtve05gueyyq8bdE/oeXV4008v29/pSw8loj8j3zb00FY2xc463YZkpYZWN8bZRN9UDh/JvfMP8BR/7tNNAz3yY9rrJPsX4X7RqdK2z6oAjHHhvn85i5/POcqSivQJS0u8ZjFWN68tuKuQbJ842ucR/2WJ+mVrrMtVm2jVTPXSfhv3RHvKUc9WOPnTHx/rV/LdpoCc/dJ9jX/pm+Yuwnc+3xCZzMsjRHXl3X4Vlu9hS0vjNP4fK5IFAQru3s9LjG4CV57vWpRuR75t+aCvqr/P1+z91f2W3Q+PbIa3Urr65jxf0xJrBWoHC5st+Ms9IUrY8MT3afmurwrBuTP9dYCHu8IPdX7T7Pta1jWtSY9Hjh7fFoxneJ/A+XW/NA4fTFOX7P/QzXdsO+hsBzmNH2Efw9/5KZm+QVbdPFeT7FNe6Z4427i3JR99LY9WV8xUBBmD2tsvPpPHX+dtO0Oe7j23EyPf70WQXbTbPOcJ89xZEee/+zt1e4Lsw2gm002RGO3QcwXo5zirPiTbXi5XYz6IjDdc+HP88uKLhnlXEGrLj92VfONJuL/PhMeXAe40/23HVTo3jSE7LbFeuH5WPW01KRP7v+4hxpzz9G9PfEVqbzolWgGAvJ50ZR2dWRmoPvcKfX18qXWba3NyUaPxBh9o98TnP8PtZaZncG/GzXKed5XvQDVJ6AtZfx4rCd7xgv+sG9zzvaRQ542SmmOtJjH/AO8QqXodnxZWec4AjH7rwZr2vgvn3wZOJlZ+y6ccc+qejaAXTdAGGnT50kSRXpG4b0mR0zf28QKtjQu24QYh2oG4RGIM32yQvX4H5Xp2qngZ75jnZDlX2jgCtu5idJxB3v7Vv+R3kF+bfrzKcbYfLr7H+9sWAM0mzXmevGgmh1Vhw3Fuxtndn9sGsge7Q6M36CV5B/u85KW/HViHzP/HtTfp1lIE2uOittpdn4SUizXWeuOohWZxkOX9pRbmle0frMsMLaU53ZB7kmnr2tM+NneAX5P1TqbA7SvL/rjGW6LzeV+FumocqpjvyYyXUTjn2DTlks4/6uPblO0pk87etJOpZRGYRvlyX7Np6QdW3XSjryGG0dcW3r7HVkLfK3f/Yf9v2Gq3RrGet6X+szf+C997/XZ7R1w95+/6/16dpORatP43chf/upPvNPanE/wC6/0o60u+r6QNRnaYRvl5O9LxGw5vN30erTta9Y0hGPva9YIlCQv/1Un1EfAJDqyKOd5jSkOdrJ/v35AAD7ZD8v+MQhXubL84rWVXja12MQk3fXAwASrGU8jrRvinS1OddgCON5g360wRn2sXZ5R5vb2/MtZl+C67HJ04G8qM50q4vqlfay3fImjPAUm+dLfpztttAD4RAv8+V5e7d/uKcL//Z5KNeDSgJWmTCsaG3TNSjEdVHEPil/uqNtutYdk++9veBysN/MWyUSwD/tZt5D7Wbag+EmxUxrP+BgvUnxlggKr2eXRElzwCv+4+9/yk2K1wQKp2t/3aR4DfpZe/COiePfmxQLTUVuUrwJZdjK2o7zvCQHQt8WxcVGccyT+Y3fN//XwfpdD+n5yzriC7tmUVxA/P8rDMe82LzC8w72m/+bRgI4mG/+z7H2M5j34ryIzrbwT3xIyL7ezJsW+XJI38yblVV1f93M689Al9zKPg8wc97M6xpAZ9bTmnkFZVkTv2E/fynMpcJcBnOZMOomXBp1Ey6NugmXRt2ES6NuwqVRN+HSqJtwadRNuDTqJlwadRMujboJl0bdhEujbsKluQXmFmFuhblVmNtgbhPmdpjbhakFU0uYO2DuEOZOmDuFqQ1TW5g6MHWEqQtTV5h6MPWEuQvmLmHqw9QXpgFMA2EawjQUJgcmR5hcmFxhGsE0EqYxTGNh7oa5W5gmME2EuQfmHmGawjQV5l6Ye4VpBtNMmOYwzYVpAdNCmJYwLYVpBdNKmNYwrYW5D+Y+YdrAtBGmLUxbYdrBtBPmfpj7hWkP016YDjAdhHkA5gFhHoR5UJiHYB4SpiNMR2EehnlYmEdgHhEmDyZPmE4wnYTpDNNZmEdhHhWmC0wXYR6DeUyYrjBdhXkc5nFhnoB5QpgnYZ4UphtMN2GegnlKmO4w3YV5GuZpYXrA9BCmJ0xPYZ6BeUaYZ2GeFeY5mOeE6QXTS5jnYZ4X5gWYF4R5EeZFYV6CeUmY3jC9hXkZ5mVhXoF5RZhXYV4V5jWY14R5HeZ1Yd6AeUOYN2HeFOYtmLeE6QPTR5i3Yd4W5h2Yd4R5F+ZdYfrC9BWmH0w/Yd6DeU+Y/jD9hXkf5n1hPoD5QJgPYT4U5iOYj4QZADNAmIEwA4X5GOZjYT6B+USYQTCDhPkU5lNhPoP5TJjBMIOF+Rzmc2GGwAwRZijMUGG+gPlCmC9hvhTmK5ivhBkGM0yYr2G+FmY4zHBhvoH5RpgRMCOE+RbmW2G+g/lOmJEwI4X5HuZ7YX6A+UGYH2F+FGYUzChhfoL5SZifYX4WZjTMaGHGwIwRZizMWGHGwYwT5heYX4T5FeZXYcbDjBfmN5jfhJkAM0GY32F+F+YPmD+EmQgzUZhJMJOE+RPmT2Emw0wWZgrMFGGmwkwVZhrMNGGmw0wXZgbMDGFmwswUZhbMLGFmw8wWZg7MHGHmwswVZh7MPGHmw8wXZgHMAmEWwiwUZhHMImEWwywWZgnMEmGWwiwVZhnMMmGWwywXZgXMCmFWwqwUZhXMKmFWw6wWZg3MGmHWwqwVZh3MOmHWw6wXZgPMBmE2wmwUZhPMJmE2w2wWZgvMFmG2wmwVZhvMNmG2w2wXZgfMDmF2wuwUZhfMLmF2w+wWxutUYMxn2wRgAsLEwMQIE4QJChMLEytMHEycMPEw8cIkwCQIkwiTKEwSTJIwyTDJwpSAKSFMCkyKMKkwqcKUhCkpTBpMmjDpMOnClIIpJUxpmNLCZMBkCFMGpowwZWHKCnMYzGHClIMpJ8zhMIcLcwTMEcIcCXOkMOVhygtTAaaCMBVhKgpzFMxRwhwNc7Qwx8AcI8yxMMcKUwmmkjDHwRwnzPEwxwtzAswJwvwH5j/CnAhzojAnwZwkzMkwJwtzCswpwpwKc6owp8GcJszpMKcLcwbMGcKcCXOmMJkwmcKEYELCZMFkCVMZprIw2TDZwlSBqSJMVZiqwpwFc5Yw1WCqCVMdprowZ8OcLcw5MOcIcy7MucKcB3OeMOfDnC/MBTAXCFMDpoYwF8JcKMxFMBcJczHMxcJcAnOJMDVhagpzKcylwlwGc5kwl8NcLswVMFcIcyXMlcJcBXOVMFfDXC3MNTDXCHMtzLXCXAdznTDXw1wvzA0wNwhzI8yNwtwEc5MwN8PcLMwtMLcIcyvMrcLcBnObMLfD3C5MLZhawtwBc4cwd8LcKUxtmNrC1IGpI0xdmLrC1IOpJ8xdMHcJUx+mvjANYBoI0xCmoTA5MDnC5MLkCtMIppEwjWEaC3M3zN3CNIFpIsw9MPcI0xSmqTD3wtwrTDOYZsI0h2kuTAuYFsK0hGkpTCuYVsK0hmktzH0w9wnTBqaNMG1h2grTDqadMPfD3C9Me5j2wnSA6SDMAzAPCPMgzIPCPATzkDAdYToK8zDMw8I8AvOIMHkwecJ0gukkTGeYzsI8CvOoMF1gugjzGMxjwnSF6SrM4zCPC/MEzBPCPAnzpDDdYLoJ8xTMU8J0h+kuzNMwTwvTA6aHMD1hegrzDMwzwjwL86wwz8E8J0wvmF7CPA/zvDAvwLwgzIswLwrzEsxLwvSG6S3MyzAvC/MKzCvCvArzqjCvwbwmzOswrwvzBswbwrwJ86Ywb8G8JUwfmD7CvA3ztjDvwLwjzLsw7wrTF6avMP1g+gnzHsx7wvSH6S/M+zDvC/MBzAfCfAjzoTAfwXwkzACYAcIMhBkozMcwHwvzCcwnwgyCGSTMpzCfCvMZzGfCDIYZLMznMJ8LMwRmiDBDYYYK8wXMF8J8CfOlMF/BfCXMMJhhwnwN87Uww2GGC/MNzDfCjIAZIcy3MN8K8x3Md8KMhBkpzPcw3wvzA8wPwvwI86Mwo2BGCfMTzE/C/AzzszCjYUYLMwZmjDBjYcYKMw5mnDC/wPwizK8wvwozHma8ML/B/CbMBJgJwvwO87swf8D8IcxEmInCTIKZJMyfMH8KMxlmsjBTYKYIMxVmqjDTYKYJMx1mujAzYGYIMxNmpjCzYGYJMxtmtjBzYOYIMxdmrjDzYOYJMx9mvjALYBYIsxBmoTCLYBYJsxhmsTBLYJYIsxRmqTDLYJYJsxxmuTArYFYIsxJmpTCrYFYJsxpmtTBrYNYIsxZmrTDrYNYJsx5mvTAbYDYIsxFmozCbYDYJsxlmszBbYLYIsxVmqzDbYLYJsx1muzA7YHYIsxNmpzC7YHYJsxtmtzBe5wJjPtsmABMQJgYmRpggTFCYWJhYYeJg4oSJh4kXJgEmQZhEmERhkmCShEmGSRamBEwJYVJgUoRJhUkVpiRMSWHSYNKESYdJF6YUTClhSsOUFiYDJkOYMjBlhCkLU1aYw2AOE6YcTDlhDoc5XJgjYI4Q5kiYI4UpD1NemAowFYSpCFNRmKNgjhLmaJijhTkG5hhhjoU5VphKMJWEOQ7mOGGOhzlemBNgToAJL7efvRSezHM9XC+jviSyzN+XRmdX8fUZJqHczGgvy/X1Rayh3L1+QbqJP9lKa7GmBy8Dcj2bleVj2oHreaJBa1lsXtF82M/LYv2Gny+2LVDg7LYV5xVexpcpmzYdDiMOzyBiuy7W9hl5RhDXjWKuk/yXdjP99jOxEvIKyiB/nwXzTDkfqJd2x0YSfDC/tHtn5EfmuZRJMQVh2e3frBNBr2hY4efKmmf05zZr0qZm84atO7Rsk5tTs11u8zZXt2jsWZP9NvCA9T3GcydkTqCwi3WE5+0h7IAjnHCmwoVwsD9EtmSkYA70Q2T50ik7PcXYEWQlIU4fws9kp+9ZeWG8dhm42ltAfI+x/kez9nzOS3UsM2GaB/AzvSYfSdZ/vkyjODekJvwy/oTvrKuy+FzGyifLu0YxpcGEl39w6xWdYqxl+Z22lb5A8acv5FlT0BGXmUybKYN5pjxLWWn1aecrk2+z9SH8/DaZ4E/4lV1tkvPsNmBvi5gmez0t5rTWz99xQhqCVpx2GmlcfV6M9T3Wmh/cC+tqm2ZZ/g5SlN8lOdLKeaZtufpPu1748kJXWHzhAn2CZf2qwwxHmkza/w/J6bZ2RjkpAA==",
1891
- "debug_symbols": "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",
1902
+ "bytecode": "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er15MXqFx8r492DOzosfK87jeutix4r/7xx3XdxYgUi93gbo5f0NzbsQ7dXL/T0aaCw1xz1Cf9uTM/xf0NjOqRy4tXg1J8e5+3QOUM5kOOmSnGdIfMxZEs5vSDi/JeH8joTzHAnn9yScP5Bw/kjC+RMJ588knL+QcP5KwnmehPM3Es7fhTizeoOLPc/nBs45KifHnPMA55yDZM55gXPOSTLnfMA55yKZc37gnHOTzLkAcM55SOZcEDjnvCRzLgSccz6SORcGzjk/yZyLAOdcgGTOlwDnXJBkzkWBcy5EMudiwDkXJplzceCci5DMuQRwzpeQzDkaOOeiJHOOAc65GMmcY4FzLk4y55LAOZcgmXMp4JyjSeZcGjjnGJI5lwHOOZZkzmWBcy5JMudywDmXIplzeeCcS5PMuQJwzmVI5lwROOeyJHOuBJxzOZI5VwbOuTzJnKsA51yBZM6XAudckWTOVYFzrkQy58uAc64MnHOuqH9/JuB4+IMBiW5LclvIbcluq+W22m6r47a6bqvntvrhuTR0WyO3NXZbE7c1dVsztzV3Wwu3tXRbK7e1dlsbt7V1Wzu3tXdbB7d1dNt1buvktuvd1tltN7jtRrfd5LYubrvZbbe47Va3dXVbN7d1d1sPt6W4LdVtaW5TH17NcFum225z2+1u6+m2O9x2p9vuclsvt93ttnvcdq/bervtPrfd77YH3NbHbX3d1s9t/d02wG0D3TbIbYPdNsRtD7rtIbc97LahbnvEbY+67TG3DXPb4257wm1Pum24255y29Nue8ZtI9w20m2j3DbabWPcNtZt49w23m0T3Pas255z2/Num+i2F9z2ottectskt73stlfc9qrbJrttitumum2a26a7bYbbZrptlttmu22O2+a6bZ7b5rttgdsWum2R2xa7bYnblrptmduWu22F21a6bZXbVrttjdvWum2d29a7bYPbNrptk9s2u22L27a6bZvbtrvtNbe97rY33LbDbW+6bafb3nLbLre97bZ33Pau23a7bY/b9rptn9v2u+09tx1w20G3HXLb+277wG0fuu2w2z5y28du+8RtR9z2qds+c9vnbvvCbV+67Su3fe22o2475rbjbjvhtpNuO+W2024747azbvvGbd+67Tu3nXPb9277wW0/uu0nt/3stl/c9qvbzrvtN7f97jZ10+RwW0635XJb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",
1903
+ "debug_symbols": "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",
1892
1904
  "brillig_names": [
1893
1905
  "decompose_hint",
1894
1906
  "lte_hint",
@@ -1900,8 +1912,8 @@
1900
1912
  "directive_invert",
1901
1913
  "directive_to_radix"
1902
1914
  ],
1903
- "verification_key": "AAAAAAABAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAUAvPb0jRI4Ytf1JK0hKPvJbnj47pCL1k+3yKQY2ytCRVM43W9hHtxwvUERUUnqVu4fNyhAKUrAUujouaaX5sG5pAAAAAAAAAAAAAnUDF/KGvd0LPsfY+3ablyIsCmRiMwzNg8Mx75RkpHNAXLm57I7VD7oAm7jY4e3OlMOCpC4HzyergvjDB67t4gZJYuVkZdz4oiorYBgFmjSLfggx9gYYsqR7V4p7LE6LiG/oRPHsf6q94I2V4o2rt3qXOW2GnJNdyla0fsT/fZWH91Vb5JyGcaRukOV5KvYapCIBDZns1OfBY1O2bfvKjovYENFI7PnZDs119ESSVdgdSsIGHjJ1CIa8rB7hfDNoStOCwsrMOT6WVjHzB88nQmtB43nHTXJTX/1E0SlHLXpDCknIz/MMnYkoHe7mGR5+TuED/Rhs4+S94U8zTRRT+MVXzbDERNRkZZBMb7hFPRUO5zP4YFNzdWicvzn8CsVhBFiFlgLvoQuLyMo5ap1e1FUAkzzKiH4bCMkcYvqPOuPBtuEb8y1YsNvDR0MgqmLEhiQVthsenv+iVF4f15BW2ksk9j0OYUWKJXozmAlB30972iusUUBPEz/JkZyf7nDmSqWotHcAGHtH3ae5KFBRbNH83zSMKE2i+Q0grt+MKTCFvH+P/gzyvLL5dU5DZcxu/a+mH+3F3nSmIJr4pPw9KkV3TLAm++9QPv/97xH5BtItbsDybvHfqVtnp1/MNIUjy6whySXxGlkNBawozd+ewGAoD54uvjuyVZ7cwbI8mX7Er+ipDJS5H0/BA7Aou1TfBwnNEuLYiMnyP+P5d7NtRwogpkIJyKnwf16y9gwJAR4+kVSeSAWMk8tTP01lrDX3QR22H8ahTxaZHEKIAeAd9SqAw9GrUczgnHG7y9e7kTnI4Pv2yVzYzhdMWjxENBUQxI+ooPHejf+jOmD3LmjeFIk5trtcFJj/TWG78nkx/Qa+PtA7KHbhGgn1dX6rYYu+w17iZuOubfxJmoMW7bzx2B8u75aSuM4bLx5TWCSDhiiHPbsqCytaMBuAqB8ix1cNtygpYMo1VtL+lzN8CJcfWEknk4fmk9HecNGmGB91WZa+M/qwA3dWPOrT0UCB2eA5hHImCHjmhAhsmTk2dJTOzy5vp6ZGn5E9WrXsANF3ICZLcvEtUgM4iJj3ywHiN7p6qgQRpyBA0MLyPy6y2rgFq4Cz2UpQOTSvS2bJcE0vr3eJFzaWUzFZnPgn6ewmopnAiObSY2KISDT0qcJAoZK9YHYFXn4vMojexS+mTWJW4RrDOuo4l4jWm53hexZw/KXN6P2GrLavSKPbBTdAryqBbMS/FEUmyd2e7pBc9Dj8XrSQHDw7RahYYpeePPXpaIS9Chai2QFOxaR83DtVYxxrjs4qegn6haZu4epigZC3n0HHqpNW0ZwG+lECf9pQ2n6GYPO6bzr42VOafPyi9BRnyEKUGM31nyvmUr0MBOWWjTW4JMjl91KUQO4NQdQsE04vxgwsRJbja0RqmE4bchFBDbVmY2VkhB0pUrKuIYGRj9zGA06PaxiAc+F+ydkbsHI1ZWiiXDeX3vutcupigXtrNUMrRq9AMABGA2yQyDkl0Jcn+EZiLeEKui9i3X2e/pZ0h5/R/0C4c0a8MSycvt0MXkOZK2CRBTCRMtKwzECUa1dIMOGNuusIMRGX5p6DuB8wDBqvpjgQA12J1OqWbe0LdED129xMUng80Eb2Aor3NSQ7ZyoOJPaX226TFAinpYl2A+px0XwZLksBlvjJH+rD3lIPrk2AB5I0Dp9cOHofBU3AAdC5q3CkdQRi6eCAf95FV+LTtEmwFhrfbXIpQxHvDYFWVCS7VTuhxCG1CWUpeD4wuVcizG3BY6oP6huhVdI6gEuWKrcFatw9U7GYKI0GncExh2XGW/QkJimi5rQVyxoJExAALwnJbGm9Y86ItSRozhuTrS7jecR7tw4UWdllHUJo3MeAXv/3mH/IWLJd4hTvrv6h8SgWwjXxPFihgPu1A9KdpsROcvpWtxVISLOPexo/SGxwoKsJctLTojs0Z3iClZi2OTJyqM8PWreAFIZK0ipsxlHbNkWkWlZnBgc+T0cGiksn4gqnzNWwiAAl6Pc2116jA40pMf12EMn0nsbIAdIvu35TE9k+jHljxl0HnghvRABJArIPsEa0RUK/RpCJSxo02FWcUAse6ViO+SaxlNuDWxVi3iSE4PH9EssINEIxt5fNEQ0wchU+RS9KGd4dLcTa3b7juNrdLdSlP9gYiM8rWmJR2eeh+xRmWnj0l/D+xYdBBUoity5PckXTyJXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhFeeAAGrE5tM+mBeyXNxBvm5g8uuLgmWSVd2Dvlq4NLEq9lzt0v9eeBqJ7cEqwBLUPTS+NI2OMxzBF/Gi1HOVcPy7+dPPQCuqPu2l8Knkm1werJWyZMMC3IVObyLXMw3yg+39qJyUgFl/CzRC6XUt751Y/Ckgg2GUJh97Fj/vuvFFZ+LD6E/B4+adgfbOWAjKmgRRlkp7urvZ42nbdVYlMDeJJvFQwwx2CWXfRprm7WCcWf7s+JnyuVr/UZu/P7PA==",
1904
- "artifact_hash": "7cb5566fe25622a27de9406180c3ef36c08c61ac-21085bff0c2bc37ff578d0fed86beb16-mega-honk-true"
1915
+ "verification_key": "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",
1916
+ "artifact_hash": "276b5434ac1f4ec77b1325d6224d183983db7ea8-043b10001753e72a3a12bd44a5789cc7-mega-honk-true"
1905
1917
  },
1906
1918
  {
1907
1919
  "name": "sync_notes",
@@ -1918,7 +1930,7 @@
1918
1930
  "return_type": null
1919
1931
  },
1920
1932
  "bytecode": "H4sIAAAAAAAA/9VUyw6CMBBseURBOaiJ3kz8gyIYOJJ49x8akKMe8OKNT5eabbqpVRKlJkzSbEs3szNlW0oUKESPvAH9tGnIFdhBDCA6aN/tRgFr9hviQKs7JH/O0iQw+BtQ/5OfWtIvIPktnT+bAM+xVfzYi6w77UaIesKWZ/nPbHpe9fhc/MFnh32k1caghm+uIYci3RuYR4Y8iRlRd9prh/eV5YzJei7w++RVO67va/lrWIeafvmOFV/qrDMe1wmv+YFXVVrypcYv4KBzGnMvbGHe1wvY45yo3mjul/J0vZ0b0gNB8gCVxsvQjgYAAA==",
1921
- "debug_symbols": "ndLNCoQgEAfwd5lzh9S0j1eJJawsBNEwW1iid1+LdmmXLnoZmMHfzMH/Cr1ol7GRejAzVPUKynTcSaN9t24JtFYqJcfmOoZ0Lwgd7+eJ672dHbcOKoITELqHKku9HqQSfpaz7ZEAwqGAhIIsFNBAgG8vlBQXJykppV+EcHEgGoNYDMpjUBGByO3vlwzlH8QI+0Wbb5/cSt4qcaZrWHR3CZt7TeIvd5M1negXK/YEXsLna+1vYezX+tVv",
1933
+ "debug_symbols": "ndLNCoQgEAfwd5lzh9S0j1eJJawsBNEwW1iid1+LdmmXLnoZmMHfzMH/Cr1ol7GRejAzVPUKynTcSaN9t24JtFYqJcfmOoZ0Lwgd7+eJ672dHbcOKoITELqHKku9HqQSfpbT7ZEAwqGAhIIsFNBAgG8vlBQXJykppV+EMDoQjUEsBuUxqIhA5Pb3S4byD2KE/aLNt09uJW+VONM1LLq7hM29JvGXu8maTvSLFXsCL+Hztfa3MPZr/eo3",
1922
1934
  "brillig_names": [
1923
1935
  "sync_notes"
1924
1936
  ]
@@ -2365,75 +2377,75 @@
2365
2377
  }
2366
2378
  },
2367
2379
  "file_map": {
2368
- "24": {
2380
+ "17": {
2369
2381
  "path": "std/embedded_curve_ops.nr",
2370
2382
  "source": "use crate::cmp::Eq;\nuse crate::ops::arith::{Add, Neg, Sub};\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\npub struct EmbeddedCurvePoint {\n pub x: Field,\n pub y: Field,\n pub is_infinite: bool,\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n pub fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n pub fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: self.x, y: -self.y, is_infinite: self.is_infinite }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite)\n | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\npub struct EmbeddedCurveScalar {\n pub lo: Field,\n pub hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n pub fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a, b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n\n //Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\n #[field(bn254)]\n pub(crate) fn from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v = 1;\n let mut lo = 0 as Field;\n let mut hi = 0 as Field;\n for i in 0..16 {\n lo = lo + (bytes[offset + 31 - i] as Field) * v;\n hi = hi + (bytes[offset + 15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = crate::embedded_curve_ops::EmbeddedCurveScalar { lo, hi };\n sig_s\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the\n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N],\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_array_return<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N],\n) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860,\n is_infinite: false,\n };\n multi_scalar_mul([g1], [scalar])\n}\n\n/// This function only assumes that the points are on the curve\n/// It handles corner cases around the infinity point causing some overhead compared to embedded_curve_add_not_nul and embedded_curve_add_unsafe\n// This is a hack because returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\npub fn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n // docs:end:embedded_curve_add\n let x_coordinates_match = point1.x == point2.x;\n let y_coordinates_match = point1.y == point2.y;\n let double_predicate = (x_coordinates_match & y_coordinates_match);\n let infinity_predicate = (x_coordinates_match & !y_coordinates_match);\n let point1_1 = EmbeddedCurvePoint {\n x: point1.x + (x_coordinates_match as Field),\n y: point1.y,\n is_infinite: x_coordinates_match,\n };\n // point1_1 is guaranteed to have a different abscissa than point2\n let mut result = embedded_curve_add_unsafe(point1_1, point2);\n result.is_infinite = x_coordinates_match;\n\n // dbl if x_match, y_match\n let double = embedded_curve_add_unsafe(point1, point1);\n result = if double_predicate { double } else { result };\n\n // infinity if x_match, !y_match\n if point1.is_infinite {\n result = point2;\n }\n if point2.is_infinite {\n result = point1;\n }\n let mut result_is_infinity = infinity_predicate & (!point1.is_infinite & !point2.is_infinite);\n result.is_infinite = result_is_infinity | (point1.is_infinite & point2.is_infinite);\n result\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(\n _point1: EmbeddedCurvePoint,\n _point2: EmbeddedCurvePoint,\n) -> [Field; 3] {}\n\n/// This function assumes that:\n/// The points are on the curve, and\n/// The points don't share an x-coordinate, and\n/// Neither point is the infinity point.\n/// If it is used with correct input, the function ensures the correct non-zero result is returned.\n/// Except for points on the curve, the other assumptions are checked by the function. It will cause assertion failure if they are not respected.\npub fn embedded_curve_add_not_nul(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n assert(point1.x != point2.x);\n assert(!point1.is_infinite);\n assert(!point2.is_infinite);\n embedded_curve_add_unsafe(point1, point2)\n}\n\n/// Unsafe ec addition\n/// If the inputs are the same, it will perform a doubling, but only if point1 and point2 are the same variable.\n/// If they have the same value but are different variables, the result will be incorrect because in this case\n/// it assumes (but does not check) that the points' x-coordinates are not equal.\n/// It also assumes neither point is the infinity point.\npub fn embedded_curve_add_unsafe(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n\n EmbeddedCurvePoint { x, y, is_infinite: false }\n}\n"
2371
2383
  },
2372
- "25": {
2384
+ "18": {
2373
2385
  "path": "std/field/bn254.nr",
2374
2386
  "source": "use crate::field::field_less_than;\nuse crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\npub(crate) global TWO_POW_128: Field = 0x100000000000000000000000000000000;\nglobal TWO_POW_64: Field = 0x10000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(mut x: Field) -> (Field, Field) {\n // Here's we're taking advantage of truncating 64 bit limbs from the input field\n // and then subtracting them from the input such the field division is equivalent to integer division.\n let low_lower_64 = (x as u64) as Field;\n x = (x - low_lower_64) / TWO_POW_64;\n let low_upper_64 = (x as u64) as Field;\n\n let high = (x - low_upper_64) / TWO_POW_64;\n let low = low_upper_64 * TWO_POW_64 + low_lower_64;\n\n (low, high)\n}\n\npub(crate) unconstrained fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nunconstrained fn lte_hint(x: Field, y: Field) -> bool {\n if x == y {\n true\n } else {\n field_less_than(x, y)\n }\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n unsafe {\n let borrow = lte_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size::<128>();\n rhi.assert_max_bit_size::<128>();\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size::<128>();\n xhi.assert_max_bit_size::<128>();\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(unsafe { field_less_than(b, a) });\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n unsafe {\n field_less_than(b, a)\n }\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n unsafe {\n if field_less_than(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{assert_gt, decompose, gt, lte_hint, PHI, PLO, TWO_POW_128};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_lte_hint() {\n assert(lte_hint(0, 1));\n assert(lte_hint(0, 0x100));\n assert(lte_hint(0x100, TWO_POW_128 - 1));\n assert(!lte_hint(0 - 1, 0));\n\n assert(lte_hint(0, 0));\n assert(lte_hint(0x100, 0x100));\n assert(lte_hint(0 - 1, 0 - 1));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"
2375
2387
  },
2376
- "26": {
2388
+ "19": {
2377
2389
  "path": "std/field/mod.nr",
2378
2390
  "source": "pub mod bn254;\nuse crate::runtime::is_unconstrained;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n /// Asserts that `self` can be represented in `bit_size` bits.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{bit_size}`.\n // docs:start:assert_max_bit_size\n pub fn assert_max_bit_size<let BIT_SIZE: u32>(self) {\n // docs:end:assert_max_bit_size\n assert(BIT_SIZE < modulus_num_bits() as u32);\n self.__assert_max_bit_size(BIT_SIZE);\n }\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_le_bits)]\n // docs:start:to_le_bits\n pub fn to_le_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_le_bits\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_be_bits)]\n // docs:start:to_be_bits\n pub fn to_be_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_be_bits\n\n /// Decomposes `self` into its little endian byte decomposition as a `[u8;N]` array\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n ///\n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self',\n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_le_bytes\n pub fn to_le_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_le_bytes\n // Compute the byte decomposition\n let bytes = self.to_le_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_le_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[N - 1 - i] != p[N - 1 - i]) {\n assert(bytes[N - 1 - i] < p[N - 1 - i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n /// Decomposes `self` into its big endian byte decomposition as a `[u8;N]` array of length required to represent the field modulus\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n ///\n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self',\n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_be_bytes\n pub fn to_be_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_be_bytes\n // Compute the byte decomposition\n let bytes = self.to_be_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_be_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[i] != p[i]) {\n assert(bytes[i] < p[i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n // docs:start:to_le_radix\n pub fn to_le_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n // Brillig does not need an immediate radix\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(radix);\n }\n self.__to_le_radix(radix)\n }\n // docs:end:to_le_radix\n\n // docs:start:to_be_radix\n pub fn to_be_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n // Brillig does not need an immediate radix\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(radix);\n }\n self.__to_be_radix(radix)\n }\n // docs:end:to_be_radix\n\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b: [u1; 32] = exponent.to_le_bits();\n\n for i in 1..33 {\n r *= r;\n r = (b[32 - i] as Field) * (r * self) + (1 - b[32 - i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x `elem` {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n\n /// Convert a little endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_le_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[i] as Field) * v;\n v = v * 256;\n }\n result\n }\n\n /// Convert a big endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_be_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[N - 1 - i] as Field) * v;\n v = v * 256;\n }\n result\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n/// An unconstrained only built in to efficiently compare fields.\n#[builtin(field_less_than)]\nunconstrained fn __field_less_than(x: Field, y: Field) -> bool {}\n\npub(crate) unconstrained fn field_less_than(x: Field, y: Field) -> bool {\n __field_less_than(x, y)\n}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n if is_unconstrained() {\n unsafe {\n field_less_than(x, y)\n }\n } else {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..32 {\n if (!done) {\n let x_byte = x_bytes[32 - 1 - i] as u8;\n let y_byte = y_bytes[32 - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n }\n}\n\nmod tests {\n use super::field_less_than;\n\n #[test]\n // docs:start:to_be_bits_example\n fn test_to_be_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_be_bits();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 1, 0]);\n }\n // docs:end:to_be_bits_example\n\n #[test]\n // docs:start:to_le_bits_example\n fn test_to_le_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_le_bits();\n assert_eq(bits, [0, 1, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bits_example\n\n #[test]\n // docs:start:to_be_bytes_example\n fn test_to_be_bytes() {\n let field = 2;\n let bytes: [u8; 8] = field.to_be_bytes();\n assert_eq(bytes, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bytes), field);\n }\n // docs:end:to_be_bytes_example\n\n #[test]\n // docs:start:to_le_bytes_example\n fn test_to_le_bytes() {\n let field = 2;\n let bytes: [u8; 8] = field.to_le_bytes();\n assert_eq(bytes, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bytes), field);\n }\n // docs:end:to_le_bytes_example\n\n #[test]\n // docs:start:to_be_radix_example\n fn test_to_be_radix() {\n let field = 2;\n let bytes: [u8; 8] = field.to_be_radix(256);\n assert_eq(bytes, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bytes), field);\n }\n // docs:end:to_be_radix_example\n\n #[test]\n // docs:start:to_le_radix_example\n fn test_to_le_radix() {\n let field = 2;\n let bytes: [u8; 8] = field.to_le_radix(256);\n assert_eq(bytes, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bytes), field);\n }\n // docs:end:to_le_radix_example\n\n #[test]\n unconstrained fn test_field_less_than() {\n assert(field_less_than(0, 1));\n assert(field_less_than(0, 0x100));\n assert(field_less_than(0x100, 0 - 1));\n assert(!field_less_than(0 - 1, 0));\n }\n}\n"
2379
2391
  },
2380
- "33": {
2392
+ "26": {
2381
2393
  "path": "std/hash/poseidon2.nr",
2382
2394
  "source": "use crate::default::Default;\nuse crate::hash::Hasher;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"
2383
2395
  },
2384
- "34": {
2396
+ "27": {
2385
2397
  "path": "std/hash/sha256.nr",
2386
- "source": "use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// A message block is up to 64 bytes taken from the input.\nglobal BLOCK_SIZE = 64;\n\n// The first index in the block where the 8 byte message size will be written.\nglobal MSG_SIZE_PTR = 56;\n\n// Size of the message block when packed as 4-byte integer array.\nglobal INT_BLOCK_SIZE = 16;\n\n// A `u32` integer consists of 4 bytes.\nglobal INT_SIZE = 4;\n\n// Index of the integer in the `INT_BLOCK` where the length is written.\nglobal INT_SIZE_PTR = MSG_SIZE_PTR / INT_SIZE;\n\n// Magic numbers for bit shifting.\n// Works with actual bit shifting as well as the compiler turns them into * and /\n// but circuit execution appears to be 10% faster this way.\nglobal TWO_POW_8 = 256;\nglobal TWO_POW_16 = TWO_POW_8 * 256;\nglobal TWO_POW_24 = TWO_POW_16 * 256;\nglobal TWO_POW_32 = TWO_POW_24 as u64 * 256;\n\n// Index of a byte in a 64 byte block; ie. 0..=63\ntype BLOCK_BYTE_PTR = u32;\n\n// The foreign function to compress blocks works on 16 pieces of 4-byte integers, instead of 64 bytes.\ntype INT_BLOCK = [u32; INT_BLOCK_SIZE];\n\n// A message block is a slice of the original message of a fixed size,\n// potentially padded with zeros, with neighbouring 4 bytes packed into integers.\ntype MSG_BLOCK = INT_BLOCK;\n\n// The hash is 32 bytes.\ntype HASH = [u8; 32];\n\n// The state accumulates the blocks.\n// Its overall size is the same as the `HASH`.\ntype STATE = [u32; 8];\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: INT_BLOCK, _state: STATE) -> STATE {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N as u64)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> HASH {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = [\n 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635,\n 1541459225,\n ];\n // Pointer into msg_block on a 64 byte scale\n let mut msg_byte_ptr = 0;\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_block, h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n verify_msg_block_padding(msg_block, msg_byte_ptr);\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n // If we had modulo == 0 then it means the last block was full,\n // and we can reset the pointer to zero to overwrite it.\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n msg_block = update_block_item(\n msg_block,\n msg_byte_ptr,\n |msg_item| set_item_byte_then_zeros(msg_item, msg_byte_ptr, 1 << 7),\n );\n msg_byte_ptr = msg_byte_ptr + 1;\n let last_block = msg_block;\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr > MSG_SIZE_PTR {\n h = sha256_compression(msg_block, h);\n // `attach_len_to_msg_block` will zero out everything after the `msg_byte_ptr`.\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe { attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size) };\n\n if !is_unconstrained() {\n verify_msg_len(msg_block, last_block, msg_byte_ptr, message_size);\n }\n\n hash_final_block(msg_block, h)\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start`.\n// Returns the block and the length that has been copied rather than padded with zeros.\nunconstrained fn build_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> (MSG_BLOCK, BLOCK_BYTE_PTR) {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n\n // Figure out the number of items in the int array that we have to pack.\n // e.g. if the input is [0,1,2,3,4,5] then we need to pack it as 2 items: [0123, 4500]\n let mut int_input = block_input / INT_SIZE;\n if block_input % INT_SIZE != 0 {\n int_input = int_input + 1;\n };\n\n for i in 0..int_input {\n let mut msg_item: u32 = 0;\n // Always construct the integer as 4 bytes, even if it means going beyond the input.\n for j in 0..INT_SIZE {\n let k = i * INT_SIZE + j;\n let msg_byte = if k < block_input {\n msg[msg_start + k]\n } else {\n 0\n };\n msg_item = lshift8(msg_item, 1) + msg_byte as u32;\n }\n msg_block[i] = msg_item;\n }\n\n // Returning the index as if it was a 64 byte array.\n // We have to project it down to 16 items and bit shifting to get a byte back if we need it.\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed by `build_msg_block`\n// and matches the input data. Returns the index of the first unset item.\n// If `message_size` is less than `msg_start` then this is called with the old non-empty block;\n// in that case we can skip verification, ie. no need to check that everything is zero.\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: MSG_BLOCK,\n msg_start: u32,\n) -> BLOCK_BYTE_PTR {\n let mut msg_byte_ptr = 0;\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n // We might have to go beyond the input to pad the fields.\n if msg_end % INT_SIZE != 0 {\n msg_end = msg_end + INT_SIZE - msg_end % INT_SIZE;\n }\n\n // Reconstructed packed item.\n let mut msg_item: u32 = 0;\n\n // Inclusive at the end so that we can compare the last item.\n let mut i: u32 = 0;\n for k in msg_start..=msg_end {\n if k % INT_SIZE == 0 {\n // If we consumed some input we can compare against the block.\n if (msg_start < message_size) & (k > msg_start) {\n assert_eq(msg_block[i], msg_item as u32);\n i = i + 1;\n msg_item = 0;\n }\n }\n // Shift the accumulator\n msg_item = lshift8(msg_item, 1);\n // If we have input to consume, add it at the rightmost position.\n if k < message_size & k < msg_end {\n msg_item = msg_item + msg[k] as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\n// Verify the block we are compressing was appropriately padded with zeros by `build_msg_block`.\n// This is only relevant for the last, potentially partially filled block.\nfn verify_msg_block_padding(msg_block: MSG_BLOCK, msg_byte_ptr: BLOCK_BYTE_PTR) {\n // Check all the way to the end of the block.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_BLOCK_SIZE);\n}\n\n// Verify that a region of ints in the message block are (partially) zeroed,\n// up to an (exclusive) maximum which can either be the end of the block\n// or just where the size is to be written.\nfn verify_msg_block_zeros(\n msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n max_int_byte_ptr: u32,\n) {\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // First integer which is supposed to be (partially) zero.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n let zeros = INT_SIZE - modulo;\n let mask = if zeros == 3 {\n TWO_POW_24\n } else if zeros == 2 {\n TWO_POW_16\n } else {\n TWO_POW_8\n };\n assert_eq(msg_block[int_byte_ptr] % mask, zero);\n int_byte_ptr = int_byte_ptr + 1;\n }\n\n // Check the rest of the items.\n for i in 0..max_int_byte_ptr {\n if i >= int_byte_ptr {\n assert_eq(msg_block[i], zero);\n }\n }\n}\n\n// Verify that up to the byte pointer the two blocks are equal.\n// At the byte pointer the new block can be partially zeroed.\nfn verify_msg_block_equals_last(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n) {\n // msg_byte_ptr is the position at which they are no longer have to be the same.\n // First integer which is supposed to be (partially) zero contains that pointer.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Reconstruct the partially zero item from the last block.\n let last_field = last_block[int_byte_ptr];\n let mut msg_item: u32 = 0;\n // Reset to where they are still equal.\n msg_byte_ptr = msg_byte_ptr - modulo;\n for i in 0..INT_SIZE {\n msg_item = lshift8(msg_item, 1);\n if i < modulo {\n msg_item = msg_item + get_item_byte(last_field, msg_byte_ptr) as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n assert_eq(msg_block[int_byte_ptr], msg_item);\n }\n\n for i in 0..INT_SIZE_PTR {\n if i < int_byte_ptr {\n assert_eq(msg_block[i], last_block[i]);\n }\n }\n}\n\n// Apply a function on the block item which the pointer indicates.\nfn update_block_item<Env>(\n mut msg_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n f: fn[Env](u32) -> u32,\n) -> MSG_BLOCK {\n let i = msg_byte_ptr / INT_SIZE;\n msg_block[i] = f(msg_block[i]);\n msg_block\n}\n\n// Set the rightmost `zeros` number of bytes to 0.\nfn set_item_zeros(item: u32, zeros: u8) -> u32 {\n lshift8(rshift8(item, zeros), zeros)\n}\n\n// Replace one byte in the item with a value, and set everything after it to zero.\nfn set_item_byte_then_zeros(msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR, msg_byte: u8) -> u32 {\n let zeros = INT_SIZE - msg_byte_ptr % INT_SIZE;\n let zeroed_item = set_item_zeros(msg_item, zeros as u8);\n let new_item = byte_into_item(msg_byte, msg_byte_ptr);\n zeroed_item + new_item\n}\n\n// Get a byte of a message item according to its overall position in the `BLOCK_SIZE` space.\nfn get_item_byte(mut msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR) -> u8 {\n // How many times do we have to shift to the right to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n msg_item = rshift8(msg_item, shifts as u8);\n // At this point the byte we want is in the rightmost position.\n msg_item as u8\n}\n\n// Project a byte into a position in a field based on the overall block pointer.\n// For example putting 1 into pointer 5 would be 100, because overall we would\n// have [____, 0100] with indexes [0123,4567].\nfn byte_into_item(msg_byte: u8, msg_byte_ptr: BLOCK_BYTE_PTR) -> u32 {\n let mut msg_item = msg_byte as u32;\n // How many times do we have to shift to the left to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n lshift8(msg_item, shifts as u8)\n}\n\n// Construct a field out of 4 bytes.\nfn make_item(b0: u8, b1: u8, b2: u8, b3: u8) -> u32 {\n let mut item = b0 as u32;\n item = lshift8(item, 1) + b1 as u32;\n item = lshift8(item, 1) + b2 as u32;\n item = lshift8(item, 1) + b3 as u32;\n item\n}\n\n// Shift by 8 bits to the left between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise multiplies by 256.\nfn lshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n if item == 0 {\n 0\n } else {\n // Brillig wouldn't shift 0<<4 without overflow.\n item << (8 * shifts)\n }\n } else {\n // We can do a for loop up to INT_SIZE or an if-else.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item * TWO_POW_8\n } else if shifts == 2 {\n item * TWO_POW_16\n } else if shifts == 3 {\n item * TWO_POW_24\n } else {\n // Doesn't make sense, but it's most likely called on 0 anyway.\n 0\n }\n }\n}\n\n// Shift by 8 bits to the right between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise divides by 256.\nfn rshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n item >> (8 * shifts)\n } else {\n // Division wouldn't work on `Field`.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item / TWO_POW_8\n } else if shifts == 2 {\n item / TWO_POW_16\n } else if shifts == 3 {\n item / TWO_POW_24\n } else {\n 0\n }\n }\n}\n\n// Zero out all bytes between the end of the message and where the length is appended,\n// then write the length into the last 8 bytes of the block.\nunconstrained fn attach_len_to_msg_block(\n mut msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) -> MSG_BLOCK {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 bits (i.e. until msg_byte_ptr = 56).\n // There can be one item which has to be partially zeroed.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Index of the block in which we find the item we need to partially zero.\n let i = msg_byte_ptr / INT_SIZE;\n let zeros = INT_SIZE - modulo;\n msg_block[i] = set_item_zeros(msg_block[i], zeros as u8);\n msg_byte_ptr = msg_byte_ptr + zeros;\n }\n\n // The rest can be zeroed without bit shifting anything.\n for i in (msg_byte_ptr / INT_SIZE)..INT_SIZE_PTR {\n msg_block[i] = 0;\n }\n\n // Set the last two 4 byte ints as the first/second half of the 8 bytes of the length.\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..=1 {\n let shift = i * 4;\n msg_block[INT_SIZE_PTR + i] = make_item(\n len_bytes[shift],\n len_bytes[shift + 1],\n len_bytes[shift + 2],\n len_bytes[shift + 3],\n );\n }\n msg_block\n}\n\n// Verify that the message length was correctly written by `attach_len_to_msg_block`,\n// and that everything between the byte pointer and the size pointer was zeroed,\n// and that everything before the byte pointer was untouched.\nfn verify_msg_len(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) {\n // Check zeros up to the size pointer.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_SIZE_PTR);\n\n // Check that up to the pointer we match the last block.\n verify_msg_block_equals_last(msg_block, last_block, msg_byte_ptr);\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let mut reconstructed_len: u64 = 0;\n for i in INT_SIZE_PTR..INT_BLOCK_SIZE {\n reconstructed_len = reconstructed_len * TWO_POW_32;\n reconstructed_len = reconstructed_len + msg_block[i] as u64;\n }\n let len = 8 * message_size as u64;\n assert_eq(reconstructed_len, len);\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n // Hash final padded block\n state = sha256_compression(msg_block, state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[j] as Field).to_be_bytes();\n for k in 0..4 {\n out_h[4 * j + k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod tests {\n use super::{\n attach_len_to_msg_block, build_msg_block, byte_into_item, get_item_byte, make_item,\n set_item_byte_then_zeros, set_item_zeros,\n };\n use super::INT_BLOCK;\n use super::sha256_var;\n\n #[test]\n fn smoke_test() {\n let input = [0xbd];\n let result = [\n 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d,\n 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0,\n 0x8f, 0xfe, 0x73, 0x2b,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n let result = [\n 91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94,\n 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_multiple_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99,\n ];\n let result = [\n 116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154,\n 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_under_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59,\n ];\n let result = [\n 143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213,\n 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_not_block_multiple() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97,\n 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61,\n ];\n let result = [\n 112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186,\n 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_with_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n let message_size = 297;\n assert_eq(sha256_var(input, message_size), result);\n }\n\n #[test]\n fn msg_big_no_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn same_msg_len_variable_padding() {\n let input = [\n 29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253,\n 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9,\n 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214,\n 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107,\n 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198,\n 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126,\n 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36,\n 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59,\n 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97,\n 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180,\n 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216,\n 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70,\n 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246,\n 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193,\n 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74,\n 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210,\n 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210,\n 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69,\n 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22,\n 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175,\n 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53,\n 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200,\n 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86,\n 119, 30, 63, 129, 143, 32, 96,\n ];\n\n // Prepare inputs of different lengths\n let mut input_511 = [0; 511];\n let mut input_512 = [0; 512]; // Next block\n let mut input_575 = [0; 575];\n let mut input_576 = [0; 576]; // Next block\n for i in 0..input.len() {\n input_511[i] = input[i];\n input_512[i] = input[i];\n input_575[i] = input[i];\n input_576[i] = input[i];\n }\n\n // Compute hashes of all inputs (with same message length)\n let fixed_length_hash = super::sha256(input);\n let var_full_length_hash = sha256_var(input, input.len() as u64);\n let var_length_hash_511 = sha256_var(input_511, input.len() as u64);\n let var_length_hash_512 = sha256_var(input_512, input.len() as u64);\n let var_length_hash_575 = sha256_var(input_575, input.len() as u64);\n let var_length_hash_576 = sha256_var(input_576, input.len() as u64);\n\n // All of the above should have produced the same hash\n assert_eq(var_full_length_hash, fixed_length_hash);\n assert_eq(var_length_hash_511, fixed_length_hash);\n assert_eq(var_length_hash_512, fixed_length_hash);\n assert_eq(var_length_hash_575, fixed_length_hash);\n assert_eq(var_length_hash_576, fixed_length_hash);\n }\n\n #[test]\n fn test_get_item_byte() {\n let fld = make_item(10, 20, 30, 40);\n assert_eq(fld, 0x0a141e28);\n assert_eq(get_item_byte(fld, 0), 10);\n assert_eq(get_item_byte(fld, 4), 10);\n assert_eq(get_item_byte(fld, 6), 30);\n }\n\n #[test]\n fn test_byte_into_item() {\n let fld = make_item(0, 20, 0, 0);\n assert_eq(byte_into_item(20, 1), fld);\n assert_eq(byte_into_item(20, 5), fld);\n }\n\n #[test]\n fn test_set_item_zeros() {\n let fld0 = make_item(10, 20, 30, 40);\n let fld1 = make_item(10, 0, 0, 0);\n assert_eq(set_item_zeros(fld0, 3), fld1);\n assert_eq(set_item_zeros(fld0, 4), 0);\n assert_eq(set_item_zeros(0, 4), 0);\n }\n\n #[test]\n fn test_set_item_byte_then_zeros() {\n let fld0 = make_item(10, 20, 30, 40);\n let fld1 = make_item(10, 50, 0, 0);\n assert_eq(set_item_byte_then_zeros(fld0, 1, 50), fld1);\n }\n\n #[test]\n fn test_build_msg_block_start_0() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48,\n ];\n assert_eq(input.len(), 22);\n let (msg_block, msg_byte_ptr) = unsafe { build_msg_block(input, input.len(), 0) };\n assert_eq(msg_byte_ptr, input.len());\n assert_eq(msg_block[0], make_item(input[0], input[1], input[2], input[3]));\n assert_eq(msg_block[1], make_item(input[4], input[5], input[6], input[7]));\n assert_eq(msg_block[5], make_item(input[20], input[21], 0, 0));\n assert_eq(msg_block[6], 0);\n }\n\n #[test]\n fn test_build_msg_block_start_1() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n assert_eq(input.len(), 68);\n let (msg_block, msg_byte_ptr) = unsafe { build_msg_block(input, input.len(), 64) };\n assert_eq(msg_byte_ptr, 4);\n assert_eq(msg_block[0], make_item(input[64], input[65], input[66], input[67]));\n assert_eq(msg_block[1], 0);\n }\n\n #[test]\n fn test_attach_len_to_msg_block() {\n let input: INT_BLOCK = [\n 2152555847, 1397309779, 1936618851, 1262052426, 1936876331, 1985297723, 543702374,\n 1919905082, 1131376244, 1701737517, 1417244773, 978151789, 1697470053, 1920166255,\n 1849316213, 1651139939,\n ];\n let msg_block = unsafe { attach_len_to_msg_block(input, 1, 448) };\n assert_eq(msg_block[0], ((1 << 7) as u32) * 256 * 256 * 256);\n assert_eq(msg_block[1], 0);\n assert_eq(msg_block[15], 3584);\n }\n}\n"
2398
+ "source": "use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// A message block is up to 64 bytes taken from the input.\nglobal BLOCK_SIZE: u32 = 64;\n\n// The first index in the block where the 8 byte message size will be written.\nglobal MSG_SIZE_PTR: u32 = 56;\n\n// Size of the message block when packed as 4-byte integer array.\nglobal INT_BLOCK_SIZE: u32 = 16;\n\n// A `u32` integer consists of 4 bytes.\nglobal INT_SIZE: u32 = 4;\n\n// Index of the integer in the `INT_BLOCK` where the length is written.\nglobal INT_SIZE_PTR: u32 = MSG_SIZE_PTR / INT_SIZE;\n\n// Magic numbers for bit shifting.\n// Works with actual bit shifting as well as the compiler turns them into * and /\n// but circuit execution appears to be 10% faster this way.\nglobal TWO_POW_8: u32 = 256;\nglobal TWO_POW_16: u32 = TWO_POW_8 * 256;\nglobal TWO_POW_24: u32 = TWO_POW_16 * 256;\nglobal TWO_POW_32: u64 = TWO_POW_24 as u64 * 256;\n\n// Index of a byte in a 64 byte block; ie. 0..=63\ntype BLOCK_BYTE_PTR = u32;\n\n// The foreign function to compress blocks works on 16 pieces of 4-byte integers, instead of 64 bytes.\ntype INT_BLOCK = [u32; INT_BLOCK_SIZE];\n\n// A message block is a slice of the original message of a fixed size,\n// potentially padded with zeros, with neighbouring 4 bytes packed into integers.\ntype MSG_BLOCK = INT_BLOCK;\n\n// The hash is 32 bytes.\ntype HASH = [u8; 32];\n\n// The state accumulates the blocks.\n// Its overall size is the same as the `HASH`.\ntype STATE = [u32; 8];\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: INT_BLOCK, _state: STATE) -> STATE {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N as u64)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> HASH {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = [\n 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635,\n 1541459225,\n ];\n // Pointer into msg_block on a 64 byte scale\n let mut msg_byte_ptr = 0;\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_block, h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n verify_msg_block_padding(msg_block, msg_byte_ptr);\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n // If we had modulo == 0 then it means the last block was full,\n // and we can reset the pointer to zero to overwrite it.\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n msg_block = update_block_item(\n msg_block,\n msg_byte_ptr,\n |msg_item| set_item_byte_then_zeros(msg_item, msg_byte_ptr, 1 << 7),\n );\n msg_byte_ptr = msg_byte_ptr + 1;\n let last_block = msg_block;\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr > MSG_SIZE_PTR {\n h = sha256_compression(msg_block, h);\n // `attach_len_to_msg_block` will zero out everything after the `msg_byte_ptr`.\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe { attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size) };\n\n if !is_unconstrained() {\n verify_msg_len(msg_block, last_block, msg_byte_ptr, message_size);\n }\n\n hash_final_block(msg_block, h)\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start`.\n// Returns the block and the length that has been copied rather than padded with zeros.\nunconstrained fn build_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> (MSG_BLOCK, BLOCK_BYTE_PTR) {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n\n // Figure out the number of items in the int array that we have to pack.\n // e.g. if the input is [0,1,2,3,4,5] then we need to pack it as 2 items: [0123, 4500]\n let mut int_input = block_input / INT_SIZE;\n if block_input % INT_SIZE != 0 {\n int_input = int_input + 1;\n };\n\n for i in 0..int_input {\n let mut msg_item: u32 = 0;\n // Always construct the integer as 4 bytes, even if it means going beyond the input.\n for j in 0..INT_SIZE {\n let k = i * INT_SIZE + j;\n let msg_byte = if k < block_input {\n msg[msg_start + k]\n } else {\n 0\n };\n msg_item = lshift8(msg_item, 1) + msg_byte as u32;\n }\n msg_block[i] = msg_item;\n }\n\n // Returning the index as if it was a 64 byte array.\n // We have to project it down to 16 items and bit shifting to get a byte back if we need it.\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed by `build_msg_block`\n// and matches the input data. Returns the index of the first unset item.\n// If `message_size` is less than `msg_start` then this is called with the old non-empty block;\n// in that case we can skip verification, ie. no need to check that everything is zero.\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: MSG_BLOCK,\n msg_start: u32,\n) -> BLOCK_BYTE_PTR {\n let mut msg_byte_ptr = 0;\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n // We might have to go beyond the input to pad the fields.\n if msg_end % INT_SIZE != 0 {\n msg_end = msg_end + INT_SIZE - msg_end % INT_SIZE;\n }\n\n // Reconstructed packed item.\n let mut msg_item: u32 = 0;\n\n // Inclusive at the end so that we can compare the last item.\n let mut i: u32 = 0;\n for k in msg_start..=msg_end {\n if k % INT_SIZE == 0 {\n // If we consumed some input we can compare against the block.\n if (msg_start < message_size) & (k > msg_start) {\n assert_eq(msg_block[i], msg_item as u32);\n i = i + 1;\n msg_item = 0;\n }\n }\n // Shift the accumulator\n msg_item = lshift8(msg_item, 1);\n // If we have input to consume, add it at the rightmost position.\n if k < message_size & k < msg_end {\n msg_item = msg_item + msg[k] as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\n// Verify the block we are compressing was appropriately padded with zeros by `build_msg_block`.\n// This is only relevant for the last, potentially partially filled block.\nfn verify_msg_block_padding(msg_block: MSG_BLOCK, msg_byte_ptr: BLOCK_BYTE_PTR) {\n // Check all the way to the end of the block.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_BLOCK_SIZE);\n}\n\n// Verify that a region of ints in the message block are (partially) zeroed,\n// up to an (exclusive) maximum which can either be the end of the block\n// or just where the size is to be written.\nfn verify_msg_block_zeros(\n msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n max_int_byte_ptr: u32,\n) {\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // First integer which is supposed to be (partially) zero.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n let zeros = INT_SIZE - modulo;\n let mask = if zeros == 3 {\n TWO_POW_24\n } else if zeros == 2 {\n TWO_POW_16\n } else {\n TWO_POW_8\n };\n assert_eq(msg_block[int_byte_ptr] % mask, zero);\n int_byte_ptr = int_byte_ptr + 1;\n }\n\n // Check the rest of the items.\n for i in 0..max_int_byte_ptr {\n if i >= int_byte_ptr {\n assert_eq(msg_block[i], zero);\n }\n }\n}\n\n// Verify that up to the byte pointer the two blocks are equal.\n// At the byte pointer the new block can be partially zeroed.\nfn verify_msg_block_equals_last(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n) {\n // msg_byte_ptr is the position at which they are no longer have to be the same.\n // First integer which is supposed to be (partially) zero contains that pointer.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Reconstruct the partially zero item from the last block.\n let last_field = last_block[int_byte_ptr];\n let mut msg_item: u32 = 0;\n // Reset to where they are still equal.\n msg_byte_ptr = msg_byte_ptr - modulo;\n for i in 0..INT_SIZE {\n msg_item = lshift8(msg_item, 1);\n if i < modulo {\n msg_item = msg_item + get_item_byte(last_field, msg_byte_ptr) as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n assert_eq(msg_block[int_byte_ptr], msg_item);\n }\n\n for i in 0..INT_SIZE_PTR {\n if i < int_byte_ptr {\n assert_eq(msg_block[i], last_block[i]);\n }\n }\n}\n\n// Apply a function on the block item which the pointer indicates.\nfn update_block_item<Env>(\n mut msg_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n f: fn[Env](u32) -> u32,\n) -> MSG_BLOCK {\n let i = msg_byte_ptr / INT_SIZE;\n msg_block[i] = f(msg_block[i]);\n msg_block\n}\n\n// Set the rightmost `zeros` number of bytes to 0.\nfn set_item_zeros(item: u32, zeros: u8) -> u32 {\n lshift8(rshift8(item, zeros), zeros)\n}\n\n// Replace one byte in the item with a value, and set everything after it to zero.\nfn set_item_byte_then_zeros(msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR, msg_byte: u8) -> u32 {\n let zeros = INT_SIZE - msg_byte_ptr % INT_SIZE;\n let zeroed_item = set_item_zeros(msg_item, zeros as u8);\n let new_item = byte_into_item(msg_byte, msg_byte_ptr);\n zeroed_item + new_item\n}\n\n// Get a byte of a message item according to its overall position in the `BLOCK_SIZE` space.\nfn get_item_byte(mut msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR) -> u8 {\n // How many times do we have to shift to the right to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n msg_item = rshift8(msg_item, shifts as u8);\n // At this point the byte we want is in the rightmost position.\n msg_item as u8\n}\n\n// Project a byte into a position in a field based on the overall block pointer.\n// For example putting 1 into pointer 5 would be 100, because overall we would\n// have [____, 0100] with indexes [0123,4567].\nfn byte_into_item(msg_byte: u8, msg_byte_ptr: BLOCK_BYTE_PTR) -> u32 {\n let mut msg_item = msg_byte as u32;\n // How many times do we have to shift to the left to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n lshift8(msg_item, shifts as u8)\n}\n\n// Construct a field out of 4 bytes.\nfn make_item(b0: u8, b1: u8, b2: u8, b3: u8) -> u32 {\n let mut item = b0 as u32;\n item = lshift8(item, 1) + b1 as u32;\n item = lshift8(item, 1) + b2 as u32;\n item = lshift8(item, 1) + b3 as u32;\n item\n}\n\n// Shift by 8 bits to the left between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise multiplies by 256.\nfn lshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n if item == 0 {\n 0\n } else {\n // Brillig wouldn't shift 0<<4 without overflow.\n item << (8 * shifts)\n }\n } else {\n // We can do a for loop up to INT_SIZE or an if-else.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item * TWO_POW_8\n } else if shifts == 2 {\n item * TWO_POW_16\n } else if shifts == 3 {\n item * TWO_POW_24\n } else {\n // Doesn't make sense, but it's most likely called on 0 anyway.\n 0\n }\n }\n}\n\n// Shift by 8 bits to the right between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise divides by 256.\nfn rshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n item >> (8 * shifts)\n } else {\n // Division wouldn't work on `Field`.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item / TWO_POW_8\n } else if shifts == 2 {\n item / TWO_POW_16\n } else if shifts == 3 {\n item / TWO_POW_24\n } else {\n 0\n }\n }\n}\n\n// Zero out all bytes between the end of the message and where the length is appended,\n// then write the length into the last 8 bytes of the block.\nunconstrained fn attach_len_to_msg_block(\n mut msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) -> MSG_BLOCK {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 bits (i.e. until msg_byte_ptr = 56).\n // There can be one item which has to be partially zeroed.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Index of the block in which we find the item we need to partially zero.\n let i = msg_byte_ptr / INT_SIZE;\n let zeros = INT_SIZE - modulo;\n msg_block[i] = set_item_zeros(msg_block[i], zeros as u8);\n msg_byte_ptr = msg_byte_ptr + zeros;\n }\n\n // The rest can be zeroed without bit shifting anything.\n for i in (msg_byte_ptr / INT_SIZE)..INT_SIZE_PTR {\n msg_block[i] = 0;\n }\n\n // Set the last two 4 byte ints as the first/second half of the 8 bytes of the length.\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..=1 {\n let shift = i * 4;\n msg_block[INT_SIZE_PTR + i] = make_item(\n len_bytes[shift],\n len_bytes[shift + 1],\n len_bytes[shift + 2],\n len_bytes[shift + 3],\n );\n }\n msg_block\n}\n\n// Verify that the message length was correctly written by `attach_len_to_msg_block`,\n// and that everything between the byte pointer and the size pointer was zeroed,\n// and that everything before the byte pointer was untouched.\nfn verify_msg_len(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) {\n // Check zeros up to the size pointer.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_SIZE_PTR);\n\n // Check that up to the pointer we match the last block.\n verify_msg_block_equals_last(msg_block, last_block, msg_byte_ptr);\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let mut reconstructed_len: u64 = 0;\n for i in INT_SIZE_PTR..INT_BLOCK_SIZE {\n reconstructed_len = reconstructed_len * TWO_POW_32;\n reconstructed_len = reconstructed_len + msg_block[i] as u64;\n }\n let len = 8 * message_size as u64;\n assert_eq(reconstructed_len, len);\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n // Hash final padded block\n state = sha256_compression(msg_block, state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[j] as Field).to_be_bytes();\n for k in 0..4 {\n out_h[4 * j + k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod tests {\n use super::{\n attach_len_to_msg_block, build_msg_block, byte_into_item, get_item_byte, make_item,\n set_item_byte_then_zeros, set_item_zeros,\n };\n use super::INT_BLOCK;\n use super::sha256_var;\n\n #[test]\n fn smoke_test() {\n let input = [0xbd];\n let result = [\n 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d,\n 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0,\n 0x8f, 0xfe, 0x73, 0x2b,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n let result = [\n 91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94,\n 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_multiple_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99,\n ];\n let result = [\n 116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154,\n 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_under_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59,\n ];\n let result = [\n 143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213,\n 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_not_block_multiple() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97,\n 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61,\n ];\n let result = [\n 112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186,\n 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_with_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n let message_size = 297;\n assert_eq(sha256_var(input, message_size), result);\n }\n\n #[test]\n fn msg_big_no_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn same_msg_len_variable_padding() {\n let input = [\n 29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253,\n 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9,\n 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214,\n 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107,\n 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198,\n 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126,\n 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36,\n 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59,\n 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97,\n 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180,\n 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216,\n 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70,\n 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246,\n 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193,\n 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74,\n 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210,\n 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210,\n 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69,\n 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22,\n 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175,\n 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53,\n 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200,\n 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86,\n 119, 30, 63, 129, 143, 32, 96,\n ];\n\n // Prepare inputs of different lengths\n let mut input_511 = [0; 511];\n let mut input_512 = [0; 512]; // Next block\n let mut input_575 = [0; 575];\n let mut input_576 = [0; 576]; // Next block\n for i in 0..input.len() {\n input_511[i] = input[i];\n input_512[i] = input[i];\n input_575[i] = input[i];\n input_576[i] = input[i];\n }\n\n // Compute hashes of all inputs (with same message length)\n let fixed_length_hash = super::sha256(input);\n let var_full_length_hash = sha256_var(input, input.len() as u64);\n let var_length_hash_511 = sha256_var(input_511, input.len() as u64);\n let var_length_hash_512 = sha256_var(input_512, input.len() as u64);\n let var_length_hash_575 = sha256_var(input_575, input.len() as u64);\n let var_length_hash_576 = sha256_var(input_576, input.len() as u64);\n\n // All of the above should have produced the same hash\n assert_eq(var_full_length_hash, fixed_length_hash);\n assert_eq(var_length_hash_511, fixed_length_hash);\n assert_eq(var_length_hash_512, fixed_length_hash);\n assert_eq(var_length_hash_575, fixed_length_hash);\n assert_eq(var_length_hash_576, fixed_length_hash);\n }\n\n #[test]\n fn test_get_item_byte() {\n let fld = make_item(10, 20, 30, 40);\n assert_eq(fld, 0x0a141e28);\n assert_eq(get_item_byte(fld, 0), 10);\n assert_eq(get_item_byte(fld, 4), 10);\n assert_eq(get_item_byte(fld, 6), 30);\n }\n\n #[test]\n fn test_byte_into_item() {\n let fld = make_item(0, 20, 0, 0);\n assert_eq(byte_into_item(20, 1), fld);\n assert_eq(byte_into_item(20, 5), fld);\n }\n\n #[test]\n fn test_set_item_zeros() {\n let fld0 = make_item(10, 20, 30, 40);\n let fld1 = make_item(10, 0, 0, 0);\n assert_eq(set_item_zeros(fld0, 3), fld1);\n assert_eq(set_item_zeros(fld0, 4), 0);\n assert_eq(set_item_zeros(0, 4), 0);\n }\n\n #[test]\n fn test_set_item_byte_then_zeros() {\n let fld0 = make_item(10, 20, 30, 40);\n let fld1 = make_item(10, 50, 0, 0);\n assert_eq(set_item_byte_then_zeros(fld0, 1, 50), fld1);\n }\n\n #[test]\n fn test_build_msg_block_start_0() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48,\n ];\n assert_eq(input.len(), 22);\n let (msg_block, msg_byte_ptr) = unsafe { build_msg_block(input, input.len(), 0) };\n assert_eq(msg_byte_ptr, input.len());\n assert_eq(msg_block[0], make_item(input[0], input[1], input[2], input[3]));\n assert_eq(msg_block[1], make_item(input[4], input[5], input[6], input[7]));\n assert_eq(msg_block[5], make_item(input[20], input[21], 0, 0));\n assert_eq(msg_block[6], 0);\n }\n\n #[test]\n fn test_build_msg_block_start_1() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n assert_eq(input.len(), 68);\n let (msg_block, msg_byte_ptr) = unsafe { build_msg_block(input, input.len(), 64) };\n assert_eq(msg_byte_ptr, 4);\n assert_eq(msg_block[0], make_item(input[64], input[65], input[66], input[67]));\n assert_eq(msg_block[1], 0);\n }\n\n #[test]\n fn test_attach_len_to_msg_block() {\n let input: INT_BLOCK = [\n 2152555847, 1397309779, 1936618851, 1262052426, 1936876331, 1985297723, 543702374,\n 1919905082, 1131376244, 1701737517, 1417244773, 978151789, 1697470053, 1920166255,\n 1849316213, 1651139939,\n ];\n let msg_block = unsafe { attach_len_to_msg_block(input, 1, 448) };\n assert_eq(msg_block[0], ((1 << 7) as u32) * 256 * 256 * 256);\n assert_eq(msg_block[1], 0);\n assert_eq(msg_block[15], 3584);\n }\n}\n"
2387
2399
  },
2388
- "58": {
2400
+ "51": {
2389
2401
  "path": "std/panic.nr",
2390
2402
  "source": "pub fn panic<T, U, let N: u32>(message: fmtstr<N, T>) -> U {\n assert(false, message);\n crate::mem::zeroed()\n}\n"
2391
2403
  },
2392
- "109": {
2404
+ "102": {
2393
2405
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr",
2394
2406
  "source": "use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n hash::{ArgsHasher, hash_args_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal,\n },\n header::get_header_at,\n key_validation_request::get_key_validation_request,\n logs::{emit_encrypted_event_log, emit_encrypted_note_log},\n returns::pack_returns,\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n log_hash::{EncryptedLogHash, LogHash, NoteLogHash},\n max_block_number::MaxBlockNumber,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest,\n read_request::ReadRequest,\n side_effect::Counted,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NOTE_HASHES_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, PUBLIC_DISPATCH_SELECTOR,\n },\n header::Header,\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::Empty,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub max_block_number: MaxBlockNumber,\n\n pub note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n pub nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n pub note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n pub nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub historical_header: Header,\n\n pub note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n pub encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<LogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n pub last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n pub fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n pub fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n pub fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n pub fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: self.next_counter(),\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n pub fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage(),\n nullifier_read_requests: self.nullifier_read_requests.storage(),\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage(),\n note_hashes: self.note_hashes.storage(),\n nullifiers: self.nullifiers.storage(),\n private_call_requests: self.private_call_requests.storage(),\n public_call_requests: self.public_call_requests.storage(),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage(),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage(),\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage(),\n contract_class_logs_hashes: self.contract_class_logs_hashes.storage(),\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request =\n self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale\n // Typically we'd validate keys by showing that they are the preimage of `pk_m_hash`, but that'd require\n // the oracle returning the master secret keys, which could cause malicious contracts to leak it or learn\n // about secrets from other contracts. We therefore silo secret keys, and rely on the private kernel to\n // validate that we siloed secret key corresponds to correct siloing of the master secret key that hashes\n // to `pk_m_hash`.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert(request.pk_m.hash() == pk_m_hash);\n\n self.key_validation_requests_and_generators.push(\n KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index],\n },\n );\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field,\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(\n &mut self,\n note_hash_counter: u32,\n log: [u8; M],\n log_hash: Field,\n ) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n // The oracle simulates the private call and returns the value of the side effects counter after execution of\n // the call (which means that end_side_effect_counter - start_side_effect_counter is the number of side effects\n // that took place), along with the hash of the return values. We validate these by requesting a private kernel\n // iteration in which the return values are constrained to hash to `returns_hash` and the side effects counter\n // to increment from start to end.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n self.side_effect_counter = end_side_effect_counter + 1;\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.set_public_teardown_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn set_public_teardown_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"
2395
2407
  },
2396
- "128": {
2408
+ "121": {
2397
2409
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr",
2398
2410
  "source": "use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n indexed_tagging_secret::{INDEXED_TAGGING_SECRET_LENGTH, IndexedTaggingSecret},\n utils::arr_copy_slice,\n};\n\n/// Notifies the simulator that a note has been created, so that it can be returned in future read requests in the same\n/// transaction. This note should only be added to the non-volatile database if found in an actual block.\npub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n notify_created_note_oracle_wrapper(\n storage_slot,\n note_type_id,\n serialized_note,\n note_hash,\n counter,\n )\n };\n}\n\n/// Notifies the simulator that a note has been nullified, so that it is no longer returned in future read requests in\n/// the same transaction. This note should only be removed to the non-volatile database if its nullifier is found in an\n/// actual block.\npub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { notify_nullified_note_oracle_wrapper(nullifier, note_hash, counter) };\n}\n\nunconstrained fn notify_created_note_oracle_wrapper<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n let _ = notify_created_note_oracle(\n storage_slot,\n note_type_id,\n serialized_note,\n note_hash,\n counter,\n );\n}\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32,\n) -> Field {}\n\nunconstrained fn notify_nullified_note_oracle_wrapper(\n nullifier: Field,\n note_hash: Field,\n counter: u32,\n) {\n let _ = notify_nullified_note_oracle(nullifier, note_hash, counter);\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(\n _nullifier: Field,\n _note_hash: Field,\n _counter: u32,\n) -> Field {}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S],\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S],\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields,\n )\n}\n\npub unconstrained fn get_notes<Note, let N: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N], // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S]\nwhere\n Note: NoteInterface<N>,\n{\n sync_notes_oracle_wrapper();\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields,\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before the\n/// current transaction is included in a block. While this might seem of little use at first, certain design patterns\n/// benefit from this abstraction (see e.g. `PrivateMutable`).\npub unconstrained fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n/// Same as `get_app_tagging_secret_as_sender`, except it returns the derived tag as an array of bytes, ready to be included in a\n/// log.\npub unconstrained fn get_app_tag_bytes_as_sender(\n sender: AztecAddress,\n recipient: AztecAddress,\n) -> [u8; 32] {\n let tag = get_app_tagging_secret_as_sender(sender, recipient).compute_tag(recipient);\n tag.to_be_bytes()\n}\n\n/// Returns the tagging secret for a given sender and recipient pair, siloed for the current contract address.\n/// Includes the last known index used to send a note tagged with this secret.\n/// For this to work, PXE must know the ivpsk_m of the sender.\n/// For the recipient's side, only the address is needed.\npub unconstrained fn get_app_tagging_secret_as_sender(\n sender: AztecAddress,\n recipient: AztecAddress,\n) -> IndexedTaggingSecret {\n let result = get_app_tagging_secret_as_sender_oracle(sender, recipient);\n IndexedTaggingSecret::deserialize(result)\n}\n\n#[oracle(getAppTaggingSecretAsSender)]\nunconstrained fn get_app_tagging_secret_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) -> [Field; INDEXED_TAGGING_SECRET_LENGTH] {}\n\n/// Notifies the simulator that a tag has been used in a note, and to therefore increment the associated index so that\n/// future notes get a different tag and can be discovered by the recipient.\n/// This change should only be persisted in a non-volatile database if the tagged log is found in an actual block -\n/// otherwise e.g. a reverting transaction can cause the sender to accidentally skip indices and later produce notes\n/// that are not found by the recipient.\npub fn increment_app_tagging_secret_index_as_sender(sender: AztecAddress, recipient: AztecAddress) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n increment_app_tagging_secret_index_as_sender_wrapper(sender, recipient);\n }\n}\n\nunconstrained fn increment_app_tagging_secret_index_as_sender_wrapper(\n sender: AztecAddress,\n recipient: AztecAddress,\n) {\n increment_app_tagging_secret_index_as_sender_oracle(sender, recipient);\n}\n\n#[oracle(incrementAppTaggingSecretIndexAsSender)]\nunconstrained fn increment_app_tagging_secret_index_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) {}\n\n/// Finds new notes that may have been sent to all registered accounts in PXE in the current contract and makes them available\n/// for later querying via the `get_notes` oracle.\npub fn sync_notes() {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n sync_notes_oracle_wrapper();\n }\n}\n\nunconstrained fn sync_notes_oracle_wrapper() {\n sync_notes_oracle();\n}\n\n#[oracle(syncNotes)]\nunconstrained fn sync_notes_oracle() {}\n"
2399
2411
  },
2400
- "135": {
2412
+ "128": {
2401
2413
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr",
2402
2414
  "source": "use dep::protocol_types::address::AztecAddress;\n\n/// Informs the simulator that an encrypted note log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_note_log_oracle_wrapper(note_hash_counter, encrypted_note, counter)\n }\n}\n\n/// Informs the simulator that an encrypted event log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_event_log_oracle_wrapper(\n contract_address,\n randomness,\n encrypted_event,\n counter,\n )\n }\n}\n\nunconstrained fn emit_encrypted_note_log_oracle_wrapper<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32,\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\nunconstrained fn emit_encrypted_event_log_oracle_wrapper<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32,\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n/// Temporary substitute that is used for handling contract class registration. This\n/// variant returns the log hash, which would be too large to compute inside a circuit.\npub unconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) -> Field {\n emit_contract_class_unencrypted_log_private_oracle(contract_address, message, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(\n _note_hash_counter: u32,\n _encrypted_note: [u8; M],\n _counter: u32,\n) {}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _encrypted_event: [u8; M],\n _counter: u32,\n) {}\n\n#[oracle(emitContractClassLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) -> Field {}\n"
2403
2415
  },
2404
- "158": {
2416
+ "151": {
2405
2417
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr",
2406
2418
  "source": "use crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\nuse dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__FUNCTION_ARGS, GENERATOR_INDEX__MESSAGE_NULLIFIER,\n GENERATOR_INDEX__SECRET_HASH,\n },\n hash::{poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice, sha256_to_field},\n point::Point,\n traits::Hash,\n};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<let N: u32>(\n contract_address: AztecAddress,\n log: [u8; N],\n) -> Field {\n let mut hash_bytes = [0; N + 36];\n // Address is converted to 32 bytes in ts\n let address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (N as Field).to_be_bytes();\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..N {\n hash_bytes[36 + i] = log[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_l1_to_l2_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field,\n leaf_index: Field,\n) -> Field {\n let mut hash_bytes = [0 as u8; 224];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n let leaf_index_bytes: [u8; 32] = leaf_index.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n hash_bytes[i + 192] = leaf_index_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret\npub fn compute_l1_to_l2_message_nullifier(message_hash: Field, secret: Field) -> Field {\n poseidon2_hash_with_separator([message_hash, secret], GENERATOR_INDEX__MESSAGE_NULLIFIER)\n}\n\npub struct ArgsHasher {\n pub fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd,\n ];\n let serialized_log = arr_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = AztecAddress::from_field(\n 0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303,\n );\n let serialized_log: [u8; 32] = log.to_field().to_be_bytes();\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"dummy\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"Hello this is a string\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"
2407
2419
  },
2408
- "172": {
2420
+ "165": {
2409
2421
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/utils/to_bytes.nr",
2410
2422
  "source": "pub fn arr_to_be_bytes_arr<let L: u32>(fields: [Field; L]) -> [u8; L * 32] {\n let mut bytes = [0 as u8; L * 32];\n for i in 0..L {\n // Note that bytes.append() results in bound error\n let to_add: [u8; 32] = fields[i].to_be_bytes();\n for j in 0..32 {\n bytes[i * 32 + j] = to_add[j];\n }\n }\n bytes\n}\n\n// each character of a string is converted into a byte\n// then an ACVM field via the oracle => we recreate here\npub fn str_to_be_bytes_arr<let L: u32>(string: str<L>) -> [u8; L * 32] {\n let chars_bytes: [u8; L] = string.as_bytes();\n let mut bytes = [0 as u8; L * 32];\n for i in 0..L {\n let to_add: [u8; 32] = (chars_bytes[i] as Field).to_be_bytes();\n for j in 0..32 {\n bytes[i * 32 + j] = to_add[j];\n }\n }\n bytes\n}\n"
2411
2423
  },
2412
- "199": {
2424
+ "192": {
2413
2425
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
2414
2426
  "source": "use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_OVPK_M_X,\n DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y, GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n point::POINT_LENGTH,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n pub npk_m: NpkM,\n pub ivpk_m: IvpkM,\n pub ovpk_m: OvpkM,\n pub tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n pub inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\npub struct AddressPoint {\n pub inner: Point,\n}\n\nimpl ToPoint for AddressPoint {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"
2415
2427
  },
2416
- "207": {
2428
+ "200": {
2417
2429
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
2418
2430
  "source": "/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"
2419
2431
  },
2420
- "209": {
2432
+ "202": {
2421
2433
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr",
2422
2434
  "source": "use crate::{\n address::aztec_address::AztecAddress, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n pub inner: Field,\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(poseidon2_hash_with_separator(\n [salt, initialization_hash, deployer.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
2423
2435
  },
2424
- "210": {
2436
+ "203": {
2425
2437
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr",
2426
2438
  "source": "use crate::{\n address::{aztec_address::AztecAddress, salted_initialization_hash::SaltedInitializationHash},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n pub inner: Field,\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress,\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer),\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n ) -> Self {\n PartialAddress::from_field(poseidon2_hash_with_separator(\n [contract_class_id.to_field(), salted_initialization_hash.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
2427
2439
  },
2428
- "211": {
2440
+ "204": {
2429
2441
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
2430
- "source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n MAX_FIELD_VALUE,\n },\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n traits::{Deserialize, Empty, FromField, Serialize, ToField},\n utils,\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse std::{\n ec::{pow, sqrt},\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n};\n\n// Aztec address\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secrect can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n function_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n function_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"
2442
+ "source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n MAX_FIELD_VALUE,\n },\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n traits::{Deserialize, Empty, FromField, Serialize, ToField},\n utils,\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse ec::{pow, sqrt};\nuse std::embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key};\n\n// Aztec address\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secrect can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n function_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n function_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn compute_preaddress_from_partial_and_pub_keys() {\n let pre_address = poseidon2_hash_with_separator([1, 2], GENERATOR_INDEX__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(pre_address == expected_computed_preaddress_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"
2431
2443
  },
2432
- "236": {
2444
+ "229": {
2433
2445
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
2434
2446
  "source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n log_hash::{LogHash, ScopedEncryptedLogHash, ScopedLogHash},\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc,\n};\nuse super::utils::field::field_from_bytes;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [tx_hash, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), unique_note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256(\n [log_hash.contract_address.to_field(), log_hash.log_hash.value],\n )\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0,\n ))\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage())\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\npub fn compute_tx_logs_hash<let N: u32>(logs: [LogHash; N]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; N * 32];\n for offset in 0..N {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of Math.ceil(N/31)\n let mut in_len = N / 31;\n let mut has_padding = false;\n if N % 31 != 0 {\n in_len += 1;\n has_padding = true;\n }\n\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n sponge.absorb(field_from_bytes(current_field, false));\n current_field = [0; 31];\n }\n }\n if has_padding {\n sponge.absorb(field_from_bytes(current_field, false));\n }\n\n sponge.squeeze()\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
2435
2447
  },
2436
- "376": {
2448
+ "375": {
2437
2449
  "path": "/usr/src/noir-projects/noir-contracts/contracts/contract_instance_deployer_contract/src/main.nr",
2438
2450
  "source": "use dep::aztec::macros::aztec;\n\n#[aztec]\ncontract ContractInstanceDeployer {\n use dep::aztec::{\n macros::{events::event, functions::private},\n utils::to_bytes::arr_to_be_bytes_arr,\n };\n use dep::aztec::protocol_types::{\n address::{AztecAddress, PartialAddress, PublicKeysHash},\n constants::DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n contract_class_id::ContractClassId,\n hash::sha256_to_field,\n public_keys::PublicKeys,\n traits::Serialize,\n };\n use std::meta::derive;\n\n #[event]\n #[derive(Serialize)]\n struct ContractInstanceDeployed {\n DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE: Field,\n address: AztecAddress,\n version: u8,\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n deployer: AztecAddress,\n }\n\n // We need to impl this separately because ts deserializes a point as two fields only.\n // We had issues that:\n // Notice how the 'is_infinite' field is deserialized as the next point.\n // {\n // masterNullifierPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000012>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000034>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterIncomingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000056>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterOutgoingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000078>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterTaggingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000910>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000001112>,\n // isInfinite: false,\n // kind: 'point'\n // }\n impl Serialize<15> for ContractInstanceDeployed {\n fn serialize(self) -> [Field; 15] {\n [\n self.DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n self.address.to_field(),\n self.version.to_field(),\n self.salt,\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys.npk_m.serialize()[0],\n self.public_keys.npk_m.serialize()[1],\n self.public_keys.ivpk_m.serialize()[0],\n self.public_keys.ivpk_m.serialize()[1],\n self.public_keys.ovpk_m.serialize()[0],\n self.public_keys.ovpk_m.serialize()[1],\n self.public_keys.tpk_m.serialize()[0],\n self.public_keys.tpk_m.serialize()[1],\n self.deployer.to_field(),\n ]\n }\n }\n\n #[private]\n fn deploy(\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n universal_deploy: bool,\n ) {\n // TODO(@spalladino): assert nullifier_exists silo(contract_class_id, ContractClassRegisterer)\n let deployer = if universal_deploy {\n AztecAddress::zero()\n } else {\n context.msg_sender()\n };\n\n let partial_address =\n PartialAddress::compute(contract_class_id, salt, initialization_hash, deployer);\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // Emit the address as a nullifier to be able to prove that this instance has been (not) deployed\n context.push_nullifier(address.to_field());\n\n // Broadcast the event\n let event = ContractInstanceDeployed {\n DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n contract_class_id,\n address,\n public_keys,\n initialization_hash,\n salt,\n deployer,\n version: 1,\n };\n\n let payload = event.serialize();\n dep::aztec::oracle::debug_log::debug_log_format(\"ContractInstanceDeployed: {}\", payload);\n\n // @todo This is very inefficient, we are doing a lot of back and forth conversions.\n let serialized_log = arr_to_be_bytes_arr(payload);\n let log_hash = sha256_to_field(serialized_log);\n\n // Note: we are cheating a bit here because this is actually not encrypted\n // but needs to be emitted from private, where we have removed unencrypted_logs,\n // and has 15 fields (the max enc log len is 8).\n // TODO(Miranda): split into 2 logs\n context.emit_raw_event_log_with_masked_address(0, serialized_log, log_hash);\n }\n}\n"
2439
2451
  }