@aztec/accounts 0.0.1-commit.6d63667d → 0.0.1-commit.86469d5

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": "1.0.0-beta.18+b3f73584360453a658cb6940db694c13668d6563",
3
+ "noir_version": "1.0.0-beta.18+13ce5c89c1edbfbf5e92c4cbf2258ea6e63f46b5",
4
4
  "name": "SchnorrSingleKeyAccount",
5
5
  "functions": [
6
6
  {
@@ -1909,9 +1909,9 @@
1909
1909
  }
1910
1910
  }
1911
1911
  },
1912
- "bytecode": "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PZ0Vdz2dFXc9nRV3PZ0Vdz2dFXc9nRV3PZ0Vdz2dFXc9nRV3vSo6ZXVW3PV0Vtz1dFbc9XRW3PV0Vtz1dFbc9XRW3PV0Vtz1dFbc9XRW3PV0Vtz1dFbc9XRW3PV0Vtz1dFbc9XRW3PV0Vtz1dFbc9XRW3PV0Vtz1dFbc9XRW3PV0Vtz1dFbc9XRW3PVO1Smrs5Sud7pOWZ01cj2dNXI9nTVyvXo6ZXXWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPV01sj1dNbI9XTWyPXa65TVWSPX01kj19NZI9fTWSPX01kj19NZI9fTWSPX01kj19NZI9e7Rqeszvq3ns76t57O+reezvq3ns76t57O+reezvq3ns76t57O+reezvq3ns76t57O+reezvq3ns76t57O+reezvq3ns76t57O+reezvq3ns76t57O+rdehk5ZnfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvvRydsjrr33o66996Ouvfejrr33o66996Ouvfejrr33o66996Ouvfejrr33o66996Ouvfejrr33o66996Ouvfejrr33o66996Ouvfejrr33o66996Ouvfejrr33o66996Ouvfejrr33o66996Ouvfejrr33o66996Ouvfejrr33ov6JTVWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9YTrX/bOrlvesaQlmkpWRN6bvTuaNa8RctLW13Wuk3bdpe379Dxiis7db6qy9XXdL2223Xdr+/RM7lX7xtSbuyT2jctvV//jMysAQMHDR5y09Cbh90yPH5rPDt+W3xE/Pb4yPgd8VHxO+N3xe+Oj47fEx8Tvzc+Nj4uPj6eE58Qnxif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",
1913
- "debug_symbols": "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kldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTVkLwakldD8mpIXg3JqyF5NSSvhuTV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ESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLEHymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK/5lLzus1yUm/I81xFn6ZRBeZ7r0Fkmf1uUPeVIS7JGWpI10pJ8zr0+StKKtMd5nEdJWpFWpDVpTVqT1qQ1aU1ak9akNWk9ac+510e5KDelUTplUIoyKYuStEXaIm2RtkhbpC3SFmmLtEXaIm2TtknbpG3SNmmbtE3aJm2Ttkkz0ow0I81IM9KMNCPNSDPSjDQnzacDnpLXR0nagyV9lkEpynva/Uv2s6yjfPxYT3mw5CoX5aY0Sj9KnWWc5T9+/un//eFvf/rDv/35j//z0z/93/2P//m/f/n3v//pr395/vHv/99/X//n3/72pz//+U//9a///be//vsf/+N///bHf/3zX//9+H8/3Y7/HE+gf176ea9/uf/j9eu/2s9/+s/7fm/uZ/r/5eef7Pj/2T+v6vufHv/8ft5xdRx/XOcf++d9O3/eZsn0n7Ovf1G3n2sf/9+JvP+MH38V81fbf959/JX4q/zZzh/M46+Ou6L9c+7rjtzvVp2LFOvm/X4ff9Ussn7eOg+YTfD1sz/+7le78I9//Ms//n8=",
1914
- "verification_key": "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"
1912
+ "bytecode": "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01lx19NZcdfTWXHX01lx19NZcdfTWXHX01lx19NZcdfTWXHXq6JTVmfFXU9nxV1PZ8VdT2fFXU9nxV1PZ8VdT2fFXU9nxV1PZ8VdT2fFXU9nxV1PZ8VdT2fFXU9nxV1PZ8VdT2fFXU9nxV1PZ8VdT2fFXU9nxV1PZ8VdT2fFXU9nxV1PZ8VdT2fFXe9UnbI6S+l6p+uU1Vkj19NZI9fTWSPXq6dTVmeNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXE9njVxPZ41cT2eNXK+9TlmdNXI9nTVyPZ01cj2dNXI9nTVyPZ01cj2dNXI9nTVyPZ01cr1rdMrqrH/r6ax/6+msf+vprH/r6ax/6+msf+vprH/r6ax/6+msf+vprH/r6ax/6+msf+vprH/r6ax/6+msf+vprH/r6ax/6+msf+vprH/r6ax/6+msf+tl6JTVWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/W01n/1tNZ/9bTWf/Wy9Epq7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+raez/q2ns/6tp7P+rfeCTlmd9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz2d9W89nfVvPZ31bz3R+retk/umZwxpmZaSNcHd6N3RrHmLlpe2uqx1m7btLm/foeMVV3bqfFWXq6/pem2367pf36Nncq/eN6Tc2Ce1b1p6v/4ZmVkDBg4aPOSmoTcPu2V4/NZ4dvy2+Ij47fGR8Tvio+J3xu+K3x0fHb8nPiZ+b3xsfFx8fDwnPiE+MT4p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",
1913
+ "debug_symbols": "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yasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/JqSF4NyasheTUkr4bk1ZC8GpJXQ/Jq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EsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEiSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppPyes+y0W5Kc9zHXGWThmU57kOnWXyt0XZU460JGukJVkjLcnn3OujJK1Ie5zHeZSkFWlFWpPWpDVpTVqT1qQ1aU1ak9aT9px7fZSLclMapVMGpSiTsihJW6Qt0hZpi7RF2iJtkbZIW6Qt0jZpm7RN2iZtk7ZJ26Rt0jZpmzQjzUgz0ow0I81IM9KMNCPNSHPSfDrgKXl9lKQ9WNJnGZSivKfdv2Q/yzrKx4/1lAdLrnJRbkqj9KPUWcZZ/uPnn/7fH/72pz/825//+D8//dP/3f/4n//7l3//+5/++pfnH//+//339X/+7W9/+vOf//Rf//rff/vrv//xP/73b3/81z//9d+P//fT7fjP8QT656Wf9/qX+z9ev/6r/fyn/7zv9+Z+pv9ffv7Jjv+f/fOqvv/p8c/v5x1Xx/HHdf6xf9638+dtlkz/Ofv6F3X7ufbx/53I+8/48Vcxf7X9593HX4m/yp/t/ME8/uq4K9o/577uyP1u1blIsW7e7/fxV80i6+et84DZBF8/++PvfrUL//jHv/zj/wc=",
1914
+ "verification_key": "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"
1915
1915
  },
1916
1916
  {
1917
1917
  "name": "verify_private_authwit",
@@ -3731,9 +3731,9 @@
3731
3731
  }
3732
3732
  }
3733
3733
  },
3734
- "bytecode": "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W8Xpf6s4/W8Vp/+t4vS/VfkcWk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Y9y6Hl9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1v1XYOLaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6t+4NBy+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63ujKHltP/VnP632pO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63mtP/VnP632pO/1vN6X+rOf1vNaf/reb0v9UdOLSc/rea0/9Wc/rfak7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63mtP/VnP632pO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5/W81p/+tHsKh5fS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63mtP/VnP632pO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9b3UOh5bT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63mtP/VnP632pO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5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",
3735
- "debug_symbols": "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",
3736
- "verification_key": "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"
3734
+ "bytecode": "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bxWn/63i9L9VnP63itP/VuVzaDn9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1v1LIeW0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/Vds5tJz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/636gUPL6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63mtP/VnP632pO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rf6socWk7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63mtP/VnP632pO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Z34NBy+t9qTv9bzel/qzn9bzWn/63m9L/VnP63mtP/VnP632pO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63egiHltP/VnP632pO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m9L/VnP63mtP/VnP632pO/1vN6X+rOf1vNaf/reb0v9U5HFpO/1vN6X+rOf1vNaf/reb0v9Wc/rea0/9Wc/rfak7/W83pf6s5/W81p/+t5vS/1Zz+t5rT/1Zz+t9qTv9bzel/qzn9bzWn/63m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",
3735
+ "debug_symbols": "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",
3736
+ "verification_key": "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"
3737
3737
  },
3738
3738
  {
3739
3739
  "name": "process_message",
@@ -3893,14 +3893,9 @@
3893
3893
  "error_kind": "string",
3894
3894
  "string": "Input length must be a multiple of 32"
3895
3895
  },
3896
- "5417577161503694006": {
3897
- "error_kind": "fmtstring",
3898
- "length": 56,
3899
- "item_types": [
3900
- {
3901
- "kind": "field"
3902
- }
3903
- ]
3896
+ "9530675838293881722": {
3897
+ "error_kind": "string",
3898
+ "string": "Writer did not write all data"
3904
3899
  },
3905
3900
  "9791669845391776238": {
3906
3901
  "error_kind": "string",
@@ -3979,8 +3974,8 @@
3979
3974
  }
3980
3975
  }
3981
3976
  },
3982
- "bytecode": "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",
3983
- "debug_symbols": "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28A2sA1sA9vENrFNbBPbxDaxTWwT28Q2sQW2wBbYAltgC2yBLbAFtti2XD9Z2MAOCqiggQ4OcILYGraGrWFr2Bq2hq1ha9gatoatY+vYOraOrWPr2Dq2jq1j69gEm2ATbGSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYmSJkSVGlhhZYkeWWKKCBqZtJA4wbTMxNh5ZcuCyracGeq4NLUxbJCpo4LKtxdo914YWLtt6U1jPtaEnZpacmLbcoMySE5dtzbn3XBtauGwzG5lZcuIAly2yvZklB2aWnNjADgqooIEODhDbxBbYAltgC2yBLbAFtsAW2GLbcm1oYQM7KGDWbYlZYX1Cud6zr5d79VzvWdhBAbO9lmiggwOcYNrWUZLrPQsb2EEBFbzb5JZbsfKhcIATjI0rHwob2EEBFcQm2CRtuftkgrFR05Y7ShuYtpEooIJpm4kODnDZcnQ813ueuPKhsIEdFFBBAx0cIDbD5tgcm2NzbI7NsXna8pDztGniBGNjvsT/xAZ2UEAFDXQQ28A2sE1sE9vENrFNbBPbxDaxTWwTW2ALbIEtsAW2wBbYAltgi23L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"
3977
+ "bytecode": "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",
3978
+ "debug_symbols": "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"
3984
3979
  },
3985
3980
  {
3986
3981
  "name": "sync_state",
@@ -4047,14 +4042,9 @@
4047
4042
  "error_kind": "string",
4048
4043
  "string": "Input length must be a multiple of 32"
4049
4044
  },
4050
- "5417577161503694006": {
4051
- "error_kind": "fmtstring",
4052
- "length": 56,
4053
- "item_types": [
4054
- {
4055
- "kind": "field"
4056
- }
4057
- ]
4045
+ "9530675838293881722": {
4046
+ "error_kind": "string",
4047
+ "string": "Writer did not write all data"
4058
4048
  },
4059
4049
  "9791669845391776238": {
4060
4050
  "error_kind": "string",
@@ -4150,8 +4140,8 @@
4150
4140
  }
4151
4141
  }
4152
4142
  },
