@aztec/protocol-contracts 0.0.1-commit.27d773e65 → 0.0.1-commit.2c85e299c

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.19+7d07e187fb04d79f5a7cf41501d2c12bc2b1d5d2",
3
+ "noir_version": "1.0.0-beta.19+4aabf98178cf7ad48d67f3d20ef718e0c548fdfb",
4
4
  "name": "FeeJuice",
5
5
  "functions": [
6
6
  {
@@ -70,8 +70,8 @@
70
70
  }
71
71
  }
72
72
  },
73
- "bytecode": "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",
74
- "debug_symbols": "pZnbbhs5DIbfxde5GOpAUnmVoijc1CkMGE7gJgssgrz7kpIoOV1ISOSbzGc68w9PomT7bffr8PP194/j+fHpz+7+29vu5+V4Oh1//zg9Pexfjk9nsb7tNv0Djnb3/m4H3u3uo16pXAMUe8ByjfKa9IrlivU1pnKlUK+8u4dNgL0AKHCFhAXcJvcCKmAFiAapggsGZvFm8WYJ3oAqRGdgymjPQn1EEqDNIBhwBXYGVCGZJTsv4De53YFCrABmAa7gxDFHCmrRu7ymUd/Kec1gFs2s9wpYAc2iyc2grnpW4Aqa3gLianAC6mqQ0gUUfwIqiIdB3AiMFZIoB1aIBaKGE5JCMEgVwCxgFmcWjSuDtk0BqqABFsAK0R4Ro4EJokQRpVtiogKonRAlLeg2A7N4tTiFWEHLHb0CVUCzaJUL6D8HBXlolPwgBwOukHwB0s4sIM5HySEBGJglO0YKsf6zq8rkg4FZgimH+izKPmdQQSkBaXFjUkgVtLi4KXCFVC2sHhbACmAWLVMGLROCQqrgzeJVUFLH2bGkQBWyYxnMon1YACvkrGZQZUkvazJR0ps2Z6COSaKSrosCsYIzizOLN4s3i/YPSn6Stg2Sgj6CFVIF1CjEjUTyUNoUqALrXAIFrJDMkqoFNu31SskIms25RqrqlLTPKzWbeko+E5anw6ZOV4pG2GwYGiUjkkJQyMRGOocoZiKjZDbQJVspGkGz6RAqpFOIMBMb+WbLcejEhuDqc/OwL5THfaFmy3EUio00DlbKG0AhfVpS0j6u1Gy5Ckp5G6jUbLkKhUSZNUN5K6jUbBoHQyauz3U5jkJkFJstx5Epb12FJA72mZKRxlGp2bjZuNmS2fKOwC6T2tz7+93OdtofL5fDQTfaq61XNuTn/eVwftndn19Pp7vdP/vTa/6nP8/7c76+7C/yrkR6OP+Sqwg+Hk8Hpfe7fvc2vpWQsd5NBF0gwgcFGCtg0NWcFTAQdYX0QcGNFbyO+CzgMbT7yX3eg+TMgxjCyIMw8yBWgQDxKglrWUyjLOJMwTcBbPcH+LQHsss0gRBHHvAki7L2LItuc6MsprGCIxOQph/V8bNZDDSKYaYgu4spJAfDbp40owwFS6Ss3Z5IDh8l/CQPbAvSJ76q5cdEwqQfkxyrq0QC6g3p08eFDXFSz81bS6FsPF3jC16wrezkrrL5Py9orMFyZ9XghGmswbPVaYF47vn02xeKCslGjAxfHBXVTVorcs9mLwjjUmv64aB1kyiSHs1LOciNXHCTxpSDSrQVpoeW8bAOM5ENqIlsfjhvXbx52Di8cdrMAkmJXI8j8NCJWWvG3ptx4sa8KOGqKGmYDD/pLpDFZRoJfB86YW12ehw1qJ80qGurzMPVuODPuxBDc4H80IVw8/j28dbx7fH28e3p1vH92WTyOJlpNja3lkzwMBo5YdaYG/vQupsnp7PJAQ8kFtPgjYfdPXdEWqo7cn1I+8uR6VqN2GeGDLGhyOywiWQZ8QRx4aAkqx3aar/azv7eEucSW5Nw25JE348EeU2ip/N6wX9Bwm3RJOTjYVySCJvlwgVY8yL4LhFhTaJ9inERaEkitrkj6NYkfOwSftELahLXR75FL1YlWoPLB/mlBnfYRrDDsFZUjK0iSItetB1NJODmQNYkPGNsh3DCRYk299K2lAv57rodtxKOA8HJ9h76ZhLY90UC/HkvuJ1zUloMhHsgaa2oW9sEBNcW+8axS6wtdvmi0yQAVgOhLnFzIKsS0Cc4eF6TCO0jiXwJuijhugTcHMiqBKUmwWtbEfSiSoEXJVqDu8UJfhXIqoTz2CQoDCXYrY2c7/Jq/3C8fPjN9V21Lsf9z9Ohvnx8PT9cvfvy77O9Y7/ZPl+eHg6/Xi8HVeo/3Mqfb7IL3cl309/15wF5Kb9FEOsL0PfkZxrZIL+/qyv/AQ=="
73
+ "bytecode": "JwACBAEoAAABBIBIJwAABEglAAAASicCBAQCJwIFBAAfCgAEAAUARhwAR0cGLQhGAi0IRwMlAAAAeicCAgRIJwIDBAA7DgADAAIsAABDADBkTnLhMaApuFBFtoGBWF0oM+hIeblwkUPh9ZPwAAAAJwBEBAMnAEUAACYlAAABjx4CAAQBCiIEQwUWCgUGHAoGBwAEKgcEBicCBAEACioFBAckAgAHAAAAsicCCAQAPAYIAR4CAAUACioGBQckAgAHAAAAySUAAAG1JwIFAAEpAgAGAO9SU00tCAEHJwIIBAQACAEIAScDBwQBACIHAggtCggJLQ4GCQAiCQIJLQ4FCQAiCQIJLQ4CCScCBQQILQgACC0KBwotCEQLAAgABQAlAAABxy0CAAAtCgoCCiICRQUKKgUEBiQCAAYAAAFDJQAABP8eAgAEAC8qAAIABAAFHAoFBgYcCgYEABwKBAUGACoFAwQOKgUEBiQCAAYAAAF2JQAABREtCwcDACIDAgMtDgMHHAoEAwAwCgADAAImKAAABAR4SAwAAAQDJAAAAwAAAbQqAQABBdrF9da0SjJtPAQCASYqAQABBXff7AtjnJehPAQCASYlAAABjxwKAwYAKwIABwAAAAAAAAAAAQAAAAAAAAAABCoGBwgtCAEFJwIGBAUACAEGAScDBQQBACIFAgYtCgYHLQxFBwAiBwIHLQxFBwAiBwIHLQxFBwAiBwIHLQ4IBwYiA0QGJwIHBAAnAggBAScCCQQBJwIKBAItCgcEIwAAAkgMKgQGCwAqBQkNLQsNDAAqBQoOLQsODSQCAAsAAAO7IwAAAmwGIgNECwQiC0QOAioDDgYKKgYHCxYKCw4tCgUEJAIACwAAApQtCgQEJAIACwAAA2ojAAACoQIqAwYLDioGAw8kAgAPAAACuCUAAAUjDCILRA8kAgAPAAACyiUAAAU1ACICAhAAKhALES0LEQ8AKgwPEC0CBQMnAAQEBSUAAAVHLQgFDAAqDAkPLQ4QDwwqCQYFJAIABQAAAw4tCgwEIwAAA2oAKgsJBQ4qCwUGJAIABgAAAyUlAAAFEQwiBUQGJAIABgAAAzclAAAFNQAiAgIIACoIBQstCwsGACoNBgItAgwDJwAEBAUlAAAFRy0IBQQAKgQKBS0OAgUjAAADagoqAwcFEioFDgMkAgADAAADhS0KBAIjAAADrS0IAQInAgMEBQAIAQMBJwMCBAEAIgQCAwAiAgIFPw8AAwAFIwAAA60AKgIJBC0LBAMtCgMCJgQiBEQLBiILRA8KKg8EDiQCAA4AAAPXJQAABaEMIgtEDiQCAA4AAAPpJQAABTUAIgICDwAqDwsQLQsQDgAqDA4PLQIFAycABAQFJQAABUctCAUMACoMCQ4tDg8OACoLCQ4OKgsODyQCAA8AAAQuJQAABREMIg5EDyQCAA8AAARAJQAABTUAIgICEAAqEA4RLQsRDwAqDQ8OLQIMAycABAQFJQAABUctCAUNACoNCg8tDg4PACIFRA4tCw4MACoLCg4OKgsODyQCAA8AAASOJQAABREMIg5ECyQCAAsAAASgJQAABTUAIgICDwAqDw4QLQsQCwAqDAsOLQINAycABAQFJQAABUctCAULACILRAwtDg4MLQgBBScCDAQFAAgBDAEnAwUEAQAiCwIMACIFAg0/DwAMAA0AKgQJCy0KCwQjAAACSCoBAAEFursh14IzGGQ8BAIBJioBAAEF0Afr9MvGZ5A8BAIBJioBAAEFG7xl0D/c6tw8BAIBJioBAAEF5AhQRQK1jB88BAIBJi0BAwYKAAYCByQAAAcAAAWcLQABBQAAAQQBAAADBAktAAMKLQAFCwoACgkMJAAADAAABZItAQoILQQICwAACgIKAAALAgsjAAAFbicBBQQBIwAABaAtAAMFJioBAAEFBQQbmSCvYEw8BAIBJg==",
74
+ "debug_symbols": "rZnRbiMrDIbfJde9wGAM9FVWq1W2m11FitIq2x7pqOq7HxuwJ90jUEv2pvONp/wxtjFk8rr7cfj+8uvb8fzz8ffu/svr7vvleDodf307PT7sn4+PZ7a+7pz8AZ929+FuB8Hv7qNcU7siNDtSu0a+T3KldqV+T6VdE/Zr3t2DY8iBAQRyh0INvOOxQALUAaJC6eBRQS1BLUEtGBRSh+gVVJn0s0g+ojAkp4AKuUP2CqlDUUt1niE4Hu5BIHYAtUDu4NkxnwTEIqOChFEe1bhWUItENgQB6kBqkeBWEFdDFsgdJLwN2FX0DOIqcuqQ2B8kAfYQ2Q3M1KGwMmaB2CDKdBqoBdQCZikdZF4NcgcpmwapA4ICdYgiyEGIGRVYMHKRxIIKLBg5GuRCB8+joheIHYJaglg4LISuQ5JRKJA7ZLXIlBuwP5Hjk6T8GpQOgApq8WqRmUYOZgoimARSB/QKapFUNqAOkovIQUhSWrEIpA6lW7KkoAHPizgaWVLQIHeQyDdQS1CL+EMcsSz+kBegDuJPA7WIPw1iByktCgI8d+JAFYkPkUDsUP2poBavFq+WoBYpAEoC1CHK/3AQSv30CmpJapHEVZDEURHIHSRxAuCqZ43MBmYT55K0HldrpxEaFaVgtpCVpJV04nAmaVdOmkkns4njjcTz5CtFJfG9U1YqZitqY2eYQqXUyh1A5tGJlLzZ6iKoVFdBI2m5WKkoyTxSrJSVotlq024kbZyEEhgVJVmoncxWzFbnIb3ey2Ktn+tlHo3AG5lN5tGJlGQeqVRCo6KEZkOzRbNFs9V85Le3u53ubd+eL4eDbG1Xmx1vgU/7y+H8vLs/v5xOd7t/9qeX+k+/n/bnen3eX/gpV8Dh/IOvLPjzeDoIvd1to914aKJMfXRKsAlEeKcAYwVCWX5VgTClTaG8U/BjhSDdtQoEQhuf/Mc9KF49iIgjD3DiQdYpIPAoE1iLYhlFkWYKwQTIxiN82IPkowlgHHmQJ1HkI49G0Ts/imIZK/CJpAv4MszjR6OIaTSHmUJxWgm8UcGwmifFyEtXAwm+bIHM+F4iTOKQdUGGkq9y+T6QMKnHwgfZLlEgbasylPcLG+Ikny5oSZHDrabCJ7ywZVH8VTT/50Uaa2Qe2TVyoTLWyLP+oBMJeYtncJ9IKhRtMbwT0SipflJaMW/R3BKSaak0w7DR+sksihyGWzqSH7ngJ4XJO3jUFcY8adY4E3GQTISPJUOReHOz8XRjt5lNpJTkt3lgHjoxK8241WacuDFPCl4lpQyDESbVxSce0ygQtqaDa70z0KhAw6RAva2yAFftIn/chYjmQgpDF/Dm9h3ire070O3tO6Rb2/dHg5nHwSyztuksmBBg1HJwVpj87QKtuvPkdDY54PEZ3/zILg+re+4Il9TmyPUh7Q9Hpms10tYzuIkNRWaHTUoakZAgLhyUeLWDrfar7ezPLXEu4UzCuyWJssXierV+QsK7qBL8Vi2uSeRoEmXNCwgaC8a8JIHOJBDWvMDNC4ywJmFfhHyEtCQR7ZDBZ4WyJhHi35TAtXBGK3B+m7pU4Pw1HUwiLUrYdsQSa0kl2wj+igQuSQR+9WaH8ESLEtb3ilsKJ78ttuNWofFEaLK988LQwoj8Asg0IH/ci7x5UdYywm/xrOXAmoSz/Ywl/K29c1UC0I7hQG5Rwm8ScHMHX5VIxSTyWu+ELSOcnUUJazl+sWtdTWRVwgcyiYRDiZTXltlXvts/HC/vftl7E63Lcf/9dOi3P1/OD1dPn/990if6y+DT5fHh8OPlchCl7edB/vOFt5A7n+CrvMLmW35vnbLcgDzjPY73yq9v4sp/"
75
75
  },
76
76
  {
77
77
  "name": "balance_of_public",
@@ -122,8 +122,8 @@
122
122
  }
123
123
  }
124
124
  },
125
- "bytecode": "JwACBAEoAAABBIBGJwAABEYlAAAARScCAgQBJwIDBAAfCgACAAMARC0IRAElAAAARi0CAUUnAgIERScCAwQBOw4AAwACJiUAAAEzHgIAAgknAgMBASQCAAIAAABiJQAAAVkpAgACAO9SU00nAgMAASsCAAQAAAAAAAAAAAMAAAAAAAAAAC0IAQUnAgYEBQAIAQYBJwMFBAEAIgUCBi0KBgctDgIHACIHAgctDgMHACIHAgctDgEHACIHAgctDgQHLQgBAScCAgQFAAgBAgEnAwEEAQAiBQICACIBAgM/DwACAAMnAgIEAQAqAQIELQsEAycCAQAACioDAQInAgEBAAoqAgEEJAIABAAAARIlAAABax4CAAEALyoAAwABAAIcCgIDBhwKAwEAHAoBAgYtCgIBJigAAAQEeEYMAAAEAyQAAAMAAAFYKgEAAQXaxfXWtEoybTwEAgEmKgEAAQXcG27r+7a8QzwEAgEmKgEAAQW6uyHXgjMYZDwEAgEm",
126
- "debug_symbols": "nZbbrqowEIbfpddcdKbH8VVWjEHFFRKChqU72TG8+54iA7KTNive2L9T+JhTa5/q3Bwf34e2v1x/1O7rqY5D23Xt96G7nup7e+3Z+lQ6/QSndqZSkSeWBzcNZF5DVDuASoEOswCchTEiZMnKkhWLE4sTiwcRbhZBi7AiaBZRPhHFDUpAk4R/CdQgQiwgFhALigWTGxwWGhQhFpue8Un4WTixOLF4sXiaRfIZMQm2YOJEBmJaSq6+xGQZx0pJ7g/3oWlS6t+KwSW61UPT39Wuf3Rdpf7U3WN66OdW99N4rwde1ZVq+jOPDLy0XZPUWK1v6/yroEHb+XXW7JQgHGwYkGeQT0FNCPI2rATaELDkRVyc4L5aCAE/jSPm4igy0MaFgT7kGK7AQOsEgeQWQrQbgs8TMEo5Da1RWNgmMxTKAUsyift8QRjadkXMIyKlDp4QkTxlEZRHGGskjLiGYfR/XVUoB/KunxEIMXzGQCOtyTvd5hmF5rSBpKQ2GlwYEH/tBldyyQYRZN0oNRaQZAOM9rnGggLCLU54vR4V0X+4PwJlz4pSd9ogzRkw5wTEohfOv3mRPW+AShANYYFoY7OHViEfnv+EJKGoMYsoHJ0YhIBkc8deKRDiLK5x2Jh1whS606171RXcKBfFvhWF8skotTifNcIgMOvZZ7m99jytT+2wua2MCTa09bFr5unl0Z/eVu9/b7Iit53bcD0158fQJNJ65QH+/XKx8mafrjQ88aHytB/Tp/8B"
125
+ "bytecode": "JwACBAEoAAABBIBFJwAABEUnAgMEAScCBAQAHwoAAwAEAEMtCEMCJQAAAEAtAgJEJwIDBEQnAgQEATsOAAQAAyUAAAEtHgIAAwknAgQBASQCAAMAAABcJQAAAVMpAgADAO9SU00nAgQAASsCAAUAAAAAAAAAAAMAAAAAAAAAAC0IAQYnAgcEBQAIAQcBJwMGBAEAIgYCBy0KBwgtDgMIACIIAggtDgQIACIIAggtDgIIACIIAggtDgUILQgBAicCAwQFAAgBAwEnAwIEAQAiBgIDACICAgQ/DwADAAQnAgMEAQAqAgMFLQsFBCcCAgAACioEAgMnAgIBAAoqAwIFJAIABQAAAQwlAAABZR4CAAIALyoABAACAAMcCgMEBhwKBAIAHAoCAwYtCgMCJigAAAQEeEUMAAAEAyQAAAMAAAFSKgEAAQXaxfXWtEoybTwEAgEmKgEAAQXcG27r+7a8QzwEAgEmKgEAAQW6uyHXgjMYZDwEAgEm",
126
+ "debug_symbols": "nZbbjuIwDIbfJde9iJ2jeRWEUIEyqlQV1IGVVoh3X6db9zBSohE35K/Tfv1juyEvdWlOz69j219v32q3f6nT0HZd+3Xsbuf60d56jr6UTj+e1M5UKli1szzQOMQwDoRqB1Ap0CDCTwLDJIxMGZmyErEScRJxTgRNwlsRcRLBiJBXRLERE5DNAmkR7r9ArUVIBCQCEsFkwybhJ2EkYtI9noXVIiTiJOIk4o0I9ozIInnGxIkMxDSVrI6Cxsj7XSnJ/fExNE1K/aoYXKJ7PTT9Q+36Z9dV6k/dPcebvu91P46PeuBZXammv/DIwGvbNUm9q+VpnX+Uq6jt9DhrNiUIBxsG5Bnk06JGBHkbFgJtCFhyEWcToBdCwE/XEXPrKDLQxpmBPuQYrsDgHhEEkpsJ0W4IPk/AKOU0tKzCwjaZoVAOmJNJ3N4zwtC2K2IeESl18IiI5CmLoDzCWCPLiMsyjP7RVYVyIASaEAgxfMZAI62JGGyeUWhOB0Eq4nDVnBB/bYMrOWeDCLI2So0FJNkAo32usaCAcLMJr5etIvoPv49A2b2i1J02SHPy150xAbHowvmVi+x+A1SCaAgzRBub3bQK+fAQJR0eNWYRha0TgxCQbG7bKy2EOIvLOmzMmjCF7nTLt+oKNspFsauiUD4ZpRbnvUYYBGbZ+yy314Ev63M7bE4r7wQb2vrUNdPl9dmfV7OPv3eZkdPOfbidm8tzaBJpOfKkk8GeG8vDgY8Q/P+8967y4fBOr/4H"
127
127
  },
128
128
  {
129
129
  "name": "check_balance",
@@ -164,8 +164,8 @@
164
164
  }
165
165
  }
166
166
  },
167
- "bytecode": "JwACBAEoAAABBIBFJwAABEUlAAAARicCAgQBJwIDBAAfCgACAAMARBwAREQGLQhEASUAAABsJwIBBEUnAgIEADsOAAIAASwAAEMAMGROcuExoCm4UEW2gYFYXSgz6Eh5uXCRQ+H1k/AAAAAmJQAAAZoeAgACCScCAwEBJAIAAgAAAIglAAABwB4CAAIBCiICQwMWCgMEHAoEBQAEKgUCBCcCAgEACioDAgUkAgAFAAAAuycCBgQAPAYGASkCAAMA71JTTScCBQABKwIABgAAAAAAAAAAAwAAAAAAAAAALQgBBycCCAQFAAgBCAEnAwcEAQAiBwIILQoICS0OAwkAIgkCCS0OBQkAIgkCCS0OBAkAIgkCCS0OBgktCAEDJwIEBAUACAEEAScDAwQBACIHAgQAIgMCBT8PAAQABScCBAQBACoDBAYtCwYFJwIDAAAKKgUDBAoqBAIDJAIAAwAAAWYlAAAB0h4CAAMALyoABQADAAQcCgQFBhwKBQMAHAoDBAYMKgQBAwoqAwIBJAIAAQAAAZklAAAB5CYoAAAEBHhFDAAABAMkAAADAAABvyoBAAEF2sX11rRKMm08BAIBJioBAAEFDv4gSes3Tjw8BAIBJioBAAEFursh14IzGGQ8BAIBJioBAAEFhHKAwoQjC0Y8BAIBJg==",
168
- "debug_symbols": "nZbdavMwDIbvJcc9sCT/qbcyxsi6dARCWrL2g4/Se5+8WvkZ2IyeVG/k5oksyUpuzUf3fv1868fj6avZv9ya96kfhv7zbTgd2kt/GsV7a0z6AaBmTzuxsdlbsUgPS5Ctb/ZBrJVrTtY/rDMPv3MP6+UaIAmXRVBPiFlEUhFERBHsHwINZIGoQpdIl0g9Vj1WPSmah7AqOAtPKmIWQR8RchgYBYgmCZcFGxXZQ8aoUA+oByQMlH0Rggr1UPoPJeGysOqx6nGkQiJESS6lmCndHgRIaSn4LKJ6YvJIhYhBRfZYY5O433eNFvztMnVdqveqA6Qvzu3UjZdmP16HYdf8a4frz5++zu34Yy/tJKuyxW78ECvAYz90Sd13y92mfGtk5/PdkUOcAQ42BCgT2KMS2NuwEHhDwDIBTLSZAGAWQsCndhFNaRcVAgNoDAxUzIMrE7z1SpA0FPPgywSynAHkbSkL1QgYNQJnbSmCWIvAZYCV+bEAnsriuhd+dVMFETxlQgh+Bti/F9LwEgJQMYRaP+KcBpDxMiOi3SKojMCoZ5I4rnaxrURKVjmV86FgRJgZxNuzDa52LBDnY+G5zKg2pdaD4rITMr/SGSq5gKB9jfJieY4h7xZlYLBlBpcZNvDc3ZFwZkD8cxhSzDkbzFAOo9ZdwJoOIONL3YUVhJuj8GY5pdE/dUacK50RrLWnDUoIWAoBXW3o4zyzRZcHJvoaxECYIYaKMw8rRfUQo6YTDRYRlbmJQQnIxcld2whLFpd92FgKgipVJbccVVcJo14UuyoKF5NBtQaXWaMMXk1g++QQD9v3+atctYd+2nwr3xNr6tv3ocuXx+t4WK1e/p91Rb+1z9Pp0H1cpy6RVh/c8vsSYBf8a/rqlguZ5RFf7+nR3w=="
167
+ "bytecode": "JwACBAEoAAABBIBFJwAABEUlAAAARicCAwQBJwIEBAAfCgADAAQARBwAREQGLQhEAiUAAABsJwICBEUnAgMEADsOAAMAAiwAAEMAMGROcuExoCm4UEW2gYFYXSgz6Eh5uXCRQ+H1k/AAAAAmJQAAAZoeAgADCScCBAEBJAIAAwAAAIglAAABwB4CAAMBCiIDQwQWCgQFHAoFBgAEKgYDBScCAwEACioEAwYkAgAGAAAAuycCBwQAPAYHASkCAAQA71JTTScCBgABKwIABwAAAAAAAAAAAwAAAAAAAAAALQgBCCcCCQQFAAgBCQEnAwgEAQAiCAIJLQoJCi0OBAoAIgoCCi0OBgoAIgoCCi0OBQoAIgoCCi0OBwotCAEEJwIFBAUACAEFAScDBAQBACIIAgUAIgQCBj8PAAUABicCBQQBACoEBQctCwcGJwIEAAAKKgYEBQoqBQMEJAIABAAAAWYlAAAB0h4CAAQALyoABgAEAAUcCgUGBhwKBgQAHAoEBQYMKgUCBAoqBAMCJAIAAgAAAZklAAAB5CYoAAAEBHhFDAAABAMkAAADAAABvyoBAAEF2sX11rRKMm08BAIBJioBAAEFDv4gSes3Tjw8BAIBJioBAAEFursh14IzGGQ8BAIBJioBAAEFhHKAwoQjC0Y8BAIBJg==",
168
+ "debug_symbols": "nZbdavMwDIbvJcc9sCT/qbcyxsi6dARCWrL2g4/Se5+8WvkZ2Iye1K/l+oksyUpuzUf3fv1868fj6avZv9ya96kfhv7zbTgd2kt/GsV6a0z6AaBmTzsZY7O3MiI9RoI8+mYfZLQy5zT6x+jMw+7cY/QyB0jCZRHUEmIWkVQEEVEE+4dAA1kgqtAl0iVSi1WLVUvy5iGsCs7Ck4qYRdBHhOwGRgGiScJlwUZFtpAxKtQCagFxA+VchKBCLZT+Q0m4LKxarFocqRAPUYJLyWdK24MAKS0Fn0VUS0wWyRAxqMgWa2wS9/uu0YS/XaauS/leVYDUxbmduvHS7MfrMOyaf+1w/fnT17kdf8ZLO8mqHLEbP2QU4LEfuqTuu2W3KW+N7HzeHTnEGeBgQ4AygT0qgb0NC4E3BCwTwESbCQBmIQR86hTRlE5RITCA+sBAxTi4MsFbrwQJQzEOvkwgyxlA3paiUPWAUT1w1pY8iBUP5kRYkF0z4KkormvhVzVVEMFTJoTgZ4D9eyINLy4AFV2o1SNap/Uo7WVGRLtFUBmBUe8kcVydYpuJFKxyKOdcMCLMDOLt3QZXuxaI87XwXGZUi1LzQXE5CZlf4QyVWEDQukZ5sTzHkHeLMjDYMoPLDCcvvMxwuGozEP/shiRzjgYzlN2oVRewhgPI+FJ1YQXhZi+8WZpd9E/dEedKdwRr5WmDEqRBFVxAV2v6OPds0eWGib4GMRBmiKFiz8NKUj3EqOFEg0VEpW9iUAJysXPXDsISxeUcNpacoEpWyS1X1VXcqCfFrpLCxWBQrcCl1yiDVx3YPtnEw/Z9/iqz9tBPm2/le2JNffs+dHl6vI6H1erl/1lX9Fv7PJ0O3cd16hJp9cEtvy8BdsG/pq9umUgvj/h6T4/+Bg=="
169
169
  },
170
170
  {
171
171
  "name": "claim",
@@ -1985,6 +1985,10 @@
1985
1985
  "error_kind": "string",
1986
1986
  "string": "attempt to subtract with overflow"
1987
1987
  },
1988
+ "5421095327929394772": {
1989
+ "error_kind": "string",
1990
+ "string": "attempt to bit-shift with overflow"
1991
+ },
1988
1992
  "6609888949476313245": {
1989
1993
  "error_kind": "string",
1990
1994
  "string": "Message not in state"
@@ -2015,8 +2019,8 @@
2015
2019
  }
2016
2020
  }
2017
2021
  },
2018
- "bytecode": "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pWvP5Nhy7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dqkX3jl3KVrc+7StTl36dqcu3Rtzl26NucuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dO2VHFvOXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dqcu3Rtzl26NucuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2gc4tpy7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StU9wbDl36dqcu3Rtzl26NucuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbnLl2bc5euh3OXrodzl66Hc5euh3OXrodzl66Hc5euh3OXrodzl66Hc5euh3OXrodzl66Hc5euh3OXrodzl66Hc5euJ4ljm4djm5djm49jy7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1lOOY8u5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bzCMeWc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rac2x5Zz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/60nlWPLuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9YD3X9bvWnrtqmdq7Rp2aF3rc2eZqVvvOnmW269rUzZcrffceddd99z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",
2019
- "debug_symbols": "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OZ7y1c51qjueLtnxpOUZjejEIHZiUqGI0E6XrH97umRHaBPahDahTWgT2oQ2oU2Nzc4FrYqi2bmkVdGJQezEJBZxEOcVG7TTJTsa0YlBhNagNWgNWoNmDyJjM8ZmjM2gnS7ZMYlFHERoDs2hOTSH5sykMzZnbM7YHJpz3IKZDGYymMmAFtACWkALaMFMBmPrjK0ztg6tc9w6M9mZyc5MdmgdWoeW0BJaMpPJ2JKxJWNLaMlxS2YymcliJgtaQStoBa2gFTNZjK0YWzG2AW1w3AYzOZjJwUwOaAPagDagDWiTmZyMbTK2ydgmtMlxm8zkZCYnMzkv2lr3umMjGtGJQezEJBbxoq11ryvikoZLGi5Z615XhQYNlzRc0nBJwyUNlzRc0nDJWve6aObEIHZiEqEZNFzScEnDJQ2XNFzScEnDJWvd66J5EZlJXNJwyVr3uioENFzScEnDJQ2XNFzScEnDJWvd66J1jhsuabik4ZK17nVXgIZLGi5puKThkoZLGi5puGSte1205LjhkoZLGi5Z615XhYKGSxouabik4ZKGSxouabikFbTiuOGShksaLmkD2oCGSxouabik4ZKGSxouabhkrXtdtMlxwyUNlzRcsta97grQcInhEsMlhksMlxguMVyy1r2etLXudcdBvGbScMla97oqNGi4xHCJ4RLDJYZLDJcYLlnrXhfNGtGITgwiNIOGSwyXGC4xXGK4xHCJ4ZK17nXRvBOZSVxiuGSte10VAhouMVxiuMRwieESwyWGS9a610ULjhsuMVxiuGSte10VOjRcYrjEcInhEsMlhksMl6x1r4uWHDdcYrjEcMla97orQMMlhksMlxguMVxiuMRwyVr3umjFccMlhksMl9iANqDhEsMlhksMlxguMVxiuGSte120yXHDJYZLDJfYhDah4RLDJYZLHJc4LnFc4rhkrXs9aWvd645JLOIgQmvQcInjEscljksclzgucVyy1r0uWruOm+MSxyWOS5zPOGvd647QcInjEscljksclzguWeteF82dyEziEsclzmecte51R2i4xHGJ4xLHJY5LHJesda+LFhw3XOK4xHGJ8xlnrXvdERoucVziuMRxieMSxyVr3euiJccNlzgucVzifMZZ6153hIZLHJc4LnFc4rjEccla97poxXHDJY5LHJc4n3EclzjXJc51ieMS5zPOWve6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iUsSlyQuSVySuCRxyVr3umjBccMliUsSlySfcda61x2h4ZLEJYlLEpckLklcsta9LlrnuOGSxCWJS5LPOGvd647QcEniksQliUsSlyQuWeteFy05brgkcUnikuQzzlr3uiM0XJK4JHFJ4pLEJYlL1rrXRRscN1ySuCRxSfIZZ6173REaLklckrgkcUniksQla93rok2OGy5JXFK4pPiMs9a97ujEIHZiEos4iNfY1rrXRWuNaEQnBhFag4ZLCpcULilcUrikcEnhkrXuddGsE5NYxEGEhkuK65LiuqRwSfEZZ6173REaLilcUrikuC5Z617LzniO7aywPuOsGMROTGIRB3FecblkxYM22hmN6MQgdmISiziI84qnS3aEltASWkJLaAntdMnx23N9rXvdkbEVY1ufcVZkJouZLGaymMliJouZLGayoA1oA9qANqANaAPaYGyDmRzM5GAmJzM5mcnJTE5mcjKTk5mc0Ca0CW1etLXudcdGNM36Wvd6jmKte92xE5NYxEG8ZnKte92xEY0IrUFr0Bq0Bq1Ba9CMsRljMyM6MYidmMQiDiIz6dAcmkNzaA7NoZ0uWbN+umSMMw7ivOLpkh0b0YhODGInHrTj10/7Wve64yDOK54u2bERjejEIHYitA6tQ+vQElpCO1zyvMF4RifGEeuMnZjEIg7ivOLhEsVGNKIToRW0glbQClpBG9AGtAFtQBvQBrQBbUAb0Aa0CW1Cm9AmtAltQpvQJrQJbV60c92rYiMa0YlB7MQkFnEQoTVoDdrhkudd2zMeNOtnDGInJrGIgziveLhEsRGNCM2gGTSDZtAMmkFzaA7NoTk0h+bQHJpDc2gOLaAFtIAW0AJaQAtoAS2gBbQO7XDJ8572GY3oxCB2YhKLOIjziodLFKEltISW0BJaQktoCS2hFbSCVtAKWkEraAWtoBW0gjagDWgD2oA2oA1oA9qANqANaBPahDahTWgT2oQ2oU1oE9oULc51r4qNaEQnBrETk1jEQYTWoDVoDVqD1qA1aA1ag9agNWgGzaAZNINm0AyaQTNoBs2gOTSH5tAcmkNzaA7NoTk0hxbQAlpAC2gBLaAFtIAW0AJah9ahdWgdWofWoXVoHVqH1qEltISW0BJaQktoCS2hJbSEVtAKWkEraAWtoBW0glbQCtqANqANaAPagDagDWgD2oA2oE1oE9qENqFNaBPahDahTWi4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmnLJXnGgxbr/zoxiJ140GKe8aAdT5WKc92r4kHLM54u2bERjXjQsp8xiActxxkPWq1/W8SDVv7Lt9/873c///Ddn3/8/n+++cM/n3/8r3/89Je///DXn/Yf//7//qa/+fPPP/z44w///ae//fzXv3z/n//4+fs//fjXvxx/983j+M9xPv9Hy2+t/fH5j9v+//9hvX9rFX98vm8ff//o3z5P4eefzn9uXt9a2PHHdvwxni+Pcbze9PrnWfxt+GO//hj0cwR6/fPy9NvnxYde/3w/+/bp/eP1frz+eIX78+X698/5j3n8dfzrHne94nnN6dcexuPb6Mdf5/WK56cGyz/+8ssvf/zl/wM=",
2022
+ "bytecode": "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",
2023
+ "debug_symbols": "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",
2020
2024
  "verification_key": "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"
2021
2025
  },
2022
2026
  {
@@ -3837,6 +3841,10 @@
3837
3841
  "error_kind": "string",
3838
3842
  "string": "attempt to subtract with overflow"
3839
3843
  },
3844
+ "5421095327929394772": {
3845
+ "error_kind": "string",
3846
+ "string": "attempt to bit-shift with overflow"
3847
+ },
3840
3848
  "6609888949476313245": {
3841
3849
  "error_kind": "string",
3842
3850
  "string": "Message not in state"
@@ -3867,8 +3875,8 @@
3867
3875
  }
3868
3876
  }
3869
3877
  },