4153
- "bytecode": "H4sIAAAAAAAA/+19eWBdR3mv734l3X2zZEm2LMn77sSJ48SJ9yXYTuJFdrwkUWLFli1rVyzZWWpCKKUN2InTR166kcUxJSGvkEehj9dHKbSPwi0UaAMBWqALhBIIj6WU0vLk+N5z55yZ7zsz53zHGiHlL8Xnzm9mvvm2+eabbwKPnftvfzgw0n3PnQOD7YMdU86def+6/s6urs4j69u7us5POXv28bNnP9k0Bf/Pd3b0v3OPMUBfa9x/5rn1Pd0Dg4+fubChs7/jnkH/mee3dg92HOnof2bPVcvtMa3tfUrtf+0ha/spav0/dObZSyQ4V2PgXNzZ0dU+2Hlfh9pIpkzhEfyqCC9cGsvh9sH29T29I8aUHmLHxIBfHvkW1yN/iGDkz+4a7Ok99xgwUssarX9uU2dH1+FR2B8PvHLhM49+6JMXB59/7rfTr8afrFlY/dAjj/yg/vsN//2NR56xNtxgDOvpPSttRxW2Nt9o9HvjHwf2H/2jn/fUbH74pZOvfmXHULyh/RMz3vHc/k+dm/HanW+3NtxkNPzObz31UPKlx/6gaUHxJ+HN7/7enT/aGlr5avH+uj9/6y9ee+Nxa8PNRsMv7P/F119OPn5q+NGPnl45N9v+wuOv/PC7f/mZDyR/9M0X+15ZYW24xaUYbVVrn7K2v5lpf83VCsxfav8Wtfbc+LeptedYbLtB+DPPXvz62keLS//xF9Xv3N7+tuGrfvOLe18/Vfv8rH8+9mLDC2lrwx1Gw28Nrj83OPXENa9HP/fosvfWN/7Dj59/+ds/HelY+b1vf+fDM39kbXhLuWHt8jnX9b7n87mvzW3+6pqPv7D4fN2PW2/42ke2vPeNn3/6ZwJS3aqwVPMW3cMt1W0K7T/3gc6itf1OY8bA2pT/sDbcpcZjAWv73U4VbKn9HrX2HI+0qbUPWtvvtSFc+b+QteE+pqHv4eaB/1b1qG/7J9666OVY9SdeW/v769YXP/O2d85IvvD71oa3lxvOv6Hqjefe+eAjU77x/L++66fzP7ZmUXr62vTiLz31d/Xd/Qfq3rA23K821QZr+wOM4l2mvlIHJSnFNTyk1C+nRe6Q7JdreKcavbgVvkutfZW1fbuSoWuyNr9bqflSa/N7lJovszY/rDb5Ndb2HUrdr7U2v1dy0bmGR5T63WRtflSp+W5r806l5u3W5seUmt9jbX5cqflha/MupeYd1uYnlJrfa23erdT8iLV5j1Lzo9bmvUrNO63N+5Sad1mb9ys1P2FtPqDUvNvafFCpeY+1+ZBS815r8/skJb3P2vCkUr/91ubDSs0HrM1HlJoPWpufUmo+ZG1+Wqn5fdbm9ys1H7E2f0Cp+Wlr8weVmj9wYWfH4FB/d2mnXKxNn3n/pp7+js4j3Zf+4YmPDA12dnUOjmzuGNxz+a/R3gY7hge/NmXqmRe3d5zo6R9Ze/hwf8fAALuxhb74wS8B8EsQ/BICv4TBLxHwSxT8UgV+qQa/1IBfYuCXOPglAX5Jgl9S4Jc0+CUDfsmCX3Lglzz4pQB+mXqJsS7s6jzR29VxWXeNt/8zuXa2P7nmaiXMZ/csW74S/1f7kZ49y4ezapXUxq08QJ0SwKkzz2zvuY8Jhk2rRDc56Ho1b3nmaOi2s7u9f2S00S29TxjAz4wy2+U1KffE9PDi1u7DlyNvls6nqYaZzJ1XujC65+fst1KjgR3ac6OBw/4O8ddaqLsGvruGSncCSMNNJQY8SQ14ghpwUPsp91MD9lIDDlADdlMDtlMDDlMDjlADdmo/wq6Jt8r3ay96x6gBe7RXsIPaLwqdxr5Y8dgmnL7pHQeMY3EF6yruqqxba3QDOrV13jm1dZXuHXnC8vRke2JjFi+VYhYbOu4eOrKt58jZs+et281Sww1n3relo713bX9/+whD8vom4Pe7xb9vmHKe25KNboLOPHf5h+dEH5vE20Vrk8sbtinmCX64NMFNHYP3HN3dfuRIx+HRaQ6cPXsOGPd6C56Vx+qRzVeD6hGi8uarAebTeiI+FXBPPcA9HywRd1tP++H17b0DQ12jcgpFK6YBDOF7TLDmy4DV9T0OR0OgBQX+fcvj6hEKbsWnqxF9hpWbZpRHM8X6pYmlnOXbTHZpLN+ajYMrMXdNsXLXFHY25dDm1BIs/5spyP67yfqtkR3zKLYlWlDBKBH9xcsjfvN/buk9z+rB7UNdwqaNHG4DJBMyI7D+pJ79tQkMDsoo2x7OxE1DFphQAWXHoQLi5tyo1m0G6raR77aRnbdlGaaz3wDIGR/YNqpwdh9t797YN9TeNQCiTz9z4eahE71b72VVw2f/lGeM6WVCHIT6nM5PY3qFes9e6ubcZz965tlLOhuKotH4afUI9RoQJlZc0LXqTNwIM3EDERM34rRyaUfWKK0+M2/O/DDfAMgmlImnm2wZx8RNn/1rnjFm2DLxDH4aMzgm/jTGOjKB9ZO8TMNcOUM150mZK2fAXDmdiCtnoMoB9kBm8IvIfAUD6018d02IwmiyjVk4BRykBjxGDdhFDTisPWAvNeAANWA3NWA7NWCf9pKiMQ0lbJ8urD1CDdijPWuTT7lz4qmHB6gB76YGfBCMiAh8sCZ3Wz0JH6wJ9sFmEPlgTahvy815plq3aajbmXy3M9l5c2Ek5hsA2YLuDGayYPzOoKXom8rzRbPt1qCZn0ezdWtQ9GW4DW4TuxGjYWIs8tWEsLHLJZVg45kwGzcRsfFMnFbWbptVb5CpLD8zb8sytLDfAMhWlI2bWTCejVuLvjk8Z7TYsnELP48Wno2bMeaR2eJOAcPDAr5sUVoj3w/V+bIF5stmIr5sQfUDN+dWtTm/ATIR320rO2/LMsxivwGQs1G+bGXBeL6cXfSt4PlyloQ4zOJnMovnzKUY+8hw5p3YWsgA9PEAs5QAhq2LMhuRjTlq7LlMXTbmwLIxm0g25vBLOxsM/8xlh8Zx0txyu6NQZ3P5zuYixnSu7c7EKWAXNWA7NeAxasA+asBOasBeasB+7dnmOBmgve1wOsZh+jG2Uo/xJDXgiPYK4gHtlSy5PA9ov8oPas82vfqqB6+mTM42gxNP24xor230d+kmDamWy0IuzSf0nbLx56wJ5N94N2nupGIOEi6Yq7Zjv1E9XDAXDhfMIQoXCCg1BwwXzGOHxlFxnm24YB7f2TxkWebZ2hangF3UgO3aT7mXGnCAGnBE+0V5YHKV9VvlB7Vnm+PUgIPa68Nh7RdlQPtF0V8fHteeD/u1X+UB7UWPnA9PUgN2aj9l/R3OEe19G/1XWWOH0/hz1sTzv3onvRv97J7+wtep/QiH6dVDK/UYT2m/LCfpjb0lbtZKF0V0UMwNiSK2ehdFbGUoZe12nlq3TUoLxMzbsgzz2W8A5AI0IW8eC8Yn5C0o+ufxfMF0CybkzednMr9CwFJCnr+Vy3j24OioFaHgXISRFRc1oM7I82BGnkvEyPNQWsH8hC97q7NlxyGtrOCBEm9lf8adBcCsMF9tNZLqrDAfZoV5RKwwH6eVtdsFat0mQAXEd7uAnbdlGRay3wDIRahOW8CC8TptUdG/keeMhWVKgMnvC/l5LOQ12hpepmC2WuD5nYoFMFvNJ2KrBbjIW7tdSHSnQrgczLwty7CI/QZALkbZaiELxrPV4qJ/J89WiyRM5SJ+Jot4xtrO6ccFEpIiFD4pfbzgV74/C4csQARVkWlD6oK6EBbUBUSCuhClFSwvC1G2nu+MrX8VIK0MK2O6cCuCMezCK94fIgYyV1W28gCLlABW8QCLlQC28wBLlAA28gBLlQB28QDLlAA28wDLlQD28QBXKQHs4AGuVgLYwAOsUALYZlVO1yCq+lo1bblDXVVfC6vqa4hU9bW81F4DquqV7NA4iV7Jii/Q3Uq+u5WIklhpG5R1CniaGrCTGrCPGrCXGvA4NWA7NWA/NWAXNeCw9oDkjN2t76Iw7oPurE0uzSMTT5pPaS98+i9Kj/b65rT2RqBdexrqz4d92q9y56S2cQ34AL2pX0wPuYQecqnOkKVvHfRjXDYuFqdlXIxyOT1k7ThgoavoIa8eF+t99bhgdK3Vb+nb0XHA5lfrO8ZxREUPGHzFuFAWV1EvzoPa+5IntA/JkG9ByDdJ5CFgrurcteUvghOYle4Sh8rAyAnMSvgE5lqiExgBpa5lKGXt9jq1buNQt9fx3V7HztuyDKvYbwDk9WhWy3UsGJ/Vcn0x0MrzxaoyJcBkqVX8PFZVyFfKaQnMwJhH5mRwoZUg1yF8uUptjRaq8+UqmC+vI+LLVSIGMQhrocb17NC4Vby+3O4IyDp8Z9cj6sL4NkgNeIoacIAa8Dg1YDs1YK/2NDxNDdhJDdin/aLoz4f91IBd1IDD2gOSM3a39otCzocnqAFPam9G+7VflBEyQOPPWdpP+gFqwLupAR+kX5aVE89h6tbeAxvUXifq78V2c3nazAMGYJ42/oABlqc9i3+mgSw24+BBSCQ2M8u72MwscA9sCpEIIhnGn7XOYhlwcOQkNeAgNeAxasAuasBh7QF7qQEHqAG7qQHbqQGHtBc98lU+TQ3YSQ04or1yaNde9AYnF8U1YL/2JoD3+Jgj3Dqis7g6kx/j7thkJ3Y4IgPQxgNcrwRwi9VNuwFxWler+Y0Pqzutq2Gn9QYip3U1v9w3gE7rjezQOFZgvoJXum7ku7sR4a4bbVWgU8DT1ICd1IB91IC91IDHqQHbqQGHqAFPar8o+jP2CDVgl/Z8SK6+BicXxTVgv/ZTHtYekFw5dOu7KMafi7Rnbf2dkb5J38E14KTvMOk7TPoOk77DpO+gve/gFQ31Z+xT2tNwRPtF6dFe9E5PPBOgv29DPuU+7Ve5c1LbuAZ8gH7HXEsPuZIeciE95CrqxemgBjxKP+kl9JAt9JBX0UNeP7k4RJCL6SGX0kMuGxe09ED5rtBXrXmpza+amPK9fBxMu2VceBhLxoVaWzIuaLlqXEz8ap1ZvfTtyLhQvkt0NmNervdSnVnIS1ouGQcW/EHtt/MntD92JI8CkcepyDPduMo1q8tfBImmN6rletZYBlsGNoZq9MT0ACaariZKNBVQanWFUhZq3MQOjaPiTeV2YJ2Xm/jObkKWZRJwElAzQGvqPmPD5hMpo/nsz7hMb1gd3aSmEVrV1dFNsDq6kUgd3YTSykKNNezQODoyX8FQyxq+uzXI0hjfTlIDDlIDHqMG7KIGHNYesJcacIAasJsasJ0acIgasFN7WR7Rng/JadinPR8OaK+xR7TX2Porh5Pai95p7WV5AvJhv/auCH9pmNmL1xHtc+rYn3Fbf3jnsUbN+X9cfeexBt553ES081iD0spCjbXs0Dg6Ml/BgPtavru1yNKstbVjTgFPUwN2UgP2UQP2UgMepwZspwYcogY8qf2i6M/YI9SAXdrzIbn6GpxcFNeA/dpPeVh7QHLl0K3vohh/LtKetfV3Rvomnu/Qqb0zMqK9d6M/Y0/6DhPBd5jcWExuLCZ92Ekfdrz5sF7RUH/GPqU9DUe0X5Qe7UXv9MQzAfqbUfIp92m/yp2T2sY14AP0kZta6jF20I9xJfUYj9KPceE4oOMKesgWesir6CGvHwcMtGRcLE6tztLtgTAaf67SV74nOk8upodcSg+5bKLK94pxYBkX6mzGxpV8Lx8H024ZF0ZsybhQa0vGBS1XjYuJX60zq5e+HRkXyneJzmbMy/VeqjMLeUnLJePAgj+ofYDphPZnruRxSfLIKXkOMFeLwHgz1n0KfrVlsGVgY6hGT0wPYAr+9d6l4DNv6Cqm4JfaHaRelknASUBHgNzldVia16oJ1EJ1aV4LS/MaImkWUGoNKM3r2KFxVFwn4Tyt47tbhyzMOltT5RRwmBrwGDXgIDXgaWrALmrAk9qP8Dg1YDs14APUgHdTAz6oPQ0HtJflEe0lZVj7VT6hvfoiZ5t+7RelU/sRDmnPNr3aew6dE08ftmsvy/qbgGHt+bCbflG4iAq8I12ntilsVN+RroN3pGuJdqTr0L27hRrr2aFxVGS+gmfn6/nu1iMLs95WazsFHKQGPEYN2EUNOKw9YC814AA1YDc1YDs14JD2oke+yqepATupAUe0Vw7t2o/wtPYjHNCebchXuV97m8JXCWMi53VEDmQd+zMujA+7kOvVvLi3q7uQ62EXch2RC7kepZWFGhvYoXF0ZL6CqTAb+O42IEuzwVY6nQKepgbspAbsowbspQY8Tg3YTg04RA14UvtF0Z+xR6gBu7Tnwy7tV7lLe409ov0q92u/KMPaA5Jrm259F8X4c5H2rK2/d9M36Yy4Bpx0RiadkUlnZNIZmXRGJp4z4hUN9WfsU9rTUH9t06O96OlvpPR32vXnwz7tV7lzUtu4BnyAfgteSw+5kh5yIT3kKurF6aAGPEo/6SX0kC3jYpSrxsUorxoHLOTBei+mh1xKD7lsXNDSA32+Ql9N6aWBGA/C6IEOWj4xddDKcbE4S8fFKFdOVPt9tc6sXvp2ZFwo3yU6mzEv13upzizkJS3Hgzv9oPYRghPaH42SB5bIQ1/k6X1cAaCW8hdBdu1CtQTXuGWwZWBjqEZPTA9gdm0LUXbtQp5SLQylrN0uUus2BnW7iO92ETtvyzIsljBhSz+wrWNgYPfR9u6NfUPtXQMg+uIzF24eOtG79V6mg6XF6GKeLxaXKQHWplnMz2NxhXzPXurnXDE6D2Oep/estKXjHmwlZACO8xSFGXup2iLXqjP2UpixFxMx9lJ0ZSzUWMYOjWODZRLct4zvbhmicYxvA2SADGdoO8bSt0H6STdqP+l2asB+asBhasBu7Wk4Qg14PzXgEDVgl/aL0ksNeFz7KT9ADXg3NeCDVpu5EPEg1NxE3zfUPYhFsAexkMiDEPioCxHXWM1r8v2DguOylJ037LqAhn8F6hovNa025xqvKEZ7UdM70xmrlZ1jzjVdROeaBkld00XeuaaLHLumdjsUp/LuAaD1pizDePOUpAHubZ6JWjD3yOyZvskDLFMC+AMeYIUSgGDfuFIJ4CM8wColgA9jl4plAM7wABuUAA7xABuVAObyAJuUAK7iATYrAXyHB9iiBLCFB9iqBPBRHuBmJYBzPMBblADW8wDblAB+wgNsVwJ4nAfYoQTwBg9wixKAwJ7dpmZSmniEXWoIAUjR7uQV7W1sLxazdGvFdCqb2J2wib2VyMQKZnMrYjZ2spOWh9wpC8mt2k6iVbtNNE+mF8uqmQfFD9lu86BMA7sNmHOiXkU9xpP0Y1xKPcZ76Me4jB5yBT3kSnrIWnrIJfSQq+gh148LyOX0kBvoITfSQ26ih9xMD7mFWrXdTz/GrdRjHKIf4830kG/R2ZBdrHj/5JDb6SF30EPOHBeQt/A+a+1zmzo7ug6POqs/Hnjlwmce/dAnLw4+/9xvp1+NP1mzsPqhRx75Qf33G/77G488yzddoubu7nUd+MtgsRsphDSPsNwgwI1/HNh/9I9+3lOz+eGXTr76lR1D8Yb2T8x4x3P7P3Vuxmt3/jrf9Cq14PAUQeTI6Fx53CvVZj4DCxpJDV+wU14vOXw/Fi+SGn5UEDAqd976d38S+bc/fHfwg19+o+fkT+Y//lebH/3T99/wWHHRjb+26x9/+/vbsVCRZJIPEityusXfooaQwKJFUgjVWLhICiGMhXukECJYvEcy+QgJ+Eie0fARH4OPv/NbTz2UfOmxP2haUPxJePO7v3fnj7aGVr5avL/uz9/6i9feOC+I9ciIQP3Psz2CcIHR9Av7f/H1l5OPnxp+9KOnV87Ntr/w+Cs//O5ffuYDyR9988W+V65xHR+q4RF2y4muSGntUes8axwK/Rt3WMDEj6ZB5s5/sXzOxUaedrMg/PmWv5i80+j3P6wREx9yGOVXm12deqTMD0fKfESRMj/vIvjAw6gAOzTOfQjYnmYH+M4CiD8SqBw+EwO2UwMOUQN2UQMOUAMepwbs1X7K3ROPDzupAU9SA45oz4fkNOzTng/JRW9Qe7Yh19jDvPmFnZGgmj/gV3dGgrAzEiByRoIopd6/aZRQnUe617d3dT3xwaHBzq7OwZFLbuL69t6Boa5RGr64veNET//IKEj/qCPIOivv29LR3ru2v799hKFn0PfYmQu7Ok/0dnUwB7nLzjx3+Yfnyh8vO8C+x0H8qdYvpTFvBP59y+NmaPH/mYjKr3hYjehtVm5qK49mivXLXpZylm/72KWxfLu9jHivmLumWLlrCjubZy+t67li7dQSLP8bbqBBdsyWbyF2zKPYFte9glEi+ouXR/zm/9zSe54V3+1DXcKmIQ43CMmEzAgmpZ2Vdng5g7zODLGEdbTTca+RXipppA0ddw8d2dZz5OzZ84D4bxCrI38tpC4g9XVeoL5WcuqL/VgLKBexxkN2w7IMBds5X2WDPsn5k3Zu0s5NFDtn/YkpqoTzgt+IRZ559uLX1z5aXPqPv6h+5/b2tw1f9Ztf3Pv6qdrnZ/3zsRcbXsiUI3pVR7lIYpBVQYCAhsyRRPG8+VhiqJj4qdFzl1mQ/7gkyOuGuo7v7Bjs7+wYjYn3HBk4e1Zd3rYD/75DSt7E7oYfUboBz5VuAFa6fiKlK9iG+SmUrk+sdANeK90dXird0JVQuj5E6foplW7IidINIEo3iCldlq3tlK7frHRNboi8npQYwaSLNeliTbpYE8XFgkdw4fIVQKGu8AtcmkCx6knXKmLUW9vd39577jGhLph0RCYdkUlHZKI4Ioj2Muc0eBx8YgaAbDO/Nbj+3ODUE9e8Hv3co8veW9/4Dz9+/uVv/3SkY+X3vv2dD8/8sWsN1WZsF1+m2KgaETUGRLRNrfoTo9+PmDXOVxaVVE5be1fn4fbBjrXdh98k3sbuvqGOoY7DO3oGOwZG/3HjfR3dg452r5uAf9+ssHu9MLqFHuoHz+Pjz+wautu6dTeiqUCjhOiavNEIpWiiWPWnhmgvQ9ktbuXrBGLvkp7buyRs7xJE9i7J27sEhb0Liu1dclzbu/SVsHdBxN4lKO1d2om9SyL2LoXZO0ZhJu3sXcJs74JsF1bcJCQTMiOw/iQBedHgThaIRcZN4sSppGCx6hWD+ldjI43b02p0hcX7DX59YGWmyNp71ZVZGlZmKSJlluaVWYpCmSXFyizdpqLM2hSUGcM80JeAA4XGM2KyWPWG4W18k/NyGOGaoWBBkohzN4P9GdJfA1F/DezPuNhBqd0B65cw+CXCTsXyLQqemlaVvxy0fqlmh2r5VgPixSp4pdWr/nvrb2pd+OQWqDoXUMAy1iOyuoVjjGlMQ36Na1kM7mtdBRbUovVc6GVahcK82NQXq180xOY/uNHWS4iNYP71cmJTb12desrNVz3C39MpO5peYW6ARDNFLGL8uYcjexPTlLOpM9nfoX4C08dMwE9ogmyXlWLTKpMsy2kNNN0U4EswvC+qAZYqVr/dAE9A4NP4Tdcydj7QEqDVyZrwkc0sVmeYjRfQRRO/ytNst4P4uKaxQxSOq2CM61pM19RyH2eyegUYXDM/o5kStG5B58QgNAvm1FKsbkDm1MQKOKKupkODmw4wZzPjkQiGNb1YPdMY1ioFQZ9ma0BaUCo3c7OczjRVGEizLS/i69bMDk+4bnOZdcNM2zSRaWM1nmXCzRLOVDMyYdyZaraqumZK49CMeEUtlB212FqhVhGflRodhhrNkpXlVgFPzCpWX8vwBMSrgES24hI5qvxW2UvkLCcSOZtvNIsdF6JLZ3MmtpX9HWqvGX3dCtjrmeyvMXud4u31OtCkAguQqnAHT/5pxepOAxqsUJIyrLUBxcwFGo8Nz+Gj2mpvqaehLrsjS50y8ZeIWbcjVi3l1lK3ojZkmlfSvUvO+2jG5gTasGZneqG5WL3PXi+04BEWaWXSgumFZlZ/yA+k1ZYX8XVrNVkF0brdKWmpU6ilbuFjqqWBH7J+SbMenOVbhnXgLN+yrNtj+ZZjec3yLc+ymuVbwcSYJQ32N+rK8SLmDo0qoi4D/GE117xVQuBnOROO0bXvsxeO2U6M5hy+0WxMOBiLOkdhIPbCMUdWOGYLCDSnWD1M4sbO5kPT067EqUszcurSwp+6gApK4txlmkGo1ci5S0UIHFlj+Ghmmr1nIxGJaBJHIn7DAP9DemsNWbaZtpbtXR5ZtlbUsqFbslalfa2d8LbKeiQiy9ZarH6CyLIha16PrTkYd2ixX/Nl4m317xhTus0sZgHTdErapvRNMXeuEt7aDe5SQ0rM48CXMu2UuOWZxXIfuN1wwHLNsiyXEsvk8xjL1bM0EYSOGfCKwpGf3TRQUU4TQde4kImAyilsrSr7KZ/C1np/CluLalK35j2tYA9N7iJ3aMJ8g4KeslHmenHo82MixjaOlRwdDJVZ8o+R0z63JF6rzlbTYLaqJWIrwfrWImxVr9btGqXlYObNHZEx36ATD5StTNF4nq2aitWfRg7TQLaazs9jOs9WnwT3pgeQvWmK35tCB9dZ8CA8hwhrHsQr8Afhf4N5IaBzWXvBJj4lci1ri9V/a5ixo2B6wSE+vYAhMJxgkOYTDBgScykGDJHhJIMcn2TAkJlLM2AIXUk0EGWtVn/TdYYkdhMhCTKmQN+lPM/MTMH6Lkmk71JonovzZKaQOJkpNa4zMzNXIkYQQmIEScrMzIyTzMwUO2ZYV/OZmcwNqpRdtmHSnJkZYrtA8iiS+AmOYARImmdIKjMzZJ+ZmRQrsn83qA9W0Qvx2RRJ2w1TSi6FPSmOrPyn/flMSmjC4iaDJICuMTY6NVMUlFHcdsJp1M+Js5zCjytdrAmyxyQWfkgrMG0KTJFNw5mkggVmhg40y8jOWLTImWJNtf0iJ/mRpW1XIiPHemnxqBLsqER2Z31P70jJ7ggK68CWgTWnygmwyfMK9RSEVqTM9SksDzxkx10hkLsSZmq9bNQg6uoY7DDo9ZgDeoUeU6keEdL1EkvIu0ssITCX1WSWuI1UyrR8wF0ktDvTmn+otOZvdmMsuRPnSei0JXy48yRZOmrylhOtL50c1wUH0mPtS4/jW06MJ6t6y4l1gl3cchKMALNuVL50QuhL11zN3HKStaBMB0EPNVV68j7maHcpFU2VcnKFKQToqq0UuqpO3xuZ96nrqjpDWro90FVwTOB2JLdoP5JbdACJ4R5EcosOIblFd/AHG8afdwpvsNXc4nENFOTuf0ShxFEQSUOOSPZXTdRfNcLdQUTHJjz3BhOwjg0S6dgESitYvBI8HZOsXPDMGS7WfMnYZt6hsi9TrPp0jTqhw97vy8Iq+7IIOzSBgJTaHYE6i/CdRVCJK30bpAY8RQ04QA14nBqwXfspD2o/5WPaT7mfGnCIGrCPGrCLGnCEGrBXe7YZ0F70+rSnYTc14LD2i3JC+0U5qT0NyRVsp/Y01F/BdmqvviagOzeivedAtyjGn43aywr5svRoLysj2uubbu1p+AA14INcUI5J4QwqxD/CSG9B9meOQirysw4ChwquH0oKr1B7KCni4KGkFWoPJVWquCrkkObUYmDL1QNwOe9zSHNoDilX5IsZGnal5S1Qd3V8d3UIv9fZWnOngP3UgEPUgH3UgF3UgCPUgL3as80ANWC79mxDTsNu7Wl4QnsantKesY9PrrJrwJPa05Dc6nVqT0P9rV6n9jalXXv1Nag923TpuyjGn43aywr5svRoLysj2usb/T3EB6gB+fARkykXVNi95+TCRzlnAQH5WXsWPsotUwsf1TkIHy1TCx+J0rpiG8Yu5zBPlAOYl+zvSuc4ribqbzX7MzjHUTZuJyV4q/mb/oQdGWC7sZcT8gq55Uk5/kiCkMDNgK2VPwugLipdV72Ub84P6IBA7nLF2P5yinTdU+DdAKN2a+yg6rgT7LhFycaJLxvgd2KLEETZJClaW6ZnBDhCtLoRmdXlIZlM7Si4sOgt2IJpfKI17rQvfpyz5ztwVgUR3+UwvisUYyeU+K5HddwJlqwioiSMR+Fi/Rx7RGX5LoryXfKKZ54j/UWJ+jPTxmU+u7P7I9XI/ZEapLZkzPptf+XPqdZvByp/cmVjDsJkLQ8fuZViXP+u+z2aJ3vDLCWsLFDDYgAsUMOzQI2cfQYf36gR1k5gDC4vlDXF+KuGUL6LL51jGHS3XHeV+tkicosi5t0tilhlEeCLQYJbFMzXq4k2QznbmIJTwGFqwGPUgIPUgKepAbuoAU9qP8Lj1IDt1IAPUAPeTQ34oPY0HNBelke0l5Rh7Vf5hParfFJ7Gg5RA3ZqT8MR7X0bchr2TWrsCaCx6RbF+LNRe1khX5Ye7WVlRHt90z3xvOx76L1sa0zG9Cy6fDggIReTSWAFisLiknY5JLpSUAtwBNSjKwU4upIjiq4U0MWDM7cLaMZGgj4JJOssPgQ0yqLTpj1qTiwHfr9H/Pus/7zyUfNylaNmPyd4MQnBi6F0xgQvprB0xtPmW7BBJhTWNVohN6JvsgrazUDcxSFmWX6SFzkDsQ1L4CgoSJWByJ8eFlj5AhCniRCNP2/mMBlBBZ8jqEcxt+FvsQOY01HMDY6eIG5CqHkX9twv/Lo1Osqtjh8YT4qNVg13UBifqXpAzRyPhIUH1PG7DPBWJBmBs5oRzys7RWCrGSaymoKLbmHAfFBUz4uM6zqfVWNdOy9MWeezykmdzwg7ZvitDb7OJ5seZVfnM2yu82k647biRiCZkBmB9SemK6oydT6D9nU+RUonWIzfYF8zP8gXLg9XnApIoOUKl4tGFSnG19iXU4/Y1cwPiqF3GVp2vYIysq+ZH5WtIB8RjCtajG9GauZHFZj2zcFX/tdkIaGhixaYGTrQrEp2xqJFrirGt9svcpgfWdR2JarkWC8qHtVtntfMj8hXXK0QgqpmfnwXVng4aMddQZC7Qp7VzA8q1czHimCGPXeVwt4XwQyjaVSKtRnZ5RN3F5LPIaeqmb9R7LSFHNbMr1QRuNK5t0h/UaL+opL9eZJ9ivRXTdRftWR/QaL+TLm+ylu8Eu5h8Qav3/4x4zefaQJQd0GNWnARFTfCX0BOUr2AbP+60iwnoxc8lD6LnQjyxPxsJ6PfM6ajT7Kjt2j4WYi9m+25vZsN27tZRPZOSCyC0ECL2MrM9jo0sMnL0MDcKxEaaEFCA7MoQwNznYQGZrNjtnybw47Z6gcz6m+2nR88yxwaaGG7sOLOhmRCZgTWn5j0hAkMHOtss89+C6ZpWiQ8lBaR5ZDyUK58f9Db7gJlOUdNdPLqynIOrCxbiJTlHJRWFmrMZYfG0XEuq8qA7uby3c1FloaBTNFDpukhM/SQzfSQMXrIBD1klh4yRw9ZoIeso4ecRg9ZTw85nR6yiR5yJj1kKz1kkh6yih6yVmEX3uJVFOlixfESP52VcxJHyilMbZbtprcZjZ3PYtedDyU0F+NF5LSA2akD59lY+cwWz/eMLd6Xz2xBgz4WarSyQ+O4u1XCdDej3XkSI90k5u1mhzFSed6uqfA2lyXBzL6SJ8FxmI/Ns7Jd4zk8gF8J4G4eIKAEsEjliEHxBaZ71MUn5P0RQ0jliCHMDg2ufNGhcJ6B1VoO2yb4OgUcogbspAY8SQ04Qg3Yqz0N+7TnwwFqwEHt2aaLDJCxMsRjHNaecY5pzzj92uvsPn1Ze9zo7EHtNWK79mxDTsNu7Wl4XHvGPj7pO+invshpeFJ7E0DuipzSXh/qzza9E8/qdWo/5fsnNbZ+oqe/PqRbZeNPv/ZU1F+B6e/DntBemk9pv8oae9nGnwHtOZFca/dor2/0j9ANa78o+uubvgmkb7xSseS+w2ntR3hS+1Uml2Xy7dmQ9oBdV0z0fEwx+tJvD5T/OCRI2vFdqgSPpDJIndhzmTyBcpfuUxEOO0lFsAwnxI4MTFNgB3bN1fDA3p//+KENLb88qJCmYP+kMn590m11jbvN9xQCLEeZvgR5Kpa+hNjOS1le9fe5vsx6txIVmV442TBo7HBhyq/nMKzCyAP63hJSeQd8eFtQy4dpBiY6T5N9C6NOIOzTiomPsxl6cCEe8F6moGDQNERhRdifQZD2b1gsE0/mL+xvLgqKEUVshVFQbaieHRdCODC5uB6YJVNRaatglvXFxGeZWUJinDME0RBkJTGsMfrYbVWe9RUNoEIuOxoLqi9NZ6nCsVITS2/sgmw9ukWGnw/iB2QUHNzCv9HCkL7ySgt6ExhRISpaIudaS+RstcTfy2mJPJGWyLvSEiXcu8RT+SdHOiI/znTEdyV0RHJSR0jqCJWkeikdkWReEJusocZucZxflA5N1lBzeFE69KtZQ43doSjWUAuxXTivoSYYAVJDLSRVQy0E2ISgSZw4mxAqJo13tmqvdlVc6c2taeV/lyOMFEGUWVSNtdPqyiwKK7MIkTKL4tsJamUWTakos5ST22hhQJ1tpVBnqbFWZxFQnd2nrs5ShkB1y6uzsKw6s3yrYsds+cZUH9qPXHc6wL8hZ/zJ+SFMYbxDiCdzB39pz/jzTuHTxsn5rmOAU5CnjUOTDtU4d6i2e+lQpX+lHKo0tUOV8t6hSo2VQyVbi9SPLGQIUSaKxs3BuxApucMKN8okhcbELdRIs0PjNtBpVtSB7tJ8d2kkMJRm7RoAWYMft3hzhz8i1pU1fif3nP0KBxbhSrgBMg9o7M8kLqJKxMlbkDv8bGvxHf6QrtY35J31hQWmhh0ax92m2vvy54Kecbdhj4W8Haa9w49d5gZ5O4zydhDn7VFX9BDD29xymJzKcnXWo9BQqvka0D7b8dfI1YD2CV+HTt7D1IDmRj+N3R5AD0UIhDLmuVDGYKGsIRJKwZs1NRQusU8sCjGvXeL1XrrEV+SNep/aG/XOXeKEE5c4hrjEccwlZtnaziWuMbvEPrYLK24MkgmZEVh/UsP+WibG6ANijNUmcRLkDiXvR2KMzEir7WllcslrEUaKIcosrsba+9SVWRxWZjEiZRbnlVnMQ2UW36uizPY68ZZrwC9LHCg0ISM+UbbYybdzR6/M8oHl5Hw80X3IxqSe/RnSXwNRfw2IQPgriX5cGh4zYKha0G7QhT+IxDIbwND/bj7KCeFVVb6UVi81lVfHhhDKCitMxjgrUlyQk7CjRIUaSE5IvcI5c1KOG5NIUTX300oiDJWi7ChVoR9AooxISxp/8m8AMqGEDGeqMuzvUPPL9JEBzG8aMglWivkYJikpr/eDHi5gohlds1SgGWPFqd81wD8Au8/cXmYpOx9oCdDdWBofWaaY/KD9SztpxBZucTauGDtE4bg+jGQ/xUxenOVjhlUAwOAEL1dmJGidQ+fEIGQFc8oVkx9D5pRmBRxRV2Bx5BTAnFnG0AuGlSom/8w+OyuDu0PSyXwmGllnycTBcwoDydryIr5uWXZ4wnX7v1jEwmTOBDaI1XjwA6YNCqyalfNRslZVl6U0DlnEDclRdpSztUJ5EZ+VGh2GGhVkZTkv4IlCMfkKwxMQrwISmcclclT5vWovkQUnEtmG5rvnMV3axpnYPPs7WXudB+x1xoW9/pa6vTa4Q2itiwb0P8Nbh7K1NqCYuUDjseE5dFTJ1+wtdQzZ0Di01KYYopBZX0esms+tpc6jNiTmlXT/SM77yGJzAm1Y1pleyBaTP7PXCzl0TyuvTHKYXsiy+kN+IHlbXsTXLW+yCqJ1+6W9Vs4D1M/h1M8XU35HWtnnUivnOOrnWa2ssqJ21G+TvbFQEBCorZiqkvSTfKifVLC7VgmSaokwLJWqRKePgmGbQ0jYJs2HbYw/k8g1xxQSuokhCSIZJEUti6So5ZkADk8IfzE1zfXJE5YEFuMYlUnqAK9b+HlG9SPe4HT2Z0h/AaL+TPcPIUizRjH8E4ZfhMvRYlzhPKNg0AMVMUbmH/MwYu/g+HHMI/ZwMmUcVUZ+BT6abqvpFU4VXjIeyb176Mi2niOC94RLDTeIjxT89dD5JXAE4TsvOIJYyR1BsB/rgdNO6LXVKyyvGvU3g6i/GezPIGNGse02jd12D5Za7SJmuky8C/tfBvgajrJSapkPqNont8TkkkOCwiGnNtpv0YIAPZZJzCjG1JXg53RAPKabXet7zOjzu7qghJAF8UILiJAFJenKG2G/gDzBYupWaiMcxDyimARxYqiRwIiD9tdE1F+TnJPhXgOZxm6vgQ6BRtcuCiS6zhsvTn2fAX0Xpn9iCgc6flv9E5fTP37hkFMd9vpH7KxulZhPXKR9/Jj2GR3RMdepT5j2SWAmt5nI5DaPgclt9vgEHjwYT0goqARyARtXUAkJOQbr4CXsPQlRhDJRnNpngJ/GNCTqwPGGLi4jMzyp4nIqLy6pzuQM3agkPmxv6OLoQS9KHFudsVLYcOaZZ3b0mIteVdpeUjRgslrcnNgXZP8EGyXMjeJSjeKX9LhQQlbwyi15JfI643xeZ6nVLeq5m0mDL94mn7uZYMcFUi5ppVwJ+Q64Scq8QqbyDfCylriMgakkNSGjszBDqcleoRJJPW0okfeM0R3bpIvbsvUfdLi4kMLG8twSBqleGCNSxXUi1SFJUoGcmjZzaoD9Uxjx/hsD9SUY1cdJTbwiNdBZocgH9GE+YKaY+pBB2f/EDgjnEKVpzmF/pjB7UwaOkKx/zXNzRo2b1yI5GRx2ThVbOSyb4zM3mJGBIducZJHGeUuv/+w3k0/+lcIRYc42hio4EZ7DcIN1rAU1Iq4GKzflwSKNObBIYwEr0phXHZkKFZleBBk1xp/rnS0NBhmgh4w7g+SKSZoyvaDM4wNgTm0lQfoHmB6bTaTHZrvXY3GxHvuea7/1aiuRMogey6piK+sxQaobMzJQj2Ul9djia19d8pdfjB5zlqMnz7uzET2mqC2WIlUqIT2WBfVYHtNjOdWRqVCR6QVLQVxPlD6ZldBjziHjziA5PZZh5RbSY4eQMhMBRpMJNzs/NX7wQ5UdgKEooejVQfBmxIFyj+kQ4ggbsY/KhpeZnyWWwJApfclhhdLbRT4t01YUT0kXU/9lkOg/4AG/eQZVmTw7VnAj4TcogW03UvCvpDYeQeTKZUJqlUSmJW3sZ9IRzEbOI7KR89ifSV/JCrIAkPwYEcn0V80n8x8uncxv7hjcdbS9v+Pwro57+jsG4Tt5KfBLGvySUbuTN8q750GsKvBLAPwSB78kz8uMDB4ndpbSCrFFADmCE7BFq0nV6dPfXKL+5rI/g7QwxUmBaexIALyVKADeyv7M9qwg3eT4zG+PMEhe+JEB3YJNF13k+USLPH+yvzHpbwFRfwvGQEgXYFfH5hPddJ3P/uxK92evFG4Eu3WiFJLFwgUDei2uFOSnG4eP1UzFwqG7fgjiHvz2IHLpLqDQXUqOH9H+kkT9jen85O/MGiu0CxskfNEXQWyzuWkNM22KyHCn2J8h/aWJ+ktL9nel5zefqL/5iCPkVTWG+RLK9bDqZUc0yypTLJw3oI9gl6kmDtGJb+kaK2i/tuB7Zjkna5srFu43oO/D1xYjUAaZ1VaFhc/YRmSzaF1M+TAuYzssRM8jUXLFgyoHpdkLcCQ8T3QJow259Ge54PByKYyytmNg2fKVG0ZjKCO9g4+J7ya0wSGUwmPoDYWU8IbCeeAKRAqqwy7+fTYl/vdc6ryDQdk0wb8i2jFPpB3z7M+cJqcVhPvu9Dvsk9NS6H1S1AWwXjY3GXOZ2mzxZ3Yd7bIKufHnBnDIQmpswamRKqbfbU+NNEKNPbh/iZTKSUlRI/X0Lf1WtmHx4aVYSMSKC8fAUC+UsKBPgctln7u6Q3jMUOg0wH8Pr4NzxUp2KV702SHhjAuPYGJYWlG6mH7edTbOFCS1PMMvN6tRSmvyPhfXnnYI7+sUKkcsL+AL7uyOobQ6Sdo2yqDxMM8SnXzfcJLoJJUE4Mb1yeNJAE5dn3zR9w+g85PDnZ9LTVXcH6wrwNVJA/+esXGBoKGROkEBdilogrqmBAG3t+nh44tnNnTeB6Z0xeBA4/ahLtAyx2AScBeVcqwesLmNCBBvt1C9pT9e9m0apmDrNY9oveaxP7tCQfh5Hl+Lq7gdsKd1K5GndSv7M6S/LFF/MtkyuHRslvDTvqB+RMCOXnRIUGOA/y2W+BDArxJKlycJsuhwlkiASWJARhUkSscwjUpU8yL9fWNA38AGdB3RgK5DyORDPBK/5xUx/LBH4iPySPworeDUIFy7hRS6u87WhwzgBZNoK2IsUKuIEXBQEWOBYkWMy8KQv04sLT/kOTNAt8UJYFf6gkS3Z4PszyBIoSeBlG9m2PEaIkfhGvZnEKTyDehAMZNw7Sbeiuzt3SZy36quuQTVrZmRgVotKZlsvfz7w+fW3DDvF86SB+SDh9cwzODywbrtYLJ1Cky2ToLJ1mks2TqlOjIVKjK9CA7ZSyO9gyirI1nRvo4Auaxo01ZHF81mFw9PCBV/JmcfAQ4gNVS24KWPrBFg1vaXH5LidNblDzzH/dLyH3KR2lLbAvCBRQcEmXpj2xjAysv6TUoGm6jtyzEx8+VlEwGRfG/TTU1mZBu5wcSlh82G/YD6uX6xdbkEBm/agkSbtiD7M6S/a4n6u5b92RWKe19rv63MLHKxrdwk3Fbm/90AX4oX1wV6DvKxnYSt4pUsQpMQi+oK+yI0UHruJgneTIicsDjmhCWKmVWuHSXMkU7alb94UxB5o3KzZKkTI2/MnjpJ+1qU8kcAPtieyGSspe2OP4MKmRg++HQzwzQEEYVj2SMxljwyFj6Tz3TzViQeuRcMid4MdRnG2eYtwncVs98wgG92CLxNCJwxTqQy2zEdtJgoZrOY/dlkzIYiZhNT6G6xXjGbqd7HbKY6jdlYhYGp77wWFEGeeGFEGNayP0P6qyPqr479mTzkWlumETzZW+cV04QbgN/vFv8+MkWdaRpUmGYK9vx6AH88g1lk4/l1OBzmIwqHyR5ZrCPqb53pZ4J0j8wZ17HQd4DP5QmsSVQVW9maRJEy78gb2lHJONqPtu346K9/9fvfhhYoyi9Q1FaKBbVC1yFxNMVCs4+AcbQYGEeLgnG0OBZHi6mOTIWKTC8co0dt42j4wsCAW5wBcnG0iKToe6JqRJvgzNuZaJhGuq+FqL8W9mdXKEehBTxqroQzzoG2HNi+M0Go7YKVjBSzf22An8dDlPKpKvY1vSPOa3pHipknndf03i4xo4hyTe/RMf2ea3uFhTOiWE1rPxxpguPRfrTYbZBPboDtckRtngl1u4zY3iDRLi+C0gpzCwTq3/gzRWZRLtruAZwaqYOTgJOAk4BSgPBuxb0rEJFTv+47CsJx26iEVVGknp/9mS0kHwWGH2VAfIg9prEJkl4zRftn6WL2RyJRu2MG+esTo8c0f1MeU91TEkdbX3Rx0SEgJEr2fxjgf4dddIigzBtDTyOj+OscNJ5MjP2ZPKT9vi2CPscXtfVcv8E+YgnHn4J2J+FB86G2oYd2ctRlUBcp+D4RhLqL2J8pxG8UQw8hdT8RyXWKEPmJcZRWim+a2RkqxWcdxgPgFbNxDLteoXyEiMfugWEBoPp4FN0wRXfH5iWFIP+SAkNsy7fbEervZydl+Xag8udtYqJJvc/QEEbq0iM1f5DrQkoJezH2Z7YeQzbuIhkmKowDZt9jgKewg2jwMemocvX6aDGb9/jR1OdcHiXrxPjKzO0zmHu1AnObbq4gu4q4ol9pur6CKd+oqk/KVOV15CGiFPDuVMtBjkTUe68oinpFpqPkD5aOki+Rb31778BQ1+iqQFdcg+LT4ajvMWEdUyA/AK4DC6UybIZSHNRqwF4+f3bpB9NrkwivTUqI96rrC+NMr3Yqoi/gAOpe/momM2brJondSdptkiLge1QxDjcKyYTMCLCdnBkMHOubAlT5352YOvU69H+l+5M/2PbD6lcmihBHEPc4quyQQBB3YXnXCQUP0EBsw94GTCpkkRqId2JeqkrdQ2ZBb8YrH8rnlzKY2xxlmOZQzA0cZpZpqpB7alDzLjz3FEAsoKPcymHmmaYQZhuKyXNmgbUuAOZeFJPPQ21jdTxyOSJQ0qLwMTtnQfeqWdCcus+0F/aZAkQ+016VWi372KFx6nQf69EA3e3ju9uHaGgGMkwPmaKHDNJDxugh4/SQCXrIJD1kmh4yQw+ZpYfM0UPm6SEL9JBt9JB+ekgfPWSIHrJK4SJHANh4f6i08X6zm9LO++xZhb2x8SUq3pX7svjuWLw7zypMLWJ7QOdHD+gi7LqLbvlmH0UO6BifxSf2WbC7MAHP4zwB7+/CBFTuwgTZoTm7qy1/rcU1dxuRH/GlF58T3sZupqQl/AzB1i0tdxyQFofrf9f+Ervji7HZPzBkZ5XChOwrIWZEVGDGhWxhM64LSYyPQywH71CnpQ6x5KMUzM1UuExnkjmLQg8CnFyRT4iurNsb+iRqMkwxGyHbf5g1GTAr+onO/PzwqqvI8HbxZD7mSIb93sowNBBglglcU6WL2U8ws4Tvt5RVR+lbUDXNudwHd2Bv6PCQErnsaCwIoWVYqmCV/ZLo8VnapsCEfARXSkvE7HPcImhwGDqlAhgmgjPM6InzF+zFIob7KtIRaVQNyp6kBjxj6zjM1nFbthZqaDsaJUUpRsyqC8oYMfTCbtzE+Rs3LO2NOzdWQjM32sCXrUL8qEOIVr+R/RnSXx1Rf3Xsz+Qhb7RdrfAVvFQcalG7VBx2cKm4RfFSMbx0PqKl88ksHaDpgvBREnOp+SaFxcVurt/E/gyCFCUAhbAEoHAxF3Z9CekJ/kQa3rrHVLGVt+4x5BAcSd+ISV48/tytX7znq//jvTMUbFfMie26iWEGl+/ZPAZasDh48Tjm7LX0uOrIVKjI9CLYr5dGeoezhYEB25wBchePo5gz4rVuE21QcjXIxeMrP6B0MZfSakDZYi6v1YASxdw0+6BTGHGe27BZoBVYfER2zCfZ3/VE/V3P/sxiGMIV6+E+2ds0dtvb57k54G4MvH1uZEaIrsPknjSg52P5lGE4PgzfPQdVYBi5N9ZmAhK5HkuU754bJGDIouIMBW2coatdO0NYNnQEYUC3/To440Bugoe9uwke9jCXNeJ1LutGL3NZY2MdTQ9T5rLGnOSyRtgxw3muaC5rxC6XNQzmskax9NOwdC5rBMhlDbO/lstljZhzWU3KGUnb9BHllvrGsj/5/HifVC5r1Em4Eb3XrZIdi1TVdJgdi3h1DrNjfXAuq8PsWGZBb3aUH5tFMbdhR8FZhbxTBhPNZVXJPPXBuax5piGnJtiSnOLcCD/iN4zpQ7t+Ir+hgJ6LcXaPGRqnUpivKYUU3zZESzGQGXrIHD1kiB4yQA8ZpIeM0kPG6CHj9JAJesgkPWSaHjJLD5mnh/TRQ6qkNfo9T2uMAGmNKSepXymFqYVdpjWaQl6itMbcuybTGqdM6LTGjV6lNTrIz2gjz8/I/e54yM8w7cuh062Iy/yMajg/I2abn+HooWo87Q4vAhNFY9IxZ9k/Ekkdo6FspIrsLAU9gVWRncX+DOmvjqi/OvZn8pCzbJc4dgWTOgL1akkdMQdJHfXukjoCLLfSLF1YklWudEHlG4j6u8H0M9Ep4Rdd+xaPII88u6+Druy3CN7BYkYG+jRxyZyOj81a/4737jvv8FVp+SjTDUhOh2Lc5q2g1cuDOR1xMKejgOV05FVHpkJFphdBSRq7nA7Fl9XilRisI0AupyM2lqpGmNPx5TEsJi/M6fi6VgPKFnPf0rPc/mqi/lazP7tC5fZXSyQ8vA46RPbl9rcKS6zm/8UAf4O83D6oIbBSubtMQIIh537ivNz+VokZxZSTHkbH9HPXFh1Leohf8Ro4Y1MkKqxWJMr4M4pcU5uKXFPLWL8dhMkqcVxv3EWo+z354/ogSwm09BSc6LWGKNFrDfszpL8gUX9BU3/wSX9MHAec4GXsYHc+KnLbGMLKr94aWxddodSe+1fbFqg99Rd18NTfAsWn/q6wlDiKQCGDjCisK1KcLMIyn/y+AClOZgpdyof6/OQJHX7yhA60OJnDhA60OJnDhA7Z4mRqpcTkEjrkz/bQ4mSmQmJWC8MexducNBk+eH4F6AnbX3IWvVwfKOaHDPCVzEmGQr7KmB56+b079PJT5Ln6oGdgPc5zXe9lnmvoSrjjPsQd91PmuYac5LkGEMc5aHKc4dywgF2eq9+c52rO5bTgBiCZkBkBdgpuBoPO8QH1U20SJ079+Ir52wzqH4eTBLhdvv319oDco3p+sVLcY7/LD1wQZR9Um9S3CPqooWX3KSijatsJB9GsiGqWU/hxBYv5g0hWRFCBaQPmhOdaFgWMFQgWmBk6dDdLdsaiRQ4V83fbL7LfyXuOIefvOY6O6l52VCK7s76nd8RIfjjvILUnAH6pAb/4z8vYDcyKlLn+qEzODchdPpC7LFb6ZWO719UxWEkWecwBvSq2WjjbyfygX7X8oPWe5AdF/w07PfATnR6YwuZIf0Gi/kwLrLw5KeEeFpvKB+0TmQKXXCTwngbQaB8amwYa3c432ofRei/rncoPJGBrXvY7Gf0BvtF+k5tqGT0T3z7gZPR7xnT0AXb0XHQe1s8HPNfPB2D9vJ9IPwuJRbCV3SfWige83spu8nIre0iN6HdYuekOcCt7J0s5y7e72KWxfGt3sZU95GQre4AdM3wkdRfntzHq74Cd37bfvJXdx3ZhxT0AyYTMCKw/MekJuSubB8w+5i2YpvGgHrN/LPvjYi6wsjyoJjp5dWV5EFaW+4iU5UGUVhZqHGKHxtHxEKvKgO4O8d0dQpaGgUzRQ2boIXP0kHvpIcP0kBF6yCg9ZJweMkEPmaSHTNNDZukh8/SQBXrINnrI2+khA/SQIXrIKoVd+D6voh4XK46X+LAq5yTukVOY2n7bTe9eNNa7n113PpSwt5j/ChLdZnbqDp5f2uf5nnGf988v7UODPnDu2z6eu2+XMN34a0+exPQ2iXl7r8OYnoPYKFbkOWB/wh9DE1igrBcg8sbk9okuEcaL+e/ax94SeGRWOsclwY4LyZtJjk2R5xr4EmGichNDZbp2NBJk7Zhq53Myl2bpheV5J5xwF3aJMGafHo4/jwA0SgGMy9Bhi4BxU8X8fzoq2m8fg8SL9vO8mWKaYjlRcZBx094V3c/YMq6wfr4djQRvTGbZVedYM8fSC0sbzci8o5FZZP1VqmJO3d+XMMAOgm8YUHSTrmT7W7pJcglhBXAXkrEXoM0CAcoUC0sM8AKeHyi6vlSoM15S+W2sdQqTl4Cj94GgGadxlTE64xmGoNwGCmPKpTAm3Qhj3okwCvIf8yblYmW8ArtS8so8ba/MUefdpEVFKr0wn3HeMeuWQV+BSjozUBJ6J/0FRy/yZtBVxR4oycCQguNQRuBBVtnQeZ91JPbN8sIUqIKJjNx65ouFaw0d8aQSx9svZQHltAwrCfzICsXC9QynKaqZPGvVhGrmRvvSzxLgO8Tga+3dnoLIOttpEUHOc4EdF8L4bViSdQo+fymYz4qYRru5vTvzMWN3BtVmPtcxTUNg7OXmkRaz+D7DiG7jQwZtaqYjoLCgt7K9OFrSJDZbELNg3FtcqSJvFTKBW9iCIRKK2G2MJwI7WYeMEexT0NNJ0D6Y3uqqeGnoBkB0qbNwh8SzXC53CL5vuKmPk3FSHwd/lsuHWr2Z6A4hprC1VXt4K/0+hY0kA7DMhae6SqzlT9hr+ayTZcE3bmlMy+fGZHOLsW7WlnVzTiyhwCXJoaybRz3TuISHmHbIummDdZ/iVifHDgFR9Vln+wq4MCLqmpmuX/Gs31YsvNXeNdvrZJskCH2bbqFYScTc2wItxl5AwAvl0WwVnlIU3iGh83MuN6JpWHD22gqOkFjuMicL6BFCGyo4e1F7kVcQfymxyhliNaBgFO2DnVmAXTK4PcgWC++xtwc5J/YA13UZ/D4mqnHGgK3ztmwtVGnudkY+myK3GFvnER40nMr0YQWrYV/sSvVNWtnwdkphlGk0+HoRdkeY/uYT9Tef/Zm34V6mT8TPmk8URprP/gyKRFJMzDR2+0j2n6hqxyRmTEd145cM6P+Nx7GdsnZAKQpnJMZ7ddwT0swjzqAesUo0NmM1zjzxst4Rz6MHqnM2EU7FszITI3kW6L5RYTYpl/yTdOxlpCeMl5FU9TLSEu5xFol3bQUZANDSzJqJzhtzxcI/2fuweSfche9TsxgDFTDWy3imhMYXd+VQk++Iu7BoatbeU0g+s+sofPq1wUl8F6wom0XDGaYosNA7+Zl9OAOj1G2gHMqOKyuWxl8giZLsrMSJkhkkUTKnJgxB9UTJHJwomSFKlMyhzjYntJiwyDhDeVSoMcgUPWTa9Zo6qwSTAW8l7VK/IpczToV+R/6KXJIdl1UqGKWXFUtFVlepyHonFVn3UpGZlApEKrJjLhUZdlwIEZ7es0yiAK2CzCjWM5+pLjN572Umj8qM2+ryTWcurutqv+f4up7hM8/v7tnZfrhz+AmhQrtKyNUFk5ASr21S17VNere2ySu2thmltUUijq1EEcdWxJR7FXFs5QvUWiOOU29Q3cvGsYhjrjh1mwF9E3aPIYOFI+F7DEmXu8vAuEoHj9tkekIXXhyGuOJGiKsJng1XC2wzCwDqAq5ZzvZEsCBXQiwnzHyaept9YbOcfaKhOFwzdbcmiYY51l9CKq/C4ZqCS4GaCQtUm61ACXIV2lzmKghEZh9LL1spNbSbPVfvRS2co+HnsVUEUy3yACPncEbOF6feK5Fs0eYdi+SdsEjeJY1zKIsUnEX0csh58xakUHyOscTobRDoWgEaFcbMR0r46tbU++wTtBN2pcy2iqFH7LVmCr8UK32qnWJHhRQNT3ORDKZlonz/1eqrpi9/GOX8X+L/wXnYGYtxEw4gLUyAnHrG2KgGBGNzty1JIduSjKqLrrwtycDbkhTRtiSDC4zLne4MfFuSEG5L2OAZu5C2+QJTf1NVRBkne6VYSM8Z4O8CwR36l4kydGpYSZTdpe0kMflHcxv82MYwTp7INvVJiSt4blOGfziuEiQSCiyYsd1QpGUvRiWEj8BNfRa7gudnaYIltqnMSepQMGGvDuJOMjITYATA+HOZWIe8aG/ok04MfUpEIWZciKCnsHhDzLN4A3KanbIVNw+UoQ/1bhPo3dGUTOggdcjZFRSIce1rdywV1u6Y+n8c1e6w50HS2h0JVn9APJhwyYMZmAeTtjyYcrLHtXPIFWt3+Nm+Je4qpcBXKGP2L8RkhDfRpn7eULLfxiqwoLdJEvbX+8BA1BJxlOtv7bm8zUnuuzAyw4wLiVLsVRhI3lYB7JW9MdMmvE0y9WuYzTbdnMNepW/jNwaxMTrfZJwouCRVQf30M2YQajVy+lkRAkdaXkJ4k99yIbxpsfC+XgavTagJb0ZCeCX8/SVif///6XhxxUHODyi8eVmHOyeOTv47ifDmsDVPYmueUj05yOBuSa5YO0Vij+e2WFcWNvg5W4MvZB53aaYZtMxKVkGV2LNcVpblYkKZrK3BWC7J0gS7nRNjFI5nivL97thk+CGxkbA8VGFYAaMTg27lBsXaAhe3M2J7lSFdczU8pFc/9ZO/e/nm5Sf4J5jLrHdhZ8fgUH+3sTxp4VNatY0G5afxz7CUsLiaUqHyl4NG68W8xQ8bUV/8vzVw1DdywRrtZcQerMiMPQSKPi0aFdAoUqydZ8yyBXl3TTDUUp/3CmD9xdo5PMkUn+GdgrzAHUFkImxMaIGzXxmscYhnDQaqwhxwL0GkUGCozMQupaX+Yx2fv+lr3/2avbS47Og3lgfT77p9+xbPO/p85F9//Jm/OHLW847+KXrrRv///K0ZKooGefqdP1wKsSsPCHQYcB8MPSR6CyhcrF0v4TwEXToPa2HnIWzrPAgeQQ7bOg/C96sZmnCGNsrqJABUUIQ2ZOs84M8HhkyqUPB8YO0OzHkwaSL0ySoiVv/QioWr4vtm/5oEq1/m4dI/hytcJXQQIhf4fBxmla3uwajBMSoc1e43822o0lX5F0eAXyjnxgFZ4lXWBoFKA1PP1ZUfmP69BpKC0j/HBOQxsKo48sSKtfdaFiBaaVbmE2vfUXHf1dbJVUPSVwa0NqipNCivyJ0QIyo+gesj4uufhN79ysYv/+YrntuK9/x4x4qHa1t+oGIroIxLwXF6Qo181erH6Qn4OD1OdJyeQOssYIdWgt2V4YXLx96TSLLLJOAkoDtA4RbzCUMzvoPz/kxHYsBwfMjO34/GuXyOtrSQF8d9iYBfouCXKvBLNTsFyzfDysAl94yteN0xwQUJya14L1JgE9uKg2HQqUpbcSYGBr6GVYsg7uEQpzINIcQ6BHEXh8i8HlwHIU5DEPm84zqmIYRYjyDeySFOYxryzFCvWoQaGFOjaExML9ZRNTBNuTTCRvZ36Pt99Uwj4P2+BmiywkPBupShoN4H8389HN+5TwBbX6x9kSd9I118pxF5b0b5VowFqt4FFJZCK/haD3OxX8I2+BG5wG2Dn487EU7ajyjzOGVHcdAyFCpfyuz9p6Ao29UevEvA4o3F2tcM6D+DjzrKV1kMKEZOofGggYUGm1F9yv4qS4Po4ohduAMfVcE0QNG4Ps2WSYATAviXDBpZeQEGN52fUaMEpWegc2IQpgvmNKNY+zlkTg2sPDiRbiibaXp5qbYKc5lqv2R/UNyIMAAYeZuB0ng6lss0Q2Eg0205EV+16ezwhKv2VcnHEQoihc2AQ8HEC2JmQlZt9FDsG8agjiLnBXn+PaWLFW8P3kDX8vmEFyseGFe+62LFl4JvsDfwKcGwfTHX0C356nepa2Q7LfM9AzyOKRJey0yX0DIznEjkKMP90F4im0TCZSeRM/lGTZhEzmCaKgzEXiJnykpkk4BAM4u1P5OUyEZUIpuwFfdjKw7q4Ca7FRcZ4aZi7S8lzl4aXZ69VMNnL01Q1BlnHTt+a+YbzWRpwi1Os6YmoK5aMjm/CfWiGxll48DSbuGdVh561G0l9KAhL5nGGWcoKMjhMbY68NbD7W7dQdS7Ho56+4mi3vXoNs1CDZO3y1Gx0TZ82YgakknASUBiQC+jJ/WIR0kcsYACCQEukFC3QtVtDeBb9rpBA3olnKFwpQMJdTc4CiQEXAYSAnYuft0aZNMdMG0zYG+woFcgoW6TXCCBDyubJAQKEzrZtviLdW9xFEiwvxSlGkjw6+pF7pTMOA+gKc20gYS6vb9SgYR6JJDgZwIJzlI0ucNOhhzccSdDDu7AkyEHd+TJkAM+9Mzwh54MObhjT4YclYNPhTTTIDsxeKbVWHoqQtkoQqEa3sIyCwCvSBVC2Vg5tUbZMNsZm5MGfd+D2ZM4Fl0oEMeT6u6fjCcZwxPFk+oellTMjahibsKPIpAV9xPHk+reORlPerOBrp7AExjDmUKUWLSpkVE2DhyuLYhmbWR2Ly4THZ/45KItP7jt9ekuEh2jSMinSo1r/0w95FMFh3yiRCGfKn6Zosz209pttVq3H4e6rea7rWbnzXVco1oQk4tFMuhQ0icqW6bEL1F9kLoPIu5PXFSDwi7WEUOvyeoAGBflyTKLVpbli5j4PL1npe2CLuddUlgyFZllr7pk1sCSWU0kmTUiEYGCsTF2aPA6dlAzxoj2gF3UgP3UgEPa07CXGnCAGrCbGrBd+ykPaj/CY9rLMvkqH9de9Ia1X2Vyxj6tPR+epAa8X3tJ0V99kU/5AWrAu6kBH9SehkPa86H+HuyA9lMmt3qd1IB9kw7nBJCU4Ukzqt+U9Xc49VewJ7VXsMe0p6H+/uE9E88/PKG9cjipPQ2HtRc9/ReFXB92a+8s6c+Hfdrz4UQyUsafVfRmyprywqRgqRyFVyG9mc7praUNmP784oejjVohPtdFuB08HB2Dzy9riM4vBYvHVOGCj+djaCJUldJJNLx6DGSQHhLMPgqih7pAoxBKyfdvGh1G55HuSyksT7w0NNjZ1Tk4sqHj7qEj23qOnD17/syL2ztO9PSPjGL0dwwMlBtuOPO+LR3tvWv7+9tHmEkE24Df7xL/PhQ4f+bCrs4TvV0d7Hn+mecu//Cc6GMb949vTs7a5LLcBPA6lfJ0DsrJchDM0BUIqmKpuHnqghqCBTVIJKghlFZwLqughKWhL48SKVnjWw81YC814DA1YDs14DFqwEFqwAFqwBFqwJPUgJ3ar/KI9ox9XHvG7pp42mZA+0XRn7FPac82XdrTcEh7E0DuipzW3kiNTDw+nID60AOrB9V2NS69T/s8uM8BrjQx1wj9gsT+ULF+rQH+Rf7uIrw7VCzLsVB9d+iHd4c+ot2hoHQjXKYFLyJp3P85AnUmeN4ggPBFwFYUnAKeogYcoAY8Tg3YTg14mhqwkxqwjxqwd+Kt8oD2skw+wmPUgF3UgMPas80J7dnmpPY07NR+hCPar/LIxDNS7dovygntp/wANeDd1IAPTnoO+ikHDww9UoMqqrCnw8rxR9mfKdTEDKhtQf3q+9+A9zUxAyit4GpFglJaxqnqQYXOmM22/Fk3M0La9IDAAuD3W4B0Ap96esAClfQAH/ZWESgAim8VRdmfwcWroqBw7LY8SSiS1jCRtIbZnyH9+Yj6M4WjIHqDobcS7mHhm1T1NzP1o6wpVuwjuqUUKz4CJ/Og0htfboyD70wJ1FrY8+ysMKzWQkRqLcwvcghUaxF2aBwDRCQYQPCCagThqQirR8kh3Ydqw+DrY1MQ2oXA6kK7xDwyxcojU0yyfVk0Gn7HXGiL+c0URFlFMN0QJNINQQnWKL/I/fSeZWWkA+U/Dgnrfdbf59rXmO+hwM93IvBwOUEkAywsWQjr6fVPVa0+0L5YQRnYv28cwVPsXBasmgtWj4uYvwR5Kpa+mMo8loRFxDoR1ZGpUJHpRWCp7fxBfGHKZc0YVgHVZqlRxMqEgQq1TMSLVn5g+veqCt2FHVQLngk2sCLcM8HVxfpfg95pjhoUs/YdFvcdtU4uCjFxGdDagDmELJ341Y8Qvbob/9RHbvnmz3pnuyhGx2SiymoYTDWXvt3hWuH5MZkaVesSXoqCNlZUJL9U18ZR792vKOp+uS01+F9nLq7rar/n+Lqe4TPP7+7Z2X64c/gJYNNxUbDJqQK1bYDf7fB6uKrMwo1bXHta/+WaO//TvlB+PVjFMmJfj1eUMxAp1v+uAf4UtkUNQjvDCCuq4HOX0We2D3UJG0Vgu10u0C/iAtDdrpIthh8W0KOqWP+MfZH+KmcJGqPgF+zrDFejEgc0Etbguwi70Izg1HAbVmYaVaUNK7iuVeC6+uBG1ZdWtqLWmdZgkzf9AeH4q6UHF0WdHJNekHclpWrFRhgBrljN51xelAiB1mgK4qb7wNSkfeqbu6Dhr75NfnOHlSd34zqAfBAy80GA/RNsFDY3wqrchyj9nRBLHUQeoCn5UNaOIHlh7seO7RQDlB0ZYLe7Nrv1cDDUkNqiqtn142Zm1Ox+wQD/vJTZBf0zyys2+9lBgFmNnGWNVtQYZJdEdtVoxAJx0x3dPL3CWFVI/2wxSPIVcLr2lrdKMIBosf7fDPCvcfSOmhQadiMXNmncc95VFQMnpMg/GQP6JtZnAInTVRkQ/wIS9Q7mNx4YSsQbDDjzBgWyzgwM6W/UHO7oAe42V18K2ln9HOZBkGrg5fdq565QNTtshBImv6aGHb0DpyuK2pMqm8vh8l6PH/R6/CKvp4iJHOooQnwZRadSrbCdjYBTMdG1oppcxld+/Vu//PJvna77vn18xWVHq3//5G/EVrz0R5539GLNF9b979+P3qESMbLyg8lBRYTcj3FSAFOk4FFBNRPX57X3AaH2bki6LuY+hScXAwVZbuEDVszxjGjX2TCrzL0NGdUtrR10ntnQQgGYsMtnVILwMypVlaiw/Ha6yuV2WqB7alh9C13r4EHtva4wGs2Ist3y6xMuNjRhz6j4UNPgl7XKISRoe8BgvRtce+oR0MmZgryO5UMqA/iR98MCyPthQfWdctg4Bl2N7JQ9UYvB8SeZW3iWqkYZzh0rw70GBT5Aww329iyELRya+RLB7FlUwp5ZVLmxmWXFRqTKNxrz26OwZGFm9wYb32oFTRuCEatZaQS9xhokVuiVJITGRhJqUEkIoZJQhSr1iKQs7NGf9bfYsv5BYzpdTlh/Dznr75lk/UtE0Jv1u/Rn/T22rD9gTOdhJ6y/i5z1d02y/iUi6M36D48J6yOsFoZj3dj+D0tKrgKX1Of6vcGQerJHNZzsUUWU7FHtJL2uBiVwJb/j5Vt7Bjo6D/d0L7+1o//E0ODoL3u6H2MZPMhutoJjxeNEQbHrZ72rtv7TfTHPo2+hYP2TTS/dtU0p+mYJc7Ppr3ZhbsthqrHT30l5lAtlLftcZ0U6kLyIXGKrG8mLoJIHBzciojsgpXYHFYLgUUQljgdATDEEJaxE6JkNnfcBRxy77POyGj4Ixu/s87KAyN0vDfD/6WzUYKruqPyCvhd434s7MZa5ERS6IM7BMuhnObFjs8nfTLMXFLlpeM0gzMdgwmDDhW9qyKaOiVPpGj7OHHKjaXLyvkoEDoaY8iAVw/ohm7D+XzjKU/M5cRZMcT00Tw05JjS5/lHeh+Nd/4h3rn/U1vWvQo8CBGWlGGrhDrpcngofGAmIOfpLhqy9pmC6onAYw7QC8ogh24MSPO0zZJIoEce/yhyUQFrF7nLgLrHC+rq9MFU5ESbhBpIZFbJFQ5ImfWZhMhkqOMXaM2EK2ApTCEnK3IPmQ+CpcgF73vcJ7RuTQAZdJXv6ln7TcbMpcU50lazhdWM0P0fzxa74TVrv7tk7cNXH5p69vaiGUAIrbJID7CY5FLS5ySjJMg5mugXjswByndMP3SMIS4woqnT+FJEwjFHeGw7YesPVvN8dtW0kTt2oxk1wVbExYhwcP0mcvNFYPSZeXpTGy4vIeHkeBngjTry8iKyX5wByDyZSVc5cUZVcYKY9060oe6pxmr2zVQ3wdBXG06PQjfY8XeOEp4WvxDCjQg4tYlgmp4mnw2z7Mdi5hJ0cWoTlzutUOBA5Xoq45Ok9XvH0Inuejjrh6WixcemY6OkqLOJQI83TJiuspZ7GkoJ3odHGKkzlRuAIHBbsxQqChFUC41HPve2o94HxKFo8xYFGUfK2o6y3XRV0FlsOO7w0GGaiyxbpUL73LlzaSvjYEDoDX1xjIWgdSJVqzrO4FgNytShU6YqvydB4O1RgwXIryq7AQg1YbqIKqvpQo4oUtSBFHCNVWQtO1FQwlQcFQYUdl6Jo3Fba4/1/bJWN2D6vBAA=",
4154
- "debug_symbols": "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"
4143
+ "bytecode": "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",
4144
+ "debug_symbols": "vb3RjiW7cbX5LufaF0kygkHqVX4YhizLhoADyZDlAQaG3302Fxmx2NWzWVl7V/83p77T3bVWJpMRmUlGkv/z27/9+V//+z/+5S9//fe//ddvf/g///Pbv/79L7///pf/+Jff//anP/7jL3/76+NP/+e3a/zHym9/KP/0m8lvf9DHD50/6vxh80ebPzp+tGv+SPNHnj/K/DFV2lRpU6VNlTZV2lTpU6VPlT5V+lTpU6VPlT5V+lTpU6VPlXRd62daP/P6WdZPWT91/azrp62fbf1cemnppaWXll5aemnppaWXll5aemnppaWXl15eennp5aWXl15eennp5aWXl15eemXplaVXll5ZemXplaVXll5ZemXplaUnS0+Wniw9WXqy9OShZ+NnXT9t/Wzr50MvXQ/QyyE5PCRTGfDQTOMfqzioQ3Uwh+YwlNsD6uWQHLJDcRAHdagO5tAcXNlc2YZyH5AdisNQHi0xImRCdXgoZ/x6c+gLRqxMSA7ZoTiIgzpUB1durtxcecRPGc07ImhCdigO4qAO1cEcmkOfkK/LITlkh+IgDuowlPMAc2gOfcEIrgnJITsUB3FQB1dOrpxcOblyduXsytmVsytnV86unF05u3J25ezKxZWLKxdXLq5cXLm4cnHl4srFlYsriyuLK4sriyuLK4sriyuLK4sriyurK6srqyurK6srqyurK6srqyurK1dXrq5cXbm6cnXl6sojBosOMIfm0BeMGJyQHLJDcRAHdXBlc2Vz5RGD5REpecTghOTwUJYyoDiIgzpUB3NoDn3BiMEJycGVuyt3Vx4xKHVAdTCH5tAnlBGDE5JDdigO4qAO1cEcmsPI9484LbjBAZJDdigO4qAO1cEcmoMrZ1fOrpxdObtyduXsytmVsytnV86uXFy5uHJx5eLKxZWLKxdXLq5cXLm4sriyuLK4sriyuLK4sriyuLK4sriyurK6srqyurK6srqyurK6srqyunJ15erK1ZWrK1dXrq5cXbm6cnXl6srmyubK5srmyubK5srmyubK5srmys2Vmys3V26u3Fy5uXJz5ebKzZWbK3dX7q7cXbm7cnfl7srdlbsrd1fuS1muyyE5ZIfiIA7qUB3MoTm4ssegeAyKx6AgBvMAcVCH6mAOzaEvQAwCkkN2cOXsytmVsytnV86unF25uHJx5eLKxZWLKxdXLq5cXLm4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"
4155
4145
  },
4156
4146
  {
4157
4147
  "name": "public_dispatch",
@@ -4458,11 +4448,11 @@
4458
4448
  },
4459
4449
  "124": {
4460
4450
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/discovery/mod.nr",
4461
- "source": "use crate::protocol::{address::AztecAddress, debug_log::{debug_log, debug_log_format}};\n\npub mod nonce_discovery;\npub mod partial_notes;\npub mod private_events;\npub mod private_notes;\npub mod process_message;\n\nuse crate::{\n messages::{\n discovery::process_message::process_message_ciphertext,\n logs::note::MAX_NOTE_PACKED_LEN,\n processing::{\n get_private_logs, pending_tagged_log::PendingTaggedLog, validate_and_store_enqueued_notes_and_events,\n },\n },\n utils::array,\n};\n\npub struct NoteHashAndNullifier {\n /// The result of NoteHash::compute_note_hash\n pub note_hash: Field,\n /// The result of NoteHash::compute_nullifier_unconstrained (since all of message discovery is unconstrained).\n /// This is `None` if the nullifier cannot be computed (e.g., because the nullifier hiding key is not available).\n pub inner_nullifier: Option<Field>,\n}\n\n/// A function which takes a note's packed content, address of the emitting contract, note nonce, storage slot and note\n/// type ID and attempts to compute its note hash (not hashed by note nonce nor siloed by address) and inner nullifier\n/// (not siloed by address).\n///\n/// This function must be user-provided as its implementation requires knowledge of how note type IDs are allocated in\n/// a contract. The `#[aztec]` macro automatically creates such a contract library method called\n/// `_compute_note_hash_and_nullifier`, which looks something like this:\n///\n/// ```\n/// |packed_note, owner, storage_slot, note_type_id, contract_address, randomness, note_nonce| {\n/// if note_type_id == MyNoteType::get_id() {\n/// assert(packed_note.len() == MY_NOTE_TYPE_SERIALIZATION_LENGTH);\n///\n/// let note = MyNoteType::unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n///\n/// let note_hash = note.compute_note_hash(owner, storage_slot, randomness);\n/// let note_hash_for_nullification = aztec::note::utils::compute_note_hash_for_nullification(\n/// HintedNote{ note, contract_address, metadata: SettledNoteMetadata::new(note_nonce).into() },\n/// storage_slot\n/// );\n///\n/// let inner_nullifier = note.compute_nullifier_unconstrained(owner, note_hash_for_nullification);\n///\n/// Option::some(\n/// aztec::messages::discovery::NoteHashAndNullifier {\n/// note_hash, inner_nullifier\n/// }\n/// )\n/// } else if note_type_id == MyOtherNoteType::get_id() {\n/// ... // Similar to above but calling MyOtherNoteType::unpack_content\n/// } else {\n/// Option::none() // Unknown note type ID\n/// };\n/// }\n/// ```\npub type ComputeNoteHashAndNullifier<Env> = unconstrained fn[Env](/* packed_note */BoundedVec<Field, MAX_NOTE_PACKED_LEN>, /*\n owner */ AztecAddress, /* storage_slot */ Field, /* note_type_id */ Field, /* contract_address */ AztecAddress, /*\nrandomness */ Field, /* note nonce */ Field) -> Option<NoteHashAndNullifier>;\n\n/// Performs the state synchronization process, in which private logs are downloaded and inspected to find new private\n/// notes, partial notes and events, etc., and pending partial notes are processed to search for their completion logs.\n/// This is the mechanism via which a contract updates its knowledge of its private state.\n///\n/// Note that the state is synchronized up to the latest block synchronized by PXE (referred to as \"anchor block\").\n/// That should be close to the chain tip as block synchronization is performed before contract function simulation is\n/// done.\n///\n/// Receives the address of the contract on which discovery is performed along with its\n/// `compute_note_hash_and_nullifier` function.\npub unconstrained fn do_sync_state<Env>(\n contract_address: AztecAddress,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n) {\n debug_log(\"Performing state synchronization\");\n\n // First we process all private logs, which can contain different kinds of messages e.g. private notes, partial\n // notes, private events, etc.\n let mut logs = get_private_logs(contract_address);\n logs.for_each(|i, pending_tagged_log: PendingTaggedLog| {\n debug_log_format(\n \"Processing log with tag {0}\",\n [pending_tagged_log.log.get(0)],\n );\n\n // We remove the tag from the pending tagged log and process the message ciphertext contained in it.\n let message_ciphertext = array::subbvec(pending_tagged_log.log, 1);\n\n process_message_ciphertext(\n contract_address,\n compute_note_hash_and_nullifier,\n message_ciphertext,\n pending_tagged_log.context,\n );\n logs.remove(i);\n });\n\n // Then we process all pending partial notes, regardless of whether they were found in the current or previous\n // executions.\n partial_notes::fetch_and_process_partial_note_completion_logs(contract_address, compute_note_hash_and_nullifier);\n\n // Finally we validate all notes and events that were found as part of the previous processes, resulting in them\n // being added to PXE's database and retrievable via oracles (get_notes) and our TS API (PXE::getPrivateEvents).\n validate_and_store_enqueued_notes_and_events(contract_address);\n}\n"
4451
+ "source": "use crate::protocol::{address::AztecAddress, debug_log::{debug_log, debug_log_format}};\n\npub mod nonce_discovery;\npub mod partial_notes;\npub mod private_events;\npub mod private_notes;\npub mod process_message;\n\nuse crate::{\n messages::{\n discovery::process_message::process_message_ciphertext,\n logs::note::MAX_NOTE_PACKED_LEN,\n processing::{\n get_private_logs, pending_tagged_log::PendingTaggedLog, validate_and_store_enqueued_notes_and_events,\n },\n },\n utils::array,\n};\n\npub struct NoteHashAndNullifier {\n /// The result of NoteHash::compute_note_hash\n pub note_hash: Field,\n /// The result of NoteHash::compute_nullifier_unconstrained (since all of message discovery is unconstrained)\n pub inner_nullifier: Field,\n}\n\n/// A function which takes a note's packed content, address of the emitting contract, note nonce, storage slot and note\n/// type ID and attempts to compute its note hash (not hashed by note nonce nor siloed by address) and inner nullifier\n/// (not siloed by address).\n///\n/// This function must be user-provided as its implementation requires knowledge of how note type IDs are allocated in\n/// a contract. The `#[aztec]` macro automatically creates such a contract library method called\n/// `_compute_note_hash_and_nullifier`, which looks something like this:\n///\n/// ```\n/// |packed_note, owner, storage_slot, note_type_id, contract_address, randomness, note_nonce| {\n/// if note_type_id == MyNoteType::get_id() {\n/// assert(packed_note.len() == MY_NOTE_TYPE_SERIALIZATION_LENGTH);\n///\n/// let note = MyNoteType::unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n///\n/// let note_hash = note.compute_note_hash(owner, storage_slot, randomness);\n/// let note_hash_for_nullification = aztec::note::utils::compute_note_hash_for_nullification(\n/// HintedNote{ note, contract_address, metadata: SettledNoteMetadata::new(note_nonce).into() },\n/// storage_slot\n/// );\n///\n/// let inner_nullifier = note.compute_nullifier_unconstrained(owner, note_hash_for_nullification);\n///\n/// Option::some(\n/// aztec::messages::discovery::NoteHashAndNullifier {\n/// note_hash, inner_nullifier\n/// }\n/// )\n/// } else if note_type_id == MyOtherNoteType::get_id() {\n/// ... // Similar to above but calling MyOtherNoteType::unpack_content\n/// } else {\n/// Option::none() // Unknown note type ID\n/// };\n/// }\n/// ```\npub type ComputeNoteHashAndNullifier<Env> = unconstrained fn[Env](/* packed_note */BoundedVec<Field, MAX_NOTE_PACKED_LEN>, /*\n owner */ AztecAddress, /* storage_slot */ Field, /* note_type_id */ Field, /* contract_address */ AztecAddress, /*\nrandomness */ Field, /* note nonce */ Field) -> Option<NoteHashAndNullifier>;\n\n/// Performs the state synchronization process, in which private logs are downloaded and inspected to find new private\n/// notes, partial notes and events, etc., and pending partial notes are processed to search for their completion logs.\n/// This is the mechanism via which a contract updates its knowledge of its private state.\n///\n/// Note that the state is synchronized up to the latest block synchronized by PXE (referred to as \"anchor block\").\n/// That should be close to the chain tip as block synchronization is performed before contract function simulation is\n/// done.\n///\n/// Receives the address of the contract on which discovery is performed along with its\n/// `compute_note_hash_and_nullifier` function.\npub unconstrained fn do_sync_state<Env>(\n contract_address: AztecAddress,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n) {\n debug_log(\"Performing state synchronization\");\n\n // First we process all private logs, which can contain different kinds of messages e.g. private notes, partial\n // notes, private events, etc.\n let mut logs = get_private_logs(contract_address);\n logs.for_each(|i, pending_tagged_log: PendingTaggedLog| {\n debug_log_format(\n \"Processing log with tag {0}\",\n [pending_tagged_log.log.get(0)],\n );\n\n // We remove the tag from the pending tagged log and process the message ciphertext contained in it.\n let message_ciphertext = array::subbvec(pending_tagged_log.log, 1);\n\n process_message_ciphertext(\n contract_address,\n compute_note_hash_and_nullifier,\n message_ciphertext,\n pending_tagged_log.context,\n );\n logs.remove(i);\n });\n\n // Then we process all pending partial notes, regardless of whether they were found in the current or previous\n // executions.\n partial_notes::fetch_and_process_partial_note_completion_logs(contract_address, compute_note_hash_and_nullifier);\n\n // Finally we validate all notes and events that were found as part of the previous processes, resulting in them\n // being added to PXE's database and retrievable via oracles (get_notes) and our TS API (PXE::getPrivateEvents).\n validate_and_store_enqueued_notes_and_events(contract_address);\n}\n"
4462
4452
  },