3870
- "bytecode": "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bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dozOLacu3Rtzl26NucuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbpF145d+nanLt0bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dqcu3Rtzl26NucuXXslx5Zzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dqcu3Rtzl269gGOLecuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt07RMcW85dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KXr4dyl6+Hcpevh3KXr4dyl6+Hcpevh3KXr4dyl6+Hcpevh3KXr4dyl6+Hcpevh3KXr4dyl6+Hcpevh3KXrSeLY5uHY5uXY5uPYcu6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9ZTj2HLuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/U8wrHl3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/66nNseXcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+tJ5dhy7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/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",
3871
- "debug_symbols": "tZ3fjuTGkXffRddzUfEnIyL9KgvD0Hq1CwGCbGjtBT4YevevyMzgaUloqtQ9vhF/o5mKw0wyTrHI7Op/ffNf3/3nP//nL9//+N9/+99v/vQf//rmP3/6/ocfvv+fv/zwt79++4/v//bj8//+65vH8R/xb/6k+fOXb+T8k+Q3f4rnH6T2dq6tPvZW9lb31vbW93bsbeztrqe7nu56tuvZrme7nu169qyXx/b5+jq2tbdzbf2xt8/Xz2P75MnjCNmhOswdxnPfRI4QHbJDdTj+sT5DPDpIB+1gHZ47KfYMefyVH+FAjCMclY+BZHWYO9RR+RhbSQftYB28w1HnGOg8XnWMdEoH7WAdvEPvxowO2aE6zBX08eggHbSDdXjW0ccRskN1mDvIs47KEZ501SNEh+xQHeYOx4m1gnR40tWOYB28w1HQj3AUPHbsOK80jjDX2NUeHaSDdrAO50Q9T3o9TnrNddJp+t6OvY29zb2tvV0nsdZjb2VvdW93vdr1aterXa92vdr1atc7jnEeWztPbj2O57kdext7m+dJb+dxehzBOniHsYPIOrNNtIN18A5jndB2HLAVskN12I1hxwE7Tno7pv446c32eWPn/MYRvMPoEOuEtqOhV6gOcwd/dLB10tvZ1cdIz64+Q3XYx9vGo0PvxtAO1sE7jA7RITtUh90YdjT8cWbb0fAreIfRIdZJb7lPXztcsIJ18A6jQ3TIDrVOcTvOrTMcJ9cKuk56O06r46S347w6Tno7Tqxz7NUTVT1R1RNVPVHLIM+T3s6T/lnjaKCxNrE2uTa1Ns9Xjue/936f8OcfxvGH4yCeu/bcPP9fnP/g2PHnH/L8w7FjPz//1G84f/nHT999d/zNm3eg5/vS37/96bsf//HNn3785w8/fPnm/7794Z/nP/rfv3/747n9x7c/Pf/2OdHf/fhfz+2z4H9//8N3R/r5C69+vP9SjdD9ak21q0COVyt4jl0gzvfJP/r6kb0DIW9en6++/hOD96O7zxd7TdD18q7Lw3aBZ/SrgsfLez/0OPdWCXX7UAmv7BLjMT9W4joIHy4x9HGV8I/NRaZ3iZzx2RL1eHywxHVQS/RDJcrkKuEf2ovQYVdbxfjYXlyd+Ywfms546NWcD/vYQZ3zmos558fm4vG45sLs8wOpj5XIay8e9aEjEvKoy3UqHyzhlNCPlYhrIM+r9w8eEbmOiPjHSkh98qDKQ/qgyiN47zjKvdzsE18MpnPILypovV+iZjfqtPGhfZjHtcruEJf39sFuSsxHV5jypsX88frJ/bjexR8e7+6D3lxJSPQBfX5E4WiE/rKE3Qzj+bmux6Fv+uN5afbLGn53OK5Orxnz/Rrj/RrPC+xd4nmZSIXHryYjbio89CrxMPlYDbmO6vOjiL9fo+4uzua4LnGM81vq9d2I0SWeV/P2saG8rZH5sRqTKZ3x/pS6/nunYxa7Md/fjVsBo77nrZH3ms3vztDnR7/ei+cHIErU6yXGdYXx/AAX75W4fxeYXPqPd8dxc37qeFwfP4bluyXmTcNLH9J6c/08ftnt4/YSvK4rV31z2Sm/fCMacjMTyeVFer1b4m4vnlPYexFv3kg+WuLNXPyhEllXifmxEoNL8JEfG0g93lzFv3tEbs+K65jON59nfn1W1OfPivn5s6I+f1bU58+K+vxZUZ8/K+rfelY8b6N3iecddH3vvLgvMa+LTpd3T63ImxLPG6TXXjzq3UuUuJmM4Bo+3/84E3cd4lwnvf9pJu9un6j3TrjefCLKO3PO0buRj5tbKHc1kltIOWZ9usbb+1B/qEZddw6y5uODNWxeNfIr1Pjofrydj0d+7Pyw66rP7eaj/22NcbWbx3j/w2o9Pn+O3dV49dje13jt2L5c46P78WK/vFrj7vx4ucZNz91ZbF7Xj3O8fzekbkwqz2e6l46fz2nfv1FWd28LD39zM+Kpww/uy/Ne37UvzydR71aZN71bYdclcYz6YI2YV42be7H3o7HrnvAzj/fP1nn7gf6R1xvVzR3yuxqTG/Xzebw/X0MfH61xna5yc9Nrfv7CdH7+wvR+JJeX5/N5+Pu9e3cdZBbXddCbG9S/vg46J+1diWTXqMebSxCv10tUcffs8dES4yrxwb3I6259fXQvkp798ECuK/0PD2ReTxTnmzsTf7CEXCXygyWua48Pl5DH9dzhGeuD+3HdYL6tcXuTJK/bolry7s1ZEb8bS173SeQx57v3e0TG3UcwHj5g0edd1l9WiDt78Uwq3rtHLJKfv0l83mT77F1ikfnZ28Sij8/fXL0v8uKdUdHP3xr9nR157d7o7TkW15tCqb97julNhenXCRL+7jmm8en3WNH89Jvs/X68dvvn9Rrv3//5nRov3QC6r/HaHaD7Gq/dAro9O54axsj2voPuHjK9en7cPWR69fy43Y8Xz4+Xa9ycH/c1Xjs/bmu8eH7c1vgq50dyfrwZy6/Pj7vnTK+eH26fPz9u9+PF8+PlGjfnx32N186P2xovnh+3Nb7G+SHX4p7n+9jj3fPjKzxykq/wzEm+wkMn+QpPneQrPHaSr/DcSb7Cg6ffOT94QKBvPkP95vyor3B+zK9wftRXOD/qK5wf9RXOj/oK50f9m88PHdddD33z7ObX50d8hevT+ArXp/EVrk/jK1yfxle4Po2vcH0a/+7r0zF7PiTk/evT2xoxrveouDnHcnz+KaVkfPYxpWR+9jmlZH3+QeX5IOCzT5Fui7z66OXlInfPTe6LvPhA63eKvPZE6/UiH96TF59H3Z8nLz6wvC/y4hNLuXt08vLJdlfk5UN8X+TFQ/xykQ/vyau982qR2/Pk5SK3DZiffXIpM77Go0uZ+TWeXf7O3rz68FLuHk69+vTyd4q89vjydwb06vNLvX2k8uIDzNsirz7BfL2IPj5c5KVnmPr4/AWsPj5/Afs7g3ntMeb9ldKLzzFVHp99jnlb4rXnmL9T4pXnmL8zkFeeY96XeOk55v1AXnqOeVviteeYv1PileeY9yVeeo55W+LV55j3+/Hac8zbRzvPJ5SDWyPx/gPE248lNJu+uQr4VQ3Vm1urdj2E9LfXVo9ftaverUrhLH/79vKbErcjuZ5TPd859V1/3e3Gm3P0zQ8S/KGRzOvnl355YP9IjeeN8vHmOuSmyN0SqustQR9vn8j+6iS9+zmoVx/rqslnH+vq3c9CvfpY977Ii4919e6JyIuPdX9nR77CY93nBSFLr99cNvyh3jcuMF3fXYCgdz8RJRXXfkx/9/as2vz8EoTztsOnz1X//Ll690zk1R9Vuy/y4s+qncr77LnqX6Pz7otc1/0Wb3bktyf8nROPp4eXFEXe/SEtvVv78zwz5mX4Nz+B/Zsa8+6u5PXjZm+ed5f8gb0ouS4t603z/nov7p5XPW+sz+syZLz9OdXx+lKo541Ivc6zN19X8euf1x13D1Yfdv1o/dufdbXX94KP3fa2/3+zFzcue17GXD8u6/buY+bzYcGnPTTyK3jo7sHIix66e171sodui7zqoZDPe+h2R1710MtFbn5s9r7Iq5cRMf7NU/LiZcRt5+n18N10vt//dz86ZZeW/U33/+oLZ253wq7bKPb2rtCvd+Lu51qej/bH9ZhnSL5v9vwaTv2dfXnzqGe4vf9OlXc/vP/25h8OeP2LgMIvt4e/ufv+m2m9OU9Lr8/9ZW9u7/5mIHc1bFy3H97ezvlNjfwqB+Z2T6537vK7U+Sm657v69fi4TE+8gVPz4cY15d9DP3lj3n/+fmnb//6/U+//OLE83vtju/ZO74G69jW3s61Pb4i7XjDOL7S7tzq3tpx5+3L+d1b53Yc5lnfvnVuj6/f0v39W7q/gOv4drDH3sre6t7a3vrejr2Nvd31bNezXc93Pd/1fNfzXc93Pd/1fNfzXc93Pd/1xq43dr2x641db+x6Y9cbu97Y9cauN3a92PVi14td7/getvE82sfXsJ3bsbdHved5Frm3tbdzbfOxt7L+/fEVbed21zu+oO38+7G3u17uernr5a5Xu17terXr1a5Xe/9q71/terXr1a5Xu97c9Y6vdjy3ure2t3v/5q53fA/guc29rb2dayuPXVAe0kE7WAfvMDpEh+xQHbry8SWPK0gH7WAdurJ0ZenK0pWlK8ueg/MbRlfofdbeZ+3K6h1Gh+iQHbqydmXrytaVrStbz4b1Plvvs/U+W1e26tCz4T0b3rPhXdm7sndl78relb1nw3ufvfd59D6Prjx6nkfPxujZGD0boyuPrjy68ujK0ZWjZyN6n6P3OXqfu8Mkep6jZyN6NqJno9tMsitnV86u3K0m3WvSzSbdbdLtdn5l6lm5ep6746RbTrrnzq9MPV9VXbnbTrrvpBtPuvOkW0+696Sb7/xa1bPy7Hnu/pNuQOkOPL9Wdb1qV9buQe0e1O5B7R7U7kHtHtTuwfOLVo/K5xetrrBnQ7sHtXtQpStLV+4e1O5B7R7U7kHtHtTuQe0ePL+M9ays2sE6eIfRoStrV+4e1O5B7R7U7kHtHtTuQe0eVOvKFh16NroHtXtQvSt7V+4e1O5B7R7U7kHtHtTuQe0eVO/Ko+e5e1C7B7V7UEdXHl25e1C7B7V7ULsHtXtQuwe1e1D7PU77TU67B7V7ULsHtd/otN/ptHtQuwe1e1C7B7V7ULsHtXvw/Kbbs3L2PHcPavegdg+eX3d7vqq6cvegdg9q96B2D2r3oHYPavegzq48e567B7V7ULsHzy/DXa/qyt2D2j1o3YPWPWjdg9Y9aN2D51fmHpXtER2yQ3XYs2HSlaUrdw9a96B1D1r3oHUPWvegdQ+e3697VtZHB+mgHaxDV9au3D1o3YPWPWjdg9Y9aN2D1j14fnPvWdm8Q89G96B1D57f3Lte1ZW7B6170LoHrXvQugete9C6B89v9z0re89z96B1D1r34PntvuerRlfuHrTuQesetO5B6x607kHrHrToytHz3D1o3YPWPWh9qWl9rWndg9Y9aN2D1j1o3YPWPWjdg+d3Ap+Vs+e5e9C6B6170PrC06ordw9a96B1D1r3oHUPWvegdQ+eXw58Vp49z92D1j1o3YPWl6E2u3L3oHUPWvegdQ9696B3D3r3oD92ZX94h9EhOmSH6ld15e5B7x707kHvHvTuQe8e9O5Bl64s1WHPhncPeveg97Woa1fuHvTuQe8e9O5B7x707kHvHnTryqYdeja6B7170Pta1K0rdw9696B3D3r3oHcPevegdw+6d2Xvee4e9O5B7x70vhb10ZW7B7170LsHvXvQuwe9e9C7B3105eh57h707kHvHvS+FvXuQe/3Qe/3Qe8e9L4W9ezK/ZnPuwe9e9C7B73fB/3swTzC8Q3tjyNUh7nD+aXvZ5AO2sE6eIfRITp05erK1ZVnV55deXbl2ZVnV55deXbl2ZVnV5678ng8OkgH7WAdvMPoEB2yQ3XoytKVpStLVz56MM67At5hdDgq2xGyQ3WYO5y/ceIMsl91/s6JM3Tl87dOnP9mdOjK2pW1K2tXtq5sXdm6snVl63223mfrytaVrStbV/aufPTgCtrBOvQ+e1c+enCF7FAd5g6jK4+uPLry6MqjK4+ejdH7PHqfR+/z6MpHD67QsxE9G9GzEV05unJ05ejK0ZWjZyN7n7P3OXufsytnz3P2bGTPRvZsZFfOrlxdubpydeXq2aje5+p9rt7n6srV81w9G7NnY/ZszK48u/LsyrMrz648ezZm7/Pc+xyPR4ddOR7awTp4h9Eh+lXZoTp0ZenKIh20g3XwDl1ZokN2qA57NqJ7MLQra1fWrtw9GN2D0T0Y3YPRPRjale3RoWejezC6B8O6snXl7sHoHozuwegejO7B6B6M7sHwruw9z92D0T0Y3YPhXdm7cvdgdA9G92B0D0b3YHQPRvdgjK48ep67B6N7MLoHI7pydOXuwegejO7B6B6M7sHoHozuwciunD3P3YPRPRjdg5FdObty92B0D0b3YHQPRvdgdA9G92BUV66e5+7B6B6M7sGYXXl25e7B6B6M7sHoHozuwegejO7BmLtyPh4dpIN2sA67cj5Gh+iQHarDno3sHszuwewezH4fzH4fzO7B7B7M7sHs98Hs98HsHszuwewezO7B7B7M7sHsHkztylodeja6B7N7MK0rW1fuHszuwewezO7B7B7M7sHsHkzvyt7z3D2Y3YPZPZjelb0rdw9m92B2D2b3YHYPZvdgdg/m6Mqj57l7MLsHs3swoytHV+4ezO7B7B7M7sHsHszuwewezOjK2fPcPZjdg9k9mNmVsyt3D2b3YHYPZvdgdg9m92B2D2Z15ep57h7M7sHsHszqytWVuwezezC7B7N7MLsHs3swuwdzduXZ89w9WN2D1T1Yj125HtbBO4wO0SE7VIe9z9U9WNKVRTtYB+8wOnTlvhat7sHqHqzuweoerO7B6h6s7sHSrqzRITtUh56NvhYt68rdg9U9WN2D1T1Y3YPVPVjdg2Vd2Xueuwere7C6B6uvRcu7cvdgdQ9W92B1D1b3YHUPVvdgja48ep67B6t7sLoHq69Fa3Tl7sHqHqzuweoerO7B6h6s7sGKrhw9z92D1T1Y3YPV16KVXbl7sLoHq3uwugere7C6B6t7sKorV89z92B1D1b3YPW1aFVX7h6s7sHqHqzuweoerO7B6h6s2ZVnz3P3YHUPVvfg7GvR+ZAO2sE6eIfRITpkh+rQleXRQTpoB+vQlbsHZ78Pzn4fnN2Ds69Fp3bl/jw4uwdn9+DsHpz9PjjPHhxHeFbO81XVYe5w9OAK0kE7WAfvMDpEh65sXdm6sndl78relY8ePH4gex49uMLoEB2yQ3WYOxw9uIJ00A5deXTl0ZVHVx5deXTlowePdRbz6MEVpIN2sA7eYXSIDtmhOhy/slGOp9WPDnL8gMERtIN18A6jQ3TIDtVh7nD04ApdubpydeXqytWVqysfPXis/5pHD64wdzh6cAU5f4DgSHolu5JfaVwprpRXqivNnY6fXiEKUYlGdOIgBjGJRYQm0ASaQBNoAk2gCTSBJtAEmkJTaApNoSk0habQFJpCU2gGzaAZNINm0AyaQTNoBu38bYXHikN5nL+vcEchnr8mtM5oRCcOYhCTWMR5xfP3HO4oRGgD2oA2oA1oA9qANqAFtIAW0AJaQAtoAS2gBbSAltASWkJLaAktoSW0hHb+8lU7j9v561dXPH8B645y/uTGGZVoRCcOYlAhidDOX7q4/u35axd3hDahTWgT2oQ2oU1oE9q8xnau/Ol40c7VPx2N6MRBDGISi3iN7VwNtGmnS3ZUohGdCE2gCTSBJtD0QWRsytiUsSm00yU7BjGJRYRm0AyaQTNoxkwaYzPGZozNoBnHzZlJZyadmXRoDs2hOTSH5sykM7bB2AZjG9AGx20wk4OZHMzkgDagDWgBLaAFMxmMLRhbMLaAFhy3YCaDmUxmMqEltISW0BJaMpPJ2JKxJWPDJevXOe/ITBYzWcwkLpGCVtAKGi4RXCK4RHCJ4JL1y6AXbXLccIngEsEl69dCnxXWL4beUYhKNKITBzGISbxo+riOm+ISxSWKS1SgCTRcorhEcYniEsUliksUl6hCUyM6cRCDCE2h4RLFJYpLFJcoLlFcorhEDZolkZnEJYpL1KE5NFyiuERxieISxSWKSxSX6IA2OG64RHGJ4hId0AY0XKK4RHGJ4hLFJYpLFJdoQAuOGy5RXKK4RANaQsMliksUlyguUVyiuERxiXJdolyXKC5RXKK4RLkuUa5LFJcoLlFcorhEcYniEsUlOqFNjhsuUVyiuEQntAkNlxguMVxiuMRwieESwyX2uGj2SGIRr5k0XLJ+//mqINBwieESwyWGSwyXGC4xXLJ/I/pJUyEq0YhOhKbQcInhEsMlhksMlxguMVyyfg/7otkgMpO4xHDJ+o3sq4JDwyWGSwyXGC4xXGK4xHDJ+j3ui+YcN1xiuMRwyfqN7qvCgIZLDJcYLjFcYrjEcInhEgtowXHDJYZLDJdYQAtouMRwieESwyWGSwyXGC6xhJYcN1xiuMRwifEZx/iMY7jEcInhEsMlhksMlxguWb9aftEmxw2XGC4xXGJ8xrEJDZcYLjFc4rjEcYnjEscl/rho/hjEICaxiNAEGi5xXOK4xHGJ4xLHJY5LXKDJddwclzgucVzifMZxhYZLHJc4LnFc4rjEcYnjEjdoZkRmEpc4LnE+47hBwyWOSxyXOC5xXOK4xHGJOzTnuOESxyWOS5zPOD6g4RLHJY5LHJc4LnFc4rjEA1pw3HCJ4xLHJc5nHA9ouMRxieMSxyWOSxyXOC7xhJYcN1ziuMRxifMZx3GJc13iXJc4LnE+43hB436J4xLHJY5LnOsSXy6xM560OKMRnTiIQUxiEWfHsVyyohCVaEQnDmIQk1hEaAJNoAk0gSbQBJpAE2gCTaApNIWm0BSaQlNoCk2hLZfUGecVl0tWPGnzjEo0ohMHMaiQRGjLJee/XS5ZEZpDc2gOzaE5NIfm0JyxDcY2oA1oA9qANqAtl6yYxCIytoC2XLKiEo3oRGgBLaAFtICWzGQytmRsydgS2nLJisxkMpPJTCa0glbQClpBK2ayGFsxtmJsBa04bpOZnMzkZCYntAltQpvQJrTJTM5rbPF4EIV40eJhRCcOYhCTCkWEJtAEmijRiE4cRGiSxCJeMxn6IEJTaApNoSk0DSJjU8amjA2XhAmRmTRm0phJXBIGzaAZNFwSuCRwSeCSwCXh0JzjhksClwQuCYc2oOGSwCWBSwKXBC4JXBK4JAa0wXHDJYFLApdEQAtouCRwSeCSwCWBSwKXBC6JhJYcN1wSuCRwSSS0hIZLApcELglcErgkcEngkihoxXHDJYFLApfEhDah4ZLAJYFLApcELglcErgkHxctH0JUohGdOKgQxCQWERouSVySuCRxSQo0GcQgJrGI0BQaLklckrgkcUniksQliUuS65LkuiRxSeKSxCXJdUlyXZK4JHFJ4pLEJYlLEpckLkmH5hw3XJK4JHFJOjSHhksSlyQuSVySuCRxSeKSHNAGxw2XJC5JXJIBLaDhksQliUsSlyQuSVySuCQTWnLccEniksQlmdASGi5JXJK4JHFJ4pLEJYlLsqAVxw2XJC5JXJIFbULDJYlLEpckLklckrgkcUlOaPM6boVLCpcULqnHRauHEwcxiEks4jW2wiWFS0qgiRGdOIhBhCbQcEnhksIlhUsKlxQuKVxSCk2TWERmEpcUn3GKzziFSwqXFC4pXFK4pHBJ4ZJyaM5xwyWFSwqXFJ9xyqHhksIlhUsKlxQuKVxSuKQGtMFxwyWFSwqXFJ9xKqDhksIlhUsKlxQuKVxSuKQCWnDccEnhksIlxWecSmi4pHBJ4ZLCJYVLCpcULqmCVhw3XFK4pHBJ8RmnChouKVxSuKRwSeGSwiWFS2pCmxw3XFK4ZOKSyWec+VCiEZ04iEFMYhGvsU2BJkJUohGdCE2g4ZKJSyYumbhk4pKJSyYumQpNBzGISSwiNFwyuS6ZXJdMXDL5jDMNGvdLJi6ZuGTiksl1ybkWVY4vXZVzNar4+o4TIzpxEIOYxCLOK54u2VGI0Aa0AW1AG9AGtAFtQAtoAS2gBbSAFtACWkALaAEtoSW0hJbQElpCS2gJ7XTJ8a1gcq5r3fF0yY4nLc+oRCM6cRCDCkmEdrpk/dvTJTtCm9AmtAltQpvQJrQJbfbYdK173bFputa97mhEJw5iEJNYxHlFgXa6ZEclGtGJ0ASaQBNoAk0fRMamjE0Zm0I7XbJjEJNYRGgGzaAZNINmzKQxNmNsxtgMmnHcnJl0ZtKZSYfm0ByaQ3Nozkw6YxuMbTC2AW1w3AYzOZjJwUwOaAPagBbQAlowk8HYgrEFYwtowXELZjKYyWQmE1pCS2gJLaElM5mMLRlbMraCVhy3YiaLmSxmsqAVtIJW0AraZCYnY5uMbTK2CW1y3CYzOZnJyUzOi7bWve4oRCUa0YmDGMQkXrS17nVFXCK4RHDJWve6Kgg0XCK4RHCJ4BLBJYJLBJesda+LpkZ04iAGEZpCwyWCSwSXCC4RXCK4RHDJWve6aJZEZhKXCC5Z615XBYeGSwSXCC4RXCK4RHCJ4JK17nXRBscNlwguEVyy1r3uCtBwieASwSWCSwSXCC4RXLLWvS5acNxwieASwSVr3euqkNBwieASwSWCSwSXCC4RXCIJLTluuERwieASKWgFDZcILhFcIrhEcIngEsEla93rok2OGy4RXCK4ZK173RWg4RLFJYpLFJcoLlFcorhkrXs9aWvd645FvGZSccla97oqCDRcorhEcYniEsUliksUl6x1r4umQlSiEZ0ITaHhEsUliksUlyguUVyiuGSte100G0RmEpcoLlnrXlcFh4ZLFJcoLlFcorhEcYnikrXuddGc44ZLFJcoLlnrXleFAQ2XKC5RXKK4RHGJ4hLFJWvd66IFxw2XKC5RXLLWve4K0HCJ4hLFJYpLFJcoLlFcsta9Llpy3HCJ4hLFJVrQChouUVyiuERxieISxSWKS9a610WbHDdcorhEcYlOaBMaLlFcorjEcInhEsMlhkvWuteTtta97hjEJBYRmkDDJYZLDJcYLjFcYrjEcMla97poch03wyWGSwyXGJ9x1rrXHaHhEsMlhksMlxguMVyy1r0umhmRmcQlhkuMzzhr3euO0HCJ4RLDJYZLDJcYLlnrXhfNOW64xHCJ4RLjM85a97ojNFxiuMRwieESwyWGS9a610ULjhsuMVxiuMT4jLPWve4IDZcYLjFcYrjEcInhkrXuddGS44ZLDJcYLjE+4xguMa5LjOsSwyXGZ5y17nVHaLjEcInhEuO6ZK17PX5Lja51r+f3t691rzs6cRCDmMQizo5r3euOQlSiEZ04iEFMYhGhCTSBJtAEmkATaAJNoAk0gabQFJpCU2gKTaEpNIV2umR9T/DpkhVPl+x40sYZlWhEJw5iUCGJ0E6XrH97umRHaA7NoTk0h+bQHJpDc8Y2GNuANqANaAPagHa6ZMckFpGxBbTTJTsq0YhOhBbQAlpAC2jJTCZjS8aWjC2hnS7ZkZlMZjKZyYRW0ApaQStoxUwWYyvGVoytoBXHbTKTk5mczOSENqFNaBPahDaZyXmNba173VGIF22te93RiYMYxKRCEaEJNIEmSjSiEwcRmiSxiNdMrnWvO0JTaApNoSk0DSJjU8amjA2XrHWvOzKTxkwaM4lL1rrXHaEZNFwycMnAJQOXDFyy1r3ubynnuOGSgUsGLlnrXleFAQ2XDFwycMnAJQOXDFwycMla97pog+OGSwYuGbhkrXtdFQIaLhm4ZOCSgUsGLhm4ZOCSte510ZLjhksGLhm4ZK173RWg4ZKBSwYuGbhk4JKBSwYuWeteF604brhk4JKBS9a611VhQsMlA5cMXDJwycAlA5cMXLLWvZ60te51RyUa0YmDCkFMYhGh4ZLAJYFLApesda+LJoMYxCQWEZpCwyWBSwKXBC4JXBK4JHBJcF0SXJcELglcErgkuC4JrksClwQuCVwSuCRwSeCSwCVr3euiOccNlwQuCVyy1r3uCtBwSeCSwCWBSwKXBC4JXLLWvS7a4LjhksAlgUvWutdVIaDhksAlgUsClwQuCVwSuGSte1205LjhksAlgUvWutddARouCVwSuCRwSeCSwCWBS9a610UrjhsuCVwSuGSte10VJjRcErgkcEngksAlgUsCl6x1r4s2r+OWuCRxSeKSte71rLDWve44iEFMYhGvsSUuSVyy1r0umhjRiYMYRGgCDZckLklckrgkcUniksQla93romkSi8hM4pLkM07yGSdxSeKSxCWJSxKXJC5JXLLWvS6ac9xwSeKSxCXJZ5y17nVHaLgkcUniksQliUsSl6x1r4s2OG64JHFJ4pLkM85a97ojNFySuCRxSeKSxCWJS9a610ULjhsuSVySuCT5jLPWve4IDZckLklckrgkcUnikrXuddGK44ZLEpckLkk+46x1rztCwyWJSxKXJC5JXJK4ZK17XbTJccMliUsKlxSfcda61x2N6MRBDGISi3iNba17XTQRohKN6ERoAg2XFC4pXFK4pHBJ4ZLCJWvd66LpIAYxiUWEhkuK65LiuqRwSfEZZ6173REaLilcUrikuC5Z616P38iga93r8YsFdK173dGJgxjEJBZxXvF0yY5ChDagDWgD2oA2oA1oA1pAC2gBLaAFtIAW0AJaQAtoCS2hJbSEltASWkJLaKdLju/g1LXudcXTJTueNDujEo3oxEEMKiQR2umS9W9Pl+wIbUKb0Ca0CW1Cm9AmtHmNba173fGirXWvOxrRiYMYxCQW8RrbWve6aKdLdlSiEZ0ITaAJNIEm0PRBZGzK2JSxKbTTJTsGMYlFhGbQDJpBM2jGTBpjM8ZmjM2gGcfNmUlnJp2ZdGgOzaE5NIfmzKQztsHYBmMb0AbHbTCTg5kczOSANqANaAEtoAUzGYwtGFswtoAWHLdgJoOZTGYyoSW0hJbQEloyk8nYkrElY8Mla93rjsxkMZPFTOKSte51R2gFDZdMXDJxycQlE5esda+LNjluuGTikolL1rrXo4Ktda87ClGJRnTiIAYxiU2zte51xcsl9rhcYo/LJbbWva4KAk2gCTSBdrnEHsLYlLEpY1NoakQnDmIQoSk0hWbQDJoxk8bYjLEZYzNolkRm0phJZyYdmkNzaA7NoTkz6YzNGZsztgFtcNwGMzmYycFMDmgD2oA2oA1owUwGYwvGFowtoAXHLZjJYCaDmQxoCS2hJbSElsxkMrZkbMnYElpy3IqZLGaymMmCVtAKWkEraMVMFmObjG0ytgltctwmMzmZyclMTmgTGi4RXCK4RHCJ4BLBJYJL1rrXk7bWve5YxGsmBZesda+rgkDDJYJLBJcILhFcIrhEcMla97poKkQlGtGJ0BQaLhFcIrhEcIngEsElgkvWutdFs0FkJnGJ4JK17nVVcGi4RHCJ4BLBJYJLBJcILlnrXhfNOW64RHCJ4JK17nVVGNBwieASwSWCSwSXCC4RXLLWvS5acNxwieASwSVr3euuAA2XCC4RXCK4RHCJ4BLBJWvd66Ilxw2XCC4RXCIFraDhEsElgksElwguEVwiuGSte120yXHDJYJLBJfIhDah4RLBJYJLFJcoLlFcorhkrXs9aWvd645BTGIRoQk0XKK4RHGJ4hLFJYpLFJesda+LJtdxU1yiuERxiSo0hYZLFJcoLlFcorhEcYnikrXuddHMiMwkLlFcogbNoOESxSWKSxSXKC5RXKK4ZK17XTTnuOESxSWKS3RAG9BwieISxSWKSxSXKC5RXLLWvS5acNxwieISxSUa0AIaLlFcorhEcYniEsUlikvWutdFS44bLlFcorhEExouUa5LlOsSxSVa0ApaQcMliksUlyjXJWvd6/FbUWyte406oxGdOIhBTGIRZ8e17nVHISrRiE4cxCAmsYjQBJpAE2gCTaAJNIEm0ASaQFNoCk2hKTSFptAUmkI7XZKPM84rni7Z8aClnFGJRnTiIAYVkgjtdMn6t6dLdoTm0ByaQ3NoDs2hOTRnbIOxDWgD2oA2oA1op0t2TGIRGVtAO12yoxKN6ERoAS2gBbSAlsxkMrZkbMnYEtrpkh2ZyWQmk5lMaAWtoBW0glbMZDG2YmzF2ApacdwmMzmZyclMTmgT2oQ2oU1ok5mc19jWutcdhXjR1rrXHZ04iEFMKhQRmkATaKJEIzpxEKFJEot4zeRa97ojNIWm0BSaQtMgMjZlbMrYcMla97ojM2nMpDGTuGSte90RmkHDJY5LHJc4LnFcsta9Lppz3HCJ4xLHJWvd66owoOESxyWOSxyXOC5xXOK4ZK17XbTBccMljkscl6x1r6tCQMMljksclzgucVziuMRxyVr3umjJccMljkscl6x1r7sCNFziuMRxieMSxyWOSxyXrHWvi1YcN1ziuMRxyVr3uipMaLjEcYnjEscljksclzguWeteT9pa97qjEo3oxEGFICaxiNBwycAlA5cMXLLWvS6aDGIQk1hEaAoNlwxcMnDJwCUDlwxcMnDJ4LpkcF0ycMnAJQOXDK5LBtclA5cMXDJwycAlA5cMXDJwyVr3umjOccMlA5cMXLLWve4K0HDJwCUDlwxcMnDJwCUDl6x1r4s2OG64ZOCSgUvWutdVIaDhkoFLBi4ZuGTgkoFLBi5Z614XLTluuGTgkoFL1rrXXQEaLhm4ZOCSgUsGLhm4ZOCSte510YrjhksGLhm4ZK17XRUmNFwycMnAJQOXDFwycMnAJWvd66LN67gFLglcErhkrXs9K6x1rzsOYhCTWMRrbIFLApesda+LJkZ04iAGEZpAwyWBSwKXBC4JXBK4JHDJWve6aJrEIjKTuCT4jBN8xglcErgkcEngksAlgUsCl6x1r4vmHDdcErgkcEnwGWete90RGi4JXBK4JHBJ4JLAJWvd66INjhsuCVwSuCT4jLPWve4IDZcELglcErgkcEngkrXuddGC44ZLApcELgk+46x1rztCwyWBSwKXBC4JXBK4ZK17XbTiuOGSwCWBS4LPOGvd647QcEngksAlgUsClwQuWeteF21y3HBJ4JLEJclnnLXudUcjOnEQg5jEIl5jW+teF02EqEQjOhGaQMMliUsSlyQuSVySuCRxyVr3umg6iEFMYhGh4ZLkuiS5LklcknzGWeted4SGSxKXJC5JrkvWute0Mx60OiucLtnRiYMYxCQWcV7xdMmOB630jEo0ohMHMYhJLOK84umSHaEFtIAW0AJaQDtdcvy2XVvrXndkbMnYTpfsyEwmM5nMZDKTyUwmM5nMZEIraAWtoBW0glbQirEVM1nMZDGTk5mczORkJiczOZnJyUxOaBPahDYv2lr3uqMQtWd9rXs9R7HWve44iEFMYhGvmVzrXncUohKhCTSBJtAEmkATaMrYlLGpEo3oxEEMYhKLyEwaNINm0AyaQTNop0vWrJ8uqXnGIs4rni7ZUYhKNKITB/GgHb+u2ta61x2LOK94umRHISrRiE4cRGgD2oA2oAW0gHa45PlU8YxG9CPWGQcxiEks4rzi4ZKOQlSiEaEltISW0BJaQitoBa2gFbSCVtAKWkEraAVtQpvQJrQJbUKb0Ca0CW1CmxftXPfaUYhKNKITBzGISSwiNIEm0A6XPB/VnvGgaZzRiYMYxCQWcV7xcElHISoRmkJTaApNoSk0hWbQDJpBM2gGzaAZNINm0AyaQ3NoDs2hOTSH5tAcmkNzaAPa4ZLng+wzKtGIThzEICaxiPOKh0s6QgtoAS2gBbSAFtACWkBLaAktoSW0hJbQElpCS2gJraAVtIJW0ApaQStoBa2gFbQJbUKb0Ca0CW1Cm9AmtAltNs3Pda8dhahEIzpxEIOYxCJCE2gCTaAJNIEm0ASaQBNoAk2hKTSFptAUmkJTaApNoSk0g2bQDJpBM2gGzaAZNINm0ByaQ3NoDs2hOTSH5tAcmkMb0Aa0AW1AG9AGtAFtQBvQBrSAFtACWkALaAEtoAW0gBbQElpCS2gJLaEltISW0BJaQitoBa2gFbSCVtAKWkEraAVtQpvQJrQJbUKb0Ca0CW1CwyWCSwSXCC4RXCK4RHCJ4BLBJYJLBJcILhFcIrhEcIngEsElgksElwguEVwiuERwieASwSWCSwSXCC4RXCK4RHCJ4BLBJYJLBJcILhFcIrhEcIngEsElgksElwguEVwiuERwieASwSWCSwSXCC6R5ZI840Hz9X+N6MRBPGjjccaDdnyrlJ/rXjsetDjj6ZIdhajEgxZxRicetJhnPGi5/m0SD1r6GQ9ani87XbLjQcs6oxIPWj1+/vLN/3370/ff/ucP3/3vN3/61/OP//3PH//6j+//9uP+4z/+39/7b/7zp+9/+OH7//nL33/621+/+69//vTdX37421+Pv/vmcfznaIP/kPii8ufnP5b9//9Dx/jy3L8/P9/uj79/jC/PM//5p/OfH3Ourscf5fijP1/udbxe+/XPk/+L22O/XkOe1aRf/7yq/fK8ZunXP98GvzzfLo7X2/H64xVmz5f3v3f/4vP4a//tHo9+hY4vdu2hP774OP46rlfocxfi+F9Jkecw9M8///zzn3/+/w==",
3878
+ "bytecode": "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2wEc24Ec20Ec28Ec2yEc26Ec22Ec2+Ec2xEc25Ec21Ec29Ec2zEc27Ec23Ec2/Ec2wkc24kc20kc28kc2ykc26kc22kc2+kc2xkc25kc21kc29kc2zkc27kc23kc2684tvM5tgs4tl9zbBdybL/h2H7LsSV9KW4Rx/Z7ju0PHNsfObY/cWx/5tj+wrFdzLFdwrH9lWPr49gKju1Sju0yju1yju0Kju1Kju0qju1qju0aju1aju06ju16ju0Gju1Gju0mju1mju0Wju1Wju02ju12ju0Oju1Oju0uju1uju0eju1eju0+ju1vHNv9HNsD6l+U0rE9yFntIY7tYY7tEY7tUY7tMY7tcY7tCY7tSY7tKY7taY7t7xzbMxzbPzi2f3Js/+LYnuXY/s2x/Ydje45jy+nba3P69tqcvr02p2+vzenba3P69tqcvr02p2+vzenba3P69tqcvr02p2+vzenba3P69tqcvr02p2+vneW+vVBPCDtnBtITgvPRop2Ls6fcyJ5cnC8v2pwewDanB7DN6QFsc3oA25wewDanB7DN6QFsc3oA25wewDanB7DN6QFsc3oA25wewDanB7DN6QFsc3oA25wewDanB7DN6QFsc3oA25wewDanB7DN6QFsc3oA25wewDanB7DN6QFsc3oA25wewDanB7DN6QFsl+bYcnoA25wewDanB7DN6QFsc3oA25wewDanB7DN6QFsc3oA25wewDanB7DN6QFsc3oA209QPoW1OT2AbU4PYJvTA9jm9AC2OT2AbU4PYJvTA9jm9AC2K3JsK3FsK3Nsn+HYVuHYVuXYcnrp2pxeujanl65dg2PL6aVrc3rp2pxeujanl67N6aVrc3rp2pxeujanl67N6aVrc3rp2pxeujanl67N6aVrc3rp2pxeujanl67N6aVrc3rp2pxeujanl67N6aVrc3rp2pxeujanl67N6aVrc3rp2pxeujanl67N6aVrc3rp2pxeunYax5bTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob10bU4vXZvTS9fm9NK1Ob107QyOLaeXrs3ppWtzeunanF66NqeXrs3ppWtzeunanF66Nunr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",
3879
+ "debug_symbols": "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gL9z4nH38JJia+/+ZJbdrf15HhnzMvybn5n+TY28+1aSpxnwWTXav7AVo12nluNN8/5mK8bd95rPCyHNR3/7w6n99aVQzy8i7TrO7M2G/PqHdG9/wNWvHzd++wOu/vpWcNntb/v/N1tx47KnYK6fkQ1/9zbz+aPRn/ZQjy/w0N2NkRc9dHe/6mUP3RZ51UN9fN5DtxvyqodeLnLzs7L3RV49jUj7N0/Ji6cRt51n1813t/l+/9/9vJRfWo433f+rh7PcboRfX6P422+FfrMRd9dkvfXrNs9zdt83e36FU39nW97c6unh739S1d1P7F8+e17msXdff2hOxuX2jDffvv/m4Qc3x+mw67p/+Jvj9DcDuavh/fr64e3XOb+pEV+xY+635PrkHnFziNzdGLG4NuRp8I88DOl5E+N6SEi3X/5s9x+ff/rzX77/6ZePBD2f3HU8qrIOcR2PrNyvc70eT+067sgdD+06X22/+nHjZT2Z6nztR4+uZ1Odr896cT4gcL/O9Xo8z+t8bfvV9qvv19ivfb/mft31fNfzXS92vdj1YteLXS92vdj1YteLXS92vdj1+q7Xd72+6/Vdr+96fdfru17f9fqu13e93PVy18td73jE43Hj93jC4/na9+vxbK/ncXY81O58Hft1rtfjiXbna1v//nie3fm66x1Pszv/vu/XXa92vdr1atcbu97Y9cauN3a9sbdv7O0bu97Y9cauN3a9uesdT7E7X22/+n7d2zd3veMhd+dr7dexX+d6bY9dsD2agim4Qih0hVQohaGgysej7lZoCqbgCqrcVLmpclPlpsptz8H5DN0VtM2mbTZVtlDoCqlQCqpsquyq7KrsquyaDdc2u7bZtc2uyj4UNBuh2QjNRqhyqHKocqhyqHJoNkLbHNrmrm3uqtw1z12z0TUbXbPRVbmrclflrsqpyqnZSG1zaptT26wOa6l5Ts1GajZSs6E2a6XKpcqlymq1pl5rarambmtqt/P5wWfloXlWxzW1XFPPnc8PPt81VFlt19R3TY3X1HlNrdfUe03Ndz5j+Kw8Nc/qv6YGbOrA8xnD6127sqkHTT1o6kFTD5p60NSDph60x65sj6GwZ8PUg6YePB9IfL6rqbJ60NSDph409aCpB009aOrB88nEXU8m7noycdeTibueTNz1ZOL1LlVWD5p60NSDph409aCpB009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",
3872
3880
  "verification_key": "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"
3873
3881
  },
3874
3882
  {
@@ -3940,8 +3948,8 @@
3940
3948
  }
3941
3949
  }
3942
3950
  },
3943
- "bytecode": "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",
3944
- "debug_symbols": "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"
3951
+ "bytecode": "JwACBAEoAAABBIBOJwAABE4lAAAAQScCAwQBJwIEBAAfCgADAAQATS0ITQIlAAAAoCcCAgROJwIDBAA7DgADAAIpAABDAOfwRf8pAABEAPAkOdspAABFAP95SfIsAABGADBkTnLhMaApuFBFtoGBWF0oM+hIeblwkUPh9ZPwAAAAJwBHBAMnAEgEACcASQAAJwBKAQEnAEsEAScATAQCJiUAAAavCiICQwMnAgUEACcCBwQDACoFBwYtCAEEAAgBBgEnAwQEAQAiBAIGLQ4FBgAiBgIGLQ4FBicCBgQDACoEBgUnAgUBACcCBgABKQIABwDvUlNNJAIAAwAAAQMjAAACay0IAQMnAggEAwAIAQgBJwMDBAEAIgMCCB8wAEwASwAIACIDSwktCwkIACIDTAotCwoJHAoJCgYcCgoDABwKAwkGHgIAAwEKIgNGChYKCgscCgsMAAQqDAMLCioKBQMkAgADAAABcicCDAQAPAYMAR4CAAMACioLAwokAgAKAAABiSUAAAbVLQgBAycCCgQEAAgBCgEnAwMEAQAiAwIKLQoKCy0OBwsAIgsCCy0OBgsAIgsCCy0OCAsnAgoECy0IAAstCgMNLQhHDgAIAAoAJQAABuctAgAALQoNCAoiCEkKCioKBQskAgALAAAB9SUAAAoLHgIACgAvKgAIAAoACxwKCwwGHAoMCgAcCgoLBgAqCwkKDioLCgwkAgAMAAACKCUAAAodLQsDCQAiCQIJLQ4JAxwKCgMAMAoAAwAILQsEAwAiAwIDLQ4DBAAiBAIILQsICCcCCQQDACoECQM7DgAIAAMjAAACawoiAkQDJAIAAwAAAn0jAAADvy0IAQMnAggEAgAIAQgBJwMDBAEAIgMCCB8wAEsASwAIACIDSwktCwkIHAoICQYcCgkDABwKAwgGHgIAAwkkAgADAAACxyUAAAovHgIAAwEKIgNGCRYKCQocCgoLAAQqCwMKCioJBQMkAgADAAAC9ScCCwQAPAYLAS0IAQMnAgkEBAAIAQkBJwMDBAEAIgMCCS0KCQstDgcLACILAgstDgYLACILAgstDgoLJwIKBAstCAALLQoDDS0IRw4ACAAKACUAAAbnLQIAAC0KDQkKIglJAwoqAwUKJAIACgAAA2ElAAAKCx4CAAMALyoACQADAAocCgoJBhwKCQMAHAoDCQYMKgkIAwoqAwUIJAIACAAAA5QlAAAKQS0LBAMAIgMCAy0OAwQAIgQCCC0LCAgnAgkEAwAqBAkDOw4ACAADIwAAA78KIgJFAyQCAAMAAAPRIwAABO4tCAEDJwIEBAIACAEEAScDAwQBACIDAgQfMABLAEsABAAiA0sILQsIBB4CAAMJJAIAAwAABAwlAAAKUy0IAQMnAggEBAAIAQgBJwMDBAEAIgMCCC0KCAktDgcJACIJAgktDgYJACIJAgktDgQJJwIHBAgtCAAILQoDCi0IRwsACAAHACUAAAbnLQIAAC0KCgQKIgRJAwoqAwUHJAIABwAABHglAAAKCx4CAAMALyoABAADAAccCgcEBhwKBAMAJwIHBAEnAgkEAwAqBwkILQgBBAAIAQgBJwMEBAEAIgQCCC0OBwgAIggCCC0OBwgnAggEAwAqBAgHLQoHCC0OAwgAIgQCBy0LBwcnAggEAwAqBAgDOw4ABwADIwAABO4nAgMCVScCBAJuJwIHAmsnAggCbycCCQJ3JwIKAiAnAgsCcycCDAJlJwINAmwnAg4CYycCDwJ0JwIQAnInAhECeycCEgJ9LQgBEycCFAQcAAgBFAEnAxMEAQAiEwIULQoUFS0OAxUAIhUCFS0OBBUAIhUCFS0OBxUAIhUCFS0OBBUAIhUCFS0OCBUAIhUCFS0OCRUAIhUCFS0OBBUAIhUCFS0OChUAIhUCFS0OCxUAIhUCFS0ODBUAIhUCFS0ODRUAIhUCFS0ODBUAIhUCFS0ODhUAIhUCFS0ODxUAIhUCFS0OCBUAIhUCFS0OEBUAIhUCFS0OChUAIhUCFS0OERUAIhUCFS0OCxUAIhUCFS0ODBUAIhUCFS0ODRUAIhUCFS0ODBUAIhUCFS0ODhUAIhUCFS0ODxUAIhUCFS0OCBUAIhUCFS0OEBUAIhUCFS0OEhUKIgVKAyQCAAMAAAavJwIEBB4tCAEHJwIIBB4ACAEIAS0KBwgqAwAIBa2jcsb6poRzACIIAggAIhMCCScCCgQbLQIJAy0CCAQtAgoFJQAACmUnAgkEGwAqCAkILQ4GCAAiCAIILQ4CCAAiCAIIPA4EBygAAAQEeE4MAAAEAyQAAAMAAAbUKgEAAQXaxfXWtEoybTwEAgEmKgEAAQV33+wLY5yXoTwEAgEmJQAABq8cCgMGACsCAAcAAAAAAAAAAAEAAAAAAAAAAAQqBgcILQgBBScCBgQFAAgBBgEnAwUEAQAiBQIGLQoGBy0MSQcAIgcCBy0MSQcAIgcCBy0MSQcAIgcCBy0OCAcGIgNHBi0ISAQjAAAHVAwqBAYHACIFSwktCwkIACIFTAotCwoJJAIABwAACMcjAAAHeAYiA0cHBCIHRwoCKgMKBgoiBkgHFgoHCi0KBQQkAgAHAAAHoC0KBAQkAgAHAAAIdiMAAAetAioDBgcOKgYDCyQCAAsAAAfEJQAACpcMIgdHCyQCAAsAAAfWJQAACqkAIgICDAAqDAcNLQsNCwAqCAsMLQIFAycABAQFJQAACrstCAUIACIISwstDgwLDChLBgUkAgAFAAAIGi0KCAQjAAAIdgAiB0sFDioHBQYkAgAGAAAIMSUAAAodDCIFRwYkAgAGAAAIQyUAAAqpACICAgcAKgcFCy0LCwYAKgkGAi0CCAMnAAQEBSUAAAq7LQgFBAAiBEwFLQ4CBSMAAAh2CiIDSAUSKgUKAyQCAAMAAAiRLQoEAiMAAAi5LQgBAicCAwQFAAgBAwEnAwIEAQAiBAIDACICAgU/DwADAAUjAAAIuQAiAksELQsEAy0KAwImBCIERwcGIgdHCwoqCwQKJAIACgAACOMlAAALFQwiB0cKJAIACgAACPUlAAAKqQAiAgILACoLBwwtCwwKACoICgstAgUDJwAEBAUlAAAKuy0IBQgAIghLCi0OCwoAIgdLCg4qBwoLJAIACwAACTolAAAKHQwiCkcLJAIACwAACUwlAAAKqQAiAgIMACoMCg0tCw0LACoJCwotAggDJwAEBAUlAAAKuy0IBQkAIglMCy0OCgsAIgVHCi0LCggAIgdMCg4qBwoLJAIACwAACZolAAAKHQwiCkcHJAIABwAACawlAAAKqQAiAgILACoLCgwtCwwHACoIBwotAgkDJwAEBAUlAAAKuy0IBQcAIgdHCC0OCggtCAEFJwIIBAUACAEIAScDBQQBACIHAggAIgUCCT8PAAgACQAiBEsHLQoHBCMAAAdUKgEAAQW6uyHXgjMYZDwEAgEmKgEAAQXQB+v0y8ZnkDwEAgEmKgEAAQUO/iBJ6zdOPDwEAgEmKgEAAQWEcoDChCMLRjwEAgEmKgEAAQXcG27r+7a8QzwEAgEmAAADBQctAAMILQAECQoACAcKJAAACgAACpYtAQgGLQQGCQAACAIIAAAJAgkjAAAKciYqAQABBRu8ZdA/3OrcPAQCASYqAQABBeQIUEUCtYwfPAQCASYtAQMGCgAGAgckAAAHAAALEC0AAQUAAAEEAQAAAwQJLQADCi0ABQsKAAoJDCQAAAwAAAsGLQEKCC0ECAsAAAoCCgAACwILIwAACuInAQUEASMAAAsULQADBSYqAQABBQUEG5kgr2BMPAQCASY=",
3952
+ "debug_symbols": "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"
3945
3953
  }