4463
4453
  "125": {
4464
4454
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/discovery/nonce_discovery.nr",
4465
- "source": "use crate::messages::{discovery::ComputeNoteHashAndNullifier, logs::note::MAX_NOTE_PACKED_LEN};\n\nuse crate::protocol::{\n address::AztecAddress,\n constants::MAX_NOTE_HASHES_PER_TX,\n debug_log::debug_log_format,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::ToField,\n};\n\n/// A struct with the discovered information of a complete note, required for delivery to PXE. Note that this is *not*\n/// the complete note information, since it does not include content, storage slot, etc.\npub struct DiscoveredNoteInfo {\n pub note_nonce: Field,\n pub note_hash: Field,\n pub inner_nullifier: Field,\n}\n\n/// Searches for note nonces that will result in a note that was emitted in a transaction. While rare, it is possible\n/// for multiple notes to have the exact same packed content and storage slot but different nonces, resulting in\n/// different unique note hashes. Because of this this function returns a *vector* of discovered notes, though in most\n/// cases it will contain a single element.\n///\n/// Due to how nonces are computed, this function requires knowledge of the transaction in which the note was created,\n/// more specifically the list of all unique note hashes in it plus the value of its first nullifier.\npub unconstrained fn attempt_note_nonce_discovery<Env>(\n unique_note_hashes_in_tx: BoundedVec<Field, MAX_NOTE_HASHES_PER_TX>,\n first_nullifier_in_tx: Field,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n contract_address: AztecAddress,\n owner: AztecAddress,\n storage_slot: Field,\n randomness: Field,\n note_type_id: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n) -> BoundedVec<DiscoveredNoteInfo, MAX_NOTE_HASHES_PER_TX> {\n let discovered_notes = &mut BoundedVec::new();\n\n debug_log_format(\n \"Attempting nonce discovery on {0} potential notes on contract {1} for storage slot {2}\",\n [unique_note_hashes_in_tx.len() as Field, contract_address.to_field(), storage_slot],\n );\n\n // We need to find nonces (typically just one) that result in a note hash that, once siloed into a unique note\n // hash, is one of the note hashes created by the transaction.\n unique_note_hashes_in_tx.for_eachi(|i, expected_unique_note_hash| {\n // Nonces are computed by hashing the first nullifier in the transaction with the index of the note in the new\n // note hashes array. We therefore know for each note in every transaction what its nonce is.\n let candidate_nonce = compute_note_hash_nonce(first_nullifier_in_tx, i);\n\n // Given note nonce, note content and metadata, we can compute the note hash and silo it to check if it matches\n // the note hash at the array index we're currently processing. TODO(#11157): handle failed\n // note_hash_and_nullifier computation\n let hashes = compute_note_hash_and_nullifier(\n packed_note,\n owner,\n storage_slot,\n note_type_id,\n contract_address,\n randomness,\n candidate_nonce,\n )\n .expect(f\"Failed to compute a note hash for note type {note_type_id}\");\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, hashes.note_hash);\n let unique_note_hash = compute_unique_note_hash(candidate_nonce, siloed_note_hash);\n\n if unique_note_hash == expected_unique_note_hash {\n // Note that while we did check that the note hash is the preimage of the expected unique note hash, we\n // perform no validations on the nullifier - we fundamentally cannot, since only the application knows how\n // to compute nullifiers. We simply trust it to have provided the correct one: if it hasn't, then PXE may\n // fail to realize that a given note has been nullified already, and calls to the application could result\n // in invalid transactions (with duplicate nullifiers). This is not a concern because an application\n // already has more direct means of making a call to it fail the transaction.\n discovered_notes.push(\n DiscoveredNoteInfo {\n note_nonce: candidate_nonce,\n note_hash: hashes.note_hash,\n // TODO: The None case will be handled in a followup PR.\n // https://linear.app/aztec-labs/issue/F-265/store-external-notes\n inner_nullifier: hashes.inner_nullifier.expect(\n f\"Failed to compute nullifier for note type {note_type_id}\",\n ),\n },\n );\n\n // We don't exit the loop - it is possible (though rare) for the exact same note content to be present\n // multiple times in the same transaction with different nonces. This typically doesn't happen due to notes\n // containing random values in order to hide their contents.\n }\n });\n\n debug_log_format(\n \"Found valid nonces for a total of {0} notes\",\n [discovered_notes.len() as Field],\n );\n\n *discovered_notes\n}\n\nmod test {\n use crate::{\n messages::{discovery::NoteHashAndNullifier, logs::note::MAX_NOTE_PACKED_LEN},\n note::{\n HintedNote,\n note_interface::{NoteHash, NoteType},\n note_metadata::SettledNoteMetadata,\n utils::compute_note_hash_for_nullification,\n },\n oracle::random::random,\n test::mocks::mock_note::MockNote,\n utils::array,\n };\n\n use crate::protocol::{\n address::AztecAddress,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::{FromField, Packable},\n };\n\n use super::attempt_note_nonce_discovery;\n\n // This implementation could be simpler, but this serves as a nice example of the expected flow in a real\n // implementation, and as a sanity check that the interface is sufficient.\n unconstrained fn compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n owner: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<NoteHashAndNullifier> {\n if note_type_id == MockNote::get_id() {\n let note = MockNote::unpack(array::subarray(packed_note.storage(), 0));\n let note_hash = note.compute_note_hash(owner, storage_slot, randomness);\n\n let note_hash_for_nullification = compute_note_hash_for_nullification(\n HintedNote {\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata: SettledNoteMetadata::new(note_nonce).into(),\n },\n );\n\n let inner_nullifier = note.compute_nullifier_unconstrained(owner, note_hash_for_nullification);\n\n Option::some(NoteHashAndNullifier { note_hash, inner_nullifier })\n } else {\n Option::none()\n }\n }\n\n global VALUE: Field = 7;\n global FIRST_NULLIFIER_IN_TX: Field = 47;\n global CONTRACT_ADDRESS: AztecAddress = AztecAddress::from_field(13);\n global OWNER: AztecAddress = AztecAddress::from_field(14);\n global STORAGE_SLOT: Field = 99;\n global RANDOMNESS: Field = 99;\n\n #[test]\n unconstrained fn no_note_hashes() {\n let unique_note_hashes_in_tx = BoundedVec::new();\n let packed_note = BoundedVec::new();\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n packed_note,\n );\n\n assert_eq(discovered_notes.len(), 0);\n }\n\n #[test(should_fail_with = \"Failed to compute a note hash\")]\n unconstrained fn failed_hash_computation() {\n let unique_note_hashes_in_tx = BoundedVec::from_array([random()]);\n let packed_note = BoundedVec::new();\n let note_type_id = 0; // This note type id is unknown to compute_note_hash_and_nullifier\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n note_type_id,\n packed_note,\n );\n\n assert_eq(discovered_notes.len(), 0);\n }\n\n struct NoteAndData {\n note: MockNote,\n note_nonce: Field,\n note_hash: Field,\n unique_note_hash: Field,\n inner_nullifier: Field,\n }\n\n unconstrained fn construct_note(value: Field, note_index_in_tx: u32) -> NoteAndData {\n let note_nonce = compute_note_hash_nonce(FIRST_NULLIFIER_IN_TX, note_index_in_tx);\n\n let hinted_note = MockNote::new(value)\n .contract_address(CONTRACT_ADDRESS)\n .owner(OWNER)\n .randomness(RANDOMNESS)\n .storage_slot(STORAGE_SLOT)\n .note_metadata(SettledNoteMetadata::new(note_nonce).into())\n .build_hinted_note();\n let note = hinted_note.note;\n\n let note_hash = note.compute_note_hash(OWNER, STORAGE_SLOT, RANDOMNESS);\n let unique_note_hash = compute_unique_note_hash(\n note_nonce,\n compute_siloed_note_hash(CONTRACT_ADDRESS, note_hash),\n );\n let inner_nullifier = note\n .compute_nullifier_unconstrained(OWNER, compute_note_hash_for_nullification(hinted_note))\n .expect(f\"Could not compute nullifier for note owned by {OWNER}\");\n\n NoteAndData { note, note_nonce, note_hash, unique_note_hash, inner_nullifier }\n }\n\n #[test]\n unconstrained fn single_note() {\n let note_index_in_tx = 2;\n let note_and_data = construct_note(VALUE, note_index_in_tx);\n\n let mut unique_note_hashes_in_tx = BoundedVec::from_array([\n random(), random(), random(), random(), random(), random(), random(),\n ]);\n unique_note_hashes_in_tx.set(note_index_in_tx, note_and_data.unique_note_hash);\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n BoundedVec::from_array(note_and_data.note.pack()),\n );\n\n assert_eq(discovered_notes.len(), 1);\n let discovered_note = discovered_notes.get(0);\n\n assert_eq(discovered_note.note_nonce, note_and_data.note_nonce);\n assert_eq(discovered_note.note_hash, note_and_data.note_hash);\n assert_eq(discovered_note.inner_nullifier, note_and_data.inner_nullifier);\n }\n\n #[test]\n unconstrained fn multiple_notes_same_preimage() {\n let first_note_index_in_tx = 3;\n let first_note_and_data = construct_note(VALUE, first_note_index_in_tx);\n\n let second_note_index_in_tx = 5;\n let second_note_and_data = construct_note(VALUE, second_note_index_in_tx);\n\n // Both notes have the same preimage (and therefore packed representation), so both should be found in the same\n // call.\n assert_eq(first_note_and_data.note, second_note_and_data.note);\n let packed_note = first_note_and_data.note.pack();\n\n let mut unique_note_hashes_in_tx = BoundedVec::from_array([\n random(), random(), random(), random(), random(), random(), random(),\n ]);\n unique_note_hashes_in_tx.set(first_note_index_in_tx, first_note_and_data.unique_note_hash);\n unique_note_hashes_in_tx.set(second_note_index_in_tx, second_note_and_data.unique_note_hash);\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n BoundedVec::from_array(packed_note),\n );\n\n assert_eq(discovered_notes.len(), 2);\n\n assert(discovered_notes.any(|discovered_note| {\n (discovered_note.note_nonce == first_note_and_data.note_nonce)\n & (discovered_note.note_hash == first_note_and_data.note_hash)\n & (discovered_note.inner_nullifier == first_note_and_data.inner_nullifier)\n }));\n\n assert(discovered_notes.any(|discovered_note| {\n (discovered_note.note_nonce == second_note_and_data.note_nonce)\n & (discovered_note.note_hash == second_note_and_data.note_hash)\n & (discovered_note.inner_nullifier == second_note_and_data.inner_nullifier)\n }));\n }\n}\n"
4455
+ "source": "use crate::messages::{discovery::ComputeNoteHashAndNullifier, logs::note::MAX_NOTE_PACKED_LEN};\n\nuse crate::protocol::{\n address::AztecAddress,\n constants::MAX_NOTE_HASHES_PER_TX,\n debug_log::debug_log_format,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::ToField,\n};\n\n/// A struct with the discovered information of a complete note, required for delivery to PXE. Note that this is *not*\n/// the complete note information, since it does not include content, storage slot, etc.\npub struct DiscoveredNoteInfo {\n pub note_nonce: Field,\n pub note_hash: Field,\n pub inner_nullifier: Field,\n}\n\n/// Searches for note nonces that will result in a note that was emitted in a transaction. While rare, it is possible\n/// for multiple notes to have the exact same packed content and storage slot but different nonces, resulting in\n/// different unique note hashes. Because of this this function returns a *vector* of discovered notes, though in most\n/// cases it will contain a single element.\n///\n/// Due to how nonces are computed, this function requires knowledge of the transaction in which the note was created,\n/// more specifically the list of all unique note hashes in it plus the value of its first nullifier.\npub unconstrained fn attempt_note_nonce_discovery<Env>(\n unique_note_hashes_in_tx: BoundedVec<Field, MAX_NOTE_HASHES_PER_TX>,\n first_nullifier_in_tx: Field,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n contract_address: AztecAddress,\n owner: AztecAddress,\n storage_slot: Field,\n randomness: Field,\n note_type_id: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n) -> BoundedVec<DiscoveredNoteInfo, MAX_NOTE_HASHES_PER_TX> {\n let discovered_notes = &mut BoundedVec::new();\n\n debug_log_format(\n \"Attempting nonce discovery on {0} potential notes on contract {1} for storage slot {2}\",\n [unique_note_hashes_in_tx.len() as Field, contract_address.to_field(), storage_slot],\n );\n\n // We need to find nonces (typically just one) that result in a note hash that, once siloed into a unique note\n // hash, is one of the note hashes created by the transaction.\n unique_note_hashes_in_tx.for_eachi(|i, expected_unique_note_hash| {\n // Nonces are computed by hashing the first nullifier in the transaction with the index of the note in the new\n // note hashes array. We therefore know for each note in every transaction what its nonce is.\n let candidate_nonce = compute_note_hash_nonce(first_nullifier_in_tx, i);\n\n // Given note nonce, note content and metadata, we can compute the note hash and silo it to check if it matches\n // the note hash at the array index we're currently processing. TODO(#11157): handle failed\n // note_hash_and_nullifier computation\n let hashes = compute_note_hash_and_nullifier(\n packed_note,\n owner,\n storage_slot,\n note_type_id,\n contract_address,\n randomness,\n candidate_nonce,\n )\n .expect(f\"Failed to compute a note hash for note type {note_type_id}\");\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, hashes.note_hash);\n let unique_note_hash = compute_unique_note_hash(candidate_nonce, siloed_note_hash);\n\n if unique_note_hash == expected_unique_note_hash {\n // Note that while we did check that the note hash is the preimage of the expected unique note hash, we\n // perform no validations on the nullifier - we fundamentally cannot, since only the application knows how\n // to compute nullifiers. We simply trust it to have provided the correct one: if it hasn't, then PXE may\n // fail to realize that a given note has been nullified already, and calls to the application could result\n // in invalid transactions (with duplicate nullifiers). This is not a concern because an application\n // already has more direct means of making a call to it fail the transaction.\n discovered_notes.push(\n DiscoveredNoteInfo {\n note_nonce: candidate_nonce,\n note_hash: hashes.note_hash,\n inner_nullifier: hashes.inner_nullifier,\n },\n );\n\n // We don't exit the loop - it is possible (though rare) for the exact same note content to be present\n // multiple times in the same transaction with different nonces. This typically doesn't happen due to notes\n // containing random values in order to hide their contents.\n }\n });\n\n debug_log_format(\n \"Found valid nonces for a total of {0} notes\",\n [discovered_notes.len() as Field],\n );\n\n *discovered_notes\n}\n\nmod test {\n use crate::{\n messages::{discovery::NoteHashAndNullifier, logs::note::MAX_NOTE_PACKED_LEN},\n note::{\n HintedNote,\n note_interface::{NoteHash, NoteType},\n note_metadata::SettledNoteMetadata,\n utils::compute_note_hash_for_nullification,\n },\n oracle::random::random,\n test::mocks::mock_note::MockNote,\n utils::array,\n };\n\n use crate::protocol::{\n address::AztecAddress,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::{FromField, Packable},\n };\n\n use super::attempt_note_nonce_discovery;\n\n // This implementation could be simpler, but this serves as a nice example of the expected flow in a real\n // implementation, and as a sanity check that the interface is sufficient.\n unconstrained fn compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n owner: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<NoteHashAndNullifier> {\n if note_type_id == MockNote::get_id() {\n let note = MockNote::unpack(array::subarray(packed_note.storage(), 0));\n let note_hash = note.compute_note_hash(owner, storage_slot, randomness);\n\n let note_hash_for_nullification = compute_note_hash_for_nullification(\n HintedNote {\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata: SettledNoteMetadata::new(note_nonce).into(),\n },\n );\n\n let inner_nullifier = note.compute_nullifier_unconstrained(owner, note_hash_for_nullification);\n\n Option::some(NoteHashAndNullifier { note_hash, inner_nullifier })\n } else {\n Option::none()\n }\n }\n\n global VALUE: Field = 7;\n global FIRST_NULLIFIER_IN_TX: Field = 47;\n global CONTRACT_ADDRESS: AztecAddress = AztecAddress::from_field(13);\n global OWNER: AztecAddress = AztecAddress::from_field(14);\n global STORAGE_SLOT: Field = 99;\n global RANDOMNESS: Field = 99;\n\n #[test]\n unconstrained fn no_note_hashes() {\n let unique_note_hashes_in_tx = BoundedVec::new();\n let packed_note = BoundedVec::new();\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n packed_note,\n );\n\n assert_eq(discovered_notes.len(), 0);\n }\n\n #[test(should_fail_with = \"Failed to compute a note hash\")]\n unconstrained fn failed_hash_computation() {\n let unique_note_hashes_in_tx = BoundedVec::from_array([random()]);\n let packed_note = BoundedVec::new();\n let note_type_id = 0; // This note type id is unknown to compute_note_hash_and_nullifier\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n note_type_id,\n packed_note,\n );\n\n assert_eq(discovered_notes.len(), 0);\n }\n\n struct NoteAndData {\n note: MockNote,\n note_nonce: Field,\n note_hash: Field,\n unique_note_hash: Field,\n inner_nullifier: Field,\n }\n\n unconstrained fn construct_note(value: Field, note_index_in_tx: u32) -> NoteAndData {\n let note_nonce = compute_note_hash_nonce(FIRST_NULLIFIER_IN_TX, note_index_in_tx);\n\n let hinted_note = MockNote::new(value)\n .contract_address(CONTRACT_ADDRESS)\n .owner(OWNER)\n .randomness(RANDOMNESS)\n .storage_slot(STORAGE_SLOT)\n .note_metadata(SettledNoteMetadata::new(note_nonce).into())\n .build_hinted_note();\n let note = hinted_note.note;\n\n let note_hash = note.compute_note_hash(OWNER, STORAGE_SLOT, RANDOMNESS);\n let unique_note_hash = compute_unique_note_hash(\n note_nonce,\n compute_siloed_note_hash(CONTRACT_ADDRESS, note_hash),\n );\n let inner_nullifier =\n note.compute_nullifier_unconstrained(OWNER, compute_note_hash_for_nullification(hinted_note));\n\n NoteAndData { note, note_nonce, note_hash, unique_note_hash, inner_nullifier }\n }\n\n #[test]\n unconstrained fn single_note() {\n let note_index_in_tx = 2;\n let note_and_data = construct_note(VALUE, note_index_in_tx);\n\n let mut unique_note_hashes_in_tx = BoundedVec::from_array([\n random(), random(), random(), random(), random(), random(), random(),\n ]);\n unique_note_hashes_in_tx.set(note_index_in_tx, note_and_data.unique_note_hash);\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n BoundedVec::from_array(note_and_data.note.pack()),\n );\n\n assert_eq(discovered_notes.len(), 1);\n let discovered_note = discovered_notes.get(0);\n\n assert_eq(discovered_note.note_nonce, note_and_data.note_nonce);\n assert_eq(discovered_note.note_hash, note_and_data.note_hash);\n assert_eq(discovered_note.inner_nullifier, note_and_data.inner_nullifier);\n }\n\n #[test]\n unconstrained fn multiple_notes_same_preimage() {\n let first_note_index_in_tx = 3;\n let first_note_and_data = construct_note(VALUE, first_note_index_in_tx);\n\n let second_note_index_in_tx = 5;\n let second_note_and_data = construct_note(VALUE, second_note_index_in_tx);\n\n // Both notes have the same preimage (and therefore packed representation), so both should be found in the same\n // call.\n assert_eq(first_note_and_data.note, second_note_and_data.note);\n let packed_note = first_note_and_data.note.pack();\n\n let mut unique_note_hashes_in_tx = BoundedVec::from_array([\n random(), random(), random(), random(), random(), random(), random(),\n ]);\n unique_note_hashes_in_tx.set(first_note_index_in_tx, first_note_and_data.unique_note_hash);\n unique_note_hashes_in_tx.set(second_note_index_in_tx, second_note_and_data.unique_note_hash);\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n BoundedVec::from_array(packed_note),\n );\n\n assert_eq(discovered_notes.len(), 2);\n\n assert(discovered_notes.any(|discovered_note| {\n (discovered_note.note_nonce == first_note_and_data.note_nonce)\n & (discovered_note.note_hash == first_note_and_data.note_hash)\n & (discovered_note.inner_nullifier == first_note_and_data.inner_nullifier)\n }));\n\n assert(discovered_notes.any(|discovered_note| {\n (discovered_note.note_nonce == second_note_and_data.note_nonce)\n & (discovered_note.note_hash == second_note_and_data.note_hash)\n & (discovered_note.inner_nullifier == second_note_and_data.inner_nullifier)\n }));\n }\n}\n"
4466
4456
  },
4467
4457
  "126": {
4468
4458
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/discovery/partial_notes.nr",
@@ -4502,7 +4492,7 @@
4502
4492
  },