3946
3954
  ],
3947
3955
  "outputs": {
@@ -4200,15 +4208,15 @@
4200
4208
  },
4201
4209
  "18": {
4202
4210
  "path": "std/hash/mod.nr",
4203
- "source": "// Exposed only for usage in `std::meta`\npub(crate) mod poseidon2;\n\nuse crate::default::Default;\nuse crate::embedded_curve_ops::{\n EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_array_return,\n};\nuse crate::meta::derive_via;\n\n#[foreign(sha256_compression)]\n// docs:start:sha256_compression\npub fn sha256_compression(input: [u32; 16], state: [u32; 8]) -> [u32; 8] {}\n// docs:end:sha256_compression\n\n#[foreign(keccakf1600)]\n// docs:start:keccakf1600\npub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {}\n// docs:end:keccakf1600\n\npub mod keccak {\n #[deprecated(\"This function has been moved to std::hash::keccakf1600\")]\n pub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {\n super::keccakf1600(input)\n }\n}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{\n if crate::runtime::is_unconstrained() {\n // Temporary measure while Barretenberg is main proving system.\n // Please open an issue if you're working on another proving system and running into problems due to this.\n crate::static_assert(\n N <= 1024,\n \"Barretenberg cannot prove blake3 hashes with inputs larger than 1024 bytes\",\n );\n }\n __blake3(input)\n}\n\n#[foreign(blake3)]\nfn __blake3<let N: u32>(input: [u8; N]) -> [u8; 32] {}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[inline_always]\npub fn pedersen_commitment_with_separator<let N: u32>(\n input: [Field; N],\n separator: u32,\n) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[no_predicates]\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: [EmbeddedCurveScalar; N + 1] = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N + 1];\n let mut generators: [EmbeddedCurvePoint; N + 1] =\n [EmbeddedCurvePoint::point_at_infinity(); N + 1];\n crate::assert_constant(separator);\n let domain_generators: [EmbeddedCurvePoint; N] =\n derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n\n for i in 0..N {\n scalars[i] = from_field_unsafe(input[i]);\n generators[i] = domain_generators[i];\n }\n scalars[N] = EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field };\n\n let length_generator: [EmbeddedCurvePoint; 1] =\n derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n generators[N] = length_generator[0];\n multi_scalar_mul_array_return(generators, scalars, true)[0].x\n}\n\n#[field(bn254)]\n#[inline_always]\npub fn derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n crate::assert_constant(starting_index);\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n// Decompose the input 'bn254 scalar' into two 128 bits limbs.\n// It is called 'unsafe' because it does not assert the limbs are 128 bits\n// Assuming the limbs are 128 bits:\n// Assert the decomposition does not overflow the field size.\nfn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n // Safety: xlo and xhi decomposition is checked below\n let (xlo, xhi) = unsafe { crate::field::bn254::decompose_hint(scalar) };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n // Check that the decomposition does not overflow the field size\n let (a, b) = if xhi == crate::field::bn254::PHI {\n (xlo, crate::field::bn254::PLO)\n } else {\n (xhi, crate::field::bn254::PHI)\n };\n crate::field::bn254::assert_lt(a, b);\n\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn poseidon2_permutation<let N: u32>(input: [Field; N], state_len: u32) -> [Field; N] {\n assert_eq(input.len(), state_len);\n poseidon2_permutation_internal(input)\n}\n\n#[foreign(poseidon2_permutation)]\nfn poseidon2_permutation_internal<let N: u32>(input: [Field; N]) -> [Field; N] {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: TypeDefinition) -> Quoted {\n let name = quote { $crate::hash::Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: $crate::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(\n s,\n name,\n signature,\n for_each_field,\n quote {},\n |fields| fields,\n )\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher {\n type H: Hasher;\n\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n type H = H;\n\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u128 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u8 as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u16 as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u32 as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u64 as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H)\n where\n H: Hasher,\n {}\n}\n\nimpl<T, let N: u32> Hash for [T; N]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B)\nwhere\n A: Hash,\n B: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1),\n 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f,\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1),\n EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false,\n },\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2),\n 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2),\n EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3),\n 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3),\n EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4),\n 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4),\n EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5),\n 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5),\n EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6),\n 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6),\n EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false,\n },\n );\n}\n"
4211
+ "source": "// Exposed only for usage in `std::meta`\npub(crate) mod poseidon2;\n\nuse crate::default::Default;\nuse crate::embedded_curve_ops::{\n EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_array_return,\n};\nuse crate::meta::derive_via;\nuse crate::static_assert;\n\n/// The size of the state accepted by the backend in `poseidon2_permutation`.\nglobal POSEIDON2_CONFIG_STATE_SIZE: u32 = poseidon2_config_state_size();\n\n#[foreign(sha256_compression)]\n// docs:start:sha256_compression\npub fn sha256_compression(input: [u32; 16], state: [u32; 8]) -> [u32; 8] {}\n// docs:end:sha256_compression\n\n#[foreign(keccakf1600)]\n// docs:start:keccakf1600\npub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {}\n// docs:end:keccakf1600\n\npub mod keccak {\n #[deprecated(\"This function has been moved to std::hash::keccakf1600\")]\n pub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {\n super::keccakf1600(input)\n }\n}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{\n if crate::runtime::is_unconstrained() {\n // Temporary measure while Barretenberg is main proving system.\n // Please open an issue if you're working on another proving system and running into problems due to this.\n crate::static_assert(\n N <= 1024,\n \"Barretenberg cannot prove blake3 hashes with inputs larger than 1024 bytes\",\n );\n }\n __blake3(input)\n}\n\n#[foreign(blake3)]\nfn __blake3<let N: u32>(input: [u8; N]) -> [u8; 32] {}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[inline_always]\npub fn pedersen_commitment_with_separator<let N: u32>(\n input: [Field; N],\n separator: u32,\n) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[no_predicates]\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: [EmbeddedCurveScalar; N + 1] = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N + 1];\n let mut generators: [EmbeddedCurvePoint; N + 1] =\n [EmbeddedCurvePoint::point_at_infinity(); N + 1];\n crate::assert_constant(separator);\n let domain_generators: [EmbeddedCurvePoint; N] =\n derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n\n for i in 0..N {\n scalars[i] = from_field_unsafe(input[i]);\n generators[i] = domain_generators[i];\n }\n scalars[N] = EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field };\n\n let length_generator: [EmbeddedCurvePoint; 1] =\n derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n generators[N] = length_generator[0];\n multi_scalar_mul_array_return(generators, scalars, true)[0].x\n}\n\n#[field(bn254)]\n#[inline_always]\npub fn derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n crate::assert_constant(starting_index);\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n// Decompose the input 'bn254 scalar' into two 128 bits limbs.\n// It is called 'unsafe' because it does not assert the limbs are 128 bits\n// Assuming the limbs are 128 bits:\n// Assert the decomposition does not overflow the field size.\nfn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n // Safety: xlo and xhi decomposition is checked below\n let (xlo, xhi) = unsafe { crate::field::bn254::decompose_hint(scalar) };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n // Check that the decomposition does not overflow the field size\n let (a, b) = if xhi == crate::field::bn254::PHI {\n (xlo, crate::field::bn254::PLO)\n } else {\n (xhi, crate::field::bn254::PHI)\n };\n crate::field::bn254::assert_lt(a, b);\n\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn poseidon2_permutation<let N: u32>(input: [Field; N], state_len: u32) -> [Field; N] {\n assert_eq(input.len(), state_len);\n\n static_assert(\n N == POSEIDON2_CONFIG_STATE_SIZE,\n f\"the input length must equal the state size in the Poseidon2 config; expected {POSEIDON2_CONFIG_STATE_SIZE}, got {N}\",\n );\n poseidon2_permutation_internal(input)\n}\n\n#[foreign(poseidon2_permutation)]\nfn poseidon2_permutation_internal<let N: u32>(input: [Field; N]) -> [Field; N] {}\n\n#[foreign(poseidon2_config_state_size)]\ncomptime fn poseidon2_config_state_size() -> u32 {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: TypeDefinition) -> Quoted {\n let name = quote { $crate::hash::Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: $crate::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(\n s,\n name,\n signature,\n for_each_field,\n quote {},\n |fields| fields,\n )\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher {\n type H: Hasher;\n\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n type H = H;\n\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u128 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u8 as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u16 as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u32 as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u64 as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H)\n where\n H: Hasher,\n {}\n}\n\nimpl<T, let N: u32> Hash for [T; N]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B)\nwhere\n A: Hash,\n B: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1),\n 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f,\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1),\n EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false,\n },\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2),\n 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2),\n EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3),\n 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3),\n EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4),\n 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4),\n EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5),\n 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5),\n EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6),\n 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6),\n EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false,\n },\n );\n}\n"
4204
4212
  },