4503
4493
  "149": {
4504
4494
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/processing/mod.nr",
4505
- "source": "pub(crate) mod event_validation_request;\n\nmod message_context;\npub use message_context::MessageContext;\n\npub(crate) mod note_validation_request;\npub(crate) mod log_retrieval_request;\npub(crate) mod log_retrieval_response;\npub(crate) mod pending_tagged_log;\n\nuse crate::{\n capsules::CapsuleArray,\n event::EventSelector,\n messages::{\n discovery::partial_notes::DeliveredPendingPartialNote,\n logs::{event::MAX_EVENT_SERIALIZED_LEN, note::MAX_NOTE_PACKED_LEN},\n processing::{\n log_retrieval_request::LogRetrievalRequest, log_retrieval_response::LogRetrievalResponse,\n note_validation_request::NoteValidationRequest, pending_tagged_log::PendingTaggedLog,\n },\n },\n oracle,\n};\nuse crate::protocol::{address::AztecAddress, hash::sha256_to_field};\nuse event_validation_request::EventValidationRequest;\n\n// Base slot for the pending tagged log array to which the fetch_tagged_logs oracle inserts found private logs.\nglobal PENDING_TAGGED_LOG_ARRAY_BASE_SLOT: Field =\n sha256_to_field(\"AZTEC_NR::PENDING_TAGGED_LOG_ARRAY_BASE_SLOT\".as_bytes());\n\nglobal NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\n/// Searches for private logs emitted by `contract_address` that might contain messages for one of the local accounts,\n/// and stores them in a `CapsuleArray` which is then returned.\npub(crate) unconstrained fn get_private_logs(contract_address: AztecAddress) -> CapsuleArray<PendingTaggedLog> {\n // We will eventually perform log discovery via tagging here, but for now we simply call the `fetchTaggedLogs`\n // oracle. This makes PXE synchronize tags, download logs and store the pending tagged logs in a capsule array.\n oracle::message_processing::fetch_tagged_logs(PENDING_TAGGED_LOG_ARRAY_BASE_SLOT);\n\n CapsuleArray::at(contract_address, PENDING_TAGGED_LOG_ARRAY_BASE_SLOT)\n}\n\n/// Enqueues a note for validation by PXE, so that it becomes aware of a note's existence allowing for later retrieval\n/// via `get_notes` oracle. The note will be scoped to `contract_address`, meaning other contracts will not be able to\n/// access it unless authorized.\n///\n/// In order for the note validation and insertion to occur, `validate_and_store_enqueued_notes_and_events` must be\n/// later called. For optimal performance, accumulate as many note validation requests as possible and then validate\n/// them all at the end (which results in PXE minimizing the number of network round-trips).\n///\n/// The `packed_note` is what `getNotes` will later return. PXE indexes notes by `storage_slot`, so this value is\n/// typically used to filter notes that correspond to different state variables. `note_hash` and `nullifier` are the\n/// inner hashes, i.e. the raw hashes returned by `NoteHash::compute_note_hash` and `NoteHash::compute_nullifier`. PXE\n/// will verify that the siloed unique note hash was inserted into the tree at `tx_hash`, and will store the nullifier\n/// to later check for nullification.\n///\n/// `owner` is the address used in note hash and nullifier computation, often requiring knowledge of their nullifier\n/// secret key.\n///\n/// `recipient` is the account to which the note message was delivered (i.e. the address the message was encrypted to).\n/// This determines which PXE account can see the note - other accounts will not be able to access it (e.g. other\n/// accounts will not be able to see one another's token balance notes, even in the same PXE) unless authorized. In\n/// most cases `recipient` equals `owner`, but they can differ in scenarios like delegated discovery.\npub(crate) unconstrained fn enqueue_note_for_validation(\n contract_address: AztecAddress,\n owner: AztecAddress,\n storage_slot: Field,\n randomness: Field,\n note_nonce: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n note_hash: Field,\n nullifier: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) {\n // We store requests in a `CapsuleArray`, which PXE will later read from and deserialize into its version of the\n // Noir `NoteValidationRequest`\n CapsuleArray::at(contract_address, NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT).push(\n NoteValidationRequest {\n contract_address,\n owner,\n storage_slot,\n randomness,\n note_nonce,\n packed_note,\n note_hash,\n nullifier,\n tx_hash,\n recipient,\n },\n )\n}\n\n/// Enqueues an event for validation by PXE, so that it can be efficiently validated and then inserted into the event\n/// store.\n///\n/// In order for the event validation and insertion to occur, `validate_and_store_enqueued_notes_and_events` must be\n/// later called. For optimal performance, accumulate as many event validation requests as possible and then validate\n/// them all at the end (which results in PXE minimizing the number of network round-trips).\npub(crate) unconstrained fn enqueue_event_for_validation(\n contract_address: AztecAddress,\n event_type_id: EventSelector,\n randomness: Field,\n serialized_event: BoundedVec<Field, MAX_EVENT_SERIALIZED_LEN>,\n event_commitment: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) {\n // We store requests in a `CapsuleArray`, which PXE will later read from and deserialize into its version of the\n // Noir `EventValidationRequest`\n CapsuleArray::at(contract_address, EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT).push(\n EventValidationRequest {\n contract_address,\n event_type_id,\n randomness,\n serialized_event,\n event_commitment,\n tx_hash,\n recipient,\n },\n )\n}\n\n/// Validates all note and event validation requests enqueued via `enqueue_note_for_validation` and\n/// `enqueue_event_for_validation`, inserting them into the note database and event store respectively, making them\n/// queryable via `get_notes` oracle and our TS API (PXE::getPrivateEvents).\n///\n/// This automatically clears both validation request queues, so no further work needs to be done by the caller.\npub unconstrained fn validate_and_store_enqueued_notes_and_events(contract_address: AztecAddress) {\n oracle::message_processing::validate_and_store_enqueued_notes_and_events(\n contract_address,\n NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT,\n EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT,\n );\n}\n\n/// Efficiently queries the node for logs that result in the completion of all `DeliveredPendingPartialNote`s stored in\n/// a `CapsuleArray` by performing all node communication concurrently. Returns a second `CapsuleArray` with Options\n/// for the responses that correspond to the pending partial notes at the same index.\n///\n/// For example, given an array with pending partial notes `[ p1, p2, p3 ]`, where `p1` and `p3` have corresponding\n/// completion logs but `p2` does not, the returned `CapsuleArray` will have contents `[some(p1_log), none(),\n/// some(p3_log)]`.\npub(crate) unconstrained fn get_pending_partial_notes_completion_logs(\n contract_address: AztecAddress,\n pending_partial_notes: CapsuleArray<DeliveredPendingPartialNote>,\n) -> CapsuleArray<Option<LogRetrievalResponse>> {\n let log_retrieval_requests = CapsuleArray::at(contract_address, LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT);\n\n // We create a LogRetrievalRequest for each PendingPartialNote in the CapsuleArray. Because we need the indices in\n // the request array to match the indices in the partial note array, we can't use CapsuleArray::for_each, as that\n // function has arbitrary iteration order. Instead, we manually iterate the array from the beginning and push into\n // the requests array, which we expect to be empty.\n let mut i = 0;\n let pending_partial_notes_count = pending_partial_notes.len();\n while i < pending_partial_notes_count {\n let pending_partial_note = pending_partial_notes.get(i);\n log_retrieval_requests.push(\n LogRetrievalRequest { contract_address, unsiloed_tag: pending_partial_note.note_completion_log_tag },\n );\n i += 1;\n }\n\n oracle::message_processing::bulk_retrieve_logs(\n contract_address,\n LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT,\n LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT,\n );\n\n CapsuleArray::at(contract_address, LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT)\n}\n"
4495
+ "source": "pub(crate) mod event_validation_request;\n\nmod message_context;\npub use message_context::MessageContext;\n\npub(crate) mod note_validation_request;\npub(crate) mod log_retrieval_request;\npub(crate) mod log_retrieval_response;\npub(crate) mod pending_tagged_log;\n\nuse crate::{\n capsules::CapsuleArray,\n event::EventSelector,\n messages::{\n discovery::partial_notes::DeliveredPendingPartialNote,\n logs::{event::MAX_EVENT_SERIALIZED_LEN, note::MAX_NOTE_PACKED_LEN},\n processing::{\n log_retrieval_request::LogRetrievalRequest, log_retrieval_response::LogRetrievalResponse,\n note_validation_request::NoteValidationRequest, pending_tagged_log::PendingTaggedLog,\n },\n },\n oracle,\n};\nuse crate::protocol::{address::AztecAddress, hash::sha256_to_field};\nuse event_validation_request::EventValidationRequest;\n\n// Base slot for the pending tagged log array to which the fetch_tagged_logs oracle inserts found private logs.\nglobal PENDING_TAGGED_LOG_ARRAY_BASE_SLOT: Field =\n sha256_to_field(\"AZTEC_NR::PENDING_TAGGED_LOG_ARRAY_BASE_SLOT\".as_bytes());\n\nglobal NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\n/// Searches for private logs emitted by `contract_address` that might contain messages for one of the local accounts,\n/// and stores them in a `CapsuleArray` which is then returned.\npub(crate) unconstrained fn get_private_logs(contract_address: AztecAddress) -> CapsuleArray<PendingTaggedLog> {\n // We will eventually perform log discovery via tagging here, but for now we simply call the `fetchTaggedLogs`\n // oracle. This makes PXE synchronize tags, download logs and store the pending tagged logs in a capsule array.\n oracle::message_processing::fetch_tagged_logs(PENDING_TAGGED_LOG_ARRAY_BASE_SLOT);\n\n CapsuleArray::at(contract_address, PENDING_TAGGED_LOG_ARRAY_BASE_SLOT)\n}\n\n/// Enqueues a note for validation by PXE, so that it becomes aware of a note's existence allowing for later retrieval\n/// via `get_notes` oracle. The note will be scoped to `contract_address`, meaning other contracts will not be able to\n/// access it unless authorized.\n///\n/// In order for the note validation and insertion to occur, `validate_and_store_enqueued_notes_and_events` must be\n/// later called. For optimal performance, accumulate as many note validation requests as possible and then validate\n/// them all at the end (which results in PXE minimizing the number of network round-trips).\n///\n/// The `packed_note` is what `getNotes` will later return. PXE indexes notes by `storage_slot`, so this value is\n/// typically used to filter notes that correspond to different state variables. `note_hash` and `nullifier` are the\n/// inner hashes, i.e. the raw hashes returned by `NoteHash::compute_note_hash` and `NoteHash::compute_nullifier`. PXE\n/// will verify that the siloed unique note hash was inserted into the tree at `tx_hash`, and will store the nullifier\n/// to later check for nullification.\n///\n/// `owner` is the address used in note hash and nullifier computation, often requiring knowledge of their nullifier\n/// secret key.\n///\n/// `recipient` is the account to which the note message was delivered (i.e. the address the message was encrypted to).\n/// This determines which PXE account can see the note - other accounts will not be able to access it (e.g. other\n/// accounts will not be able to see one another's token balance notes, even in the same PXE) unless authorized. In\n/// most cases `recipient` equals `owner`, but they can differ in scenarios like delegated discovery.\npub(crate) unconstrained fn enqueue_note_for_validation(\n contract_address: AztecAddress,\n owner: AztecAddress,\n storage_slot: Field,\n randomness: Field,\n note_nonce: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n note_hash: Field,\n nullifier: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) {\n // We store requests in a `CapsuleArray`, which PXE will later read from and deserialize into its version of the\n // Noir `NoteValidationRequest`\n CapsuleArray::at(contract_address, NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT).push(\n NoteValidationRequest {\n contract_address,\n owner,\n storage_slot,\n randomness,\n note_nonce,\n packed_note,\n note_hash,\n nullifier,\n tx_hash,\n recipient,\n },\n )\n}\n\n/// Enqueues an event for validation by PXE, so that it can be efficiently validated and then inserted into the event\n/// store.\n///\n/// In order for the event validation and insertion to occur, `validate_and_store_enqueued_notes_and_events` must be\n/// later called. For optimal performance, accumulate as many event validation requests as possible and then validate\n/// them all at the end (which results in PXE minimizing the number of network round-trips).\npub(crate) unconstrained fn enqueue_event_for_validation(\n contract_address: AztecAddress,\n event_type_id: EventSelector,\n randomness: Field,\n serialized_event: BoundedVec<Field, MAX_EVENT_SERIALIZED_LEN>,\n event_commitment: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) {\n // We store requests in a `CapsuleArray`, which PXE will later read from and deserialize into its version of the\n // Noir `EventValidationRequest`\n CapsuleArray::at(contract_address, EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT).push(\n EventValidationRequest {\n contract_address,\n event_type_id,\n randomness,\n serialized_event,\n event_commitment,\n tx_hash,\n recipient,\n },\n )\n}\n\n/// Validates all note and event validation requests enqueued via `enqueue_note_for_validation` and\n/// `enqueue_event_for_validation`, inserting them into the note database and event store respectively, making them\n/// queryable via `get_notes` oracle and our TS API (PXE::getPrivateEvents).\n///\n/// This automatically clears both validation request queues, so no further work needs to be done by the caller.\npub(crate) unconstrained fn validate_and_store_enqueued_notes_and_events(contract_address: AztecAddress) {\n oracle::message_processing::validate_and_store_enqueued_notes_and_events(\n contract_address,\n NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT,\n EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT,\n );\n}\n\n/// Efficiently queries the node for logs that result in the completion of all `DeliveredPendingPartialNote`s stored in\n/// a `CapsuleArray` by performing all node communication concurrently. Returns a second `CapsuleArray` with Options\n/// for the responses that correspond to the pending partial notes at the same index.\n///\n/// For example, given an array with pending partial notes `[ p1, p2, p3 ]`, where `p1` and `p3` have corresponding\n/// completion logs but `p2` does not, the returned `CapsuleArray` will have contents `[some(p1_log), none(),\n/// some(p3_log)]`.\npub(crate) unconstrained fn get_pending_partial_notes_completion_logs(\n contract_address: AztecAddress,\n pending_partial_notes: CapsuleArray<DeliveredPendingPartialNote>,\n) -> CapsuleArray<Option<LogRetrievalResponse>> {\n let log_retrieval_requests = CapsuleArray::at(contract_address, LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT);\n\n // We create a LogRetrievalRequest for each PendingPartialNote in the CapsuleArray. Because we need the indices in\n // the request array to match the indices in the partial note array, we can't use CapsuleArray::for_each, as that\n // function has arbitrary iteration order. Instead, we manually iterate the array from the beginning and push into\n // the requests array, which we expect to be empty.\n let mut i = 0;\n let pending_partial_notes_count = pending_partial_notes.len();\n while i < pending_partial_notes_count {\n let pending_partial_note = pending_partial_notes.get(i);\n log_retrieval_requests.push(\n LogRetrievalRequest { contract_address, unsiloed_tag: pending_partial_note.note_completion_log_tag },\n );\n i += 1;\n }\n\n oracle::message_processing::bulk_retrieve_logs(\n contract_address,\n LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT,\n LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT,\n );\n\n CapsuleArray::at(contract_address, LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT)\n}\n"
4506
4496
  },
4507
4497
  "16": {
4508
4498
  "path": "std/embedded_curve_ops.nr",
@@ -4562,33 +4552,33 @@
4562
4552
  },
4563
4553
  "193": {
4564
4554
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/version.nr",
4565
- "source": "/// The ORACLE_VERSION constant is used to check that the oracle interface is in sync between PXE and Aztec.nr. We need\n/// to version the oracle interface to ensure that developers get a reasonable error message if they use incompatible\n/// versions of Aztec.nr and PXE. The TypeScript counterpart is in `oracle_version.ts`.\n///\n/// @dev Whenever a contract function or Noir test is run, the `utilityAssertCompatibleOracleVersion` oracle is called\n/// and if the oracle version is incompatible an error is thrown.\npub global ORACLE_VERSION: Field = 11;\n\n/// Asserts that the version of the oracle is compatible with the version expected by the contract.\npub fn assert_compatible_oracle_version() {\n // Safety: This oracle call returns nothing: we only call it to check Aztec.nr and Oracle interface versions are\n // compatible. It is therefore always safe to call.\n unsafe {\n assert_compatible_oracle_version_wrapper();\n }\n}\n\nunconstrained fn assert_compatible_oracle_version_wrapper() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION);\n}\n\n#[oracle(utilityAssertCompatibleOracleVersion)]\nunconstrained fn assert_compatible_oracle_version_oracle(version: Field) {}\n\nmod test {\n use super::{assert_compatible_oracle_version_oracle, ORACLE_VERSION};\n\n #[test]\n unconstrained fn compatible_oracle_version() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION);\n }\n\n #[test(should_fail_with = \"Incompatible oracle version. TXE is using version\")]\n unconstrained fn incompatible_oracle_version() {\n let arbitrary_incorrect_version = 318183437;\n assert_compatible_oracle_version_oracle(arbitrary_incorrect_version);\n }\n}\n"
4555
+ "source": "/// The ORACLE_VERSION constant is used to check that the oracle interface is in sync between PXE and Aztec.nr. We need\n/// to version the oracle interface to ensure that developers get a reasonable error message if they use incompatible\n/// versions of Aztec.nr and PXE. The TypeScript counterpart is in `oracle_version.ts`.\n///\n/// @dev Whenever a contract function or Noir test is run, the `utilityAssertCompatibleOracleVersion` oracle is called\n/// and if the oracle version is incompatible an error is thrown.\npub global ORACLE_VERSION: Field = 10;\n\n/// Asserts that the version of the oracle is compatible with the version expected by the contract.\npub fn assert_compatible_oracle_version() {\n // Safety: This oracle call returns nothing: we only call it to check Aztec.nr and Oracle interface versions are\n // compatible. It is therefore always safe to call.\n unsafe {\n assert_compatible_oracle_version_wrapper();\n }\n}\n\nunconstrained fn assert_compatible_oracle_version_wrapper() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION);\n}\n\n#[oracle(utilityAssertCompatibleOracleVersion)]\nunconstrained fn assert_compatible_oracle_version_oracle(version: Field) {}\n\nmod test {\n use super::{assert_compatible_oracle_version_oracle, ORACLE_VERSION};\n\n #[test]\n unconstrained fn compatible_oracle_version() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION);\n }\n\n #[test(should_fail_with = \"Incompatible oracle version. TXE is using version\")]\n unconstrained fn incompatible_oracle_version() {\n let arbitrary_incorrect_version = 318183437;\n assert_compatible_oracle_version_oracle(arbitrary_incorrect_version);\n }\n}\n"
4566
4556
  },
4567
- "239": {
4557
+ "238": {
4568
4558
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/append.nr",
4569
4559
  "source": "/// Appends the elements of the second `BoundedVec` to the end of the first one. The resulting `BoundedVec` can have\n/// any arbitrary maximum length, but it must be large enough to fit all of the elements of both the first and second\n/// vectors.\npub fn append<T, let ALen: u32, let BLen: u32, let DstLen: u32>(\n a: BoundedVec<T, ALen>,\n b: BoundedVec<T, BLen>,\n) -> BoundedVec<T, DstLen> {\n let mut dst = BoundedVec::new();\n\n dst.extend_from_bounded_vec(a);\n dst.extend_from_bounded_vec(b);\n\n dst\n}\n\nmod test {\n use super::append;\n\n #[test]\n unconstrained fn append_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::new();\n let b: BoundedVec<_, 14> = BoundedVec::new();\n\n let result: BoundedVec<Field, 5> = append(a, b);\n\n assert_eq(result.len(), 0);\n assert_eq(result.storage(), std::mem::zeroed());\n }\n\n #[test]\n unconstrained fn append_non_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let result: BoundedVec<Field, 8> = append(a, b);\n\n assert_eq(result.len(), 6);\n assert_eq(result.storage(), [1, 2, 3, 4, 5, 6, std::mem::zeroed(), std::mem::zeroed()]);\n }\n\n #[test(should_fail_with = \"out of bounds\")]\n unconstrained fn append_non_empty_vecs_insufficient_max_len() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let _: BoundedVec<Field, 5> = append(a, b);\n }\n}\n"
4570
4560
  },
4571
- "242": {
4561
+ "241": {
4572
4562
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
4573
4563
  "source": "/// Returns `DstLen` elements from a source array, starting at `offset`. `DstLen` must not be larger than the number of\n/// elements past `offset`.\n///\n/// Examples:\n/// ```\n/// let foo: [Field; 2] = subarray([1, 2, 3, 4, 5], 2);\n/// assert_eq(foo, [3, 4]);\n///\n/// let bar: [Field; 5] = subarray([1, 2, 3, 4, 5], 2); // fails - we can't return 5 elements since only 3 remain\n/// ```\npub fn subarray<T, let SrcLen: u32, let DstLen: u32>(src: [T; SrcLen], offset: u32) -> [T; DstLen] {\n assert(offset + DstLen <= SrcLen, \"DstLen too large for offset\");\n\n let mut dst: [T; DstLen] = std::mem::zeroed();\n for i in 0..DstLen {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\nmod test {\n use super::subarray;\n\n #[test]\n unconstrained fn subarray_into_empty() {\n // In all of these cases we're setting DstLen to be 0, so we always get back an empty array.\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 2), []);\n }\n\n #[test]\n unconstrained fn subarray_complete() {\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), [1, 2, 3, 4, 5]);\n }\n\n #[test]\n unconstrained fn subarray_different_end_sizes() {\n // We implicitly select how many values to read in the size of the return array\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4, 5]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2]);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subarray_offset_too_large() {\n // With an offset of 1 we can only request up to 4 elements\n let _: [_; 5] = subarray([1, 2, 3, 4, 5], 1);\n }\n\n #[test(should_fail)]\n unconstrained fn subarray_bad_return_value() {\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [3, 3, 4, 5]);\n }\n}\n"
4574
4564
  },
4575
- "243": {
4565
+ "242": {
4576
4566
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subbvec.nr",
4577
4567
  "source": "use crate::utils::array;\n\n/// Returns `DstMaxLen` elements from a source BoundedVec, starting at `offset`. `offset` must not be larger than the\n/// original length, and `DstLen` must not be larger than the total number of elements past `offset` (including the\n/// zeroed elements past `len()`).\n///\n/// Only elements at the beginning of the vector can be removed: it is not possible to also remove elements at the end\n/// of the vector by passing a value for `DstLen` that is smaller than `len() - offset`.\n///\n/// Examples:\n/// ```\n/// let foo = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n/// assert_eq(subbvec(foo, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n///\n/// let bar: BoundedVec<_, 1> = subbvec(foo, 2); // fails - we can't return just 1 element since 3 remain\n/// let baz: BoundedVec<_, 10> = subbvec(foo, 3); // fails - we can't return 10 elements since only 7 remain\n/// ```\npub fn subbvec<T, let SrcMaxLen: u32, let DstMaxLen: u32>(\n bvec: BoundedVec<T, SrcMaxLen>,\n offset: u32,\n) -> BoundedVec<T, DstMaxLen> {\n // from_parts_unchecked does not verify that the elements past len are zeroed, but that is not an issue in our case\n // because we're constructing the new storage array as a subarray of the original one (which should have zeroed\n // storage past len), guaranteeing correctness. This is because `subarray` does not allow extending arrays past\n // their original length.\n BoundedVec::from_parts_unchecked(array::subarray(bvec.storage(), offset), bvec.len() - offset)\n}\n\nmod test {\n use super::subbvec;\n\n #[test]\n unconstrained fn subbvec_empty() {\n let bvec = BoundedVec::<Field, 0>::from_array([]);\n assert_eq(subbvec(bvec, 0), bvec);\n }\n\n #[test]\n unconstrained fn subbvec_complete() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), bvec);\n\n let smaller_capacity = BoundedVec::<_, 5>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), smaller_capacity);\n }\n\n #[test]\n unconstrained fn subbvec_partial() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 3>::from_array([3, 4, 5]));\n }\n\n #[test]\n unconstrained fn subbvec_into_empty() {\n let bvec: BoundedVec<_, 10> = BoundedVec::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 5), BoundedVec::<_, 5>::from_array([]));\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_offset_past_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n let _: BoundedVec<_, 1> = subbvec(bvec, 6);\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_insufficient_dst_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // We're not providing enough space to hold all of the items inside the original BoundedVec. subbvec can cause\n // for the capacity to reduce, but not the length (other than by len - offset).\n let _: BoundedVec<_, 1> = subbvec(bvec, 2);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subbvec_dst_len_causes_enlarge() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // subbvec does not support capacity increases\n let _: BoundedVec<_, 11> = subbvec(bvec, 0);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subbvec_dst_len_too_large_for_offset() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // This effectively requests a capacity increase, since there'd be just one element plus the 5 empty slots,\n // which is less than 7.\n let _: BoundedVec<_, 7> = subbvec(bvec, 4);\n }\n}\n"
4578
4568
  },
4579
- "246": {
4569
+ "245": {
4580
4570
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/bytes_to_fields.nr",
4581
4571
  "source": "use std::static_assert;\n\n// These functions are used to facilitate the conversion of log ciphertext between byte and field representations.\n//\n// `bytes_to_fields` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `bytes_from_fields` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between bytes and fields when processing encrypted logs.\n\n/// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 whole\n/// bytes. Use `bytes_from_fields` to obtain the original bytes array.\n///\n/// The input bytes are chunked into chunks of 31 bytes. Each 31-byte chunk is viewed as big-endian, and is converted\n/// into a Field. For example, [1, 10, 3, ..., 0] (31 bytes) is encoded as [1 * 256^30 + 10 * 256^29 + 3 * 256^28 + ...\n/// + 0] Note: N must be a multiple of 31 bytes\npub fn bytes_to_fields<let N: u32>(bytes: [u8; N]) -> [Field; N / 31] {\n // Assert that N is a multiple of 31\n static_assert(N % 31 == 0, \"N must be a multiple of 31\");\n\n let mut fields = [0; N / 31];\n\n // Since N is a multiple of 31, we can simply process all chunks fully\n for i in 0..N / 31 {\n let mut field = 0;\n for j in 0..31 {\n // Shift the existing value left by 8 bits and add the new byte\n field = field * 256 + bytes[i * 31 + j] as Field;\n }\n fields[i] = field;\n }\n\n fields\n}\n\n/// Converts an input BoundedVec of fields into a BoundedVec of bytes in big-endian order. Arbitrary Field arrays are\n/// not allowed: this is assumed to be an array obtained via `bytes_to_fields`, i.e. one that actually represents\n/// bytes. To convert a Field array into bytes, use `fields_to_bytes`.\n///\n/// Each input field must contain at most 31 bytes (this is constrained to be so). Each field is converted into 31\n/// big-endian bytes, and the resulting 31-byte chunks are concatenated back together in the order of the original\n/// fields.\npub fn bytes_from_fields<let N: u32>(fields: BoundedVec<Field, N>) -> BoundedVec<u8, N * 31> {\n let mut bytes = BoundedVec::new();\n\n for i in 0..fields.len() {\n let field = fields.get(i);\n\n // We expect that the field contains at most 31 bytes of information.\n field.assert_max_bit_size::<248>();\n\n // Now we can safely convert the field to 31 bytes.\n let field_as_bytes: [u8; 31] = field.to_be_bytes();\n\n for j in 0..31 {\n bytes.push(field_as_bytes[j]);\n }\n }\n\n bytes\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{bytes_from_fields, bytes_to_fields};\n\n #[test]\n unconstrained fn random_bytes_to_fields_and_back(input: [u8; 93]) {\n let fields = bytes_to_fields(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end. So\n // we need to convert the field array to a BoundedVec to be able to feed it to the `bytes_from_fields`\n // function.\n let fields_as_bounded_vec = BoundedVec::<_, 6>::from_array(fields);\n\n let bytes_back = bytes_from_fields(fields_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(bytes_back.len(), input.len());\n assert_eq(subarray(bytes_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"N must be a multiple of 31\")]\n unconstrained fn bytes_to_fields_input_length_not_multiple_of_31() {\n // Try to convert 32 bytes (not a multiple of 31) to fields\n let _fields = bytes_to_fields([0; 32]);\n }\n\n}\n"
4582
4572
  },
4583
- "247": {
4573
+ "246": {
4584
4574
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/fields_to_bytes.nr",
4585
4575
  "source": "// These functions are used to facilitate the conversion of log plaintext represented as fields into bytes and back.\n//\n// `fields_to_bytes` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `fields_from_bytes` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between fields and bytes.\n\n/// Converts an input array of fields into a single array of bytes. Use `fields_from_bytes` to obtain the original\n/// field array. Each field is converted to a 32-byte big-endian array.\n///\n/// For example, if you have a field array [123, 456], it will be converted to a 64-byte array:\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,0,0,123, // First field (32 bytes)\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,0,1,200] // Second field (32 bytes)\n///\n/// Since a field is ~254 bits, you'll end up with a subtle 2-bit \"gap\" at the big end, every 32 bytes. Be careful that\n/// such a gap doesn't leak information! This could happen if you for example expected the output to be\n/// indistinguishable from random bytes.\npub fn fields_to_bytes<let N: u32>(fields: [Field; N]) -> [u8; 32 * N] {\n let mut bytes = [0; 32 * N];\n\n for i in 0..N {\n let field_as_bytes: [u8; 32] = fields[i].to_be_bytes();\n\n for j in 0..32 {\n bytes[i * 32 + j] = field_as_bytes[j];\n }\n }\n\n bytes\n}\n\n/// Converts an input BoundedVec of bytes into a BoundedVec of fields. Arbitrary byte arrays are not allowed: this is\n/// assumed to be an array obtained via `fields_to_bytes`, i.e. one that actually represents fields. To convert a byte\n/// array into Fields, use `bytes_to_fields`.\n///\n/// The input bytes are chunked into chunks of 32 bytes. Each 32-byte chunk is viewed as big-endian, and is converted\n/// into a Field. For example, [1, 10, 3, ..., 0] (32 bytes) is encoded as [1 * 256^31 + 10 * 256^30 + 3 * 256^29 + ...\n/// + 0] Note 1: N must be a multiple of 32 bytes Note 2: The max value check code was taken from\n/// std::field::to_be_bytes function.\npub fn fields_from_bytes<let N: u32>(bytes: BoundedVec<u8, N>) -> BoundedVec<Field, N / 32> {\n // Assert that input length is a multiple of 32\n assert(bytes.len() % 32 == 0, \"Input length must be a multiple of 32\");\n\n let mut fields = BoundedVec::new();\n\n let p = std::field::modulus_be_bytes();\n\n // Since input length is a multiple of 32, we can simply process all chunks fully\n for i in 0..bytes.len() / 32 {\n let mut field = 0;\n\n // Process each byte in the 32-byte chunk\n let mut ok = false;\n\n for j in 0..32 {\n let next_byte = bytes.get(i * 32 + j);\n field = field * 256 + next_byte as Field;\n\n if !ok {\n if next_byte != p[j] {\n assert(next_byte < p[j], \"Value does not fit in field\");\n ok = true;\n }\n }\n }\n assert(ok, \"Value does not fit in field\");\n\n fields.push(field);\n }\n\n fields\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{fields_from_bytes, fields_to_bytes};\n\n #[test]\n unconstrained fn random_fields_to_bytes_and_back(input: [Field; 3]) {\n // Convert to bytes\n let bytes = fields_to_bytes(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end. So\n // we need to convert the field array to a BoundedVec to be able to feed it to the `fields_from_bytes`\n // function. 113 is an arbitrary max length that is larger than the input length of 96.\n let bytes_as_bounded_vec = BoundedVec::<_, 113>::from_array(bytes);\n\n // Convert back to fields\n let fields_back = fields_from_bytes(bytes_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(fields_back.len(), input.len());\n assert_eq(subarray(fields_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"Input length must be a multiple of 32\")]\n unconstrained fn to_fields_assert() {\n // 143 is an arbitrary max length that is larger than 33\n let input = BoundedVec::<_, 143>::from_array([\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,\n 30, 31, 32, 33,\n ]);\n\n // This should fail since 33 is not a multiple of 32\n let _fields = fields_from_bytes(input);\n }\n\n #[test]\n unconstrained fn fields_from_bytes_max_value() {\n let max_field_as_bytes: [u8; 32] = (-1).to_be_bytes();\n let input = BoundedVec::<_, 32>::from_array(max_field_as_bytes);\n\n let fields = fields_from_bytes(input);\n\n // The result should be a largest value storable in a field (-1 since we are modulo-ing)\n assert_eq(fields.get(0), -1);\n }\n\n // In this test we verify that overflow check works by taking the max allowed value, bumping a random byte and then\n // feeding it to `fields_from_bytes` as input.\n #[test(should_fail_with = \"Value does not fit in field\")]\n unconstrained fn fields_from_bytes_overflow(random_value: u8) {\n let index_of_byte_to_bump = random_value % 32;\n\n // Obtain the byte representation of the maximum field value\n let max_field_value_as_bytes: [u8; 32] = (-1).to_be_bytes();\n\n let byte_to_bump = max_field_value_as_bytes[index_of_byte_to_bump as u32];\n\n // Skip test execution if the selected byte is already at maximum value (255). This is acceptable since we are\n // using fuzz testing to generate many test cases.\n if byte_to_bump != 255 {\n let mut input = BoundedVec::<_, 32>::from_array(max_field_value_as_bytes);\n\n // Increment the selected byte to exceed the field's maximum value\n input.set(index_of_byte_to_bump as u32, byte_to_bump + 1);\n\n // Attempt the conversion, which should fail due to the value exceeding the field's capacity\n let _fields = fields_from_bytes(input);\n }\n }\n\n}\n"
4586
4576
  },
4587
- "250": {
4577
+ "249": {
4588
4578
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/point.nr",
4589
4579
  "source": "use crate::protocol::{point::Point, utils::field::sqrt};\n\n// I am storing the modulus minus 1 divided by 2 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Returns: true if p.y <= MOD_DIV_2, else false.\npub fn get_sign_of_point(p: Point) -> bool {\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get the\n // sign we check if the y coordinate is less or equal than the field's modulus minus 1 divided by 2. Ideally we'd\n // do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is equivalent,\n // and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n !BN254_FR_MODULUS_DIV_2.lt(p.y)\n}\n\n/// Returns a `Point` in the Grumpkin curve given its x coordinate.\n///\n/// Because not all values in the field are valid x coordinates of points in the curve (i.e. there is no corresponding\n/// y value in the field that satisfies the curve equation), it may not be possible to reconstruct a `Point`.\n/// `Option::none()` is returned in such cases.\npub fn point_from_x_coord(x: Field) -> Option<Point> {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n sqrt(rhs).map(|y| Point { x, y, is_infinite: false })\n}\n\n/// Returns a `Point` in the Grumpkin curve given its x coordinate and sign for the y coordinate.\n///\n/// Because not all values in the field are valid x coordinates of points in the curve (i.e. there is no corresponding\n/// y value in the field that satisfies the curve equation), it may not be possible to reconstruct a `Point`.\n/// `Option::none()` is returned in such cases.\n///\n/// @param x - The x coordinate of the point @param sign - The \"sign\" of the y coordinate - determines whether y <=\n/// (Fr.MODULUS - 1) / 2\npub fn point_from_x_coord_and_sign(x: Field, sign: bool) -> Option<Point> {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n\n sqrt(rhs).map(|y| {\n // If there is a square root, we need to ensure it has the correct \"sign\"\n let y_is_positive = !BN254_FR_MODULUS_DIV_2.lt(y);\n let final_y = if y_is_positive == sign { y } else { -y };\n Point { x, y: final_y, is_infinite: false }\n })\n}\n\nmod test {\n use crate::protocol::point::Point;\n use crate::utils::point::{\n BN254_FR_MODULUS_DIV_2, get_sign_of_point, point_from_x_coord, point_from_x_coord_and_sign,\n };\n\n #[test]\n unconstrained fn test_point_from_x_coord_and_sign() {\n // Test positive y coordinate\n let x = 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73;\n let sign = true;\n let p = point_from_x_coord_and_sign(x, sign).unwrap();\n\n assert_eq(p.x, x);\n assert_eq(p.y, 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a);\n assert_eq(p.is_infinite, false);\n\n // Test negative y coordinate\n let x2 = 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5;\n let sign2 = false;\n let p2 = point_from_x_coord_and_sign(x2, sign2).unwrap();\n\n assert_eq(p2.x, x2);\n assert_eq(p2.y, 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0);\n assert_eq(p2.is_infinite, false);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_valid() {\n // x = 8 is a known quadratic residue - should give a valid point\n let result = point_from_x_coord(Field::from(8));\n assert(result.is_some());\n\n let point = result.unwrap();\n assert_eq(point.x, Field::from(8));\n // Check curve equation y^2 = x^3 - 17\n assert_eq(point.y * point.y, point.x * point.x * point.x - 17);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_invalid() {\n // x = 3 is a non-residue for this curve - should give None\n let x = Field::from(3);\n let maybe_point = point_from_x_coord(x);\n assert(maybe_point.is_none());\n }\n\n #[test]\n unconstrained fn test_both_roots_satisfy_curve() {\n // Derive a point from x = 8 (known to be valid from test_point_from_x_coord_valid)\n let x: Field = 8;\n let point = point_from_x_coord(x).unwrap();\n\n // Check y satisfies curve equation\n assert_eq(point.y * point.y, x * x * x - 17);\n\n // Check -y also satisfies curve equation\n let neg_y = 0 - point.y;\n assert_eq(neg_y * neg_y, x * x * x - 17);\n\n // Verify they are different (unless y = 0)\n assert(point.y != neg_y);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_and_sign_invalid() {\n // x = 3 has no valid point on the curve (from test_point_from_x_coord_invalid)\n let x = Field::from(3);\n let result_positive = point_from_x_coord_and_sign(x, true);\n let result_negative = point_from_x_coord_and_sign(x, false);\n\n assert(result_positive.is_none());\n assert(result_negative.is_none());\n }\n\n #[test]\n unconstrained fn test_get_sign_of_point() {\n // Derive a point from x = 8, then test both possible y values\n let point = point_from_x_coord(8).unwrap();\n let neg_point = Point { x: point.x, y: 0 - point.y, is_infinite: false };\n\n // One should be \"positive\" (y <= MOD_DIV_2) and one \"negative\"\n let sign1 = get_sign_of_point(point);\n let sign2 = get_sign_of_point(neg_point);\n assert(sign1 != sign2);\n\n // y = 0 should return true (0 <= MOD_DIV_2)\n let zero_y_point = Point { x: 0, y: 0, is_infinite: false };\n assert(get_sign_of_point(zero_y_point) == true);\n\n // y = MOD_DIV_2 should return true (exactly at boundary)\n let boundary_point = Point { x: 0, y: BN254_FR_MODULUS_DIV_2, is_infinite: false };\n assert(get_sign_of_point(boundary_point) == true);\n\n // y = MOD_DIV_2 + 1 should return false (just over boundary)\n let over_boundary_point = Point { x: 0, y: BN254_FR_MODULUS_DIV_2 + 1, is_infinite: false };\n assert(get_sign_of_point(over_boundary_point) == false);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_zero() {\n // x = 0: y^2 = 0^3 - 17 = -17, which is not a quadratic residue in BN254 scalar field\n let result = point_from_x_coord(0);\n assert(result.is_none());\n }\n\n #[test]\n unconstrained fn test_bn254_fr_modulus_div_2() {\n // Verify that BN254_FR_MODULUS_DIV_2 == (p - 1) / 2 This means: 2 * BN254_FR_MODULUS_DIV_2 + 1 == p == 0 (in\n // the field)\n assert_eq(2 * BN254_FR_MODULUS_DIV_2 + 1, 0);\n }\n\n}\n"
4590
4580
  },
4591
- "261": {
4581
+ "260": {
4592
4582
  "path": "/home/aztec-dev/nargo/github.com/noir-lang/poseidon/v0.2.3/src/poseidon2.nr",
4593
4583
  "source": "use std::default::Default;\nuse std::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 Poseidon2::hash_internal(input, message_size)\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 self.state[0] += self.cache[0];\n self.state[1] += self.cache[1];\n self.state[2] += self.cache[2];\n self.state = crate::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>(input: [Field; N], in_len: u32) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut state = [0; 4];\n state[RATE] = iv;\n\n if std::runtime::is_unconstrained() {\n for i in 0..(in_len / RATE) {\n state[0] += input[i * RATE];\n state[1] += input[i * RATE + 1];\n state[2] += input[i * RATE + 2];\n state = crate::poseidon2_permutation(state, 4);\n }\n\n // handle remaining elements after last full RATE-sized chunk\n let num_extra_fields = in_len % RATE;\n if num_extra_fields != 0 {\n let remainder_start = in_len - num_extra_fields;\n state[0] += input[remainder_start];\n if num_extra_fields > 1 {\n state[1] += input[remainder_start + 1]\n }\n }\n } else {\n let mut states: [[Field; 4]; N / RATE + 1] = [[0; 4]; N / RATE + 1];\n states[0] = state;\n\n // process all full RATE-sized chunks, storing state after each permutation\n for chunk_idx in 0..(N / RATE) {\n for i in 0..RATE {\n state[i] += input[chunk_idx * RATE + i];\n }\n state = crate::poseidon2_permutation(state, 4);\n states[chunk_idx + 1] = state;\n }\n\n // get state at the last full block before in_len\n let first_partially_filled_chunk = in_len / RATE;\n state = states[first_partially_filled_chunk];\n\n // handle remaining elements after last full RATE-sized chunk\n let remainder_start = (in_len / RATE) * RATE;\n for j in 0..RATE {\n let idx = remainder_start + j;\n if idx < in_len {\n state[j] += input[idx];\n }\n }\n }\n\n // always run final permutation unless we just completed a full chunk\n // still need to permute once if in_len is 0\n if (in_len == 0) | (in_len % RATE != 0) {\n state = crate::poseidon2_permutation(state, 4)\n };\n\n state[0]\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"
4594
4584
  },
@@ -4596,47 +4586,47 @@
4596
4586
  "path": "std/array/mod.nr",
4597
4587
  "source": "use crate::cmp::{Eq, Ord};\nuse crate::convert::From;\nuse crate::runtime::is_unconstrained;\n\nmod check_shuffle;\nmod quicksort;\n\nimpl<T, let N: u32> [T; N] {\n /// Returns the length of this array.\n ///\n /// ```noir\n /// fn len(self) -> Field\n /// ```\n ///\n /// example\n ///\n /// ```noir\n /// fn main() {\n /// let array = [42, 42];\n /// assert(array.len() == 2);\n /// }\n /// ```\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n /// Returns this array as a vector.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let vector = array.as_vector();\n /// assert_eq(vector, [1, 2].as_vector());\n /// ```\n #[builtin(as_vector)]\n pub fn as_vector(self) -> [T] {}\n\n /// Returns this array as a vector.\n /// This method is deprecated in favor of `as_vector`.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let vector = array.as_slice();\n /// assert_eq(vector, [1, 2].as_vector());\n /// ```\n #[builtin(as_vector)]\n #[deprecated(\"This method has been renamed to `as_vector`\")]\n pub fn as_slice(self) -> [T] {}\n\n /// Applies a function to each element of this array, returning a new array containing the mapped elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.map(|a| a * 2);\n /// assert_eq(b, [2, 4, 6]);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let uninitialized = crate::mem::zeroed();\n let mut ret = [uninitialized; N];\n\n for i in 0..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of this array along with its index,\n /// returning a new array containing the mapped elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.mapi(|i, a| i + a * 2);\n /// assert_eq(b, [2, 5, 8]);\n /// ```\n pub fn mapi<U, Env>(self, f: fn[Env](u32, T) -> U) -> [U; N] {\n let uninitialized = crate::mem::zeroed();\n let mut ret = [uninitialized; N];\n\n for i in 0..self.len() {\n ret[i] = f(i, self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of this array.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let mut b = [0; 3];\n /// let mut i = 0;\n /// a.for_each(|x| {\n /// b[i] = x;\n /// i += 1;\n /// });\n /// assert_eq(a, b);\n /// ```\n pub fn for_each<Env>(self, f: fn[Env](T) -> ()) {\n for i in 0..self.len() {\n f(self[i]);\n }\n }\n\n /// Applies a function to each element of this array along with its index.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let mut b = [0; 3];\n /// a.for_eachi(|i, x| {\n /// b[i] = x;\n /// });\n /// assert_eq(a, b);\n /// ```\n pub fn for_eachi<Env>(self, f: fn[Env](u32, T) -> ()) {\n for i in 0..self.len() {\n f(i, self[i]);\n }\n }\n\n /// Applies a function to each element of the array, returning the final accumulated value. The first\n /// parameter is the initial value.\n ///\n /// This is a left fold, so the given function will be applied to the accumulator and first element of\n /// the array, then the second, and so on. For a given call the expected result would be equivalent to:\n ///\n /// ```rust\n /// let a1 = [1];\n /// let a2 = [1, 2];\n /// let a3 = [1, 2, 3];\n ///\n /// let f = |a, b| a - b;\n /// a1.fold(10, f); //=> f(10, 1)\n /// a2.fold(10, f); //=> f(f(10, 1), 2)\n /// a3.fold(10, f); //=> f(f(f(10, 1), 2), 3)\n ///\n /// assert_eq(a3.fold(10, f), 10 - 1 - 2 - 3);\n /// ```\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n /// Same as fold, but uses the first element as the starting element.\n ///\n /// Requires the input array to be non-empty.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [1, 2, 3, 4];\n /// let reduced = arr.reduce(|a, b| a + b);\n /// assert(reduced == 10);\n /// }\n /// ```\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n /// Returns true if all the elements in this array satisfy the given predicate.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 2];\n /// let all = arr.all(|a| a == 2);\n /// assert(all);\n /// }\n /// ```\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n /// Returns true if any of the elements in this array satisfy the given predicate.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 5];\n /// let any = arr.any(|a| a == 5);\n /// assert(any);\n /// }\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n\n /// Concatenates this array with another array.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr1 = [1, 2, 3, 4];\n /// let arr2 = [6, 7, 8, 9, 10, 11];\n /// let concatenated_arr = arr1.concat(arr2);\n /// assert(concatenated_arr == [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]);\n /// }\n /// ```\n pub fn concat<let M: u32>(self, array2: [T; M]) -> [T; N + M] {\n let mut result = [crate::mem::zeroed(); N + M];\n for i in 0..N {\n result[i] = self[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n }\n}\n\nimpl<T, let N: u32> [T; N]\nwhere\n T: Ord + Eq,\n{\n /// Returns a new sorted array. The original array remains untouched. Notice that this function will\n /// only work for arrays of fields or integers, not for any arbitrary type. This is because the sorting\n /// logic it uses internally is optimized specifically for these values. If you need a sort function to\n /// sort any type, you should use the [`Self::sort_via`] function.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let arr = [42, 32];\n /// let sorted = arr.sort();\n /// assert(sorted == [32, 42]);\n /// }\n /// ```\n pub fn sort(self) -> Self {\n self.sort_via(|a, b| a <= b)\n }\n}\n\nimpl<T, let N: u32> [T; N]\nwhere\n T: Eq,\n{\n /// Returns a new sorted array by sorting it with a custom comparison function.\n /// The original array remains untouched.\n /// The ordering function must return true if the first argument should be sorted to be before the second argument or is equal to the second argument.\n ///\n /// Using this method with an operator like `<` that does not return `true` for equal values will result in an assertion failure for arrays with equal elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let arr = [42, 32]\n /// let sorted_ascending = arr.sort_via(|a, b| a <= b);\n /// assert(sorted_ascending == [32, 42]); // verifies\n ///\n /// let sorted_descending = arr.sort_via(|a, b| a >= b);\n /// assert(sorted_descending == [32, 42]); // does not verify\n /// }\n /// ```\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n // Safety: `sorted` array is checked to be:\n // a. a permutation of `input`'s elements\n // b. satisfying the predicate `ordering`\n let sorted = unsafe { quicksort::quicksort(self, ordering) };\n\n if !is_unconstrained() {\n for i in 0..N - 1 {\n assert(\n ordering(sorted[i], sorted[i + 1]),\n \"Array has not been sorted correctly according to `ordering`.\",\n );\n }\n check_shuffle::check_shuffle(self, sorted);\n }\n sorted\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Converts a byte array of type `[u8; N]` to a string. Note that this performs no UTF-8 validation -\n /// the given array is interpreted as-is as a string.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let hi = [104, 105].as_str_unchecked();\n /// assert_eq(hi, \"hi\");\n /// }\n /// ```\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n /// Returns an array of the string bytes.\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n\nmod test {\n #[test]\n fn map_empty() {\n assert_eq([].map(|x| x + 1), []);\n }\n\n global arr_with_100_values: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2, 54,\n 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41, 19, 98,\n 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21, 43, 86, 35,\n 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15, 127, 81, 30, 8,\n 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n global expected_with_100_values: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30, 32,\n 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58, 61, 62,\n 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82, 84, 84, 86,\n 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114, 114, 116, 118,\n 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n fn sort_u32(a: u32, b: u32) -> bool {\n a <= b\n }\n\n #[test]\n fn test_sort() {\n let mut arr: [u32; 7] = [3, 6, 8, 10, 1, 2, 1];\n\n let sorted = arr.sort();\n\n let expected: [u32; 7] = [1, 1, 2, 3, 6, 8, 10];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_100_values() {\n let mut arr: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2,\n 54, 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41,\n 19, 98, 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21,\n 43, 86, 35, 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15,\n 127, 81, 30, 8, 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n\n let sorted = arr.sort();\n\n let expected: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30,\n 32, 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58,\n 61, 62, 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82,\n 84, 84, 86, 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114,\n 114, 116, 118, 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_100_values_comptime() {\n let sorted = arr_with_100_values.sort();\n assert(sorted == expected_with_100_values);\n }\n\n #[test]\n fn test_sort_via() {\n let mut arr: [u32; 7] = [3, 6, 8, 10, 1, 2, 1];\n\n let sorted = arr.sort_via(sort_u32);\n\n let expected: [u32; 7] = [1, 1, 2, 3, 6, 8, 10];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_via_100_values() {\n let mut arr: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2,\n 54, 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41,\n 19, 98, 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21,\n 43, 86, 35, 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15,\n 127, 81, 30, 8, 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n\n let sorted = arr.sort_via(sort_u32);\n\n let expected: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30,\n 32, 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58,\n 61, 62, 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82,\n 84, 84, 86, 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114,\n 114, 116, 118, 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n assert(sorted == expected);\n }\n\n #[test]\n fn mapi_empty() {\n assert_eq([].mapi(|i, x| i * x + 1), []);\n }\n\n #[test]\n fn for_each_empty() {\n let empty_array: [Field; 0] = [];\n empty_array.for_each(|_x| assert(false));\n }\n\n #[test]\n fn for_eachi_empty() {\n let empty_array: [Field; 0] = [];\n empty_array.for_eachi(|_i, _x| assert(false));\n }\n\n #[test]\n fn map_example() {\n let a = [1, 2, 3];\n let b = a.map(|a| a * 2);\n assert_eq(b, [2, 4, 6]);\n }\n\n #[test]\n fn mapi_example() {\n let a = [1, 2, 3];\n let b = a.mapi(|i, a| i + a * 2);\n assert_eq(b, [2, 5, 8]);\n }\n\n #[test]\n fn for_each_example() {\n let a = [1, 2, 3];\n let mut b = [0, 0, 0];\n let b_ref = &mut b;\n let mut i = 0;\n let i_ref = &mut i;\n a.for_each(|x| {\n b_ref[*i_ref] = x * 2;\n *i_ref += 1;\n });\n assert_eq(b, [2, 4, 6]);\n assert_eq(i, 3);\n }\n\n #[test]\n fn for_eachi_example() {\n let a = [1, 2, 3];\n let mut b = [0, 0, 0];\n let b_ref = &mut b;\n a.for_eachi(|i, a| { b_ref[i] = i + a * 2; });\n assert_eq(b, [2, 5, 8]);\n }\n\n #[test]\n fn concat() {\n let arr1 = [1, 2, 3, 4];\n let arr2 = [6, 7, 8, 9, 10, 11];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]);\n }\n\n #[test]\n fn concat_zero_length_with_something() {\n let arr1 = [];\n let arr2 = [1];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1]);\n }\n\n #[test]\n fn concat_something_with_zero_length() {\n let arr1 = [1];\n let arr2 = [];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1]);\n }\n\n #[test]\n fn concat_zero_lengths() {\n let arr1: [Field; 0] = [];\n let arr2: [Field; 0] = [];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, []);\n }\n}\n"
4598
4588
  },
4599
- "319": {
4589
+ "318": {
4600
4590
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
4601
4591
  "source": "use crate::{\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{AZTEC_ADDRESS_LENGTH, DOM_SEP__CONTRACT_ADDRESS_V1, MAX_FIELD_VALUE},\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM},\n traits::{Deserialize, Empty, FromField, Packable, Serialize, ToField},\n utils::field::sqrt,\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 embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n ops::Add,\n};\nuse std::meta::derive;\n\n// Aztec address\n#[derive(Deserialize, Eq, Packable, Serialize)]\npub struct AztecAddress {\n pub inner: Field,\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 AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n /// Returns an address's `AddressPoint`, which can be used to create shared secrets with the owner\n /// of the address. If the address is invalid (i.e. it is not a properly derived Aztec address), then this\n /// returns `Option::none()`, and no shared secrets can be created.\n pub fn to_address_point(self) -> Option<AddressPoint> {\n // We compute the address point by taking our address as x, and then solving for y in the\n // equation which defines the grumpkin curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = x * x * x - 17;\n\n // An invalid AztecAddress is one for which no y coordinate satisfies the curve equation, which we'll\n // identify by proving that the square root of y_squared does not exist.\n sqrt(y_squared).map(|y| {\n // If we get a negative y coordinate (y > (r - 1) / 2), we swap it to the\n // positive one (where y <= (r - 1) / 2) by negating it.\n let final_y = if Self::is_positive(y) { y } else { -y };\n\n AddressPoint { inner: Point { x: self.inner, y: final_y, is_infinite: false } }\n })\n }\n\n /// Determines whether a y-coordinate is in the lower (positive) or upper (negative) \"half\" of the field.\n /// I.e.\n /// y <= (r - 1)/2 => positive.\n /// y > (r - 1)/2 => negative.\n /// An AddressPoint always uses the \"positive\" y.\n fn is_positive(y: Field) -> bool {\n // Note: The field modulus r is MAX_FIELD_VALUE + 1.\n let MID = MAX_FIELD_VALUE / 2; // (r - 1) / 2\n let MID_PLUS_1 = MID + 1; // (r - 1)/2 + 1\n // Note: y <= m implies y < m + 1.\n y.lt(MID_PLUS_1)\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n //\n // address = address_point.x\n // |\n // address_point = pre_address * G + Ivpk_m (always choose \"positive\" y-coord)\n // | ^\n // | |.....................\n // pre_address .\n // / \\ .\n // / \\ .\n // partial_address public_keys_hash .\n // / \\ / / \\ \\ .\n // / \\ Npk_m Ivpk_m Ovpk_m Tpk_m .\n // contract_class_id \\ |...................\n // / | \\ \\\n // artifact_hash | public_bytecode_commitment salted_initialization_hash\n // | / / \\\n // private_function_tree_root deployer_address salt initialization_hash\n // / \\ / \\\n // ... ... constructor_fn_selector constructor_args_hash\n // / \\\n // / \\ / \\\n // leaf leaf leaf leaf\n // ^\n // |\n // |---h(function_selector, vk_hash)\n // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n // Each of these represents a private function of the contract.\n\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 DOM_SEP__CONTRACT_ADDRESS_V1,\n );\n\n // Note: `.add()` will fail within the blackbox fn if either of the points are not on the curve. (See tests below).\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 secret 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_class_id(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\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\n#[test]\nfn check_max_field_value() {\n // Check that it is indeed r-1.\n assert_eq(MAX_FIELD_VALUE + 1, 0);\n}\n\n#[test]\nfn check_is_positive() {\n assert(AztecAddress::is_positive(0));\n assert(AztecAddress::is_positive(1));\n assert(!AztecAddress::is_positive(-1));\n assert(AztecAddress::is_positive(MAX_FIELD_VALUE / 2));\n assert(!AztecAddress::is_positive((MAX_FIELD_VALUE / 2) + 1));\n}\n\n// Gives us confidence that we don't need to manually check that the input public keys need to be on the curve for `add`,\n// because the blackbox function does this check for us.\n#[test(should_fail_with = \"is not on curve\")]\nfn check_embedded_curve_point_add() {\n // Choose a point not on the curve:\n let p1 = Point { x: 1, y: 1, is_infinite: false };\n let p2 = Point::generator();\n let _ = p1 + p2;\n}\n\n// Gives us confidence that we don't need to manually check that the input public keys need to be on the curve for `add`,\n// because the blackbox function does this check for us.\n#[test(should_fail_with = \"is not on curve\")]\nfn check_embedded_curve_point_add_2() {\n // Choose a point not on the curve in the 2nd position.\n let p1 = Point::generator();\n let p2 = Point { x: 1, y: 1, is_infinite: false };\n let _ = p1 + p2;\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 0x105626366aab4a53d471701395a4e0e04af65ad1fad8483c74de338f397f226c;\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], DOM_SEP__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x0b661dee14f3871040a5938dbc5c1a7977aede0b64cff6b7faa168d11a288d75;\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 // We use the AZTEC_ADDRESS_LENGTH constant to ensure that there is a match between the derived trait\n // implementation and the constant.\n let serialized: [Field; AZTEC_ADDRESS_LENGTH] = address.serialize();\n let deserialized = AztecAddress::deserialize(serialized);\n assert_eq(address, deserialized);\n}\n\n#[test]\nfn to_address_point_valid() {\n // x = 8 where x^3 - 17 = 512 - 17 = 495, which is a residue in this field\n let address = AztecAddress { inner: 8 };\n let maybe_point = address.to_address_point();\n assert(maybe_point.is_some());\n\n let point = maybe_point.unwrap().inner;\n // check that x is preserved\n assert_eq(point.x, Field::from(8));\n\n // check that the curve equation holds: y^2 == x^3 - 17\n assert_eq(point.y * point.y, point.x * point.x * point.x - 17);\n}\n\n#[test]\nunconstrained fn to_address_point_invalid() {\n // x = 3 where x^3 - 17 = 27 - 17 = 10, which is a non-residue in this field\n let address = AztecAddress { inner: 3 }; //\n let maybe_point = address.to_address_point();\n assert(maybe_point.is_none());\n}\n"
4602
4592
  },
4603
- "340": {
4593
+ "339": {
4604
4594
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
4605
4595
  "source": "// TODO: Expose other wrapped functions than debug (info, warn)\n// ['silent', 'fatal', 'error', 'warn', 'info', 'verbose', 'debug', 'trace']\n\npub global SILENT_LOG_LEVEL: u8 = 0;\npub global FATAL_LOG_LEVEL: u8 = 1;\npub global ERROR_LOG_LEVEL: u8 = 2;\npub global WARN_LOG_LEVEL: u8 = 3;\npub global INFO_LOG_LEVEL: u8 = 4;\npub global VERBOSE_LOG_LEVEL: u8 = 5;\npub global DEBUG_LOG_LEVEL: u8 = 6;\npub global TRACE_LOG_LEVEL: u8 = 7;\n\n/// 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/// Same as debug_log, but allows to customize the log level.\n/// Consider changing just to 'log'\npub fn debug_log_with_level<let N: u32>(log_level: u8, msg: str<N>) {\n debug_log_format_with_level(log_level, 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 // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_array_oracle_wrapper(DEBUG_LOG_LEVEL, msg, args) };\n}\n\n/// Same as debug_log_format, but allows to customize the log level.\n/// Consider changing just to 'log_format'\npub fn debug_log_format_with_level<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_array_oracle_wrapper(log_level, msg, args) };\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` slice.\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 slice: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format_slice<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_slice_oracle_wrapper(log_level, msg, args) };\n}\n\n// We provide two versions of the debug log oracle: one that takes args as a slice and another one that takes args as an array.\n// We do this since conversion from array to slice generates overhead in public functions, since opcodes need to be emitted for the conversion.\n// By exposing the two flavors, we avoid conversions since the AVM is able to handle both arrays an slices in this oracle.\n\nunconstrained fn debug_log_slice_oracle_wrapper<let M: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field],\n) {\n debug_log_slice_oracle(log_level, msg, args);\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(utilityDebugLog)]\nunconstrained fn debug_log_slice_oracle<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {}\n\nunconstrained fn debug_log_array_oracle_wrapper<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_array_oracle(log_level, msg, N, args);\n}\n\n#[oracle(utilityDebugLog)]\nunconstrained fn debug_log_array_oracle<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n length: u32,\n args: [Field; N],\n) {}\n"
4606
4596
  },
4607
- "351": {
4597
+ "350": {
4608
4598
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
4609
4599
  "source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_log::{PrivateLog, PrivateLogData},\n transaction::tx_request::TxRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, DOM_SEP__NOTE_HASH_NONCE,\n DOM_SEP__PRIVATE_LOG_FIRST_FIELD, DOM_SEP__SILOED_NOTE_HASH, DOM_SEP__SILOED_NULLIFIER,\n DOM_SEP__UNIQUE_NOTE_HASH, FUNCTION_TREE_HEIGHT, NULL_MSG_SENDER_CONTRACT_ADDRESS,\n TWO_POW_64,\n },\n merkle_tree::root_from_sibling_path,\n messaging::l2_to_l1_message::L2ToL1Message,\n poseidon2::Poseidon2Sponge,\n side_effect::{Counted, Scoped},\n traits::{FromField, Hash, ToField},\n utils::field::{field_from_bytes, field_from_bytes_32_trunc},\n};\n\npub use poseidon2_chunks::poseidon2_absorb_in_chunks_existing_sponge;\nuse poseidon2_chunks::poseidon2_absorb_in_chunks;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\n// TODO: refactor these into their own files: sha256, poseidon2, some protocol-specific hash computations, some merkle computations.\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(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\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n DOM_SEP__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(note_nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [note_nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, DOM_SEP__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_note_nonce_and_unique_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n let note_nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(note_nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_note_hash(contract_address: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), note_hash],\n DOM_SEP__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique, siloed note hashes from siloed note hashes.\n///\n/// The protocol injects uniqueness into every note_hash, so that every single note_hash in the\n/// tree is unique. This prevents faerie gold attacks, where a malicious sender could create\n/// two identical note_hashes for a recipient (meaning only one would be nullifiable in future).\n///\n/// Most privacy protocols will inject the note's leaf_index (its position in the Note Hashes Tree)\n/// into the note, but this requires the creator of a note to wait until their tx is included in\n/// a block to know the note's final note hash (the unique, siloed note hash), because inserting\n/// leaves into trees is the job of a block producer.\n///\n/// We took a different approach so that the creator of a note will know each note's unique, siloed\n/// note hash before broadcasting their tx to the network.\n/// (There was also a historical requirement relating to \"chained transactions\" -- a feature that\n/// Aztec Connect had to enable notes to be spent from distinct txs earlier in the same block,\n/// and hence before an archive block root had been established for that block -- but that feature\n/// was abandoned for the Aztec Network for having too many bad tradeoffs).\n///\n/// (\n/// Edit: it is no longer true that all final note_hashes will be known by the creator of a tx\n/// before they send it to the network. If a tx makes public function calls, then _revertible_\n/// note_hashes that are created in private will not be made unique in private by the Reset circuit,\n/// but will instead be made unique by the AVM, because the `note_index_in_tx` will not be known\n/// until the AVM has executed the public functions of the tx. (See an explanation in\n/// reset_output_composer.nr for why).\n/// For some such txs, the `note_index_in_tx` might still be predictable through simulation, but\n/// for txs whose public functions create a varying number of non-revertible notes (determined at\n/// runtime), the `note_index_in_tx` will not be deterministically derivable before submitting the\n/// tx to the network.\n/// )\n///\n/// We use the `first_nullifier` of a tx as a seed of uniqueness. We have a guarantee that there will\n/// always be at least one nullifier per tx, because the init circuit will create one if one isn't\n/// created naturally by any functions of the tx. (Search \"protocol_nullifier\").\n/// We combine the `first_nullifier` with the note's index (its position within this tx's new\n/// note_hashes array) (`note_index_in_tx`) to get a truly unique value to inject into a note, which\n/// we call a `note_nonce`.\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n compute_note_nonce_and_unique_note_hash(siloed_note_hash, first_nullifier, note_index_in_tx)\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: Scoped<Counted<NoteHash>>) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.innermost())\n }\n}\n\npub fn compute_siloed_nullifier(contract_address: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), nullifier],\n DOM_SEP__SILOED_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: Scoped<Counted<Nullifier>>) -> Field {\n let value = nullifier.innermost().value;\n // Q: shouldn't we be checking whether the _whole_ scoped, counted, nullifier struct is empty?\n // A: We don't have to. The init and inner circuits add a contract address only to non-empty nullifiers.\n // So we know we should silo it if the contract address is not empty.\n if nullifier.contract_address.is_zero() {\n // Return `.value` instead of 0, because already-siloed nullifiers also have a zero\n // contract_address field, and we of course want to return that already-siloed nullifier\n // (we just don't want to silo it a second time).\n value\n } else {\n compute_siloed_nullifier(nullifier.contract_address, value)\n }\n}\n\npub fn create_protocol_nullifier(tx_request: TxRequest) -> Scoped<Counted<Nullifier>> {\n // The protocol nullifier is ascribed a special side-effect counter of 1. No other side-effect\n // can have counter 1 (see `validate_as_first_call` for that assertion).\n Nullifier { value: tx_request.hash(), note_hash: 0 }.count(1).scope(\n NULL_MSG_SENDER_CONTRACT_ADDRESS,\n )\n}\n\npub fn compute_siloed_private_log_first_field(\n contract_address: AztecAddress,\n field: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), field],\n DOM_SEP__PRIVATE_LOG_FIRST_FIELD,\n )\n}\n\npub fn silo_private_log(private_log: Scoped<Counted<PrivateLogData>>) -> PrivateLog {\n let log = private_log.innermost().log;\n if private_log.contract_address.is_zero() {\n log\n } else {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_first_field(private_log.contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\n }\n}\n\npub fn compute_contract_class_log_hash(log: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS]) -> Field {\n poseidon2_hash(log)\n}\n\npub fn compute_app_siloed_secret_key(\n master_secret_key: EmbeddedCurveScalar,\n app_address: AztecAddress,\n app_secret_key_domain_separator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n app_secret_key_domain_separator,\n )\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 contract_address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = recipient.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let rollup_version_id_bytes: [u8; 32] = rollup_version_id.to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n\n let mut bytes: [u8; 148] = std::mem::zeroed();\n for i in 0..32 {\n bytes[i] = contract_address_bytes[i];\n bytes[i + 32] = rollup_version_id_bytes[i];\n // 64 - 84 are for recipient.\n bytes[i + 84] = chain_id_bytes[i];\n bytes[i + 116] = content_bytes[i];\n }\n\n for i in 0..20 {\n bytes[64 + i] = recipient_bytes[i];\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: Scoped<L2ToL1Message>,\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.inner.recipient,\n msg.inner.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// TODO: consider a variant that enables domain separation with a u32 (we seem to have standardised u32s for domain separators)\n/// Computes sha256 hash of 2 input fields.\n///\n/// @returns A truncated field (i.e., the first byte is always 0).\npub fn accumulate_sha256(v0: Field, v1: Field) -> Field {\n // Concatenate two fields into 32 x 2 = 64 bytes\n let v0_as_bytes: [u8; 32] = v0.to_be_bytes();\n let v1_as_bytes: [u8; 32] = v1.to_be_bytes();\n let hash_input_flattened = v0_as_bytes.concat(v1_as_bytes);\n\n sha256_to_field(hash_input_flattened)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n poseidon::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 let inputs_with_separator = [separator.to_field()].concat(inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n/// Computes a Poseidon2 hash over a dynamic-length subarray of the given input.\n/// Only the first `in_len` fields of `input` are absorbed; any remaining fields are ignored.\n/// The caller is responsible for ensuring that the input is padded with zeros if required.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// NB the below is the same as poseidon::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// This function is unconstrained because it is intended to be used in unconstrained context only as\n// in constrained contexts it would be too inefficient.\npub unconstrained fn poseidon2_hash_with_separator_bounded_vec<let N: u32, T>(\n inputs: BoundedVec<Field, N>,\n separator: T,\n) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs.get(i));\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\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 fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\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 = sha256::digest(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 == 0x3b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992);\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 == 0xaab2a5828156782b12a1dc6f336e2bc627eb1b9514b02d511f66296990c050);\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 L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n ),\n version,\n chainId,\n );\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let hash_from_typescript = 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, hash_from_typescript);\n}\n\n#[test]\nunconstrained fn poseidon2_hash_with_separator_bounded_vec_matches_non_bounded_vec_version() {\n let inputs = BoundedVec::<Field, 4>::from_array([1, 2, 3]);\n let separator = 42;\n\n // Hash using bounded vec version\n let bounded_result = poseidon2_hash_with_separator_bounded_vec(inputs, separator);\n\n // Hash using regular version\n let regular_result = poseidon2_hash_with_separator([1, 2, 3], separator);\n\n // Results should match\n assert_eq(bounded_result, regular_result);\n}\n"
4610
4600
  },
4611
- "367": {
4601
+ "366": {
4612
4602
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
4613
4603
  "source": "use crate::constants::TWO_POW_64;\nuse crate::traits::{Deserialize, Serialize};\nuse std::meta::derive;\n// NB: This is a clone of noir/noir-repo/noir_stdlib/src/hash/poseidon2.nr\n// It exists as we sometimes need to perform custom absorption, but the stdlib version\n// has a private absorb() method (it's also designed to just be a hasher)\n// Can be removed when standalone noir poseidon lib exists: See noir#6679\n\ncomptime global RATE: u32 = 3;\n\n#[derive(Deserialize, Eq, Serialize)]\npub struct Poseidon2Sponge {\n pub cache: [Field; 3],\n pub state: [Field; 4],\n pub cache_size: u32,\n pub squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2Sponge {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2Sponge::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2Sponge {\n let mut result =\n Poseidon2Sponge { 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 = std::hash::poseidon2_permutation(self.state, 4);\n }\n\n pub 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 pub 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 iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n sponge.squeeze()\n }\n}\n"
4614
4604
  },
4615
- "374": {
4605
+ "373": {
4616
4606
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
4617
4607
  "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, DOM_SEP__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::{default::Default, meta::derive};\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\n#[derive(Deserialize, Eq, Serialize)]\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\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\n#[derive(Deserialize, Eq, Serialize)]\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\n#[derive(Deserialize, Eq, Serialize)]\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\n#[derive(Deserialize, Eq, Serialize)]\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\n#[derive(Deserialize, Eq, Serialize)]\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\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 PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n DOM_SEP__PUBLIC_KEYS_HASH as Field,\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\nmod test {\n use crate::{\n point::POINT_LENGTH,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n traits::{Deserialize, Serialize},\n };\n use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\n #[test]\n unconstrained 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\n // The following value was generated by `public_keys.test.ts`.\n let expected_public_keys_hash =\n 0x029d92319623fe2e5804a64b35d13e1c4881045371c41f36329b44dfc237d232;\n\n assert(actual.to_field() == expected_public_keys_hash);\n }\n\n #[test]\n unconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n\n // The following value was generated by `public_keys.test.ts`.\n let test_data_default_hash =\n 0x1d631c5b105baebd0f480f04e79aef2a800d6cc5e3814b92cec83034cf9b959e;\n\n assert(actual.to_field() == test_data_default_hash);\n }\n\n #[test]\n unconstrained fn serde() {\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 // We use the PUBLIC_KEYS_LENGTH constant to ensure that there is a match between the derived trait\n let serialized: [Field; POINT_LENGTH * 4] = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys, deserialized);\n }\n}\n"
4618
4608
  },
4619
- "395": {
4609
+ "394": {
4620
4610
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr",
4621
4611
  "source": "use crate::meta::derive_packable;\nuse crate::utils::field::field_from_bytes;\n\npub use serde::serialization::{Deserialize, Serialize};\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty: Eq {\n fn empty() -> Self;\n\n fn is_empty(self) -> bool {\n self.eq(Self::empty())\n }\n\n // Requires this Noir fix: https://github.com/noir-lang/noir/issues/9002\n // fn assert_not_empty<let U: u32>(self, msg: str<U>) { // This msg version was failing with weird compiler errors.\n // // We provide a default impl but it's likely inefficient.\n // // The reason we include this function is because there's a lot of\n // // opportunity for optimisation on a per-struct basis.\n // // You only need to show one element is not empty to know that the whole thing\n // // is not empty.\n // // If you know an element of your struct which should always be nonempty,\n // // you can write an impl that solely checks that that element is nonempty.\n // assert(!self.is_empty(), msg);\n // }\n\n // This default impl is overwritten by types like arrays, because there's a much\n // more efficient approach.\n fn assert_empty<let S: u32>(self, msg: str<S>) {\n assert(self.is_empty(), msg);\n }\n}\n\nimpl Empty for Field {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for bool {\n #[inline_always]\n fn empty() -> Self {\n false\n }\n}\n\nimpl Empty for u1 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u16 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u128 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl<T, let N: u32> Empty for [T; N]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty(); N]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\n\nimpl<T> Empty for [T]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty()]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\nimpl<A, B> Empty for (A, B)\nwhere\n A: Empty,\n B: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n (A::empty(), B::empty())\n }\n}\n\nimpl<T> Empty for Option<T>\nwhere\n T: Eq,\n{\n #[inline_always]\n fn empty() -> Self {\n Option::none()\n }\n}\n\n// pub fn is_empty<T>(item: T) -> bool\n// where\n// T: Empty,\n// {\n// item.eq(T::empty())\n// }\n\n// pub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool\n// where\n// T: Empty,\n// {\n// array.all(|elem| is_empty(elem))\n// }\n\n// pub fn assert_empty<T>(item: T) -> ()\n// where\n// T: Empty,\n// {\n// assert(item.eq(T::empty()))\n// }\n\n// pub fn assert_empty_array<T, let N: u32>(array: [T; N]) -> ()\n// where\n// T: Empty,\n// {\n// // A cheaper option than `is_empty_array` for if you don't need to gracefully\n// // handle a bool result.\n// // Avoids the `&` operator of `is_empty_array`'s `.all()` call.\n// for i in 0..N {\n// assert(is_empty(array[i]));\n// }\n// }\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n #[inline_always]\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u16 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u128 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl<let N: u32> ToField for str<N> {\n #[inline_always]\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value != 0\n }\n}\nimpl FromField for u1 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u16 {\n fn from_field(value: Field) -> Self {\n value as u16\n }\n}\nimpl FromField for u32 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for u128 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u128\n }\n}\n\n/// Trait for efficiently packing and unpacking Noir types into and from arrays of Fields.\n///\n/// The `Packable` trait allows types to be serialized and deserialized with a focus on minimizing the size of\n/// the resulting Field array. This trait is used when storage efficiency is critical (e.g. when storing data\n/// in the contract's public storage).\n///\n/// # Associated Constants\n/// * `N` - The length of the Field array, known at compile time\n#[derive_via(derive_packable)]\npub trait Packable {\n let N: u32;\n\n /// Packs the current value into a compact array of `Field` elements.\n fn pack(self) -> [Field; N];\n\n /// Unpacks a compact array of `Field` elements into the original value.\n fn unpack(fields: [Field; N]) -> Self;\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
4622
4612
  },
4623
- "403": {
4613
+ "402": {
4624
4614
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr",
4625
4615
  "source": "pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(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..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\npub fn min(f1: Field, f2: Field) -> Field {\n if f1.lt(f2) {\n f1\n } else {\n f2\n }\n}\n\n// TODO: write doc-comments and tests for these magic constants.\n\nglobal KNOWN_NON_RESIDUE: Field = 5; // This is a non-residue in Noir's native Field.\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n\n// @dev: only use this for _huge_ exponents y, when writing a constrained function.\n// If you're only exponentiating by a small value, first consider writing-out the multiplications by hand.\n// Only after you've measured the gates of that approach, consider using the native Field::pow_32 function.\n// Only if your exponent is larger than 32 bits, resort to using this function.\npub fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n\n/// Returns Option::some(sqrt) if there is a square root, and Option::none() if there isn't.\npub fn sqrt(x: Field) -> Option<Field> {\n // Safety: if the hint returns the square root of x, then we simply square it\n // check the result equals x. If x is not square, we return a value that\n // enables us to prove that fact (see the `else` clause below).\n let (is_sq, maybe_sqrt) = unsafe { __sqrt(x) };\n\n if is_sq {\n let sqrt = maybe_sqrt;\n validate_sqrt_hint(x, sqrt);\n Option::some(sqrt)\n } else {\n let not_sqrt_hint = maybe_sqrt;\n validate_not_sqrt_hint(x, not_sqrt_hint);\n Option::none()\n }\n}\n\n// Boolean indicating whether Field element is a square, i.e. whether there exists a y in Field s.t. x = y*y.\nunconstrained fn is_square(x: Field) -> bool {\n let v = pow(x, -1 / 2);\n v * (v - 1) == 0\n}\n\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\nunconstrained fn tonelli_shanks_sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\n// NB: this doesn't return an option, because in the case of there _not_ being a square root, we still want to return a field element that allows us to then assert in the _constrained_ sqrt function that there is no sqrt.\nunconstrained fn __sqrt(x: Field) -> (bool, Field) {\n let is_sq = is_square(x);\n if is_sq {\n let sqrt = tonelli_shanks_sqrt(x);\n (true, sqrt)\n } else {\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // sq * sq = sq // 1 * 1 = 1\n // non-sq * non-sq = sq // -1 * -1 = 1\n // sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n let not_sqrt = tonelli_shanks_sqrt(demo_x_not_square);\n (false, not_sqrt)\n }\n}\n\nfn validate_sqrt_hint(x: Field, hint: Field) {\n assert(hint * hint == x, f\"The claimed_sqrt {hint} is not the sqrt of x {x}\");\n}\n\nfn validate_not_sqrt_hint(x: Field, hint: Field) {\n // We need this assertion, because x = 0 would pass the other assertions in this\n // function, and we don't want people to be able to prove that 0 is not square!\n assert(x != 0, \"0 has a square root; you cannot claim it is not square\");\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n //\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // 1. sq * sq = sq // 1 * 1 = 1\n // 2. non-sq * non-sq = sq // -1 * -1 = 1\n // 3. sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n //\n // We want to demonstrate that this below multiplication falls under bullet-point (2):\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n // I.e. we want to demonstrate that `demo_x_not_square` has Legendre symbol 1\n // (i.e. that it is a square), so we prove that it is square below.\n // Why do we want to prove that it has LS 1?\n // Well, since it was computed with a known-non-residue, its squareness implies we're\n // in case 2 (something multiplied by a known-non-residue yielding a result which\n // has a LS of 1), which implies that x must be a non-square. The unconstrained\n // function gave us the sqrt of demo_x_not_square, so all we need to do is\n // assert its squareness:\n assert(\n hint * hint == demo_x_not_square,\n f\"The hint {hint} does not demonstrate that {x} is not a square\",\n );\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167,\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes: [u8; 31] = field.to_be_bytes();\n assert_eq(inputs, return_bytes);\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158,\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2: [u8; 31] = field2.to_be_bytes();\n\n assert_eq(return_bytes2, return_bytes);\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes: [u8; 32] = max_value.to_be_bytes();\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n\n#[test]\nunconstrained fn sqrt_valid_test() {\n let x = 16; // examples: 16, 9, 25, 81\n let result = sqrt(x);\n assert(result.is_some());\n assert_eq(result.unwrap() * result.unwrap(), x);\n}\n\n#[test]\nunconstrained fn sqrt_invalid_test() {\n let x = KNOWN_NON_RESIDUE; // has no square root in the field\n let result = sqrt(x);\n assert(result.is_none());\n}\n\n#[test]\nunconstrained fn sqrt_zero_test() {\n let result = sqrt(0);\n assert(result.is_some());\n assert_eq(result.unwrap(), 0);\n}\n\n#[test]\nunconstrained fn sqrt_one_test() {\n let result = sqrt(1);\n assert(result.is_some());\n assert_eq(result.unwrap() * result.unwrap(), 1);\n}\n\n#[test]\nunconstrained fn field_from_bytes_empty_test() {\n let empty: [u8; 0] = [];\n let result = field_from_bytes(empty, true);\n assert_eq(result, 0);\n\n let result_le = field_from_bytes(empty, false);\n assert_eq(result_le, 0);\n}\n\n#[test]\nunconstrained fn field_from_bytes_little_endian_test() {\n // Test little-endian conversion: [0x01, 0x02] should be 0x0201 = 513\n let bytes = [0x01, 0x02];\n let result_le = field_from_bytes(bytes, false);\n assert_eq(result_le, 0x0201);\n\n // Compare with big-endian: [0x01, 0x02] should be 0x0102 = 258\n let result_be = field_from_bytes(bytes, true);\n assert_eq(result_be, 0x0102);\n}\n\n#[test]\nunconstrained fn pow_test() {\n assert_eq(pow(2, 0), 1);\n assert_eq(pow(2, 1), 2);\n assert_eq(pow(2, 10), 1024);\n assert_eq(pow(3, 5), 243);\n assert_eq(pow(0, 5), 0);\n assert_eq(pow(1, 100), 1);\n}\n\n#[test]\nunconstrained fn min_test() {\n assert_eq(min(5, 10), 5);\n assert_eq(min(10, 5), 5);\n assert_eq(min(7, 7), 7);\n assert_eq(min(0, 1), 0);\n}\n\n#[test]\nunconstrained fn full_field_comparison_test() {\n assert(full_field_less_than(5, 10));\n assert(!full_field_less_than(10, 5));\n assert(!full_field_less_than(5, 5));\n\n assert(full_field_greater_than(10, 5));\n assert(!full_field_greater_than(5, 10));\n assert(!full_field_greater_than(5, 5));\n}\n\n#[test]\nunconstrained fn sqrt_has_two_roots_test() {\n // Every square has two roots: r and -r (i.e., p - r)\n // sqrt(16) can return 4 or -4\n let x = 16;\n let result = sqrt(x).unwrap();\n assert(result * result == x);\n // The other root is -result\n let other_root = 0 - result;\n assert(other_root * other_root == x);\n // Verify they are different (unless x = 0)\n assert(result != other_root);\n\n // Same for 9: roots are 3 and -3\n let y = 9;\n let result_y = sqrt(y).unwrap();\n assert(result_y * result_y == y);\n let other_root_y = 0 - result_y;\n assert(other_root_y * other_root_y == y);\n assert(result_y != other_root_y);\n}\n\n#[test]\nunconstrained fn sqrt_negative_one_test() {\n let x = 0 - 1;\n let result = sqrt(x);\n assert(result.unwrap() == 0x30644e72e131a029048b6e193fd841045cea24f6fd736bec231204708f703636);\n}\n\n#[test]\nunconstrained fn validate_sqrt_hint_valid_test() {\n // 4 is a valid sqrt of 16\n validate_sqrt_hint(16, 4);\n // -4 is also a valid sqrt of 16\n validate_sqrt_hint(16, 0 - 4);\n // 0 is a valid sqrt of 0\n validate_sqrt_hint(0, 0);\n // 1 is a valid sqrt of 1\n validate_sqrt_hint(1, 1);\n // -1 is also a valid sqrt of 1\n validate_sqrt_hint(1, 0 - 1);\n}\n\n#[test(should_fail_with = \"is not the sqrt of x\")]\nunconstrained fn validate_sqrt_hint_invalid_test() {\n // 5 is not a valid sqrt of 16\n validate_sqrt_hint(16, 5);\n}\n\n#[test]\nunconstrained fn validate_not_sqrt_hint_valid_test() {\n // 5 (KNOWN_NON_RESIDUE) is not a square.\n let x = KNOWN_NON_RESIDUE;\n let hint = tonelli_shanks_sqrt(x * KNOWN_NON_RESIDUE);\n validate_not_sqrt_hint(x, hint);\n}\n\n#[test(should_fail_with = \"0 has a square root\")]\nunconstrained fn validate_not_sqrt_hint_zero_test() {\n // 0 has a square root, so we cannot claim it is not square\n validate_not_sqrt_hint(0, 0);\n}\n\n#[test(should_fail_with = \"does not demonstrate that\")]\nunconstrained fn validate_not_sqrt_hint_wrong_hint_test() {\n // Provide a wrong hint for a non-square\n let x = KNOWN_NON_RESIDUE;\n validate_not_sqrt_hint(x, 123);\n}\n"
4626
4616
  },
4627
- "409": {
4617
+ "408": {
4628
4618
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/reader.nr",
4629
4619
  "source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_u64(&mut self) -> u64 {\n self.read() as u64\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() != 0\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn peek_offset(&mut self, offset: u32) -> Field {\n self.data[self.offset + offset]\n }\n\n pub fn advance_offset(&mut self, offset: u32) {\n self.offset += offset;\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
4630
4620
  },
4631
- "410": {
4621
+ "409": {
4632
4622
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/serialization.nr",
4633
4623
  "source": "use crate::{reader::Reader, writer::Writer};\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// let bytes = self.as_bytes();\n/// for i in 0..bytes.len() {\n/// writer.write(bytes[i] as Field);\n/// }\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; Self::N];\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>);\n}\n\n/// Generates a `Serialize` trait implementation for a struct type.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A quoted code block containing the trait implementation\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Log<N> {\n/// fields: [Field; N],\n/// length: u32\n/// }\n/// ```\n///\n/// This function generates code equivalent to:\n/// ```\n/// impl<let N: u32> Serialize for Log<N> {\n/// let N: u32 = <[Field; N] as Serialize>::N + <u32 as Serialize>::N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// #[inline_always]\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// Serialize::stream_serialize(self.fields, writer);\n/// Serialize::stream_serialize(self.length, writer);\n/// }\n/// }\n/// ```\npub comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n\n // We care only about the name and type so we drop the last item of the tuple\n let params = nested_struct.0.fields(nested_struct.1).map(|(name, typ, _)| (name, typ));\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Serialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_serialize_clause = get_where_trait_clause(s, quote {Serialize});\n\n let params_len_quote = get_params_len_quote(params);\n\n let function_body = params\n .map(|(name, _typ): (Quoted, Type)| {\n quote {\n $crate::serialization::Serialize::stream_serialize(self.$name, writer);\n }\n })\n .join(quote {});\n\n quote {\n impl$generics_declarations $crate::serialization::Serialize for $typ\n $where_serialize_clause\n {\n let N: u32 = $params_len_quote;\n\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n $crate::serialization::Serialize::stream_serialize(self, &mut writer);\n writer.finish()\n }\n\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n $function_body\n }\n }\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let mut bytes = [0 as u8; M];\n/// for i in 0..M {\n/// bytes[i] = reader.read() as u8;\n/// }\n/// str::<M>::from(bytes)\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; Self::N]) -> Self;\n\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self;\n}\n\n/// Generates a `Deserialize` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Deserialize` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Deserialize for MyStruct {\n/// let N: u32 = <AztecAddress as Deserialize>::N + <Field as Deserialize>::N;\n///\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// #[inline_always]\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let x = <AztecAddress as Deserialize>::stream_deserialize(reader);\n/// let y = <Field as Deserialize>::stream_deserialize(reader);\n/// Self { x, y }\n/// }\n/// }\n/// ```\npub comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Deserialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_deserialize_clause = get_where_trait_clause(s, quote {Deserialize});\n\n // The following will give us:\n // <type_of_struct_member_1 as Deserialize>::N + <type_of_struct_member_2 as Deserialize>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::serialization::Deserialize>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly deserializing the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let function_body = if params.len() > 1 {\n // This generates deserialization code for each struct member and concatenates them together.\n let deserialization_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let $param_name = <$param_type as Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n // This will give us e.g. `a, b, c` for a struct with three fields named `a`, `b`, and `c`.\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n $deserialization_of_struct_members\n\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::serialization::Deserialize::stream_deserialize(reader) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::serialization::Deserialize for $typ\n $where_deserialize_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $function_body\n }\n }\n }\n}\n\n/// Generates a quoted expression that computes the total serialized length of function parameters.\n///\n/// # Parameters\n/// * `params` - An array of tuples where each tuple contains a quoted parameter name and its Type. The type needs\n/// to implement the Serialize trait.\n///\n/// # Returns\n/// A quoted expression that evaluates to:\n/// * `0` if there are no parameters\n/// * `(<type1 as Serialize>::N + <type2 as Serialize>::N + ...)` for one or more parameters\ncomptime fn get_params_len_quote(params: [(Quoted, Type)]) -> Quoted {\n if params.len() == 0 {\n quote { 0 }\n } else {\n let params_quote_without_parentheses = params\n .map(|(_, param_type): (Quoted, Type)| {\n quote {\n <$param_type as $crate::serialization::Serialize>::N\n }\n })\n .join(quote {+});\n quote { ($params_quote_without_parentheses) }\n }\n}\n\ncomptime fn get_generics_declarations(s: TypeDefinition) -> Quoted {\n let generics = s.generics();\n\n if generics.len() > 0 {\n let generics_declarations_items = generics\n .map(|(name, maybe_integer_typ)| {\n // The second item in the generics tuple is an Option of an integer type that is Some only if\n // the generic is numeric.\n if maybe_integer_typ.is_some() {\n // The generic is numeric, so we return a quote defined as e.g. \"let N: u32\"\n let integer_type = maybe_integer_typ.unwrap();\n quote {let $name: $integer_type}\n } else {\n // The generic is not numeric, so we return a quote containing the name of the generic (e.g. \"T\")\n quote {$name}\n }\n })\n .join(quote {,});\n quote {<$generics_declarations_items>}\n } else {\n // The struct doesn't have any generics defined, so we just return an empty quote.\n quote {}\n }\n}\n\ncomptime fn get_where_trait_clause(s: TypeDefinition, trait_name: Quoted) -> Quoted {\n let generics = s.generics();\n\n // The second item in the generics tuple is an Option of an integer type that is Some only if the generic is\n // numeric.\n let non_numeric_generics =\n generics.filter(|(_, maybe_integer_typ)| maybe_integer_typ.is_none());\n\n if non_numeric_generics.len() > 0 {\n let non_numeric_generics_declarations =\n non_numeric_generics.map(|(name, _)| quote {$name: $trait_name}).join(quote {,});\n quote {where $non_numeric_generics_declarations}\n } else {\n // There are no non-numeric generics, so we return an empty quote.\n quote {}\n }\n}\n"
4634
4624
  },
4635
- "412": {
4625
+ "411": {
4636
4626
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/type_impls.nr",
4637
4627
  "source": "use crate::{reader::Reader, serialization::{Deserialize, Serialize}, writer::Writer};\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint;\nuse dep::std::embedded_curve_ops::EmbeddedCurveScalar;\n\nglobal U1_SERIALIZED_LEN: u32 = 1;\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> bool {\n reader.read() != 0\n }\n}\n\nimpl Serialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u1\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self);\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read()\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u8 as Field);\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u16 as Field);\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u32 as Field);\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u64 as Field);\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Serialize for [T; M]\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n for i in 0..M {\n self[i].stream_serialize(writer);\n }\n }\n}\n\nimpl<T, let M: u32> Deserialize for [T; M]\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut result: [T; M] = std::mem::zeroed();\n for i in 0..M {\n result[i] = T::stream_deserialize(reader);\n }\n result\n }\n}\n\nimpl<T> Serialize for Option<T>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N + 1;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write_bool(self.is_some());\n if self.is_some() {\n self.unwrap_unchecked().stream_serialize(writer);\n } else {\n writer.advance_offset(<T as Serialize>::N);\n }\n }\n}\n\nimpl<T> Deserialize for Option<T>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n if reader.read_bool() {\n Option::some(<T as Deserialize>::stream_deserialize(reader))\n } else {\n reader.advance_offset(<T as Deserialize>::N);\n Option::none()\n }\n }\n}\n\nglobal SCALAR_SIZE: u32 = 2;\n\nimpl Serialize for EmbeddedCurveScalar {\n\n let N: u32 = SCALAR_SIZE;\n\n fn serialize(self) -> [Field; SCALAR_SIZE] {\n [self.lo, self.hi]\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.lo);\n writer.write(self.hi);\n }\n}\n\nimpl Deserialize for EmbeddedCurveScalar {\n let N: u32 = SCALAR_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { lo: fields[0], hi: fields[1] }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { lo: reader.read(), hi: reader.read() }\n }\n}\n\nglobal POINT_SIZE: u32 = 3;\n\nimpl Serialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn serialize(self) -> [Field; Self::N] {\n [self.x, self.y, self.is_infinite as Field]\n }\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.x);\n writer.write(self.y);\n writer.write(self.is_infinite as Field);\n }\n}\n\nimpl Deserialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { x: fields[0], y: fields[1], is_infinite: fields[2] != 0 }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { x: reader.read(), y: reader.read(), is_infinite: reader.read_bool() }\n }\n}\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let u8_arr = <[u8; Self::N] as Deserialize>::stream_deserialize(reader);\n str::<Self::N>::from(u8_arr)\n }\n}\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.as_bytes().stream_serialize(writer);\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n let payload_len = Self::N - 1;\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = reader.peek_offset(payload_len) as u32;\n\n for i in 0..M {\n if i < len {\n new_bounded_vec.push(<T as Deserialize>::stream_deserialize(reader));\n }\n }\n\n // +1 for the length of the BoundedVec\n reader.advance_offset((M - len) * <T as Deserialize>::N + 1);\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(_reader: &mut Reader<K>) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.storage().stream_serialize(writer);\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n writer.write_u32(self.len() as u32);\n }\n}\n\n// Create a slice of the given length with each element made from `f(i)` where `i` is the current index\ncomptime fn make_slice<Env, T>(length: u32, f: fn[Env](u32) -> T) -> [T] {\n let mut slice = @[];\n for i in 0..length {\n slice = slice.push_back(f(i));\n }\n slice\n}\n\n// Implements Serialize and Deserialize for an arbitrary tuple type\ncomptime fn impl_serialize_for_tuple(_m: Module, length: u32) -> Quoted {\n // `T0`, `T1`, `T2`\n let type_names = make_slice(length, |i| f\"T{i}\".quoted_contents());\n\n // `result0`, `result1`, `result2`\n let result_names = make_slice(length, |i| f\"result{i}\".quoted_contents());\n\n // `T0, T1, T2`\n let field_generics = type_names.join(quote [,]);\n\n // `<T0 as Serialize>::N + <T1 as Serialize>::N + <T2 as Serialize>::N`\n let full_size_serialize = type_names\n .map(|type_name| quote {\n <$type_name as Serialize>::N\n })\n .join(quote [+]);\n\n // `<T0 as Deserialize>::N + <T1 as Deserialize>::N + <T2 as Deserialize>::N`\n let full_size_deserialize = type_names\n .map(|type_name| quote {\n <$type_name as Deserialize>::N\n })\n .join(quote [+]);\n\n // `T0: Serialize, T1: Serialize, T2: Serialize,`\n let serialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Serialize,\n })\n .join(quote []);\n\n // `T0: Deserialize, T1: Deserialize, T2: Deserialize,`\n let deserialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Deserialize,\n })\n .join(quote []);\n\n // Statements to serialize each field\n let serialized_fields = type_names\n .mapi(|i, _type_name| quote {\n $crate::serialization::Serialize::stream_serialize(self.$i, writer);\n })\n .join(quote []);\n\n // Statements to deserialize each field\n let deserialized_fields = type_names\n .mapi(|i, type_name| {\n let result_name = result_names[i];\n quote {\n let $result_name = <$type_name as $crate::serialization::Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote []);\n let deserialize_results = result_names.join(quote [,]);\n\n quote {\n impl<$field_generics> Serialize for ($field_generics) where $serialize_constraints {\n let N: u32 = $full_size_serialize;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n\n $serialized_fields\n }\n }\n\n impl<$field_generics> Deserialize for ($field_generics) where $deserialize_constraints {\n let N: u32 = $full_size_deserialize;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n \n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $deserialized_fields\n ($deserialize_results)\n }\n }\n }\n}\n\n// Keeping these manual impls. They are more efficient since they do not\n// require copying sub-arrays from any serialized arrays.\nimpl<T1> Serialize for (T1,)\nwhere\n T1: Serialize,\n{\n let N: u32 = <T1 as Serialize>::N;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: crate::writer::Writer<Self::N> = crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.0.stream_serialize(writer);\n }\n}\n\nimpl<T1> Deserialize for (T1,)\nwhere\n T1: Deserialize,\n{\n let N: u32 = <T1 as Deserialize>::N;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n (<T1 as Deserialize>::stream_deserialize(reader),)\n }\n}\n\n#[impl_serialize_for_tuple(2)]\n#[impl_serialize_for_tuple(3)]\n#[impl_serialize_for_tuple(4)]\n#[impl_serialize_for_tuple(5)]\n#[impl_serialize_for_tuple(6)]\nmod impls {\n use crate::serialization::{Deserialize, Serialize};\n}\n"
4638
4628
  },
4639
- "413": {
4629
+ "412": {
4640
4630
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/writer.nr",
4641
4631
  "source": "pub struct Writer<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Writer<N> {\n pub fn new() -> Self {\n Self { data: [0; N], offset: 0 }\n }\n\n pub fn write(&mut self, value: Field) {\n self.data[self.offset] = value;\n self.offset += 1;\n }\n\n pub fn write_u32(&mut self, value: u32) {\n self.write(value as Field);\n }\n\n pub fn write_u64(&mut self, value: u64) {\n self.write(value as Field);\n }\n\n pub fn write_bool(&mut self, value: bool) {\n self.write(value as Field);\n }\n\n pub fn write_array<let K: u32>(&mut self, value: [Field; K]) {\n for i in 0..K {\n self.data[i + self.offset] = value[i];\n }\n self.offset += K;\n }\n\n pub fn write_struct<T, let K: u32>(&mut self, value: T, serialize: fn(T) -> [Field; K]) {\n self.write_array(serialize(value));\n }\n\n pub fn write_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n value: [T; C],\n serialize: fn(T) -> [Field; K],\n ) {\n for i in 0..C {\n self.write_struct(value[i], serialize);\n }\n }\n\n pub fn advance_offset(&mut self, offset: u32) {\n self.offset += offset;\n }\n\n pub fn finish(self) -> [Field; N] {\n assert_eq(self.offset, self.data.len(), \"Writer did not write all data\");\n self.data\n }\n}\n"
4642
4632
  },
@@ -4644,7 +4634,7 @@
4644
4634
  "path": "std/option.nr",
4645
4635
  "source": "use crate::cmp::{Eq, Ord, Ordering};\nuse crate::default::Default;\nuse crate::hash::{Hash, Hasher};\n\npub struct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some {\n self._value\n } else {\n default\n }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n pub fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some {\n self\n } else {\n other\n }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some {\n self\n } else {\n default()\n }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some {\n Option::none()\n } else {\n self\n }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T>\nwhere\n T: Eq,\n{\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T>\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T>\nwhere\n T: Ord,\n{\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n"
4646
4636
  },
4647
- "423": {
4637
+ "422": {
4648
4638
  "path": "/home/aztec-dev/nargo/github.com/noir-lang/schnorr/v0.1.3/src/lib.nr",
4649
4639
  "source": "use std::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul};\nuse std::hash::{blake2s, pedersen_hash};\n\n// the multiples of BN_P that are still less than 2^254 split into (lo, hi)\nglobal BN_P_m: [(Field, Field); 6] = [\n (0, 0),\n (201385395114098847380338600778089168199, 64323764613183177041862057485226039389),\n (62488423307259231297302594124410124942, 128647529226366354083724114970452078779),\n (263873818421358078677641194902499293141, 192971293839549531125586172455678118168),\n (124976846614518462594605188248820249884, 257295058452732708167448229940904157558),\n (326362241728617309974943789026909418083, 321618823065915885209310287426130196947),\n];\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\npub fn verify_signature<let N: u32>(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; N],\n) -> bool {\n //scalar lo/hi from bytes\n let sig_s = scalar_from_bytes(signature, 0);\n let sig_e = scalar_from_bytes(signature, 32);\n // pub_key is on Grumpkin curve\n let mut is_ok = (public_key.y * public_key.y == public_key.x * public_key.x * public_key.x - 17)\n & (!public_key.is_infinite);\n\n if ((sig_s.lo != 0) | (sig_s.hi != 0)) & ((sig_e.lo != 0) | (sig_e.hi != 0)) {\n let (r_is_infinite, result) =\n calculate_signature_challenge(public_key, sig_s, sig_e, message);\n\n is_ok &= !r_is_infinite;\n for i in 0..32 {\n is_ok &= result[i] == signature[32 + i];\n }\n } else {\n is_ok = false;\n }\n is_ok\n}\n\npub fn assert_valid_signature<let N: u32>(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; N],\n) {\n //scalar lo/hi from bytes\n let sig_s = scalar_from_bytes(signature, 0);\n let sig_e = scalar_from_bytes(signature, 32);\n\n // assert pub_key is on Grumpkin curve\n assert(public_key.y * public_key.y == public_key.x * public_key.x * public_key.x - 17);\n assert(public_key.is_infinite == false);\n // assert signature is not null\n assert((sig_s.lo != 0) | (sig_s.hi != 0));\n assert((sig_e.lo != 0) | (sig_e.hi != 0));\n\n let (r_is_infinite, result) = calculate_signature_challenge(public_key, sig_s, sig_e, message);\n\n assert(!r_is_infinite);\n for i in 0..32 {\n assert(result[i] == signature[32 + i]);\n }\n}\n\nfn calculate_signature_challenge<let N: u32>(\n public_key: EmbeddedCurvePoint,\n sig_s: EmbeddedCurveScalar,\n sig_e: EmbeddedCurveScalar,\n message: [u8; N],\n) -> (bool, [u8; 32]) {\n let g1 = EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860,\n is_infinite: false,\n };\n let reduced_sig_e = normalize_signature(sig_e);\n let r = multi_scalar_mul([g1, public_key], [sig_s, reduced_sig_e]);\n // compare the _hashes_ rather than field elements modulo r\n let pedersen_hash = pedersen_hash([r.x, public_key.x, public_key.y]);\n let pde: [u8; 32] = pedersen_hash.to_be_bytes();\n\n let mut hash_input = [0; N + 32];\n for i in 0..32 {\n hash_input[i] = pde[i];\n }\n for i in 0..N {\n hash_input[32 + i] = message[i];\n }\n\n let result = blake2s(hash_input);\n (r.is_infinite, result)\n}\n\nunconstrained fn __gt(a: Field, b: Field) -> bool {\n b.lt(a)\n}\n\n// gets the quotient of lo/hi when divided by BN254_Fq modulus\nunconstrained fn __get_quotient(hi: Field, lo: Field) -> u32 {\n let mut q: u32 = 0;\n let mut r_hi = hi;\n let mut r_lo = lo;\n let MODULUS = BN_P_m[1];\n\n for _ in 1..6 {\n // check if rhi, rlo is larger than BN_P\n let borrow = r_lo.lt(MODULUS.0);\n\n if borrow {\n r_lo = r_lo + TWO_POW_128;\n // rlo is always larger than BN_P lo now\n r_hi = r_hi - 1;\n }\n\n let MODULUS_hi = MODULUS.1;\n\n let gt_flag = !r_hi.lt(MODULUS_hi);\n\n if gt_flag {\n r_hi = r_hi - MODULUS.1;\n r_lo = r_lo - MODULUS.0;\n if TWO_POW_128.lt(r_lo) | TWO_POW_128.lt(r_hi) {\n break;\n }\n q += 1;\n }\n }\n q\n}\n\n// this method reduces the signature to the range [0, BN254_Fq_MODULUS)\nfn normalize_signature(sig_e: EmbeddedCurveScalar) -> EmbeddedCurveScalar {\n let mut hi = sig_e.hi;\n let mut lo = sig_e.lo;\n // get the quotient\n let q = unsafe { __get_quotient(hi, lo) };\n let MODULUSmq = (BN_P_m[q].0, BN_P_m[q].1);\n let MODULUS = BN_P_m[1];\n // remove MODULUS * q from lo/hi\n let borrow = unsafe { __gt(MODULUSmq.0, lo) };\n // rlo, rhi is the signature without the multiple of MODULUS\n let rlo = lo - MODULUSmq.0 + borrow as Field * TWO_POW_128;\n let rhi = hi - borrow as Field - MODULUSmq.1;\n // now we validate that rlo and rhi are positive\n rlo.assert_max_bit_size::<128>();\n rhi.assert_max_bit_size::<128>();\n // validate that rlo, rhi is smaller than MODULUS\n // if the lo is larger than the modulus lo we have to get a borrow\n let borrow = unsafe { __gt(rlo, MODULUS.0) };\n let rplo = MODULUS.0 - rlo + borrow as Field * TWO_POW_128;\n let rphi = MODULUS.1 - rhi - borrow as Field;\n // check that rplo and rphi are positive\n rplo.assert_max_bit_size::<128>();\n rphi.assert_max_bit_size::<128>();\n EmbeddedCurveScalar::new(rlo, rhi)\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\nfn scalar_from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v: Field = 1;\n let mut lo: Field = 0;\n let mut hi: Field = 0;\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 = EmbeddedCurveScalar::new(lo, hi);\n sig_s\n}\n\nmod test {\n use super::normalize_signature;\n use super::verify_signature;\n use std::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar};\n\n #[test]\n fn test_zero_signature() {\n let public_key: EmbeddedCurvePoint = EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860,\n is_infinite: false,\n };\n let signature: [u8; 64] = [0; 64];\n let message: [u8; _] = [2; 64]; // every message\n let verified = verify_signature(public_key, signature, message);\n assert(!verified);\n }\n\n #[test]\n fn smoke_test() {\n let message: [u8; 10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n let pub_key_x: Field = 0x04b260954662e97f00cab9adb773a259097f7a274b83b113532bce27fa3fb96a;\n let pub_key_y: Field = 0x2fd51571db6c08666b0edfbfbc57d432068bccd0110a39b166ab243da0037197;\n let signature: [u8; 64] = [\n 1, 13, 119, 112, 212, 39, 233, 41, 84, 235, 255, 93, 245, 172, 186, 83, 157, 253, 76,\n 77, 33, 128, 178, 15, 214, 67, 105, 107, 177, 234, 77, 48, 27, 237, 155, 84, 39, 84,\n 247, 27, 22, 8, 176, 230, 24, 115, 145, 220, 254, 122, 135, 179, 171, 4, 214, 202, 64,\n 199, 19, 84, 239, 138, 124, 12,\n ];\n\n let pub_key = EmbeddedCurvePoint { x: pub_key_x, y: pub_key_y, is_infinite: false };\n let valid_signature = verify_signature(pub_key, signature, message);\n assert(valid_signature);\n super::assert_valid_signature(pub_key, signature, message);\n }\n\n #[test]\n fn test_normalize_signature() {\n let sig_e = EmbeddedCurveScalar::new(\n 201385395114098847380338600778112493540,\n 64323764613183177041862057485226039389,\n );\n let normalized = normalize_signature(sig_e);\n let expected = EmbeddedCurveScalar::new(23325341, 0);\n assert(normalized == expected);\n }\n\n #[test]\n fn test_normalize_signature_2() {\n let sig_e = EmbeddedCurveScalar::new(\n 263873818421358078677641194902522618482,\n 192971293839549531125586172455678118168,\n );\n let normalized = normalize_signature(sig_e);\n let expected = EmbeddedCurveScalar::new(23325341, 0);\n assert(normalized == expected);\n }\n\n}\n\nmod bench {\n use super::{assert_valid_signature, verify_signature};\n use std::embedded_curve_ops::EmbeddedCurvePoint;\n\n #[export]\n pub fn bench_verify_signature(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; 32],\n ) -> bool {\n verify_signature(public_key, signature, message)\n }\n\n #[export]\n pub fn bench_assert_valid_signature(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; 32],\n ) {\n assert_valid_signature(public_key, signature, message)\n }\n}\n"
4650
4640
  },
@@ -4710,7 +4700,7 @@
4710
4700
  },
4711
4701
  "99": {
4712
4702
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/aztec.nr",
4713
- "source": "use crate::macros::{\n calls_generation::{\n external_functions::{generate_external_function_calls, generate_external_function_self_calls_structs},\n internal_functions::generate_call_internal_struct,\n },\n dispatch::generate_public_dispatch,\n internals_functions_generation::{create_fn_abi_exports, process_functions},\n notes::NOTES,\n storage::STORAGE_LAYOUT_NAME,\n utils::{\n get_trait_impl_method, is_fn_contract_library_method, is_fn_external, is_fn_internal, is_fn_test,\n module_has_storage,\n },\n};\n\n/// Marks a contract as an Aztec contract, generating the interfaces for its functions and notes, as well as injecting\n/// the `sync_state` utility function.\n///\n/// Note: This is a module annotation, so the returned quote gets injected inside the module (contract) itself.\npub comptime fn aztec(m: Module) -> Quoted {\n // Functions that don't have #[external(...)], #[contract_library_method], or #[test] are not allowed in contracts.\n check_each_fn_macroified(m);\n\n // We generate new functions prefixed with `__aztec_nr_internals__` and we replace the original functions' bodies\n // with `static_assert(false, ...)` to prevent them from being called directly from within the contract.\n let functions = process_functions(m);\n\n // We generate structs and their implementations necessary for convenient functions calls.\n let interface = generate_contract_interface(m);\n let self_call_structs = generate_external_function_self_calls_structs(m);\n let call_internal_struct = generate_call_internal_struct(m);\n\n // We generate ABI exports for all the external functions in the contract.\n let fn_abi_exports = create_fn_abi_exports(m);\n\n // We generate `_compute_note_hash_and_nullifier`, `sync_state` and `process_message` functions only if they are\n // not already implemented. If they are implemented we just insert empty quotes.\n let contract_library_method_compute_note_hash_and_nullifier = if !m.functions().any(|f| {\n f.name() == quote { _compute_note_hash_and_nullifier }\n }) {\n generate_contract_library_method_compute_note_hash_and_nullifier()\n } else {\n quote {}\n };\n let sync_state_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { sync_state }) {\n generate_sync_state()\n } else {\n quote {}\n };\n\n let process_message_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { process_message }) {\n generate_process_message()\n } else {\n quote {}\n };\n let public_dispatch = generate_public_dispatch(m);\n\n quote {\n $interface\n $self_call_structs\n $call_internal_struct\n $functions\n $fn_abi_exports\n $contract_library_method_compute_note_hash_and_nullifier\n $public_dispatch\n $sync_state_fn_and_abi_export\n $process_message_fn_and_abi_export\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let calls = generate_external_function_calls(m);\n\n let module_name = m.name();\n\n let has_storage_layout = module_has_storage(m) & STORAGE_LAYOUT_NAME.get(m).is_some();\n let storage_layout_getter = if has_storage_layout {\n let storage_layout_name = STORAGE_LAYOUT_NAME.get(m).unwrap();\n quote {\n pub fn storage_layout() -> StorageLayoutFields {\n $storage_layout_name.fields\n }\n }\n } else {\n quote {}\n };\n\n let library_storage_layout_getter = if has_storage_layout {\n quote {\n #[contract_library_method]\n $storage_layout_getter\n }\n } else {\n quote {}\n };\n\n quote {\n pub struct $module_name {\n pub target_contract: aztec::protocol::address::AztecAddress\n }\n\n impl $module_name {\n $calls\n\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> $module_name {\n $module_name { target_contract: addr }\n }\n\n #[contract_library_method]\n pub fn interface() -> $module_name {\n $module_name { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $library_storage_layout_getter\n\n }\n}\n\n/// Generates a contract library method called `_compute_note_hash_and_nullifier` which is used for note discovery (to\n/// create the `aztec::messages::discovery::ComputeNoteHashAndNullifier` function) and to implement the\n/// `compute_note_hash_and_nullifier` unconstrained contract function.\ncomptime fn generate_contract_library_method_compute_note_hash_and_nullifier() -> Quoted {\n if NOTES.len() > 0 {\n // Contracts that do define notes produce an if-else chain where `note_type_id` is matched against the\n // `get_note_type_id()` function of each note type that we know of, in order to identify the note type. Once we\n // know it we call we correct `unpack` method from the `Packable` trait to obtain the underlying note type, and\n // compute the note hash (non-siloed) and inner nullifier (also non-siloed).\n\n let mut if_note_type_id_match_statements_list = @[];\n for i in 0..NOTES.len() {\n let typ = NOTES.get(i);\n\n let get_note_type_id = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteType },\n quote { get_id },\n );\n let unpack = get_trait_impl_method(\n typ,\n quote { crate::protocol::traits::Packable },\n quote { unpack },\n );\n\n let compute_note_hash = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_note_hash },\n );\n\n let compute_nullifier_unconstrained = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_nullifier_unconstrained },\n );\n\n let if_or_else_if = if i == 0 {\n quote { if }\n } else {\n quote { else if }\n };\n\n if_note_type_id_match_statements_list = if_note_type_id_match_statements_list.push_back(\n quote {\n $if_or_else_if note_type_id == $get_note_type_id() {\n // As an extra safety check we make sure that the packed_note BoundedVec has the expected\n // length, since we're about to interpret its raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = <$typ as $crate::protocol::traits::Packable>::N;\n let actual_len = packed_note.len();\n assert(\n actual_len == expected_len,\n f\"Expected packed note of length {expected_len} but got {actual_len} for note type id {note_type_id}\"\n );\n\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, owner, storage_slot, randomness);\n \n // The message discovery process finds settled notes, that is, notes that were created in prior transactions and are therefore already part of the note hash tree. We therefore compute the nullification note hash by treating the note as a settled note with the provided note nonce.\n let note_hash_for_nullification = aztec::note::utils::compute_note_hash_for_nullification(\n aztec::note::HintedNote{\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata: aztec::note::note_metadata::SettledNoteMetadata::new(note_nonce).into()\n }\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(note, owner, note_hash_for_nullification);\n\n Option::some(\n aztec::messages::discovery::NoteHashAndNullifier {\n note_hash, inner_nullifier\n }\n )\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash tree with `note_nonce`.\n ///\n /// The signature of this function notably matches the `aztec::messages::discovery::ComputeNoteHashAndNullifier` type, and so it can be used to call functions from that module such as `do_sync_state` and `attempt_note_discovery`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n owner: aztec::protocol::address::AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol::address::AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n $if_note_type_id_match_statements\n else {\n Option::none()\n }\n }\n }\n } else {\n // Contracts with no notes still implement this function to avoid having special-casing, the implementation\n // simply throws immediately.\n quote {\n /// This contract does not use private notes, so this function should never be called as it will unconditionally fail.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n _packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n _owner: aztec::protocol::address::AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol::address::AztecAddress,\n _randomness: Field,\n _nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\ncomptime fn generate_sync_state() -> Quoted {\n quote {\n pub struct sync_state_parameters {}\n\n #[abi(functions)]\n pub struct sync_state_abi {\n parameters: sync_state_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn sync_state() {\n let address = aztec::context::UtilityContext::new().this_address();\n \n aztec::messages::discovery::do_sync_state(address, _compute_note_hash_and_nullifier);\n }\n }\n}\n\ncomptime fn generate_process_message() -> Quoted {\n quote {\n pub struct process_message_parameters {\n pub message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n pub message_context: aztec::messages::processing::MessageContext,\n }\n\n #[abi(functions)]\n pub struct process_message_abi {\n parameters: process_message_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn process_message(\n message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n message_context: aztec::messages::processing::MessageContext,\n ) {\n let address = aztec::context::UtilityContext::new().this_address();\n\n aztec::messages::discovery::process_message::process_message_ciphertext(\n address,\n _compute_note_hash_and_nullifier,\n message_ciphertext,\n message_context,\n );\n\n // At this point, the note is pending validation and storage in the database. We must call\n // validate_and_store_enqueued_notes_and_events to complete that process.\n aztec::messages::processing::validate_and_store_enqueued_notes_and_events(address);\n }\n }\n}\n\n/// Checks that all functions in the module have a context macro applied.\n///\n/// Non-macroified functions are not allowed in contracts. They must all be one of\n/// [`external`](crate::macros::functions::external), [`internal`](crate::macros::functions::internal) or `test`.\ncomptime fn check_each_fn_macroified(m: Module) {\n for f in m.functions() {\n let name = f.name();\n if !is_fn_external(f) & !is_fn_contract_library_method(f) & !is_fn_internal(f) & !is_fn_test(f) {\n // We don't suggest that #[contract_library_method] is allowed because we don't want to introduce another\n // concept\n panic(\n f\"Function {name} must be marked as either #[external(...)], #[internal(...)], or #[test]\",\n );\n }\n }\n}\n"
4703
+ "source": "use crate::macros::{\n calls_generation::{\n external_functions::{generate_external_function_calls, generate_external_function_self_calls_structs},\n internal_functions::generate_call_internal_struct,\n },\n dispatch::generate_public_dispatch,\n internals_functions_generation::{create_fn_abi_exports, process_functions},\n notes::NOTES,\n storage::STORAGE_LAYOUT_NAME,\n utils::{\n get_trait_impl_method, is_fn_contract_library_method, is_fn_external, is_fn_internal, is_fn_test,\n module_has_storage,\n },\n};\n\n/// Marks a contract as an Aztec contract, generating the interfaces for its functions and notes, as well as injecting\n/// the `sync_state` utility function.\n///\n/// Note: This is a module annotation, so the returned quote gets injected inside the module (contract) itself.\npub comptime fn aztec(m: Module) -> Quoted {\n // Functions that don't have #[external(...)], #[contract_library_method], or #[test] are not allowed in contracts.\n check_each_fn_macroified(m);\n\n // We generate new functions prefixed with `__aztec_nr_internals__` and we replace the original functions' bodies\n // with `static_assert(false, ...)` to prevent them from being called directly from within the contract.\n let functions = process_functions(m);\n\n // We generate structs and their implementations necessary for convenient functions calls.\n let interface = generate_contract_interface(m);\n let self_call_structs = generate_external_function_self_calls_structs(m);\n let call_internal_struct = generate_call_internal_struct(m);\n\n // We generate ABI exports for all the external functions in the contract.\n let fn_abi_exports = create_fn_abi_exports(m);\n\n // We generate `_compute_note_hash_and_nullifier`, `sync_state` and `process_message` functions only if they are\n // not already implemented. If they are implemented we just insert empty quotes.\n let contract_library_method_compute_note_hash_and_nullifier = if !m.functions().any(|f| {\n f.name() == quote { _compute_note_hash_and_nullifier }\n }) {\n generate_contract_library_method_compute_note_hash_and_nullifier()\n } else {\n quote {}\n };\n let sync_state_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { sync_state }) {\n generate_sync_state()\n } else {\n quote {}\n };\n\n let process_message_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { process_message }) {\n generate_process_message()\n } else {\n quote {}\n };\n let public_dispatch = generate_public_dispatch(m);\n\n quote {\n $interface\n $self_call_structs\n $call_internal_struct\n $functions\n $fn_abi_exports\n $contract_library_method_compute_note_hash_and_nullifier\n $public_dispatch\n $sync_state_fn_and_abi_export\n $process_message_fn_and_abi_export\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let calls = generate_external_function_calls(m);\n\n let module_name = m.name();\n\n let has_storage_layout = module_has_storage(m) & STORAGE_LAYOUT_NAME.get(m).is_some();\n let storage_layout_getter = if has_storage_layout {\n let storage_layout_name = STORAGE_LAYOUT_NAME.get(m).unwrap();\n quote {\n pub fn storage_layout() -> StorageLayoutFields {\n $storage_layout_name.fields\n }\n }\n } else {\n quote {}\n };\n\n let library_storage_layout_getter = if has_storage_layout {\n quote {\n #[contract_library_method]\n $storage_layout_getter\n }\n } else {\n quote {}\n };\n\n quote {\n pub struct $module_name {\n pub target_contract: aztec::protocol::address::AztecAddress\n }\n\n impl $module_name {\n $calls\n\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> $module_name {\n $module_name { target_contract: addr }\n }\n\n #[contract_library_method]\n pub fn interface() -> $module_name {\n $module_name { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $library_storage_layout_getter\n\n }\n}\n\n/// Generates a contract library method called `_compute_note_hash_and_nullifier` which is used for note discovery (to\n/// create the `aztec::messages::discovery::ComputeNoteHashAndNullifier` function) and to implement the\n/// `compute_note_hash_and_nullifier` unconstrained contract function.\ncomptime fn generate_contract_library_method_compute_note_hash_and_nullifier() -> Quoted {\n if NOTES.len() > 0 {\n // Contracts that do define notes produce an if-else chain where `note_type_id` is matched against the\n // `get_note_type_id()` function of each note type that we know of, in order to identify the note type. Once we\n // know it we call we correct `unpack` method from the `Packable` trait to obtain the underlying note type, and\n // compute the note hash (non-siloed) and inner nullifier (also non-siloed).\n\n let mut if_note_type_id_match_statements_list = @[];\n for i in 0..NOTES.len() {\n let typ = NOTES.get(i);\n\n let get_note_type_id = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteType },\n quote { get_id },\n );\n let unpack = get_trait_impl_method(\n typ,\n quote { crate::protocol::traits::Packable },\n quote { unpack },\n );\n\n let compute_note_hash = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_note_hash },\n );\n\n let compute_nullifier_unconstrained = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_nullifier_unconstrained },\n );\n\n let if_or_else_if = if i == 0 {\n quote { if }\n } else {\n quote { else if }\n };\n\n if_note_type_id_match_statements_list = if_note_type_id_match_statements_list.push_back(\n quote {\n $if_or_else_if note_type_id == $get_note_type_id() {\n // As an extra safety check we make sure that the packed_note BoundedVec has the expected\n // length, since we're about to interpret its raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = <$typ as $crate::protocol::traits::Packable>::N;\n let actual_len = packed_note.len();\n assert(\n actual_len == expected_len,\n f\"Expected packed note of length {expected_len} but got {actual_len} for note type id {note_type_id}\"\n );\n\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, owner, storage_slot, randomness);\n \n // The message discovery process finds settled notes, that is, notes that were created in prior transactions and are therefore already part of the note hash tree. We therefore compute the nullification note hash by treating the note as a settled note with the provided note nonce.\n let note_hash_for_nullification = aztec::note::utils::compute_note_hash_for_nullification(\n aztec::note::HintedNote{\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata: aztec::note::note_metadata::SettledNoteMetadata::new(note_nonce).into()\n }\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(note, owner, note_hash_for_nullification);\n\n Option::some(\n aztec::messages::discovery::NoteHashAndNullifier {\n note_hash, inner_nullifier\n }\n )\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash tree with `note_nonce`.\n ///\n /// The signature of this function notably matches the `aztec::messages::discovery::ComputeNoteHashAndNullifier` type, and so it can be used to call functions from that module such as `do_sync_state` and `attempt_note_discovery`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n owner: aztec::protocol::address::AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol::address::AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n $if_note_type_id_match_statements\n else {\n Option::none()\n }\n }\n }\n } else {\n // Contracts with no notes still implement this function to avoid having special-casing, the implementation\n // simply throws immediately.\n quote {\n /// This contract does not use private notes, so this function should never be called as it will unconditionally fail.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n _packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n _owner: aztec::protocol::address::AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol::address::AztecAddress,\n _randomness: Field,\n _nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\ncomptime fn generate_sync_state() -> Quoted {\n quote {\n pub struct sync_state_parameters {}\n\n #[abi(functions)]\n pub struct sync_state_abi {\n parameters: sync_state_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn sync_state() {\n let address = aztec::context::UtilityContext::new().this_address();\n \n aztec::messages::discovery::do_sync_state(address, _compute_note_hash_and_nullifier);\n }\n }\n}\n\ncomptime fn generate_process_message() -> Quoted {\n quote {\n pub struct process_message_parameters {\n pub message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n pub message_context: aztec::messages::processing::MessageContext,\n }\n\n #[abi(functions)]\n pub struct process_message_abi {\n parameters: process_message_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn process_message(\n message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n message_context: aztec::messages::processing::MessageContext,\n ) {\n let address = aztec::context::UtilityContext::new().this_address();\n\n aztec::messages::discovery::process_message::process_message_ciphertext(\n address,\n _compute_note_hash_and_nullifier,\n message_ciphertext,\n message_context,\n );\n }\n }\n}\n\n/// Checks that all functions in the module have a context macro applied.\n///\n/// Non-macroified functions are not allowed in contracts. They must all be one of\n/// [`external`](crate::macros::functions::external), [`internal`](crate::macros::functions::internal) or `test`.\ncomptime fn check_each_fn_macroified(m: Module) {\n for f in m.functions() {\n let name = f.name();\n if !is_fn_external(f) & !is_fn_contract_library_method(f) & !is_fn_internal(f) & !is_fn_test(f) {\n // We don't suggest that #[contract_library_method] is allowed because we don't want to introduce another\n // concept\n panic(\n f\"Function {name} must be marked as either #[external(...)], #[internal(...)], or #[test]\",\n );\n }\n }\n}\n"
4714
4704
  }
4715
4705
  }
4716
4706
  }