4205
- "233": {
4213
+ "234": {
4206
4214
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/version.nr",
4207
- "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 = 12;\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"
4215
+ "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 `aztec_utl_assertCompatibleOracleVersion` oracle is\n/// called\n/// and if the oracle version is incompatible an error is thrown.\npub global ORACLE_VERSION: Field = 14;\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(aztec_utl_assertCompatibleOracleVersion)]\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"
4208
4216
  },
4209
4217
  "3": {
4210
4218
  "path": "std/array/mod.nr",
4211
- "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"
4219
+ "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 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 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 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 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"
4212
4220
  },
4213
4221
  "301": {
4214
4222
  "path": "/home/aztec-dev/nargo/github.com/noir-lang/poseidon/v0.2.6/src/poseidon2.nr",
@@ -4220,7 +4228,7 @@
4220
4228
  },
4221
4229
  "390": {
4222
4230
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
4223
- "source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, nullifier::Nullifier, private_log::PrivateLog,\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\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 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_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_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_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_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 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 compute_siloed_private_log(contract_address: AztecAddress, log: PrivateLog) -> PrivateLog {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_first_field(contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\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 key_type_domain_separator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n key_type_domain_separator,\n )\n}\n\npub fn compute_l2_to_l1_message_hash(\n message: Scoped<L2ToL1Message>,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let contract_address_bytes: [u8; 32] = message.contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = message.inner.recipient.to_be_bytes();\n let content_bytes: [u8; 32] = message.inner.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\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// 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 subarray_hash_matches_fixed() {\n let mut values_to_hash = [3; 17];\n let mut padded = values_to_hash.concat([0; 11]);\n let subarray_hash = poseidon2_hash_subarray(padded, values_to_hash.len());\n\n // Hash the entire values_to_hash.\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(values_to_hash, values_to_hash.len());\n\n assert_eq(subarray_hash, fixed_len_hash);\n}\n\n#[test]\nfn subarray_hash_matches_variable() {\n let mut values_to_hash = [3; 17];\n let mut padded = values_to_hash.concat([0; 11]);\n let subarray_hash = poseidon2_hash_subarray(padded, values_to_hash.len());\n\n // Hash up to values_to_hash.len() fields of the padded array.\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(padded, values_to_hash.len());\n\n assert_eq(subarray_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 unique_siloed_note_hash_matches_typescript() {\n let inner_note_hash = 1;\n let contract_address = AztecAddress::from_field(2);\n let first_nullifier = 3;\n let note_index_in_tx = 4;\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, inner_note_hash);\n let siloed_note_hash_from_ts =\n 0x1986a4bea3eddb1fff917d629a13e10f63f514f401bdd61838c6b475db949169;\n assert_eq(siloed_note_hash, siloed_note_hash_from_ts);\n\n let nonce: Field = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n let note_hash_nonce_from_ts =\n 0x28e7799791bf066a57bb51fdd0fbcaf3f0926414314c7db515ea343f44f5d58b;\n assert_eq(nonce, note_hash_nonce_from_ts);\n\n let unique_siloed_note_hash_from_nonce = compute_unique_note_hash(nonce, siloed_note_hash);\n let unique_siloed_note_hash = compute_note_nonce_and_unique_note_hash(\n siloed_note_hash,\n first_nullifier,\n note_index_in_tx,\n );\n assert_eq(unique_siloed_note_hash_from_nonce, unique_siloed_note_hash);\n\n let unique_siloed_note_hash_from_ts =\n 0x29949aef207b715303b24639737c17fbfeb375c1d965ecfa85c7e4f0febb7d16;\n assert_eq(unique_siloed_note_hash, unique_siloed_note_hash_from_ts);\n}\n\n#[test]\nfn siloed_nullifier_matches_typescript() {\n let contract_address = AztecAddress::from_field(123);\n let nullifier = 456;\n\n let res = compute_siloed_nullifier(contract_address, nullifier);\n\n let siloed_nullifier_from_ts =\n 0x169b50336c1f29afdb8a03d955a81e485f5ac7d5f0b8065673d1e407e5877813;\n\n assert_eq(res, siloed_nullifier_from_ts);\n}\n\n#[test]\nfn siloed_private_log_first_field_matches_typescript() {\n let contract_address = AztecAddress::from_field(123);\n let field = 456;\n let res = compute_siloed_private_log_first_field(contract_address, field);\n\n let siloed_private_log_first_field_from_ts =\n 0x29480984f7b9257fded523d50addbcfc8d1d33adcf2db73ef3390a8fd5cdffaa;\n\n assert_eq(res, siloed_private_log_first_field_from_ts);\n}\n\n#[test]\nfn empty_l2_to_l1_message_hash_matches_typescript() {\n // All zeroes\n let res = compute_l2_to_l1_message_hash(\n L2ToL1Message { recipient: EthAddress::zero(), content: 0 }.scope(AztecAddress::from_field(\n 0,\n )),\n 0,\n 0,\n );\n\n let empty_l2_to_l1_msg_hash_from_ts =\n 0x003b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992;\n\n assert_eq(res, empty_l2_to_l1_msg_hash_from_ts);\n}\n\n#[test]\nfn l2_to_l1_message_hash_matches_typescript() {\n let message = L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n );\n let version = 4;\n let chainId = 5;\n\n let hash = compute_l2_to_l1_message_hash(message, version, chainId);\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let l2_to_l1_message_hash_from_ts =\n 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, l2_to_l1_message_hash_from_ts);\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"
4231
+ "source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, nullifier::Nullifier, private_log::PrivateLog,\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\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 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_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_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_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_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 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 compute_siloed_private_log(contract_address: AztecAddress, log: PrivateLog) -> PrivateLog {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_first_field(contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\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 key_type_domain_separator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n key_type_domain_separator,\n )\n}\n\npub fn compute_l2_to_l1_message_hash(\n message: Scoped<L2ToL1Message>,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let contract_address_bytes: [u8; 32] = message.contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = message.inner.recipient.to_be_bytes();\n let content_bytes: [u8; 32] = message.inner.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\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// 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 subarray_hash_matches_fixed() {\n let values_to_hash = [3; 17];\n let padded = values_to_hash.concat([0; 11]);\n let subarray_hash = poseidon2_hash_subarray(padded, values_to_hash.len());\n\n // Hash the entire values_to_hash.\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(values_to_hash, values_to_hash.len());\n\n assert_eq(subarray_hash, fixed_len_hash);\n}\n\n#[test]\nfn subarray_hash_matches_variable() {\n let values_to_hash = [3; 17];\n let padded = values_to_hash.concat([0; 11]);\n let subarray_hash = poseidon2_hash_subarray(padded, values_to_hash.len());\n\n // Hash up to values_to_hash.len() fields of the padded array.\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(padded, values_to_hash.len());\n\n assert_eq(subarray_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 unique_siloed_note_hash_matches_typescript() {\n let inner_note_hash = 1;\n let contract_address = AztecAddress::from_field(2);\n let first_nullifier = 3;\n let note_index_in_tx = 4;\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, inner_note_hash);\n let siloed_note_hash_from_ts =\n 0x1986a4bea3eddb1fff917d629a13e10f63f514f401bdd61838c6b475db949169;\n assert_eq(siloed_note_hash, siloed_note_hash_from_ts);\n\n let nonce: Field = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n let note_hash_nonce_from_ts =\n 0x28e7799791bf066a57bb51fdd0fbcaf3f0926414314c7db515ea343f44f5d58b;\n assert_eq(nonce, note_hash_nonce_from_ts);\n\n let unique_siloed_note_hash_from_nonce = compute_unique_note_hash(nonce, siloed_note_hash);\n let unique_siloed_note_hash = compute_note_nonce_and_unique_note_hash(\n siloed_note_hash,\n first_nullifier,\n note_index_in_tx,\n );\n assert_eq(unique_siloed_note_hash_from_nonce, unique_siloed_note_hash);\n\n let unique_siloed_note_hash_from_ts =\n 0x29949aef207b715303b24639737c17fbfeb375c1d965ecfa85c7e4f0febb7d16;\n assert_eq(unique_siloed_note_hash, unique_siloed_note_hash_from_ts);\n}\n\n#[test]\nfn siloed_nullifier_matches_typescript() {\n let contract_address = AztecAddress::from_field(123);\n let nullifier = 456;\n\n let res = compute_siloed_nullifier(contract_address, nullifier);\n\n let siloed_nullifier_from_ts =\n 0x169b50336c1f29afdb8a03d955a81e485f5ac7d5f0b8065673d1e407e5877813;\n\n assert_eq(res, siloed_nullifier_from_ts);\n}\n\n#[test]\nfn siloed_private_log_first_field_matches_typescript() {\n let contract_address = AztecAddress::from_field(123);\n let field = 456;\n let res = compute_siloed_private_log_first_field(contract_address, field);\n\n let siloed_private_log_first_field_from_ts =\n 0x29480984f7b9257fded523d50addbcfc8d1d33adcf2db73ef3390a8fd5cdffaa;\n\n assert_eq(res, siloed_private_log_first_field_from_ts);\n}\n\n#[test]\nfn empty_l2_to_l1_message_hash_matches_typescript() {\n // All zeroes\n let res = compute_l2_to_l1_message_hash(\n L2ToL1Message { recipient: EthAddress::zero(), content: 0 }.scope(AztecAddress::from_field(\n 0,\n )),\n 0,\n 0,\n );\n\n let empty_l2_to_l1_msg_hash_from_ts =\n 0x003b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992;\n\n assert_eq(res, empty_l2_to_l1_msg_hash_from_ts);\n}\n\n#[test]\nfn l2_to_l1_message_hash_matches_typescript() {\n let message = L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n );\n let version = 4;\n let chainId = 5;\n\n let hash = compute_l2_to_l1_message_hash(message, version, chainId);\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let l2_to_l1_message_hash_from_ts =\n 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, l2_to_l1_message_hash_from_ts);\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"
4224
4232
  },
4225
4233
  "398": {
4226
4234
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/merkle_tree.nr",
@@ -4244,7 +4252,7 @@
4244
4252
  },
4245
4253
  "441": {
4246
4254
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_packing.nr",
4247
- "source": "use crate::traits::Packable;\n\nglobal BOOL_PACKED_LEN: u32 = 1;\nglobal U8_PACKED_LEN: u32 = 1;\nglobal U16_PACKED_LEN: u32 = 1;\nglobal U32_PACKED_LEN: u32 = 1;\nglobal U64_PACKED_LEN: u32 = 1;\nglobal U128_PACKED_LEN: u32 = 1;\nglobal FIELD_PACKED_LEN: u32 = 1;\nglobal I8_PACKED_LEN: u32 = 1;\nglobal I16_PACKED_LEN: u32 = 1;\nglobal I32_PACKED_LEN: u32 = 1;\nglobal I64_PACKED_LEN: u32 = 1;\n\nimpl Packable for bool {\n let N: u32 = BOOL_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> bool {\n (fields[0] as u1) != 0\n }\n}\n\nimpl Packable for u8 {\n let N: u32 = U8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Packable for u16 {\n let N: u32 = U16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Packable for u32 {\n let N: u32 = U32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Packable for u64 {\n let N: u32 = U64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Packable for u128 {\n let N: u32 = U128_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Packable for Field {\n let N: u32 = FIELD_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Packable for i8 {\n let N: u32 = I8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Packable for i16 {\n let N: u32 = I16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Packable for i32 {\n let N: u32 = I32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Packable for i64 {\n let N: u32 = I64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Packable for [T; M]\nwhere\n T: Packable,\n{\n let N: u32 = M * <T as Packable>::N;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n for i in 0..M {\n let serialized = self[i].pack();\n for j in 0..<T as Packable>::N {\n result[i * <T as Packable>::N + j] = serialized[j];\n }\n }\n result\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Packable>::N, M>(Packable::unpack, result)\n }\n}\n\n#[test]\nfn test_u16_packing() {\n let a: u16 = 10;\n assert_eq(a, u16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i8_packing() {\n let a: i8 = -10;\n assert_eq(a, i8::unpack(a.pack()));\n}\n\n#[test]\nfn test_i16_packing() {\n let a: i16 = -10;\n assert_eq(a, i16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i32_packing() {\n let a: i32 = -10;\n assert_eq(a, i32::unpack(a.pack()));\n}\n\n#[test]\nfn test_i64_packing() {\n let a: i64 = -10;\n assert_eq(a, i64::unpack(a.pack()));\n}\n"
4255
+ "source": "use crate::traits::Packable;\n\nglobal BOOL_PACKED_LEN: u32 = 1;\nglobal U8_PACKED_LEN: u32 = 1;\nglobal U16_PACKED_LEN: u32 = 1;\nglobal U32_PACKED_LEN: u32 = 1;\nglobal U64_PACKED_LEN: u32 = 1;\nglobal U128_PACKED_LEN: u32 = 1;\nglobal FIELD_PACKED_LEN: u32 = 1;\nglobal I8_PACKED_LEN: u32 = 1;\nglobal I16_PACKED_LEN: u32 = 1;\nglobal I32_PACKED_LEN: u32 = 1;\nglobal I64_PACKED_LEN: u32 = 1;\n\nimpl Packable for bool {\n let N: u32 = BOOL_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> bool {\n (fields[0] as u1) != 0\n }\n}\n\nimpl Packable for u8 {\n let N: u32 = U8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Packable for u16 {\n let N: u32 = U16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Packable for u32 {\n let N: u32 = U32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Packable for u64 {\n let N: u32 = U64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Packable for u128 {\n let N: u32 = U128_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Packable for Field {\n let N: u32 = FIELD_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Packable for i8 {\n let N: u32 = I8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Packable for i16 {\n let N: u32 = I16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Packable for i32 {\n let N: u32 = I32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Packable for i64 {\n let N: u32 = I64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Packable for [T; M]\nwhere\n T: Packable,\n{\n let N: u32 = M * <T as Packable>::N;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n for i in 0..M {\n let serialized = self[i].pack();\n for j in 0..<T as Packable>::N {\n result[i * <T as Packable>::N + j] = serialized[j];\n }\n }\n result\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Packable>::N, M>(Packable::unpack, result)\n }\n}\n\n#[test]\nfn test_u16_packing() {\n let a: u16 = 10;\n assert_eq(a, u16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i8_packing() {\n let a: i8 = -10;\n assert_eq(a, i8::unpack(a.pack()));\n}\n\n#[test]\nfn test_i16_packing() {\n let a: i16 = -10;\n assert_eq(a, i16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i32_packing() {\n let a: i32 = -10;\n assert_eq(a, i32::unpack(a.pack()));\n}\n\n#[test]\nfn test_i64_packing() {\n let a: i64 = -10;\n assert_eq(a, i64::unpack(a.pack()));\n}\n"
4248
4256
  },
4249
4257
  "454": {
4250
4258
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/reader.nr",
@@ -4264,7 +4272,7 @@
4264
4272
  },
4265
4273
  "5": {
4266
4274
  "path": "std/cmp.nr",
4267
- "source": "use crate::meta::derive_via;\n\n#[derive_via(derive_eq)]\n// docs:start:eq-trait\npub trait Eq {\n fn eq(self, other: Self) -> bool;\n}\n// docs:end:eq-trait\n\n// docs:start:derive_eq\ncomptime fn derive_eq(s: TypeDefinition) -> Quoted {\n let signature = quote { fn eq(_self: Self, _other: Self) -> bool };\n let for_each_field = |name| quote { (_self.$name == _other.$name) };\n let body = |fields| {\n if s.fields_as_written().len() == 0 {\n quote { true }\n } else {\n fields\n }\n };\n crate::meta::make_trait_impl(\n s,\n quote { $crate::cmp::Eq },\n signature,\n for_each_field,\n quote { & },\n body,\n )\n}\n// docs:end:derive_eq\n\nimpl Eq for Field {\n fn eq(self, other: Field) -> bool {\n self == other\n }\n}\n\nimpl Eq for u128 {\n fn eq(self, other: u128) -> bool {\n self == other\n }\n}\nimpl Eq for u64 {\n fn eq(self, other: u64) -> bool {\n self == other\n }\n}\nimpl Eq for u32 {\n fn eq(self, other: u32) -> bool {\n self == other\n }\n}\nimpl Eq for u16 {\n fn eq(self, other: u16) -> bool {\n self == other\n }\n}\nimpl Eq for u8 {\n fn eq(self, other: u8) -> bool {\n self == other\n }\n}\nimpl Eq for u1 {\n fn eq(self, other: u1) -> bool {\n self == other\n }\n}\n\nimpl Eq for i8 {\n fn eq(self, other: i8) -> bool {\n self == other\n }\n}\nimpl Eq for i16 {\n fn eq(self, other: i16) -> bool {\n self == other\n }\n}\nimpl Eq for i32 {\n fn eq(self, other: i32) -> bool {\n self == other\n }\n}\nimpl Eq for i64 {\n fn eq(self, other: i64) -> bool {\n self == other\n }\n}\n\nimpl Eq for () {\n fn eq(_self: Self, _other: ()) -> bool {\n true\n }\n}\nimpl Eq for bool {\n fn eq(self, other: bool) -> bool {\n self == other\n }\n}\n\nimpl<T, let N: u32> Eq for [T; N]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T; N]) -> bool {\n let mut result = true;\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<T> Eq for [T]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T]) -> bool {\n let mut result = self.len() == other.len();\n if result {\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n }\n result\n }\n}\n\nimpl<let N: u32> Eq for str<N> {\n fn eq(self, other: str<N>) -> bool {\n let self_bytes = self.as_bytes();\n let other_bytes = other.as_bytes();\n self_bytes == other_bytes\n }\n}\n\nimpl<A, B> Eq for (A, B)\nwhere\n A: Eq,\n B: Eq,\n{\n fn eq(self, other: (A, B)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1)\n }\n}\n\nimpl<A, B, C> Eq for (A, B, C)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n{\n fn eq(self, other: (A, B, C)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2)\n }\n}\n\nimpl<A, B, C, D> Eq for (A, B, C, D)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n D: Eq,\n{\n fn eq(self, other: (A, B, C, D)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2) & self.3.eq(other.3)\n }\n}\n\nimpl<A, B, C, D, E> Eq for (A, B, C, D, E)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n D: Eq,\n E: Eq,\n{\n fn eq(self, other: (A, B, C, D, E)) -> bool {\n self.0.eq(other.0)\n & self.1.eq(other.1)\n & self.2.eq(other.2)\n & self.3.eq(other.3)\n & self.4.eq(other.4)\n }\n}\n\nimpl Eq for Ordering {\n fn eq(self, other: Ordering) -> bool {\n self.result == other.result\n }\n}\n\n// Noir doesn't have enums yet so we emulate (Lt | Eq | Gt) with a struct\n// that has 3 public functions for constructing the struct.\npub struct Ordering {\n result: Field,\n}\n\nimpl Ordering {\n // Implementation note: 0, 1, and 2 for Lt, Eq, and Gt are built\n // into the compiler, do not change these without also updating\n // the compiler itself!\n pub fn less() -> Ordering {\n Ordering { result: 0 }\n }\n\n pub fn equal() -> Ordering {\n Ordering { result: 1 }\n }\n\n pub fn greater() -> Ordering {\n Ordering { result: 2 }\n }\n}\n\n#[derive_via(derive_ord)]\n// docs:start:ord-trait\npub trait Ord {\n fn cmp(self, other: Self) -> Ordering;\n}\n// docs:end:ord-trait\n\n// docs:start:derive_ord\ncomptime fn derive_ord(s: TypeDefinition) -> Quoted {\n let name = quote { $crate::cmp::Ord };\n let signature = quote { fn cmp(_self: Self, _other: Self) -> $crate::cmp::Ordering };\n let for_each_field = |name| quote {\n if result == $crate::cmp::Ordering::equal() {\n result = _self.$name.cmp(_other.$name);\n }\n };\n let body = |fields| quote {\n let mut result = $crate::cmp::Ordering::equal();\n $fields\n result\n };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, body)\n}\n// docs:end:derive_ord\n\n// Note: Field deliberately does not implement Ord\n\nimpl Ord for u128 {\n fn cmp(self, other: u128) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\nimpl Ord for u64 {\n fn cmp(self, other: u64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u32 {\n fn cmp(self, other: u32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u16 {\n fn cmp(self, other: u16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u8 {\n fn cmp(self, other: u8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i8 {\n fn cmp(self, other: i8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i16 {\n fn cmp(self, other: i16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i32 {\n fn cmp(self, other: i32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i64 {\n fn cmp(self, other: i64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for () {\n fn cmp(_self: Self, _other: ()) -> Ordering {\n Ordering::equal()\n }\n}\n\nimpl Ord for bool {\n fn cmp(self, other: bool) -> Ordering {\n if self {\n if other {\n Ordering::equal()\n } else {\n Ordering::greater()\n }\n } else if other {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl<T, let N: u32> Ord for [T; N]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T; N]) -> Ordering {\n let mut result = Ordering::equal();\n for i in 0..self.len() {\n if result == Ordering::equal() {\n result = self[i].cmp(other[i]);\n }\n }\n result\n }\n}\n\nimpl<T> Ord for [T]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T]) -> Ordering {\n let self_len = self.len();\n let other_len = other.len();\n let min_len = if self_len < other_len {\n self_len\n } else {\n other_len\n };\n\n let mut result = Ordering::equal();\n for i in 0..min_len {\n if result == Ordering::equal() {\n result = self[i].cmp(other[i]);\n }\n }\n\n if result != Ordering::equal() {\n result\n } else {\n self_len.cmp(other_len)\n }\n }\n}\n\nimpl<A, B> Ord for (A, B)\nwhere\n A: Ord,\n B: Ord,\n{\n fn cmp(self, other: (A, B)) -> Ordering {\n let result = self.0.cmp(other.0);\n\n if result != Ordering::equal() {\n result\n } else {\n self.1.cmp(other.1)\n }\n }\n}\n\nimpl<A, B, C> Ord for (A, B, C)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n{\n fn cmp(self, other: (A, B, C)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D> Ord for (A, B, C, D)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n{\n fn cmp(self, other: (A, B, C, D)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D, E> Ord for (A, B, C, D, E)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n E: Ord,\n{\n fn cmp(self, other: (A, B, C, D, E)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n if result == Ordering::equal() {\n result = self.4.cmp(other.4);\n }\n\n result\n }\n}\n\n// Compares and returns the maximum of two values.\n//\n// Returns the second argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::max(1, 2), 2);\n// assert_eq(cmp::max(2, 2), 2);\n// ```\npub fn max<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v1\n } else {\n v2\n }\n}\n\n// Compares and returns the minimum of two values.\n//\n// Returns the first argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::min(1, 2), 1);\n// assert_eq(cmp::min(2, 2), 2);\n// ```\npub fn min<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v2\n } else {\n v1\n }\n}\n\nmod cmp_tests {\n use super::{Eq, max, min, Ord};\n\n #[test]\n fn sanity_check_min() {\n assert_eq(min(0_u64, 1), 0);\n assert_eq(min(0_u64, 0), 0);\n assert_eq(min(1_u64, 1), 1);\n assert_eq(min(255_u8, 0), 0);\n }\n\n #[test]\n fn sanity_check_max() {\n assert_eq(max(0_u64, 1), 1);\n assert_eq(max(0_u64, 0), 0);\n assert_eq(max(1_u64, 1), 1);\n assert_eq(max(255_u8, 0), 255);\n }\n\n #[test]\n fn correctly_handles_unequal_length_vectors() {\n let vector_1 = [0, 1, 2, 3].as_vector();\n let vector_2 = [0, 1, 2].as_vector();\n assert(!vector_1.eq(vector_2));\n }\n\n #[test]\n fn lexicographic_ordering_for_vectors() {\n assert(\n [2_u32].as_vector().cmp([1_u32, 1_u32, 1_u32].as_vector())\n == super::Ordering::greater(),\n );\n assert(\n [1_u32, 2_u32].as_vector().cmp([1_u32, 2_u32, 3_u32].as_vector())\n == super::Ordering::less(),\n );\n }\n}\n"
4275
+ "source": "use crate::meta::ctstring::AsCtString;\nuse crate::meta::derive_via;\n\n#[derive_via(derive_eq)]\n// docs:start:eq-trait\npub trait Eq {\n fn eq(self, other: Self) -> bool;\n}\n// docs:end:eq-trait\n\n// docs:start:derive_eq\ncomptime fn derive_eq(s: TypeDefinition) -> Quoted {\n let signature = quote { fn eq(_self: Self, _other: Self) -> bool };\n let for_each_field = |name| quote { (_self.$name == _other.$name) };\n let body = |fields| {\n if s.fields_as_written().len() == 0 {\n quote { true }\n } else {\n fields\n }\n };\n crate::meta::make_trait_impl(\n s,\n quote { $crate::cmp::Eq },\n signature,\n for_each_field,\n quote { & },\n body,\n )\n}\n// docs:end:derive_eq\n\nimpl Eq for Field {\n fn eq(self, other: Field) -> bool {\n self == other\n }\n}\n\nimpl Eq for u128 {\n fn eq(self, other: u128) -> bool {\n self == other\n }\n}\nimpl Eq for u64 {\n fn eq(self, other: u64) -> bool {\n self == other\n }\n}\nimpl Eq for u32 {\n fn eq(self, other: u32) -> bool {\n self == other\n }\n}\nimpl Eq for u16 {\n fn eq(self, other: u16) -> bool {\n self == other\n }\n}\nimpl Eq for u8 {\n fn eq(self, other: u8) -> bool {\n self == other\n }\n}\nimpl Eq for u1 {\n fn eq(self, other: u1) -> bool {\n self == other\n }\n}\n\nimpl Eq for i8 {\n fn eq(self, other: i8) -> bool {\n self == other\n }\n}\nimpl Eq for i16 {\n fn eq(self, other: i16) -> bool {\n self == other\n }\n}\nimpl Eq for i32 {\n fn eq(self, other: i32) -> bool {\n self == other\n }\n}\nimpl Eq for i64 {\n fn eq(self, other: i64) -> bool {\n self == other\n }\n}\n\nimpl Eq for () {\n fn eq(_self: Self, _other: ()) -> bool {\n true\n }\n}\nimpl Eq for bool {\n fn eq(self, other: bool) -> bool {\n self == other\n }\n}\n\nimpl<T, let N: u32> Eq for [T; N]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T; N]) -> bool {\n let mut result = true;\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<T> Eq for [T]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T]) -> bool {\n let mut result = self.len() == other.len();\n if result {\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n }\n result\n }\n}\n\nimpl<let N: u32> Eq for str<N> {\n fn eq(self, other: str<N>) -> bool {\n let self_bytes = self.as_bytes();\n let other_bytes = other.as_bytes();\n self_bytes == other_bytes\n }\n}\n\ncomptime fn make_tuple_eq_body(n: u32) -> Quoted {\n let mut body = f\"self.0.eq(other.0)\".as_ctstring();\n for i in 1u32..n {\n body = body.append_fmtstr(f\" & self.{i}.eq(other.{i})\");\n }\n f\"{body}\".quoted_contents()\n}\n\nimpl<A: Eq, B: Eq> Eq for (A, B) {\n fn eq(self, other: (A, B)) -> bool {\n make_tuple_eq_body!(2u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq> Eq for (A, B, C) {\n fn eq(self, other: (A, B, C)) -> bool {\n make_tuple_eq_body!(3u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq> Eq for (A, B, C, D) {\n fn eq(self, other: (A, B, C, D)) -> bool {\n make_tuple_eq_body!(4u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq> Eq for (A, B, C, D, E) {\n fn eq(self, other: (A, B, C, D, E)) -> bool {\n make_tuple_eq_body!(5u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq, F: Eq> Eq for (A, B, C, D, E, F) {\n fn eq(self, other: (A, B, C, D, E, F)) -> bool {\n make_tuple_eq_body!(6u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq, F: Eq, G: Eq> Eq for (A, B, C, D, E, F, G) {\n fn eq(self, other: (A, B, C, D, E, F, G)) -> bool {\n make_tuple_eq_body!(7u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq, F: Eq, G: Eq, H: Eq> Eq for (A, B, C, D, E, F, G, H) {\n fn eq(self, other: (A, B, C, D, E, F, G, H)) -> bool {\n make_tuple_eq_body!(8u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq, F: Eq, G: Eq, H: Eq, I: Eq> Eq for (A, B, C, D, E, F, G, H, I) {\n fn eq(self, other: (A, B, C, D, E, F, G, H, I)) -> bool {\n make_tuple_eq_body!(9u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq, F: Eq, G: Eq, H: Eq, I: Eq, J: Eq> Eq for (A, B, C, D, E, F, G, H, I, J) {\n fn eq(self, other: (A, B, C, D, E, F, G, H, I, J)) -> bool {\n make_tuple_eq_body!(10u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq, F: Eq, G: Eq, H: Eq, I: Eq, J: Eq, K: Eq> Eq for (A, B, C, D, E, F, G, H, I, J, K) {\n fn eq(self, other: (A, B, C, D, E, F, G, H, I, J, K)) -> bool {\n make_tuple_eq_body!(11u32)\n }\n}\n\nimpl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq, F: Eq, G: Eq, H: Eq, I: Eq, J: Eq, K: Eq, L: Eq> Eq for (A, B, C, D, E, F, G, H, I, J, K, L) {\n fn eq(self, other: (A, B, C, D, E, F, G, H, I, J, K, L)) -> bool {\n make_tuple_eq_body!(12u32)\n }\n}\n\nimpl Eq for Ordering {\n fn eq(self, other: Ordering) -> bool {\n self.result == other.result\n }\n}\n\n// Noir doesn't have enums yet so we emulate (Lt | Eq | Gt) with a struct\n// that has 3 public functions for constructing the struct.\npub struct Ordering {\n result: Field,\n}\n\nimpl Ordering {\n // Implementation note: 0, 1, and 2 for Lt, Eq, and Gt are built\n // into the compiler, do not change these without also updating\n // the compiler itself!\n pub fn less() -> Ordering {\n Ordering { result: 0 }\n }\n\n pub fn equal() -> Ordering {\n Ordering { result: 1 }\n }\n\n pub fn greater() -> Ordering {\n Ordering { result: 2 }\n }\n}\n\n#[derive_via(derive_ord)]\n// docs:start:ord-trait\npub trait Ord {\n fn cmp(self, other: Self) -> Ordering;\n}\n// docs:end:ord-trait\n\n// docs:start:derive_ord\ncomptime fn derive_ord(s: TypeDefinition) -> Quoted {\n let name = quote { $crate::cmp::Ord };\n let signature = quote { fn cmp(_self: Self, _other: Self) -> $crate::cmp::Ordering };\n let for_each_field = |name| quote {\n if result == $crate::cmp::Ordering::equal() {\n result = _self.$name.cmp(_other.$name);\n }\n };\n let body = |fields| quote {\n let mut result = $crate::cmp::Ordering::equal();\n $fields\n result\n };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, body)\n}\n// docs:end:derive_ord\n\n// Note: Field deliberately does not implement Ord\n\nimpl Ord for u128 {\n fn cmp(self, other: u128) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\nimpl Ord for u64 {\n fn cmp(self, other: u64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u32 {\n fn cmp(self, other: u32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u16 {\n fn cmp(self, other: u16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u8 {\n fn cmp(self, other: u8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i8 {\n fn cmp(self, other: i8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i16 {\n fn cmp(self, other: i16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i32 {\n fn cmp(self, other: i32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i64 {\n fn cmp(self, other: i64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for () {\n fn cmp(_self: Self, _other: ()) -> Ordering {\n Ordering::equal()\n }\n}\n\nimpl Ord for bool {\n fn cmp(self, other: bool) -> Ordering {\n if self {\n if other {\n Ordering::equal()\n } else {\n Ordering::greater()\n }\n } else if other {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl<T, let N: u32> Ord for [T; N]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T; N]) -> Ordering {\n let mut result = Ordering::equal();\n for i in 0..self.len() {\n if result == Ordering::equal() {\n result = self[i].cmp(other[i]);\n }\n }\n result\n }\n}\n\nimpl<T> Ord for [T]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T]) -> Ordering {\n let self_len = self.len();\n let other_len = other.len();\n let min_len = if self_len < other_len {\n self_len\n } else {\n other_len\n };\n\n let mut result = Ordering::equal();\n for i in 0..min_len {\n if result == Ordering::equal() {\n result = self[i].cmp(other[i]);\n }\n }\n\n if result != Ordering::equal() {\n result\n } else {\n self_len.cmp(other_len)\n }\n }\n}\n\ncomptime fn make_tuple_ord_body(n: u32) -> Quoted {\n let last = n - 1u32;\n let mut body = if last == 1 {\n f\"let result = self.0.cmp(other.0);\".as_ctstring()\n } else {\n f\"let mut result = self.0.cmp(other.0);\".as_ctstring()\n };\n for i in 1u32..last {\n body = body.append_fmtstr(\n f\" if result == Ordering::equal() {{ result = self.{i}.cmp(other.{i}); }}\",\n );\n }\n body = body.append_fmtstr(\n f\" if result != Ordering::equal() {{ result }} else {{ self.{last}.cmp(other.{last}) }}\",\n );\n f\"{body}\".quoted_contents()\n}\n\nimpl<A: Ord, B: Ord> Ord for (A, B) {\n fn cmp(self, other: (A, B)) -> Ordering {\n make_tuple_ord_body!(2u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord> Ord for (A, B, C) {\n fn cmp(self, other: (A, B, C)) -> Ordering {\n make_tuple_ord_body!(3u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord> Ord for (A, B, C, D) {\n fn cmp(self, other: (A, B, C, D)) -> Ordering {\n make_tuple_ord_body!(4u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord> Ord for (A, B, C, D, E) {\n fn cmp(self, other: (A, B, C, D, E)) -> Ordering {\n make_tuple_ord_body!(5u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord, F: Ord> Ord for (A, B, C, D, E, F) {\n fn cmp(self, other: (A, B, C, D, E, F)) -> Ordering {\n make_tuple_ord_body!(6u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord, F: Ord, G: Ord> Ord for (A, B, C, D, E, F, G) {\n fn cmp(self, other: (A, B, C, D, E, F, G)) -> Ordering {\n make_tuple_ord_body!(7u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord, F: Ord, G: Ord, H: Ord> Ord for (A, B, C, D, E, F, G, H) {\n fn cmp(self, other: (A, B, C, D, E, F, G, H)) -> Ordering {\n make_tuple_ord_body!(8u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord, F: Ord, G: Ord, H: Ord, I: Ord> Ord for (A, B, C, D, E, F, G, H, I) {\n fn cmp(self, other: (A, B, C, D, E, F, G, H, I)) -> Ordering {\n make_tuple_ord_body!(9u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord, F: Ord, G: Ord, H: Ord, I: Ord, J: Ord> Ord for (A, B, C, D, E, F, G, H, I, J) {\n fn cmp(self, other: (A, B, C, D, E, F, G, H, I, J)) -> Ordering {\n make_tuple_ord_body!(10u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord, F: Ord, G: Ord, H: Ord, I: Ord, J: Ord, K: Ord> Ord for (A, B, C, D, E, F, G, H, I, J, K) {\n fn cmp(self, other: (A, B, C, D, E, F, G, H, I, J, K)) -> Ordering {\n make_tuple_ord_body!(11u32)\n }\n}\n\nimpl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord, F: Ord, G: Ord, H: Ord, I: Ord, J: Ord, K: Ord, L: Ord> Ord for (A, B, C, D, E, F, G, H, I, J, K, L) {\n fn cmp(self, other: (A, B, C, D, E, F, G, H, I, J, K, L)) -> Ordering {\n make_tuple_ord_body!(12u32)\n }\n}\n\n// Compares and returns the maximum of two values.\n//\n// Returns the second argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::max(1, 2), 2);\n// assert_eq(cmp::max(2, 2), 2);\n// ```\npub fn max<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v1\n } else {\n v2\n }\n}\n\n// Compares and returns the minimum of two values.\n//\n// Returns the first argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::min(1, 2), 1);\n// assert_eq(cmp::min(2, 2), 2);\n// ```\npub fn min<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v2\n } else {\n v1\n }\n}\n\nmod cmp_tests {\n use super::{Eq, max, min, Ord};\n\n #[test]\n fn sanity_check_min() {\n assert_eq(min(0_u64, 1), 0);\n assert_eq(min(0_u64, 0), 0);\n assert_eq(min(1_u64, 1), 1);\n assert_eq(min(255_u8, 0), 0);\n }\n\n #[test]\n fn sanity_check_max() {\n assert_eq(max(0_u64, 1), 1);\n assert_eq(max(0_u64, 0), 0);\n assert_eq(max(1_u64, 1), 1);\n assert_eq(max(255_u8, 0), 255);\n }\n\n #[test]\n fn correctly_handles_unequal_length_vectors() {\n let vector_1 = [0, 1, 2, 3].as_vector();\n let vector_2 = [0, 1, 2].as_vector();\n assert(!vector_1.eq(vector_2));\n }\n\n #[test]\n fn lexicographic_ordering_for_vectors() {\n assert(\n [2_u32].as_vector().cmp([1_u32, 1_u32, 1_u32].as_vector())\n == super::Ordering::greater(),\n );\n assert(\n [1_u32, 2_u32].as_vector().cmp([1_u32, 2_u32, 3_u32].as_vector())\n == super::Ordering::less(),\n );\n }\n}\n"
4268
4276
  },
4269
4277
  "50": {
4270
4278
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/fee_juice_contract/src/lib.nr",
@@ -4292,23 +4300,23 @@
4292
4300
  },
4293
4301
  "72": {
4294
4302
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/avm.nr",
4295
- "source": "//! AVM oracles.\n//!\n//! There are only available during public execution. Calling any of them from a private or utility function will\n//! result in runtime errors.\n\nuse crate::protocol::address::{AztecAddress, EthAddress};\n\npub unconstrained fn address() -> AztecAddress {\n address_opcode()\n}\npub unconstrained fn sender() -> AztecAddress {\n sender_opcode()\n}\npub unconstrained fn transaction_fee() -> Field {\n transaction_fee_opcode()\n}\npub unconstrained fn chain_id() -> Field {\n chain_id_opcode()\n}\npub unconstrained fn version() -> Field {\n version_opcode()\n}\npub unconstrained fn block_number() -> u32 {\n block_number_opcode()\n}\npub unconstrained fn timestamp() -> u64 {\n timestamp_opcode()\n}\npub unconstrained fn min_fee_per_l2_gas() -> u128 {\n min_fee_per_l2_gas_opcode()\n}\npub unconstrained fn min_fee_per_da_gas() -> u128 {\n min_fee_per_da_gas_opcode()\n}\npub unconstrained fn l2_gas_left() -> u32 {\n l2_gas_left_opcode()\n}\npub unconstrained fn da_gas_left() -> u32 {\n da_gas_left_opcode()\n}\npub unconstrained fn is_static_call() -> u1 {\n is_static_call_opcode()\n}\npub unconstrained fn note_hash_exists(note_hash: Field, leaf_index: u64) -> u1 {\n note_hash_exists_opcode(note_hash, leaf_index)\n}\npub unconstrained fn emit_note_hash(note_hash: Field) {\n emit_note_hash_opcode(note_hash)\n}\npub unconstrained fn nullifier_exists(siloed_nullifier: Field) -> u1 {\n nullifier_exists_opcode(siloed_nullifier)\n}\npub unconstrained fn emit_nullifier(nullifier: Field) {\n emit_nullifier_opcode(nullifier)\n}\npub unconstrained fn emit_public_log(message: [Field]) {\n emit_public_log_opcode(message)\n}\npub unconstrained fn l1_to_l2_msg_exists(msg_hash: Field, msg_leaf_index: u64) -> u1 {\n l1_to_l2_msg_exists_opcode(msg_hash, msg_leaf_index)\n}\npub unconstrained fn send_l2_to_l1_msg(recipient: EthAddress, content: Field) {\n send_l2_to_l1_msg_opcode(recipient, content)\n}\n\npub unconstrained fn call<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n args: [Field; N],\n) {\n call_opcode(l2_gas_allocation, da_gas_allocation, address, N, args)\n}\n\npub unconstrained fn call_static<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n args: [Field; N],\n) {\n call_static_opcode(l2_gas_allocation, da_gas_allocation, address, N, args)\n}\n\npub unconstrained fn calldata_copy<let N: u32>(cdoffset: u32, copy_size: u32) -> [Field; N] {\n calldata_copy_opcode(cdoffset, copy_size)\n}\n\n/// `success_copy` is placed immediately after the CALL opcode to get the success value\npub unconstrained fn success_copy() -> bool {\n success_copy_opcode()\n}\n\npub unconstrained fn returndata_size() -> u32 {\n returndata_size_opcode()\n}\n\npub unconstrained fn returndata_copy(rdoffset: u32, copy_size: u32) -> [Field] {\n returndata_copy_opcode(rdoffset, copy_size)\n}\n\n/// The additional prefix is to avoid clashing with the `return` Noir keyword.\npub unconstrained fn avm_return(returndata: [Field]) {\n return_opcode(returndata)\n}\n\n/// This opcode reverts using the exact data given. In general it should only be used to do rethrows, where the revert\n/// data is the same as the original revert data. For normal reverts, use Noir's `assert` which, on top of reverting,\n/// will also add an error selector to the revert data.\npub unconstrained fn revert(revertdata: [Field]) {\n revert_opcode(revertdata)\n}\n\npub unconstrained fn storage_read(storage_slot: Field, contract_address: Field) -> Field {\n storage_read_opcode(storage_slot, contract_address)\n}\n\npub unconstrained fn storage_write(storage_slot: Field, value: Field) {\n storage_write_opcode(storage_slot, value);\n}\n\n#[oracle(avmOpcodeAddress)]\nunconstrained fn address_opcode() -> AztecAddress {}\n\n#[oracle(avmOpcodeSender)]\nunconstrained fn sender_opcode() -> AztecAddress {}\n\n#[oracle(avmOpcodeTransactionFee)]\nunconstrained fn transaction_fee_opcode() -> Field {}\n\n#[oracle(avmOpcodeChainId)]\nunconstrained fn chain_id_opcode() -> Field {}\n\n#[oracle(avmOpcodeVersion)]\nunconstrained fn version_opcode() -> Field {}\n\n#[oracle(avmOpcodeBlockNumber)]\nunconstrained fn block_number_opcode() -> u32 {}\n\n#[oracle(avmOpcodeTimestamp)]\nunconstrained fn timestamp_opcode() -> u64 {}\n\n#[oracle(avmOpcodeMinFeePerL2Gas)]\nunconstrained fn min_fee_per_l2_gas_opcode() -> u128 {}\n\n#[oracle(avmOpcodeMinFeePerDaGas)]\nunconstrained fn min_fee_per_da_gas_opcode() -> u128 {}\n\n#[oracle(avmOpcodeL2GasLeft)]\nunconstrained fn l2_gas_left_opcode() -> u32 {}\n\n#[oracle(avmOpcodeDaGasLeft)]\nunconstrained fn da_gas_left_opcode() -> u32 {}\n\n#[oracle(avmOpcodeIsStaticCall)]\nunconstrained fn is_static_call_opcode() -> u1 {}\n\n#[oracle(avmOpcodeNoteHashExists)]\nunconstrained fn note_hash_exists_opcode(note_hash: Field, leaf_index: u64) -> u1 {}\n\n#[oracle(avmOpcodeEmitNoteHash)]\nunconstrained fn emit_note_hash_opcode(note_hash: Field) {}\n\n#[oracle(avmOpcodeNullifierExists)]\nunconstrained fn nullifier_exists_opcode(siloed_nullifier: Field) -> u1 {}\n\n#[oracle(avmOpcodeEmitNullifier)]\nunconstrained fn emit_nullifier_opcode(nullifier: Field) {}\n\n#[oracle(avmOpcodeEmitPublicLog)]\nunconstrained fn emit_public_log_opcode(message: [Field]) {}\n\n#[oracle(avmOpcodeL1ToL2MsgExists)]\nunconstrained fn l1_to_l2_msg_exists_opcode(msg_hash: Field, msg_leaf_index: u64) -> u1 {}\n\n#[oracle(avmOpcodeSendL2ToL1Msg)]\nunconstrained fn send_l2_to_l1_msg_opcode(recipient: EthAddress, content: Field) {}\n\n#[oracle(avmOpcodeCalldataCopy)]\nunconstrained fn calldata_copy_opcode<let N: u32>(cdoffset: u32, copy_size: u32) -> [Field; N] {}\n\n#[oracle(avmOpcodeReturndataSize)]\nunconstrained fn returndata_size_opcode() -> u32 {}\n\n#[oracle(avmOpcodeReturndataCopy)]\nunconstrained fn returndata_copy_opcode(rdoffset: u32, copy_size: u32) -> [Field] {}\n\n#[oracle(avmOpcodeReturn)]\nunconstrained fn return_opcode(returndata: [Field]) {}\n\n#[oracle(avmOpcodeRevert)]\nunconstrained fn revert_opcode(revertdata: [Field]) {}\n\n// While the length parameter might seem unnecessary given that we have N we keep it around because at the AVM bytecode\n// level, we want to support non-comptime-known lengths for such opcodes, even if Noir code will not generally take\n// that route.\n#[oracle(avmOpcodeCall)]\nunconstrained fn call_opcode<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n length: u32,\n args: [Field; N],\n) {}\n\n// While the length parameter might seem unnecessary given that we have N we keep it around because at the AVM bytecode\n// level, we want to support non-comptime-known lengths for such opcodes, even if Noir code will not generally take\n// that route.\n#[oracle(avmOpcodeStaticCall)]\nunconstrained fn call_static_opcode<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n length: u32,\n args: [Field; N],\n) {}\n\n#[oracle(avmOpcodeSuccessCopy)]\nunconstrained fn success_copy_opcode() -> bool {}\n\n#[oracle(avmOpcodeStorageRead)]\nunconstrained fn storage_read_opcode(storage_slot: Field, contract_address: Field) -> Field {}\n\n#[oracle(avmOpcodeStorageWrite)]\nunconstrained fn storage_write_opcode(storage_slot: Field, value: Field) {}\n"
4303
+ "source": "//! AVM oracles.\n//!\n//! There are only available during public execution. Calling any of them from a private or utility function will\n//! result in runtime errors.\n\nuse crate::protocol::address::{AztecAddress, EthAddress};\n\npub unconstrained fn address() -> AztecAddress {\n address_opcode()\n}\npub unconstrained fn sender() -> AztecAddress {\n sender_opcode()\n}\npub unconstrained fn transaction_fee() -> Field {\n transaction_fee_opcode()\n}\npub unconstrained fn chain_id() -> Field {\n chain_id_opcode()\n}\npub unconstrained fn version() -> Field {\n version_opcode()\n}\npub unconstrained fn block_number() -> u32 {\n block_number_opcode()\n}\npub unconstrained fn timestamp() -> u64 {\n timestamp_opcode()\n}\npub unconstrained fn min_fee_per_l2_gas() -> u128 {\n min_fee_per_l2_gas_opcode()\n}\npub unconstrained fn min_fee_per_da_gas() -> u128 {\n min_fee_per_da_gas_opcode()\n}\npub unconstrained fn l2_gas_left() -> u32 {\n l2_gas_left_opcode()\n}\npub unconstrained fn da_gas_left() -> u32 {\n da_gas_left_opcode()\n}\npub unconstrained fn is_static_call() -> u1 {\n is_static_call_opcode()\n}\npub unconstrained fn note_hash_exists(note_hash: Field, leaf_index: u64) -> u1 {\n note_hash_exists_opcode(note_hash, leaf_index)\n}\npub unconstrained fn emit_note_hash(note_hash: Field) {\n emit_note_hash_opcode(note_hash)\n}\npub unconstrained fn nullifier_exists(siloed_nullifier: Field) -> u1 {\n nullifier_exists_opcode(siloed_nullifier)\n}\npub unconstrained fn emit_nullifier(nullifier: Field) {\n emit_nullifier_opcode(nullifier)\n}\npub unconstrained fn emit_public_log(message: [Field]) {\n emit_public_log_opcode(message)\n}\npub unconstrained fn l1_to_l2_msg_exists(msg_hash: Field, msg_leaf_index: u64) -> u1 {\n l1_to_l2_msg_exists_opcode(msg_hash, msg_leaf_index)\n}\npub unconstrained fn send_l2_to_l1_msg(recipient: EthAddress, content: Field) {\n send_l2_to_l1_msg_opcode(recipient, content)\n}\n\npub unconstrained fn call<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n args: [Field; N],\n) {\n call_opcode(l2_gas_allocation, da_gas_allocation, address, N, args)\n}\n\npub unconstrained fn call_static<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n args: [Field; N],\n) {\n call_static_opcode(l2_gas_allocation, da_gas_allocation, address, N, args)\n}\n\npub unconstrained fn calldata_copy<let N: u32>(cdoffset: u32, copy_size: u32) -> [Field; N] {\n calldata_copy_opcode(cdoffset, copy_size)\n}\n\n/// `success_copy` is placed immediately after the CALL opcode to get the success value\npub unconstrained fn success_copy() -> bool {\n success_copy_opcode()\n}\n\npub unconstrained fn returndata_size() -> u32 {\n returndata_size_opcode()\n}\n\npub unconstrained fn returndata_copy(rdoffset: u32, copy_size: u32) -> [Field] {\n returndata_copy_opcode(rdoffset, copy_size)\n}\n\n/// The additional prefix is to avoid clashing with the `return` Noir keyword.\npub unconstrained fn avm_return(returndata: [Field]) {\n return_opcode(returndata)\n}\n\n/// This opcode reverts using the exact data given. In general it should only be used to do rethrows, where the revert\n/// data is the same as the original revert data. For normal reverts, use Noir's `assert` which, on top of reverting,\n/// will also add an error selector to the revert data.\npub unconstrained fn revert(revertdata: [Field]) {\n revert_opcode(revertdata)\n}\n\npub unconstrained fn storage_read(storage_slot: Field, contract_address: Field) -> Field {\n storage_read_opcode(storage_slot, contract_address)\n}\n\npub unconstrained fn storage_write(storage_slot: Field, value: Field) {\n storage_write_opcode(storage_slot, value);\n}\n\n#[oracle(aztec_avm_address)]\nunconstrained fn address_opcode() -> AztecAddress {}\n\n#[oracle(aztec_avm_sender)]\nunconstrained fn sender_opcode() -> AztecAddress {}\n\n#[oracle(aztec_avm_transactionFee)]\nunconstrained fn transaction_fee_opcode() -> Field {}\n\n#[oracle(aztec_avm_chainId)]\nunconstrained fn chain_id_opcode() -> Field {}\n\n#[oracle(aztec_avm_version)]\nunconstrained fn version_opcode() -> Field {}\n\n#[oracle(aztec_avm_blockNumber)]\nunconstrained fn block_number_opcode() -> u32 {}\n\n#[oracle(aztec_avm_timestamp)]\nunconstrained fn timestamp_opcode() -> u64 {}\n\n#[oracle(aztec_avm_minFeePerL2Gas)]\nunconstrained fn min_fee_per_l2_gas_opcode() -> u128 {}\n\n#[oracle(aztec_avm_minFeePerDaGas)]\nunconstrained fn min_fee_per_da_gas_opcode() -> u128 {}\n\n#[oracle(aztec_avm_l2GasLeft)]\nunconstrained fn l2_gas_left_opcode() -> u32 {}\n\n#[oracle(aztec_avm_daGasLeft)]\nunconstrained fn da_gas_left_opcode() -> u32 {}\n\n#[oracle(aztec_avm_isStaticCall)]\nunconstrained fn is_static_call_opcode() -> u1 {}\n\n#[oracle(aztec_avm_noteHashExists)]\nunconstrained fn note_hash_exists_opcode(note_hash: Field, leaf_index: u64) -> u1 {}\n\n#[oracle(aztec_avm_emitNoteHash)]\nunconstrained fn emit_note_hash_opcode(note_hash: Field) {}\n\n#[oracle(aztec_avm_nullifierExists)]\nunconstrained fn nullifier_exists_opcode(siloed_nullifier: Field) -> u1 {}\n\n#[oracle(aztec_avm_emitNullifier)]\nunconstrained fn emit_nullifier_opcode(nullifier: Field) {}\n\n#[oracle(aztec_avm_emitPublicLog)]\nunconstrained fn emit_public_log_opcode(message: [Field]) {}\n\n#[oracle(aztec_avm_l1ToL2MsgExists)]\nunconstrained fn l1_to_l2_msg_exists_opcode(msg_hash: Field, msg_leaf_index: u64) -> u1 {}\n\n#[oracle(aztec_avm_sendL2ToL1Msg)]\nunconstrained fn send_l2_to_l1_msg_opcode(recipient: EthAddress, content: Field) {}\n\n#[oracle(aztec_avm_calldataCopy)]\nunconstrained fn calldata_copy_opcode<let N: u32>(cdoffset: u32, copy_size: u32) -> [Field; N] {}\n\n#[oracle(aztec_avm_returndataSize)]\nunconstrained fn returndata_size_opcode() -> u32 {}\n\n#[oracle(aztec_avm_returndataCopy)]\nunconstrained fn returndata_copy_opcode(rdoffset: u32, copy_size: u32) -> [Field] {}\n\n#[oracle(aztec_avm_return)]\nunconstrained fn return_opcode(returndata: [Field]) {}\n\n#[oracle(aztec_avm_revert)]\nunconstrained fn revert_opcode(revertdata: [Field]) {}\n\n// While the length parameter might seem unnecessary given that we have N we keep it around because at the AVM bytecode\n// level, we want to support non-comptime-known lengths for such opcodes, even if Noir code will not generally take\n// that route.\n#[oracle(aztec_avm_call)]\nunconstrained fn call_opcode<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n length: u32,\n args: [Field; N],\n) {}\n\n// While the length parameter might seem unnecessary given that we have N we keep it around because at the AVM bytecode\n// level, we want to support non-comptime-known lengths for such opcodes, even if Noir code will not generally take\n// that route.\n#[oracle(aztec_avm_staticCall)]\nunconstrained fn call_static_opcode<let N: u32>(\n l2_gas_allocation: u32,\n da_gas_allocation: u32,\n address: AztecAddress,\n length: u32,\n args: [Field; N],\n) {}\n\n#[oracle(aztec_avm_successCopy)]\nunconstrained fn success_copy_opcode() -> bool {}\n\n#[oracle(aztec_avm_storageRead)]\nunconstrained fn storage_read_opcode(storage_slot: Field, contract_address: Field) -> Field {}\n\n#[oracle(aztec_avm_storageWrite)]\nunconstrained fn storage_write_opcode(storage_slot: Field, value: Field) {}\n"
4296
4304
  },
4297
4305
  "75": {
4298
4306
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/enqueue_public_function_call.nr",
4299
- "source": "use crate::protocol::address::AztecAddress;\n\n#[oracle(privateNotifyEnqueuedPublicFunctionCall)]\nunconstrained fn notify_enqueued_public_function_call_oracle(\n _contract_address: AztecAddress,\n _calldata_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n) {}\n\nunconstrained fn notify_enqueued_public_function_call_wrapper(\n contract_address: AztecAddress,\n calldata_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) {\n notify_enqueued_public_function_call_oracle(\n contract_address,\n calldata_hash,\n side_effect_counter,\n is_static_call,\n )\n}\n\npub fn notify_enqueued_public_function_call(\n contract_address: AztecAddress,\n calldata_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) {\n // Safety: Notifies the simulator that a public call has been enqueued, allowing it to prepare hints for the AVM to\n // process this call.\n unsafe {\n notify_enqueued_public_function_call_wrapper(\n contract_address,\n calldata_hash,\n side_effect_counter,\n is_static_call,\n )\n }\n}\n\n#[oracle(privateNotifySetPublicTeardownFunctionCall)]\nunconstrained fn notify_set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _calldata_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n) {}\n\nunconstrained fn notify_set_public_teardown_function_call_wrapper(\n contract_address: AztecAddress,\n calldata_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) {\n notify_set_public_teardown_function_call_oracle(\n contract_address,\n calldata_hash,\n side_effect_counter,\n is_static_call,\n )\n}\n\npub fn notify_set_public_teardown_function_call(\n contract_address: AztecAddress,\n calldata_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) {\n // Safety: Notifies the simulator that a teardown call has been set, allowing it to prepare hints for the AVM to\n // process this call.\n unsafe {\n notify_set_public_teardown_function_call_wrapper(\n contract_address,\n calldata_hash,\n side_effect_counter,\n is_static_call,\n )\n }\n}\n\npub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter) };\n}\n\npub unconstrained fn notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n\n#[oracle(privateNotifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\npub unconstrained fn is_side_effect_counter_revertible_oracle_wrapper(counter: u32) -> bool {\n is_side_effect_counter_revertible_oracle(counter)\n}\n\n#[oracle(privateIsSideEffectCounterRevertible)]\nunconstrained fn is_side_effect_counter_revertible_oracle(counter: u32) -> bool {}\n"
4307
+ "source": "use crate::protocol::address::AztecAddress;\n\n#[oracle(aztec_prv_notifyEnqueuedPublicFunctionCall)]\nunconstrained fn notify_enqueued_public_function_call_oracle(\n _contract_address: AztecAddress,\n _calldata_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n) {}\n\nunconstrained fn notify_enqueued_public_function_call_wrapper(\n contract_address: AztecAddress,\n calldata_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) {\n notify_enqueued_public_function_call_oracle(\n contract_address,\n calldata_hash,\n side_effect_counter,\n is_static_call,\n )\n}\n\npub fn notify_enqueued_public_function_call(\n contract_address: AztecAddress,\n calldata_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) {\n // Safety: Notifies the simulator that a public call has been enqueued, allowing it to prepare hints for the AVM to\n // process this call.\n unsafe {\n notify_enqueued_public_function_call_wrapper(\n contract_address,\n calldata_hash,\n side_effect_counter,\n is_static_call,\n )\n }\n}\n\n#[oracle(aztec_prv_notifySetPublicTeardownFunctionCall)]\nunconstrained fn notify_set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _calldata_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n) {}\n\nunconstrained fn notify_set_public_teardown_function_call_wrapper(\n contract_address: AztecAddress,\n calldata_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) {\n notify_set_public_teardown_function_call_oracle(\n contract_address,\n calldata_hash,\n side_effect_counter,\n is_static_call,\n )\n}\n\npub fn notify_set_public_teardown_function_call(\n contract_address: AztecAddress,\n calldata_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) {\n // Safety: Notifies the simulator that a teardown call has been set, allowing it to prepare hints for the AVM to\n // process this call.\n unsafe {\n notify_set_public_teardown_function_call_wrapper(\n contract_address,\n calldata_hash,\n side_effect_counter,\n is_static_call,\n )\n }\n}\n\npub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter) };\n}\n\npub unconstrained fn notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n\n#[oracle(aztec_prv_notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\npub unconstrained fn is_side_effect_counter_revertible_oracle_wrapper(counter: u32) -> bool {\n is_side_effect_counter_revertible_oracle(counter)\n}\n\n#[oracle(aztec_prv_isSideEffectCounterRevertible)]\nunconstrained fn is_side_effect_counter_revertible_oracle(counter: u32) -> bool {}\n"
4300
4308
  },
4301
4309
  "77": {
4302
4310
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/execution_cache.nr",
4303
- "source": "/// Stores values represented as slice in execution cache to be later obtained by its hash.\npub fn store<let N: u32>(values: [Field; N], hash: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call. When loading the values, however, the caller must check that the values are indeed the preimage.\n unsafe { store_in_execution_cache_oracle_wrapper(values, hash) };\n}\n\nunconstrained fn store_in_execution_cache_oracle_wrapper<let N: u32>(\n values: [Field; N],\n hash: Field,\n) {\n store_in_execution_cache_oracle(values, hash);\n}\n\npub unconstrained fn load<let N: u32>(hash: Field) -> [Field; N] {\n load_from_execution_cache_oracle(hash)\n}\n\n#[oracle(privateStoreInExecutionCache)]\nunconstrained fn store_in_execution_cache_oracle<let N: u32>(_values: [Field; N], _hash: Field) {}\n\n#[oracle(privateLoadFromExecutionCache)]\nunconstrained fn load_from_execution_cache_oracle<let N: u32>(_hash: Field) -> [Field; N] {}\n"
4311
+ "source": "/// Stores values represented as slice in execution cache to be later obtained by its hash.\npub fn store<let N: u32>(values: [Field; N], hash: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call. When loading the values, however, the caller must check that the values are indeed the preimage.\n unsafe { store_in_execution_cache_oracle_wrapper(values, hash) };\n}\n\nunconstrained fn store_in_execution_cache_oracle_wrapper<let N: u32>(\n values: [Field; N],\n hash: Field,\n) {\n store_in_execution_cache_oracle(values, hash);\n}\n\npub unconstrained fn load<let N: u32>(hash: Field) -> [Field; N] {\n load_from_execution_cache_oracle(hash)\n}\n\n#[oracle(aztec_prv_storeInExecutionCache)]\nunconstrained fn store_in_execution_cache_oracle<let N: u32>(_values: [Field; N], _hash: Field) {}\n\n#[oracle(aztec_prv_loadFromExecutionCache)]\nunconstrained fn load_from_execution_cache_oracle<let N: u32>(_hash: Field) -> [Field; N] {}\n"
4304
4312
  },
4305
4313
  "78": {
4306
4314
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/get_l1_to_l2_membership_witness.nr",
4307
- "source": "use crate::protocol::{address::AztecAddress, constants::L1_TO_L2_MSG_TREE_HEIGHT};\n\n/// Returns the leaf index and sibling path of an entry in the L1 to L2 messaging tree, which can then be used to prove\n/// its existence.\npub unconstrained fn get_l1_to_l2_membership_witness(\n contract_address: AztecAddress,\n message_hash: Field,\n secret: Field,\n) -> (Field, [Field; L1_TO_L2_MSG_TREE_HEIGHT]) {\n get_l1_to_l2_membership_witness_oracle(contract_address, message_hash, secret)\n}\n\n// Obtains membership witness (index and sibling path) for a message in the L1 to L2 message tree.\n#[oracle(utilityGetL1ToL2MembershipWitness)]\nunconstrained fn get_l1_to_l2_membership_witness_oracle(\n _contract_address: AztecAddress,\n _message_hash: Field,\n _secret: Field,\n) -> (Field, [Field; L1_TO_L2_MSG_TREE_HEIGHT]) {}\n"
4315
+ "source": "use crate::protocol::{address::AztecAddress, constants::L1_TO_L2_MSG_TREE_HEIGHT};\n\n/// Returns the leaf index and sibling path of an entry in the L1 to L2 messaging tree, which can then be used to prove\n/// its existence.\npub unconstrained fn get_l1_to_l2_membership_witness(\n contract_address: AztecAddress,\n message_hash: Field,\n secret: Field,\n) -> (Field, [Field; L1_TO_L2_MSG_TREE_HEIGHT]) {\n get_l1_to_l2_membership_witness_oracle(contract_address, message_hash, secret)\n}\n\n// Obtains membership witness (index and sibling path) for a message in the L1 to L2 message tree.\n#[oracle(aztec_utl_getL1ToL2MembershipWitness)]\nunconstrained fn get_l1_to_l2_membership_witness_oracle(\n _contract_address: AztecAddress,\n _message_hash: Field,\n _secret: Field,\n) -> (Field, [Field; L1_TO_L2_MSG_TREE_HEIGHT]) {}\n"
4308
4316
  },
4309
4317
  "81": {
4310
4318
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/oracle/nullifiers.nr",
4311
- "source": "//! Nullifier creation, existence checks, etc.\n\nuse crate::protocol::address::aztec_address::AztecAddress;\n\n/// Notifies the simulator that a nullifier has been created, so that its correct status (pending or settled) can be\n/// determined when reading nullifiers in subsequent private function calls. The first non-revertible nullifier emitted\n/// is also used to compute note nonces.\npub fn notify_created_nullifier(inner_nullifier: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_created_nullifier_oracle(inner_nullifier) };\n}\n\n#[oracle(privateNotifyCreatedNullifier)]\nunconstrained fn notify_created_nullifier_oracle(_inner_nullifier: Field) {}\n\n/// Returns true if the nullifier has been emitted in the same transaction, i.e. if [notify_created_nullifier] has been\n/// called for this inner nullifier from the contract with the specified address.\n///\n/// Note that despite sharing pending transaction information with the app, this is not a privacy leak: anyone in the\n/// network can always determine in which transaction a inner nullifier was emitted by a given contract by simply\n/// inspecting transaction effects. What _would_ constitute a leak would be to share the list of inner pending\n/// nullifiers, as that would reveal their preimages.\npub unconstrained fn is_nullifier_pending(\n inner_nullifier: Field,\n contract_address: AztecAddress,\n) -> bool {\n is_nullifier_pending_oracle(inner_nullifier, contract_address)\n}\n\n#[oracle(privateIsNullifierPending)]\nunconstrained fn is_nullifier_pending_oracle(\n _inner_nullifier: Field,\n _contract_address: AztecAddress,\n) -> bool {}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before\n/// the current transaction is included in a block. While this might seem of little use at first, certain design\n/// patterns benefit from this abstraction (see e.g. `PrivateMutable`).\npub unconstrained fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier)\n}\n\n#[oracle(utilityCheckNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> bool {}\n"
4319
+ "source": "//! Nullifier creation, existence checks, etc.\n\nuse crate::protocol::address::aztec_address::AztecAddress;\n\n/// Notifies the simulator that a nullifier has been created, so that its correct status (pending or settled) can be\n/// determined when reading nullifiers in subsequent private function calls. The first non-revertible nullifier emitted\n/// is also used to compute note nonces.\npub fn notify_created_nullifier(inner_nullifier: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_created_nullifier_oracle(inner_nullifier) };\n}\n\n#[oracle(aztec_prv_notifyCreatedNullifier)]\nunconstrained fn notify_created_nullifier_oracle(_inner_nullifier: Field) {}\n\n/// Returns true if the nullifier has been emitted in the same transaction, i.e. if [notify_created_nullifier] has been\n/// called for this inner nullifier from the contract with the specified address.\n///\n/// Note that despite sharing pending transaction information with the app, this is not a privacy leak: anyone in the\n/// network can always determine in which transaction a inner nullifier was emitted by a given contract by simply\n/// inspecting transaction effects. What _would_ constitute a leak would be to share the list of inner pending\n/// nullifiers, as that would reveal their preimages.\npub unconstrained fn is_nullifier_pending(\n inner_nullifier: Field,\n contract_address: AztecAddress,\n) -> bool {\n is_nullifier_pending_oracle(inner_nullifier, contract_address)\n}\n\n#[oracle(aztec_prv_isNullifierPending)]\nunconstrained fn is_nullifier_pending_oracle(\n _inner_nullifier: Field,\n _contract_address: AztecAddress,\n) -> bool {}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before\n/// the current transaction is included in a block. While this might seem of little use at first, certain design\n/// patterns benefit from this abstraction (see e.g. `PrivateMutable`).\npub unconstrained fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier)\n}\n\n#[oracle(aztec_utl_checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> bool {}\n"
4312
4320
  },
4313
4321
  "84": {
4314
4322
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/state_vars/map.nr",