@aztec/protocol-contracts 0.0.1-commit.b33fc05d0 → 0.0.1-commit.b64cb54f6
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.
|
@@ -1968,7 +1968,7 @@
|
|
|
1968
1968
|
}
|
|
1969
1969
|
},
|
|
1970
1970
|
{
|
|
1971
|
-
"name": "
|
|
1971
|
+
"name": "anchor_block_timestamp",
|
|
1972
1972
|
"type": {
|
|
1973
1973
|
"kind": "integer",
|
|
1974
1974
|
"sign": "unsigned",
|
|
@@ -2016,8 +2016,8 @@
|
|
|
2016
2016
|
}
|
|
2017
2017
|
}
|
|
2018
2018
|
},
|
|
2019
|
-
"bytecode": "H4sIAAAAAAAA/+
|
|
2020
|
-
"debug_symbols": "
|
|
2019
|
+
"bytecode": "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",
|
|
2020
|
+
"debug_symbols": "tZnRbio5DIbfZa57kThO7PRVqqqiLT1CQrTitCutqr772sz8AbRKxMKem+abQj4Sj51k4Ht6XT9//Xra7N7ef0/3D9/T836z3W5+PW3fX1afm/ed/fd7Cv6nUJ3u091Ukl1mb+PS0tyyTvfF2kxLm5aWlzZP9+ptWVqZ7mNwUEBdoARABBAgARiQAQUAc4G5wCwwC8wCs8AsMAvMArPALDALzAqzwqwwK8wKs8KsMFfvRQ4ESAB/j0e+CkAB/ulyN0kIgAggQAIwwD6dkkMBCEABZiY2iAEQAWam4mDmFBwYkAEFIAAF1AUoACKAADATzAQzuZkcBKAAN/sIPUVniADv7mNO3r062Js5GrC9mX3KHAE2DPZenAAMyIACEIAC3GwVITkAIoAAbvZ74dUxQwa4WR0EoIC6gBfIDBFAADf7BL1AZsiAAjBz9rl7gcxQF/ACyR5ML5AZCJAADMiAAnCzx9ALZIa6gBfIDG72QHmBZL8pXiAzMMDNHg0vkBkEoIC6QA2ACHCzR8OLaAYGZICZi2eUl9UMCjBzsWiol9UMZi7kQIAEYICZS3FwszoIQAF1AS+rGSKAAG6uDgwwswSHAhCALuBFJD5UL6IZEoDnnNdDER3APT5mL6IZFFAX8CKaIQII4ObkwIAMKAAvT/n5uZuwlzx97tdr30pONhfbcj5W+/Xuc7rffW23d9Nfq+3X4U2/P1a7Q/u52turNsX17tVaE75ttmunn7tj79DvGmtJsnQ3Fm6KGM4lsS9hX/EOCmZpAqGz/tTvnzJmkESPAxC5fBa2krdZWOV2Z8F9SebCi8MwHxU5XazIEZHIOdF1ipyaYjAKGYSToiKelI53tFwu0ApBCtIR1EFCxDYCjqknGEXBTlCIQuHajUIcZKWt9ovCluBm4Hj5GPQ4Br3uZtpJAwo7GvSnMXBE23KR2rZrNkeu54o8UOSAAouWXl1FGQRTsErYcnZSouVigzKiqYX6Bu0bKFREgmLo3tI4SEwtSGyt2h0EDZaacsxMO1QfHUznCw0NMtMSC+VhiVX7jsGaSX5UmmNR5CQUcl1WSD8rRrlZteVmrdxT0GAUJRDKtISs142CoaAQuwoarXgVBg6DvNDRkqdtE6TIJ3dEzx11dEdaNE+q1HSXj4JSm0gKsTuKNMjOSNr20hRjdxwjRzouvklPNsJ/jSP9WUe0h7baVs9IoVtraVQpgds67pyutbSyN2bqWwaZWji29cfudt8xyhJlnHRYc+k7hpFNbUE3ztK18GA1TeV48uNupg0N3I4qufYNdHs0Rg5KmAdlumoUJM2gpV9zfHtmcPkfYlFujkW5ORbp9ljkcHssRo7LYjE03BwLG7y0eUi4qtovjkX+s44L45lvjedwj02xtj12sC/levseOzqzcHvWtAfX/oGahwfqeDxQ12vOXhRbMOypM/cUJd169io8MgTMI1Xq76tllJ1B2iOrheVKR8nNIf0dscitGT6K52V5MXpqrW1XNizdp9b/cNihfNVB5bJgDA39cn+0y9XLZn/2e86Pq/ab1fN2vVy+fe1eTl79/PsDr+D3oI/9+8v69Wu/dtPxRyH786D2Xa4KPd5N9q3gQ7FfGAqJXcXDi3YeUD5cRr+0rwZV8uOPD+0f"
|
|
2021
2021
|
},
|
|
2022
2022
|
{
|
|
2023
2023
|
"name": "process_message",
|
|
@@ -2239,7 +2239,7 @@
|
|
|
2239
2239
|
}
|
|
2240
2240
|
},
|
|
2241
2241
|
"bytecode": "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",
|
|
2242
|
-
"debug_symbols": "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"
|
|
2242
|
+
"debug_symbols": "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cbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbJkkCWDLBlkySBLBlkyyJJBlgyyZJAlgywZZMkgSwZZMsiSQZYMsmSQJYMsGWTJIEsGWTLIkkGWDLJkkCWDLBlkySBLBlkyyJJBlgyyZJAlgywZZMkgSwZZMsiScWTJCBwLjyw5cN0HjFrACk5FPO0fK9MSDXRwLIwAOVFABQtYQWwNW8PWsDVsHVvH1rF1bB1bx9axdWwdW8dm2AybYTNshs2wGTbDZtgMm2NzbI7NsTk2x+bYHJtjc2wD28A2sA1sA9vANrANbAPbSJvGQrlEARUsYAUb2EEDHcQm2ASbYBNsgk2wCTbBJtgEm2JTbIpNsSk2xabYFJtiU2wFW8FWsBVsBVvBVrAVbAVbwVaxVWwVW8VWsVVsFVvFVrFVbA1bw9awNWwNW8PWsDVsDVvD1rF1bB1bx9axdWwdW8fWsXVshs2wGTbDZtgMm2EzbIbNsDk2x+bYHJtjc2yOzbE5Nsc2sA1sA9vANrANbAPbwDawkSVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVKlihZomSJkiVKlihZomSJkiV6ZEkLHAuPLDkwLsc1sIAVbGAHDXRwLDzuZg4UEJtiU2yKTbEpNsWm2Aq2gq1gK9gKtoKtYCvYCraCrWKr2Cq2iq1iq9gqtoqtYqvYGraGrWFr2Bq2hq1ha9gatoatY+vYOraOrWPr2Dq2jq1j69gMm2EzbIbNsBk2w2bYDJthc2yOzbE5Nsfm2BybY3Nsjm1gG9gGtoFtYIsAmdNrqse86YEGRpcegSOxHAFy4LTN54w01g0mFnDWnY8IaSwWTHRwLIyoOFFABQtYwQZiE2yCTbApNsWm2BSbYlNsik2xKTbFVrBF958POmm8sSrRwfhnfWJ0/xMFjI30wALOjZzrozSWMSZ2cNrmIk+NZYyJY2F0/xMFVLCAFWxgB7E1bA1bx9axdWzR/Vu0WXT/ExvYQQMdHAuj+58ooILYDJthM2yGzbAZNsfm2BybY3Nsjs2xObbo/q0GjoXR/U8UMGxxwET3P7GCDeyJscBS50OEWo/efaCC8c8ssIMGxkaOwLEweveJAipYwAo2sIMGYhNsik2xKTbFptgUm2JTbIpNsRVsBVvBVrAVbAVbwVawFWwFW8VWsVVsFVvFVrFVbBVbxVaxNWwNW8PWsDVsDVvD1rA1bA1bx9axdWwdW8fWsXVsHVvH1rEZNsNm2AybYTNshs2wGTbD5tgcm2NzbI7NsTk2x+bYHNvANrANbAPbwDawDWwD28A2li0WYyYKqGABK9jADhroIDaypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLYjGmzidDNBZjJho4FX1ePMUKzEQBp2I+UKKxAjOxgqGwwKmYr3HTWIGZ6OBYGAFyooAKFrCCDcRm2AybYXNsjs2xOTbH5tgcm2NzbI5tYBvYBraBbWCLAJkP4eixGPNEAx0cicdizBPDpoEKFjBsJbCBHTQw9q0GjoURICcKGHVbYFTogQ6OhREK8/khPRZYnqhgbG/sUITCiQ3sYNhG4LTNp4o0FljGFVWsrzxJFk3VfLOYHqsrT6xgAztooINjYSTCiQJiq9gqtpkIcQEZKzVPskW+aCTNMDhJFumisqguWo62HJECHodFXFGcOBZGIJwooIIFrGADO4gtAsHjGItAODAC4cQCRoU4sKKTe2x6dPITx8Lo5CfG9savHZ38xAJWsIEdNNDBsTA6+YnYBraBbWAb2Aa26OQeR3R0co8jOjp54LHWc5RAARUsYAUbOG1zLbgeaz1PdHAsjE5+ooAKFrCCDcQm2CIQRgscCyMQTgybBSp4t5W58lxjrWdiA/tEDTTQwTExtiHe4HuigAoWsIIN7KCBDmKr2Cq2iq1iq9gqtoqtYqvY4j2/881eGms9y1yErrHWM1HBAlawgR000MGxsGPr2Dq2jq1j69g6to6tY+vYDJthM2yGzbAZNsNm2AybYXNsjs2xOTbH5tgcm2NzbPHu7lv07nh794nTNh8e0FjrmVjACk6bxEEQb/KWOAjiXd4nOjgSY61nooAKhs0CK9gzlY8Fnic6GIq5F7HAM3Eq5qMKGgs8EwtYwQZ2cO5QjLvGAs/EsTBe932igAoWsIIN7CC2uKGIq5pjKeeJUTf2OKLixAo2sIMGOhh7EXUjKk4UUMECVjBsNbCDBq6rsGMp54FxQ3GigAoWsIIN7OC65jsXbcbvdkxNHKhgASvYwA4a6OBYaNgMm2EzbIbNsBk2w2bYDJtjc2yOzbE5Nsfm2BybY3NsA9vANrANbAPbwDawDWwD21i2c9HmgQIqWMAKNrCDBjqITbAJNsEm2ASbYBNsgk2wCTbFptgUm2JTbIpNsSk2xabYCraCrWAr2Aq2gq1gK9gKtoKtYqvYKraKrWKr2Cq2iq1iq9gatoatYWvYGraGrWFra7rsWL954ljY13TZuX7zQAUjET2wgg2MRDz+7kzaMs+bsVIzUcCZtPONiBorNRNn3RKbE5cSJ3ZwJm1M08dKzcSwzfyNlZqJAobNAgsYttjeuJQ4sYPTFrMJsVIzcSyMS4kTBVSwgBWctph4jJWaiQY6GLYSH+G5gQIqWBbGNcGcpyuxzjJRFx7nbgtUsICxZT3QQAdjyzy+AXQDBVSwgBVsYAcNdBBbxVaxVWwVW8VWsVVsFVvFVrE1bA1bw9awNWwNW8PWsDVsDVvH1rF1bB1bx9axdWwdW8fWsRk2w2bYDJthM2yGzbAZNsPm2BybY3Nsjs2xOTbH5tgc28A2sA1sA9vANrANbAPbwDaWTW43UEAFC1jBBnbQQAexCTbBJtgEm2ATbIJNsAk2wabYFJtiU2yKTbEpNsWm2MgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMiS4+uWc7VHOb5veaKCUzHXM5Tj45YndnAq5oh4OT5xeeJIPD5zeaKACs4dmm8uK8fnLk9sYAcNdHAsjAA5UUAFsQm2CJA52VWOz2CeaOC0dQkcCyNA5gxXOT6IeaKC0zbfk1aOz2Ke2MBp67ENESAnOjgWRoCcKKCCBaxgA7EVbAVbwVaxVWzHZ/tugdM2J4TK+fnMAxvYQQMdHAuPT2keKKCC2Bq2hq1ha9gatoatY+vYOraOrWPr2Dq2jq1j69gMm2EzbIbNsBm24/ObJdDAsNXAsfD4DOeBAoYtfsLjG4HxEx5fCTywgR000MGx8PhiYHSG45uBB877t9uBFWxgBw10cCQeyx1PFFDBAlawgR000EFsgk2wCTbBJtgEm2ATbIJNsCk2xabYFJtiU2yKTbEpNsVWsBVsBVvBVrAVbAVbwVawFWwVW8VWsVVsFVvFVrFVbBVbxdawNWwNW8PWsDVsDVvD1rA1bB1bx9axdWwdW8fWsXVsHVvHZtgMm2EzbDE+OQc+yrF28sQO2jnwUY61kyeOhTE+OSe8yrF28kQFI0AOrGADI0DCFiOR891G5VgleaKAkSUzo85vhB4o4BTPmYoSr5ZMDHELbGAH527KUcHBuTnzCyblWA95ooBh88AChs0CG9jByMnj7zo4Fh7fEj1QQAULWMGwjcAOGujgtM1vepXj+6InCqhgAeMXijY7euyBAs7NmW+OLMcHQ0/s4NycEe0bJ/cTx8I4uZ8ooIIFrGADO4itYWvYOraOrWPr2Dq2jq1j69g6to7NsBk2w2bYDJthM2yGzbAZNsfm2BybY3Nsjs2xOTbH5tgGtoFtYBvYBraBbWAb2Aa2sWyxhDFRQAULWMEGdtBAB7EJNsEm2ASbYBNsgk2wCTbBptgUm2JTbIpNsSk2xabYFFvBVrAVbAVbwVawFWwFW8FWsFVsFVvFVrFVbBVbxUaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJO7LEAwtYwbuizjdHlljCmOjgmDjPZLGEMVFAnVgDC1jBBnbQQAfHQrmBAmITbIJNsAk2wSbYBJti07CVQAULGLYWGLYe2EEDHRwLyw0UUMECVhBbCZsHGujgWFhvoIAKFrCCDcRWsVVsFVvD1rA1bA1bw9awNWwNW8PWsHVsHVvH1rF1bB1bx9axdWwdm2EzbIbNsBk2w2bYDJthM2yOzbE5Nsfm2BybY3Nsjs2xDWwD28A2sA1sA9vANrANbGPZ7HYDBVSwgBVsYAcNdBCbYBNsgk2wCTbBJtgEm2ATbIpNsSk2xabYFJtiU2yKTbEVbAVbwVawFWwFG1liZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWOFniZImTJU6WOFniZImTJU6WOFniZImTJU6WOFniZImTJU6WOFniZImTJU6WOFniZImTJU6WOFniZImTJU6WOFniZImTJU6WOFniZImTJU6WxFLKOt+fXWIpZaIvjNSIsaBYHllj3CiWRyZ2MCq0QAfHwsiHEwVUsIBhs8AGdtBAB8fCyIcTBVSwgNg6to6tY+vYOjbDZtgMm2EzbIbNsBk2w2bYHJtjc2yOzbE5Nsfm2BybYxvYBraBbWAb2Aa2gW1gG9jGssWiyUQBFSxgBRvYQQMdxCbYBJtgE2yCTbAJNsEm2ASbYlNsik2xKTbFptgUm2JTbAVbwVawFWwFW8FWsBVsBVvBVrFVbBVbxVaxVWwVW8VWsVVsDVvD1rA1bGTJIEsGWTLIkkGWDLJkkCWDLBlkySBLBlkyyJJBlgyyJF56WefCzRJLKU+MLDkxbD1QwQJGrmtgAzs4bXqgg2NhZMlc1V5iKWWiggWsYAM7aKCDY+HANrANbAPbwDawDWwD28A20lZjKWWigAoWsIIN7KCBDmITbIJNsAk2wSbYBJtgE2yCTbEpNsWm2BSbYlNsik2xKbaCrWAr2Aq2gq1gK9gKtoKtYKvYKraKrWKr2Cq2iq1iq9gqtoatYWvYGraGrWFr2Bq2hq1h69g6to6tY+vYOraOrWPr2Do2w2bYDJthM2yGzbAZNsNm2BybY3Nsjs2xOTbH5tgcm2Mb2Aa2ge3IEg+sYAOnba5Ur7H0M9HBaZsTwTWWfiYKqGABK9jADhroIDbBJtgEm2ATbJElc0V5jYWbdX7tvsbCzcQKrp2P1ZqJDo6F0f1PFDAUPbCAFWxgBw10cCyM7n+igNgqtoqtYqvYovvXaJ3o/ieOhdH9TxRQwWlrscfR/U9sYAcNdHAsjO5/ooAKYuvYovu3+GGj+59oYNhKYPxuNjG6/4kChi0Oguj+J1YwbNF80f1PNNDBsTC6/4kCKljACmJzbI7NsTm2gW1gG9gGtoFtYBvYBraBbSxbLNxMFFDBAlawgR000EFsgk2wCTbBJtgEW1xKzCWlNRZuJobNA8fCuJQ4UcBp6xo4bfPVJDUWbiY2sIMGOjgWRpbMBaE1Fm4mRrRJYNSN7Y3UmAssayzRTHRwLIzUOFFABQtYwQZiq9giNeYawxpLNE+M1DhRQAULWMEGRpvFjxWpcaKDYYvWidQ4UUAFC1jBBnbQQAexGTbDZtgMm2EzbIbNsBk2w+bYHJtjc2yOzbE5Nsfm2BzbwDawDWwD28A2sA1sA9vANpYtVmsmCqhgASvYwA4a6CA2wSbYBJtgE2yCTbAJNsEm2BSbYlNsik2xKTbFptgUm2Ir2Aq2gq1gK9gKtoKtYCvYCraKrWKr2Cq2I0sssIEdNNDBsfDIkgMFVLCA2Bq2hq1ha9gato6tY+vYOrYjSzywgR000MGx8OjHI3BWmAula6yJrHN1dI33SSY6OCvM9ZM1Vkomzu2dSylrvE8ysYBze+dKyRrvk0zsoIEOjsRYdpkYthaoYAEr2MAO3m0SF5H16C0HCqhg1O2BFWxgBw2MvbDAsTB6y4kCxl6ELXrLiRWctrkQssYrIBMNdHAsjN5yYtg8cNrmmsgar4Cs85U5NdZP1hHtG73lxA5G3Wi+6BcnCqhg1I12iB4QB1esiUx0cCyMw/7EOn+h2PT47O2JHYyfMPYiPnt74lgYn709UUAFC1jBBkajxi8Up8URzRenxRMFVLCAFWzg3Iu44j8+ln2ig2NhfOD2RAEVLGAFZ12JYyc+i31i7MXEWMaYKKCC97ptLl6qsYwxsYEdNNDBuRcaGJ/FPlFABQtYwQZ20EBfODtvm2upaixYTCxgBWfdOTlWjw9gn2igg2NhfAD7RAEVLGC0jgYa6OBYOLtpm4uiaixNTFSwgBVsYAcNDFtsTrxPbS62qrE0MVFABQtYwQbONpsLqOrxqesTHRwL41PXJwqoYAErSJt12qzTZkabGW1mtJnRZkabGW1mtJnZaijztZtGmzlt5rSZ02ZOmzltFh+1PnbIaTOnzZw2c9ps0GaDNhu02aDNRmz6gbHpFjgSY7lhooCx6R5YwAo2sIMGhm0EjoVyAwVUsIAVnLb5yESN5Yb3kAg00MGxcJ67EwWctjlNXmO5YWIFG9hBAx0cC4tmU8fCwrMlSwUb2EHa7Oj+B46FR/c/UEB+oUqbVdrs6P4HdtBAfqHKLxTd/2jqRptF9z+xgBVsIL9Qo80abdZos34DBeQX6vxCnV9odv+4iI8VhCeNpOj7EbOxfjAxisbPE33/xAo2sIMGxi5Ek0ffPzD6/okCKjhtGu0Rff/EBnbQQAfHwtn3E6NCtEd07fkSrRor+loMo8eKvsQGhq0FGuhg2OYex4q+RAEVLGAFGxg2CzTQwbEwuuuxF7MLmgT1RbYo/vkIHAvj9aYnCqhgAefGxmB4LNFL7KCB0zZfgFNjiV4MhsUKvZNk0VSV2P7okidWsIEdNNDBsTC65IkCYosuWaK9o0ue2MAOGujgWBhd8sSwxW8TXTIue2N9Xv6vFZy2Gpszr8ITDXRwLIy+eqKACkaxaN/oijWO0eiKJ46F0RVPFFDBuekxvRDL7xIb2EEDHRyJsZytR1eM5WyJDo6FsyMlCqhgASvYQGyCTeOfaWCIS2CIZ5vFWrNEARWMCi2wgg3soIEOhi2aJHpFdOZYgdZjti5e29ej38Vr+3p0q1iXljiL3Y6/OxbOwz5RQAULWMEGzk2P01osO+txWotlZz3OT7F+rMcpJdaEdYnmm8dkj5NGrAlLVLCAttDjn0WTePyv0SQetmgSH+svjNv6X4eAChYwNjJ2aEb+gbHGqsdtW6yxOjECez4rX2NZVIsTYiyLavOVhDWWRSVWsIEdNNDBsTAC+0QBsSk2xRbXVzFOFQugEqNu7NvxouoDo27sWyT5ibNCDATEUqdEA2fdGJGKpU4nRirHiFSsZEpsYAejWAl0cCyMVD5RQAXDFr9FpHIMLcVKpsQOGujgWBipHCNHsVCpxcBQLFRK7KCBUSxaMkL3wAjdEwVUsIBhi1aPC6QR7RupfKKBDo6FkconTkUMOMXqpBajTLH4qMUgUiw+ShwL46LnRAEVLGBsZLTZ6GAUuzdfi7VFiQIqWMC583OEp8XaosQOGujgWBgdcg7rtNvRIQ9UsIAVbGAHwzYCHRwLo0OeGJF5C1SwgBVsYAdniM0BkXY7uulRdyw8uumBAipYwLBpYAPDVgINdHAsjHPLvAlvsbYoUcECVrCBYWuBtrbhOPkcOBYeJ58DBVQwbPEbHyefAxvYQQMdHAt72OKQi57VQhE960QHx8LoWS1aJ653TlSwgPPgatEO0d9atEP0txPHwuhvLTYn+tuJChawgg3sYNhiN+M25cSRGAt0EgVUsIAVDIUHGujgWBi98EQBFSxgBRuITbAJtuiF8y1LLV7IliigggWsYAM7aKCD68eKJT6JAipYwArOYv0WOBbGWMOJAs5i811RTY4PNGhgB+dGzo+oNDm+0XBg1J2HnBxfaYi/e3ym4UAFC1hBbA1bnCxPdHAs7Gx63LecWMAKtrVvnWKdYnGyPHYoTpYn6to3Y9ONTTc23dh0Y9MNm2FzGsppKKehnE2P+5YTO2igr30bFBsUi3587FD04xPb2rfBpg82fbDpY216rLRJFFDBAlawgQY6iEJQCApBISiiH88FGS2W1yR20EAHx8LoxyeGrQUqWMC6MLpetcACRteTwAY6f2EsjF54oiw8jqgDO2igg7EXM5j0OKIOFFDB2IsRWMEGdtBAB8fCOHWcKKCC2Aa2gW1gG9gGtrFs5XYDBVSwgHEdNftFOa7EJFDBAlYwrsQ0sIMGOjgWHrdGB4atBCpYwAo2sIMGhq38+99/+OmXv/3lz//4+W+//ukfv/31rz/98V/rf/j7T3/8j3/99H9//u2vv/7jpz/++s9ffvnDT//fn3/5Z/ylv//fn3+NP//x59/u/++9Pf7663/f/7wX/J+ff/nrpH//gX99e/5P77k2x2Xin9/ZZZW4n9I/FJHnReocOIgS90nUVcD0w7/X5/++tNyDYs4GmF3fC5tjAede3O86nu5F3RQZ82o/atzz7KFEkQ8l2vMS8QGkY0dutGS9/O/F412Mx37ch2duDxtRPhSxTWvGm6KOrbgn1irRrxeYt4pHgXKzJwXG5niQtQVzwfGTAtt2iMcaz3a434o/bQeRN3+NXQGJFZjHVrSHElo/HplzxOlZjbiHjxL3u5aHCv1yhRgPPCroeF5htx8xBXruh+rz/di2hQ5qlOc1bNfDZJ5djyL3kSl/5chwu60j4z4S9vzI2Byg90uMLHLHh5+l1RdrjPdr1PpijSarRr89raFl21PWdriMh77ysbNo3Z0EbHX6+xXE8xptlzyF6Gr6Yo1eVo3uL9ZobEcf79ew+rzG7ncZo60IezhOP9com3PjfcA8Q+w+Sl5e+22HZxzPkajXahSuEkr119rD1zE2v9TyvD022zHv/XNf7nfjL7XpfRItj7E7jtd+F1vbcZ/AHu/vS3n+217Pj+cZVHY1bkNXjVt/dq6tm+bQ+JbiUeLxouPzZtTNOcricj9q3CdD68OV5McSu0vRui4k50szKfHxDFU3B+n8RsjqtFqflthdit7HyNaVx71B29Nd2bVovLH5bFF7/sN+4WxrT8+21d4/Onx3kPZ1QTiPUn++IbvDtPSxWsT7Q4t8ukLftWrM1B41etUnVzB1tyvsSSn2/DZDd1na17n2Prf0vMbmMPV1lN7nHqlwT7MPFXZ7crtxwzRozvt13YcSuwPsPqGyrghvj5dRpX38Xec49PMqXN/ep3uoYbfLR5iM27pduPMYT4+wtqsyZ8q4ZXh689TG9iqZW/L7TK0+3ZK+zdNYQ338Ovc7wue3kn13CzW/Bb6q9P68VfrmcB1syj1Dbk9/4767jxq3bNj7jONDjesxFMumzwhpT28I+7v39985ym7OUfZwyf9Ne272ZNhDn3no/aN+4UB1XRtSvbYnB2of70bhd7pLWYf6nM9/FqfbJq2NJq2b7mK6PcGsK0vxxzvCjxFi5d322G6F3ip9tj/din17xNza2R59PD9nW9/dNWhdow7l+V22bQ7T2keebue6r+c1/P3osPFudOwq3Gev1xjMfQb6WYXtfqw7qHH/aZ/uh2+ODh/r+PLRn58qfXdxWte1qXMRdT9cr/+qflv3ce7PA8zb+7+q93d/1V2Fa7/qfj8u/qrj/V913H7XX3WsO9p7Dj+/WBib43NOU+Uvog/Xg5/uWcZurNNWY9xviv1Zif2erK2oY5N+o72/J/133ZO5nmaNuhR/KYPbbY243tFeq6E2aA157XyiNVu0F32eGnLbXI3ep7bXsEtv/dUivlqk+6tFbN223PHlIqvb3rG9WMRva0vuo7ivFml9Fdlc5O+vO6xyA/U4ovXFKoOrF7+1F6u4cwvl/mqVwXDj7fEM8e0slLw9A7QrcXUKaFeC/vewI59LbMdg7rcrjQlS3Rywsrvlv5/wGduyhzG2z3vT373U/t52MKMl1m5Pi+wu626jrwuZp3f7+xKyduV+WeQv3AHN2eqyfpjeXzva9Wbr7lZvfnue87HB780+f6fElfln2U42XJqB/kJziLzcqLeHKvZiFedwv3nVzU/j7/80/vZPs5v3+BE/zYfmaPrqT7Mua2aV8loVuTmjStKen/VkO5FzcZVAffscsS3x/jlCtDVmxXUTImVXprMUpw9/epjtTt4WD3we8W5Nx2tFenlYHVVvLxZpgyL9pUNemJe68+ZCfjv/8WNmUR5m6vThx/k8i3K1xn1m+7Ua8VWdo0Yt8lqNeEjyqNEeguQrNeb34teo8Id5tusTOs0Kgxm9Pp3QqdvJrXWmqVaelojp3t+5CDPK9WE6ZvinGpuBgPs81Op4pTyOrLRPRbYTVJx85XGI6JsibT8Fsg53H0+L7LZDOyVG27Tq5i7c1lFm9nQOtW0vq9bA3fy68mYrxptbsa3Q4sm68/5bH8/dH9eLym5ean4Jdl2HfFg88amGbm961wjN40zdtxuiuzFExslvH+6cv1IkusJRRD70/s9F2ttXd/sSl67udlNT167urh4gXT9cd39ujfH+AWK37RVVXxvimw2x3ZoUWddlJmVXZHOAXFzYIrYd+b+0skWs7k51l5a2iG3vuy+ubflOs645UBO3F38bXaN4ph+Gd75WpK4idnu5SKGIPy9yueN8OM18KuLy9iy57Caqri283m7FtSVDMf3ytPuWNS/cq2xONLsZnh9S5PI6crfdzVlmc39cpff5/m5f4sr93X5Xri4l37fHxbXkY7cg/epi8t0lAI989PuN/PNLolF+5yJXr5l3s1aXr5l381aXr5mHvX/NvL1cLevK6n4y3zXru5er+61obMV4fkO0qyGVh3qqybPfNj5p/1akbnekrtWg82NgT3ckVqA8natejTE+HOi3TyV215hlLQqZ37WnSP1cpL/ZGvvNqPyu1dpmM3ZFxlpDNb+wtCky3r1u/06JK9ftupseunbdvm2N+YmdLHF7WFj/TWvsHna62Br7Etdao/2+rcFjF/dqtmkNe7817P3WeP9xvl34sIy8fFxF/oU1z1p5vsj9tRp9TZbP9zC+VGO+CiDHL+RxbchXahAc99u5zbltuxL92iWDan//kkHV3r9k0N3M0o+4ZKhjnRfmCwWen+N281OXLhm2Fa7+MEV/wA9Tyg/4YUp9/4fZXr7YyBbxh9Uy327H7lDtxizKQ4Z8W+RHHKrlRxyq25uGNbT0cJP9+ekLrW8fqLsK84vuGcv9wxMCn47U+u6V6X4zWCo3v/W82Yy63ZdVg0D12xc2g4ct5/eYNpuxm91WTvv64Uz3ucj7p/39dgyetjTdbMfuxF/WgNL8osBrRa4OfmiTdwc/vlPiyuDHflcuDn58pz2uDX7o9rmpq4Mfmwga63JdHq/qvnkCbDdLJ2u68H4T2J7n2PYhkB9R5Oo5d/fI1OVz7vaJqatnmK6/7xmG1ZjWNo3a67ujJ7tnDC1HxvzxgbpvtqHvLtmzJerDa0A+5fpuEvg+RsyC0ocnWezzkbE9RK+tFdTdlNS1hX7bXRllbcVwfboru5kGua2ppPtg5cOh9elZye8VYV3M7fH46l8qsoak7uzjtSI+Vnrcxu32WpEhgyJPH4bbLhP4EQ/DMpk8n2N9/lzMd6r0h6dhH04NX63Cj3N7eKruaw/mXjvYvvOIcH183PHV/ZHBT/w4rfy1KvrQtmr2tIruZqZ+UJm5EGydavrzx573RXQtTtPHmcevFalrackd7cUiZV1/34tstmS3SqbHm8uPyzy7PZxzPi3G0rF9nRgz1I9h3z6dt8b+nUs8CP6wuPSbGru7Zk6f5XGavF8v4esqwLtuSlzdE9vsya5Fx1rvd++H9XmN7eN6rHC9PcTA17ajslJeNjV2a6AHw9y+adLdjZWuB5nqx7vmj2eLctveNrPu0ItuisjvXETs5g9jMw9Xvffb4U9ldncTt7rue+cikbYps92awoNIVpptyuwmdzovJXx4e5N+fsPPbl0XS256fXz10jfbsRuy4hVhj2/EUrl+xNa1Ero+ri775oi9bRdksP74IVe/0vlU1lXWh2fsP9Uou3mqa52vyG4yYqx1w/cJPH3+q+wmme5nuTUbcXt4JvKLRdZN/L3e5jjdzVVdOz7KfvLvyvHxnQujtVbuzo8PU3+6oiny9hMq3ylxZb6r6NtPqHynOZSrZ304eX9zgfed+5KiD/cl9cWbm0qqjt6eNsnbz1Nt52Zu69UW89vkT+dmyna6ysvD21MeRor109lK311Iva0wv460BiUeH5b/SpH5auqcrPq4EOIrRfpaw9wenyz5pkiRt3vdfjvWIshm2l/cGWs8D919szP1990Z72sa0W2zM7vpqh+wHf1WH5aFy2Y7NnnYZQ2y9A+vMvhKkatj+PsiF0fPv7Ml10bPy27K6uro+T4EfI04V39cxfy5YXezVpcmz7aReN/xdWHWHyecvonE7ePUa35FPzz5+7nI9v1aP6TItXH8sp1huTiOX7arKy6O45f2ndenXRnH3/84yst59XHR/ed23c4GXDrp1f72oEhp7e1BkbIbU7w2KLItcW1Q5PqePB8U2bfotUGRspuzujgo8p3tuDQoUrq+fV+2e8Pf5UGR3ZTV5fGM7XNQP6LIFwZFdg9UfWFQZL81lwdFto9VXRsU2U3oXR4UMXn7pnd3xF676d12nIuDIvsaFwdFrL3d+XbvZ7o8KLJ99dbVQZF9kYuDIjbePj6svT1othtCvLZCa79aXtfP8vhqt68tU7fbw+vhbi8WGRQZj6/9+0qRKmuytmp/vuq+bF/bd/WOZlfk8h3NtsjVO5r9lly8o9nPa1y7o9k+3XE/vbAQ58M7s25fKFJ5wW378GqWTz/x7mmoH1Lk6q3Ej3ikqvyIR6rKj3ik6ju/sDzOO2/a9d1nqspuUvLyL7N/Ve66aK0fFo1+elXuboLmcW2QP6a8fn7N/tuv/d1ux/2ymxcafVgPbF8p0riMf3yG+CtFxO3hkkY3RXYDaBF4xwBak+dzAdsiH541f7he/XSQ1N2DUVfXjFf5ASMBVX7ASMD+F+YdT/cjrb32Czd2Z36r9bUi/cZF/K3qi1syCm+9qpveJ/13LnL1WNtNPF0/1sYPONb09gNGnbb52sjo5rtTsG4HJ40i9XlI7z76c/GFcVre/31333O6/Ptq/xG/r/3uv+94GDfum59muyDe1qbcuT99f/93ijiX0f50zrbu5rBmHubuDHt+7VrL9vmx1Sbt9vjQxOe3ge0euro4mla3k1iXbuhrae+PptXtJNbFgbC6e+bq+kBY3c78XB4I+87WXB0Iq/tHp64MhO3u2FzWjyyuj4fs50+W1u2bgda4jdnjAMHnQ3b3xaoxVsN+eA2O29d6cXvoxeVZL65vP3e9737XpinqbhLq4jRF3b2x8do0xbbEtWmK63vyfJriO4F2aZqiNn17mmLbcy+HUavvjz7X9vaSq23CXxtdrPuney+NPu9rXBt9rrvXTl08WfXb+6PPdffk1dXR5+8UuTb6XHt5+/ho4+3jY3+3aOsy0R4O9W/ujHazNa2uSf1WH85039zKb4tcHQ/oP+BLQLW//SGf72zHtW++1N381dWPvlTbvtLnyldftsfI/cZoXcd8eFz58zGyeyvg1cuHXY15ycCQrz+cIr65HNpNY60j3h5e+fjxTW371wHzSvDmj99S/sIrhTuvNu5eX6vh3Cb66C/VuF/0rwVoN32+L/Ij3m28LdJt/Sz3e2h5clW3L+GasXxvU3utxHqStLs9vbbc/Sq2NkLt1RdOf6jRXqwh1NDNEeZvL7X+TokrS63reP9jANvGWC9oVOvjxQblS7k2Xuz2j9vxag3ngb7Hd7R9rcY6w21r7D8EwPuI++OM5Je+JXDpdZX7L6Osd/jeT/4vflylcdHQnn9q5u1XT3znQ0/GwubNB7S+U2QNObSPb0n50oee1mRz+3Bf+rUiaxbxXuT5V5G23xRjvrqJyQ+o0V6roXxFUKW+uB0rB5uMV7+xth6ob7r5/t6+RqVGe/F7ccqbybRufpft1GzhkeL6GMmfnvp+/0WA7f0XAbb3XwS4bQyGG7X0vmmM7ZMRPAjwcGzY9a14mIipo262Yvd+6WtfRWy7uamrn0XczlwwZtFUnu7LvsbDdz9qf7FGZXKrb9pUy7vXxvsSl66Nv1PiyrXx9z58zvDv7enwb1N/t7ftv1felbmx3jffTt9/r5w3tfTNazh2M1J9jc7ZwxKXerv+yfNrgxX7Hbk2VtF2V3JXxypaae+OVXzng/aF7w5tP2i/r+KcnPT2vErbTUZd/CBDK7t762sfZGjbaahrH2RodfeA6NUPMnyn//NKkzrs+afh3r/rePtafVvhylvi9g/KX/lyQdvN2ngfq8M9H1Fvu7mjewuueY7+8Czl53Hsth8yWXl8P8mM50W2D1IxMf/wgGr9dGzd3g3S3VRrX6vrpJeHOP/0YpltiXVpLY/P2X6lhLN+5HEV9hdK3OOKZYI6XivBsp7bw33XV3aEl7nK4xeHv9QWut4W4OWlHRHl836qr21FWU9fSr29VqLy4rD6MCf5pRK8OaHW8fZWvFpivS9U2sOr7L95U9fuIaMmxg3C4xe1/OpmsBVN5JX4fSigLxW49iXO/VejssDmO5y3d0+Dt3fPgrff8SR4v8biU+APJ8HP13v7EmvlwnicvvhCicEzHuNh8cMXSszvXK+4fLgy+lIJ56vZ47WtECaUpfhLJeqNDzvKa1tR2Yr6sEj9SyW4OGoP041fKfHhrnu8VmKNK/+QEvW15mzrANfHUZ2vlOiczLu9WOLx8uy1H7Uz4/AjStSXShRfg8Hl8aUdXyuxvgnz+HaZr5QYylNy/fmOtO0Hpd4+jZbhbMZ47ScRnq8Rea3EbTx8GlvfDc9XS8h6/ZE+DuZ8rQT3dF3ejvBXS9jDWq3XwlP4RfQ2XiwhjMLc3t2RV0vwujHVx3UJ3wwo9d+1n3W+a/P4AYX7yM71Emv1zHxO9/0S9lIJW1N6dxyvlTC24mHdy1dK+HrTSXn8TsirJfS1X4RH4MrjYPiXSjwsVR2vtcVYnyoqQ+S1EnxXY7TXDi1f/ax41VdKKO861sdl7p9LdN3e7TP+oh8WQ1/fjEFijJeOcC28iKe8dnhqWdO894nB9mIJpUR/u0R7dSsepjVvr5Xgq+hlyNtbMV47PMsaivq2xH/e/+uf//Lzb3/65W9/+fM/fv7br3+//8t/z2K//fzn//rlr+d//Z9//vqXh//3H////+X/81+//fzLLz//75/+77e//eWv//3P3/46K83/76fb+R//0eaHPppa+c8//CTzv88Xht1vL/r9v5f7f7f+B58s8y9Xu1843v/D5/9w/O37jcj9P+w//z039/8B"
|
|
2243
2243
|
},
|
|
2244
2244
|
{
|
|
2245
2245
|
"name": "sync_state",
|
|
@@ -2388,8 +2388,8 @@
|
|
|
2388
2388
|
}
|
|
2389
2389
|
}
|
|
2390
2390
|
},
|
|
2391
|
-
"bytecode": "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",
|
|
2392
|
-
"debug_symbols": "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"
|
|
2391
|
+
"bytecode": "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",
|
|
2392
|
+
"debug_symbols": "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"
|
|
2393
2393
|
},
|
|
2394
2394
|
{
|
|
2395
2395
|
"name": "public_dispatch",
|
|
@@ -2603,7 +2603,7 @@
|
|
|
2603
2603
|
}
|
|
2604
2604
|
},
|
|
2605
2605
|
{
|
|
2606
|
-
"name": "
|
|
2606
|
+
"name": "anchor_block_timestamp",
|
|
2607
2607
|
"type": {
|
|
2608
2608
|
"kind": "integer",
|
|
2609
2609
|
"sign": "unsigned",
|
|
@@ -2763,7 +2763,7 @@
|
|
|
2763
2763
|
"file_map": {
|
|
2764
2764
|
"100": {
|
|
2765
2765
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/aztec.nr",
|
|
2766
|
-
"source": "use crate::{\n macros::{\n calls_generation::{\n external_functions::{generate_external_function_calls, generate_external_function_self_calls_structs},\n internal_functions::generate_call_internal_struct,\n },\n dispatch::generate_public_dispatch,\n emit_public_init_nullifier::generate_emit_public_init_nullifier,\n internals_functions_generation::{create_fn_abi_exports, process_functions},\n notes::NOTES,\n storage::STORAGE_LAYOUT_NAME,\n utils::{\n get_trait_impl_method, is_fn_contract_library_method, is_fn_external, is_fn_internal, is_fn_test,\n module_has_storage,\n },\n },\n messages::discovery::CustomMessageHandler,\n};\n\n/// Configuration for the [`aztec`] macro.\n///\n/// This type lets users override different parts of the default aztec-nr contract behavior, such\n/// as message handling. These are advanced features that require careful understanding of\n/// the behavior of these systems.\n///\n/// ## Examples\n///\n/// ```noir\n/// #[aztec(aztec::macros::AztecConfig::new().custom_message_handler(my_handler))]\n/// contract MyContract { ... }\n/// ```\npub struct AztecConfig {\n custom_message_handler: Option<CustomMessageHandler<()>>,\n}\n\nimpl AztecConfig {\n /// Creates a new `AztecConfig` with default values.\n ///\n /// Calling `new` is equivalent to invoking the [`aztec`] macro with no parameters. The different methods\n /// (e.g. [`AztecConfig::custom_message_handler`]) can then be used to change the default behavior.\n pub comptime fn new() -> Self {\n Self { custom_message_handler: Option::none() }\n }\n\n /// Sets a handler for custom messages.\n ///\n /// This enables contracts to process non-standard messages (i.e. any with a message type that is not in\n /// [`crate::messages::msg_type`]).\n ///\n /// `handler` must be a function that conforms to the\n /// [`crate::messages::discovery::CustomMessageHandler`] type signature.\n pub comptime fn custom_message_handler(_self: Self, handler: CustomMessageHandler<()>) -> Self {\n Self { custom_message_handler: Option::some(handler) }\n }\n}\n\n/// Enables aztec-nr features on a `contract`.\n///\n/// All aztec-nr contracts should have this macro invoked on them, as it is the one that processes all contract\n/// functions, notes, storage, generates interfaces for external calls, and creates the message processing\n/// boilerplate.\n///\n/// ## Examples\n///\n/// Most contracts can simply invoke the macro with no parameters, resulting in default aztec-nr behavior:\n/// ```noir\n/// #[aztec]\n/// contract MyContract { ... }\n/// ```\n///\n/// Advanced contracts can use [`AztecConfig`] to customize parts of its behavior, such as message\n/// processing.\n/// ```noir\n/// #[aztec(aztec::macros::AztecConfig::new().custom_message_handler(my_handler))]\n/// contract MyAdvancedContract { ... }\n/// ```\n#[varargs]\npub comptime fn aztec(m: Module, args: [AztecConfig]) -> Quoted {\n let num_args = args.len();\n let config = if num_args == 0 {\n AztecConfig::new()\n } else if num_args == 1 {\n args[0]\n } else {\n panic(f\"#[aztec] expects 0 or 1 arguments, got {num_args}\")\n };\n\n // Functions that don't have #[external(...)], #[contract_library_method], or #[test] are not allowed in contracts.\n check_each_fn_macroified(m);\n\n // We generate new functions prefixed with `__aztec_nr_internals__` and we replace the original functions' bodies\n // with `static_assert(false, ...)` to prevent them from being called directly from within the contract.\n let functions = process_functions(m);\n\n // We generate structs and their implementations necessary for convenient functions calls.\n let interface = generate_contract_interface(m);\n let self_call_structs = generate_external_function_self_calls_structs(m);\n let call_internal_struct = generate_call_internal_struct(m);\n\n // We generate ABI exports for all the external functions in the contract.\n let fn_abi_exports = create_fn_abi_exports(m);\n\n // We generate `_compute_note_hash_and_nullifier`, `sync_state` and `process_message` functions only if they are\n // not already implemented. If they are implemented we just insert empty quotes.\n let contract_library_method_compute_note_hash_and_nullifier = if !m.functions().any(|f| {\n f.name() == quote { _compute_note_hash_and_nullifier }\n }) {\n generate_contract_library_method_compute_note_hash_and_nullifier()\n } else {\n quote {}\n };\n let process_custom_message_option = if config.custom_message_handler.is_some() {\n let handler = config.custom_message_handler.unwrap();\n quote { Option::some($handler) }\n } else {\n quote { Option::<aztec::messages::discovery::CustomMessageHandler<()>>::none() }\n };\n\n let offchain_inbox_sync_option = quote {\n Option::some(aztec::messages::processing::offchain::sync_inbox)\n };\n\n let sync_state_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { sync_state }) {\n generate_sync_state(process_custom_message_option, offchain_inbox_sync_option)\n } else {\n quote {}\n };\n\n if m.functions().any(|f| f.name() == quote { offchain_receive }) {\n panic(\n \"User-defined 'offchain_receive' is not allowed. The function is auto-injected by the #[aztec] macro. See https://docs.aztec.network/errors/7\",\n );\n }\n let offchain_receive_fn_and_abi_export = generate_offchain_receive();\n\n let process_message_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { process_message }) {\n generate_process_message(process_custom_message_option)\n } else {\n quote {}\n };\n let (has_public_init_nullifier_fn, emit_public_init_nullifier_fn_body) = generate_emit_public_init_nullifier(m);\n let public_dispatch = generate_public_dispatch(m, has_public_init_nullifier_fn);\n\n quote {\n $interface\n $self_call_structs\n $call_internal_struct\n $functions\n $fn_abi_exports\n $contract_library_method_compute_note_hash_and_nullifier\n $public_dispatch\n $sync_state_fn_and_abi_export\n $process_message_fn_and_abi_export\n $emit_public_init_nullifier_fn_body\n $offchain_receive_fn_and_abi_export\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let calls = generate_external_function_calls(m);\n\n let module_name = m.name();\n\n let has_storage_layout = module_has_storage(m) & STORAGE_LAYOUT_NAME.get(m).is_some();\n let storage_layout_getter = if has_storage_layout {\n let storage_layout_name = STORAGE_LAYOUT_NAME.get(m).unwrap();\n quote {\n pub fn storage_layout() -> StorageLayoutFields {\n $storage_layout_name.fields\n }\n }\n } else {\n quote {}\n };\n\n let library_storage_layout_getter = if has_storage_layout {\n quote {\n #[contract_library_method]\n $storage_layout_getter\n }\n } else {\n quote {}\n };\n\n quote {\n pub struct $module_name {\n pub target_contract: aztec::protocol::address::AztecAddress\n }\n\n impl $module_name {\n $calls\n\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> $module_name {\n $module_name { target_contract: addr }\n }\n\n #[contract_library_method]\n pub fn interface() -> $module_name {\n $module_name { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $library_storage_layout_getter\n\n }\n}\n\n/// Generates a contract library method called `_compute_note_hash_and_nullifier` which is used for note discovery (to\n/// create the `aztec::messages::discovery::ComputeNoteHashAndNullifier` function) and to implement the\n/// `compute_note_hash_and_nullifier` unconstrained contract function.\ncomptime fn generate_contract_library_method_compute_note_hash_and_nullifier() -> Quoted {\n if NOTES.len() > 0 {\n // Contracts that do define notes produce an if-else chain where `note_type_id` is matched against the\n // `get_note_type_id()` function of each note type that we know of, in order to identify the note type. Once we\n // know it we call we correct `unpack` method from the `Packable` trait to obtain the underlying note type, and\n // compute the note hash (non-siloed) and inner nullifier (also non-siloed).\n\n let mut if_note_type_id_match_statements_list = @[];\n for i in 0..NOTES.len() {\n let typ = NOTES.get(i);\n\n let get_note_type_id = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteType },\n quote { get_id },\n );\n let unpack = get_trait_impl_method(\n typ,\n quote { crate::protocol::traits::Packable },\n quote { unpack },\n );\n\n let compute_note_hash = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_note_hash },\n );\n\n let compute_nullifier_unconstrained = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_nullifier_unconstrained },\n );\n\n let if_or_else_if = if i == 0 {\n quote { if }\n } else {\n quote { else if }\n };\n\n if_note_type_id_match_statements_list = if_note_type_id_match_statements_list.push_back(\n quote {\n $if_or_else_if note_type_id == $get_note_type_id() {\n // As an extra safety check we make sure that the packed_note BoundedVec has the expected\n // length, since we're about to interpret its raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = <$typ as $crate::protocol::traits::Packable>::N;\n let actual_len = packed_note.len();\n if actual_len != expected_len {\n aztec::protocol::logging::warn_log_format(\n \"[aztec-nr] Packed note length mismatch for note type id {2}: expected {0} fields, got {1}. Skipping note.\",\n [expected_len as Field, actual_len as Field, note_type_id],\n );\n Option::none()\n } else {\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, owner, storage_slot, randomness);\n\n // The message discovery process finds settled notes, that is, notes that were created in\n // prior transactions and are therefore already part of the note hash tree. We therefore\n // compute the nullification note hash by treating the note as a settled note with the\n // provided note nonce.\n let note_hash_for_nullification =\n aztec::note::utils::compute_note_hash_for_nullification(\n aztec::note::HintedNote {\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata:\n aztec::note::note_metadata::SettledNoteMetadata::new(\n note_nonce,\n )\n .into(),\n },\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(\n note,\n owner,\n note_hash_for_nullification,\n );\n\n Option::some(\n aztec::messages::discovery::NoteHashAndNullifier {\n note_hash,\n inner_nullifier,\n },\n )\n }\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash tree with `note_nonce`.\n ///\n /// The signature of this function notably matches the `aztec::messages::discovery::ComputeNoteHashAndNullifier` type, and so it can be used to call functions from that module such as `do_sync_state` and `attempt_note_discovery`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n owner: aztec::protocol::address::AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol::address::AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n $if_note_type_id_match_statements\n else {\n Option::none()\n }\n }\n }\n } else {\n // Contracts with no notes still implement this function to avoid having special-casing, the implementation\n // simply throws immediately.\n quote {\n /// This contract does not use private notes, so this function should never be called as it will unconditionally fail.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n _packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n _owner: aztec::protocol::address::AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol::address::AztecAddress,\n _randomness: Field,\n _nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\n/// Generates the `sync_state` utility function that performs message discovery.\ncomptime fn generate_sync_state(process_custom_message_option: Quoted, offchain_inbox_sync_option: Quoted) -> Quoted {\n quote {\n pub struct sync_state_parameters {}\n\n #[abi(functions)]\n pub struct sync_state_abi {\n parameters: sync_state_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn sync_state() {\n let address = aztec::context::UtilityContext::new().this_address();\n aztec::messages::discovery::do_sync_state(\n address,\n _compute_note_hash_and_nullifier,\n $process_custom_message_option,\n $offchain_inbox_sync_option,\n );\n }\n }\n}\n\n/// Generates the `process_message` utility function that processes a single message ciphertext.\ncomptime fn generate_process_message(process_custom_message_option: Quoted) -> Quoted {\n quote {\n pub struct process_message_parameters {\n pub message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n pub message_context: aztec::messages::processing::MessageContext,\n }\n\n #[abi(functions)]\n pub struct process_message_abi {\n parameters: process_message_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn process_message(\n message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n message_context: aztec::messages::processing::MessageContext,\n ) {\n let address = aztec::context::UtilityContext::new().this_address();\n\n aztec::messages::discovery::process_message::process_message_ciphertext(\n address,\n _compute_note_hash_and_nullifier,\n $process_custom_message_option,\n message_ciphertext,\n message_context,\n );\n\n // At this point, the note is pending validation and storage in the database. We must call\n // validate_and_store_enqueued_notes_and_events to complete that process.\n aztec::messages::processing::validate_and_store_enqueued_notes_and_events(address);\n }\n }\n}\n\n/// Generates an `offchain_receive` utility function that lets callers add messages to the offchain message inbox.\n///\n/// For more details, see `aztec::messages::processing::offchain::receive`.\ncomptime fn generate_offchain_receive() -> Quoted {\n quote {\n pub struct offchain_receive_parameters {\n pub messages: BoundedVec<\n aztec::messages::processing::offchain::OffchainMessage,\n aztec::messages::processing::offchain::MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL,\n >,\n }\n\n #[abi(functions)]\n pub struct offchain_receive_abi {\n parameters: offchain_receive_parameters,\n }\n\n /// Receives offchain messages into this contract's offchain inbox for subsequent processing.\n ///\n /// For more details, see `aztec::messages::processing::offchain::receive`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn offchain_receive(\n messages: BoundedVec<\n aztec::messages::processing::offchain::OffchainMessage,\n aztec::messages::processing::offchain::MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL,\n >,\n ) {\n let address = aztec::context::UtilityContext::new().this_address();\n aztec::messages::processing::offchain::receive(address, messages);\n }\n }\n}\n\n/// Checks that all functions in the module have a context macro applied.\n///\n/// Non-macroified functions are not allowed in contracts. They must all be one of\n/// [`crate::macros::functions::external`], [`crate::macros::functions::internal`] or `test`.\ncomptime fn check_each_fn_macroified(m: Module) {\n for f in m.functions() {\n let name = f.name();\n if !is_fn_external(f) & !is_fn_contract_library_method(f) & !is_fn_internal(f) & !is_fn_test(f) {\n // We don't suggest that #[contract_library_method] is allowed because we don't want to introduce another\n // concept\n panic(\n f\"Function {name} must be marked as either #[external(...)], #[internal(...)], or #[test]\",\n );\n }\n }\n}\n"
|
|
2766
|
+
"source": "use crate::{\n macros::{\n calls_generation::{\n external_functions::{generate_external_function_calls, generate_external_function_self_calls_structs},\n internal_functions::generate_call_internal_struct,\n },\n dispatch::generate_public_dispatch,\n emit_public_init_nullifier::generate_emit_public_init_nullifier,\n internals_functions_generation::{create_fn_abi_exports, process_functions},\n notes::NOTES,\n storage::STORAGE_LAYOUT_NAME,\n utils::{\n get_trait_impl_method, is_fn_contract_library_method, is_fn_external, is_fn_internal, is_fn_test,\n module_has_storage,\n },\n },\n messages::discovery::CustomMessageHandler,\n};\n\n/// Configuration for the [`aztec`] macro.\n///\n/// This type lets users override different parts of the default aztec-nr contract behavior, such\n/// as message handling. These are advanced features that require careful understanding of\n/// the behavior of these systems.\n///\n/// ## Examples\n///\n/// ```noir\n/// #[aztec(aztec::macros::AztecConfig::new().custom_message_handler(my_handler))]\n/// contract MyContract { ... }\n/// ```\npub struct AztecConfig {\n custom_message_handler: Option<CustomMessageHandler<()>>,\n}\n\nimpl AztecConfig {\n /// Creates a new `AztecConfig` with default values.\n ///\n /// Calling `new` is equivalent to invoking the [`aztec`] macro with no parameters. The different methods\n /// (e.g. [`AztecConfig::custom_message_handler`]) can then be used to change the default behavior.\n pub comptime fn new() -> Self {\n Self { custom_message_handler: Option::none() }\n }\n\n /// Sets a handler for custom messages.\n ///\n /// This enables contracts to process non-standard messages (i.e. any with a message type that is not in\n /// [`crate::messages::msg_type`]).\n ///\n /// `handler` must be a function that conforms to the\n /// [`crate::messages::discovery::CustomMessageHandler`] type signature.\n pub comptime fn custom_message_handler(_self: Self, handler: CustomMessageHandler<()>) -> Self {\n Self { custom_message_handler: Option::some(handler) }\n }\n}\n\n/// Enables aztec-nr features on a `contract`.\n///\n/// All aztec-nr contracts should have this macro invoked on them, as it is the one that processes all contract\n/// functions, notes, storage, generates interfaces for external calls, and creates the message processing\n/// boilerplate.\n///\n/// ## Examples\n///\n/// Most contracts can simply invoke the macro with no parameters, resulting in default aztec-nr behavior:\n/// ```noir\n/// #[aztec]\n/// contract MyContract { ... }\n/// ```\n///\n/// Advanced contracts can use [`AztecConfig`] to customize parts of its behavior, such as message\n/// processing.\n/// ```noir\n/// #[aztec(aztec::macros::AztecConfig::new().custom_message_handler(my_handler))]\n/// contract MyAdvancedContract { ... }\n/// ```\n#[varargs]\npub comptime fn aztec(m: Module, args: [AztecConfig]) -> Quoted {\n let num_args = args.len();\n let config = if num_args == 0 {\n AztecConfig::new()\n } else if num_args == 1 {\n args[0]\n } else {\n panic(f\"#[aztec] expects 0 or 1 arguments, got {num_args}\")\n };\n\n // Functions that don't have #[external(...)], #[contract_library_method], or #[test] are not allowed in contracts.\n check_each_fn_macroified(m);\n\n // We generate new functions prefixed with `__aztec_nr_internals__` and we replace the original functions' bodies\n // with `static_assert(false, ...)` to prevent them from being called directly from within the contract.\n let functions = process_functions(m);\n\n // We generate structs and their implementations necessary for convenient functions calls.\n let interface = generate_contract_interface(m);\n let self_call_structs = generate_external_function_self_calls_structs(m);\n let call_internal_struct = generate_call_internal_struct(m);\n\n // We generate ABI exports for all the external functions in the contract.\n let fn_abi_exports = create_fn_abi_exports(m);\n\n // We generate `_compute_note_hash_and_nullifier`, `sync_state` and `process_message` functions only if they are\n // not already implemented. If they are implemented we just insert empty quotes.\n let contract_library_method_compute_note_hash_and_nullifier = if !m.functions().any(|f| {\n f.name() == quote { _compute_note_hash_and_nullifier }\n }) {\n generate_contract_library_method_compute_note_hash_and_nullifier()\n } else {\n quote {}\n };\n let process_custom_message_option = if config.custom_message_handler.is_some() {\n let handler = config.custom_message_handler.unwrap();\n quote { Option::some($handler) }\n } else {\n quote { Option::<aztec::messages::discovery::CustomMessageHandler<()>>::none() }\n };\n\n let offchain_inbox_sync_option = quote {\n Option::some(aztec::messages::processing::offchain::sync_inbox)\n };\n\n let sync_state_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { sync_state }) {\n generate_sync_state(process_custom_message_option, offchain_inbox_sync_option)\n } else {\n quote {}\n };\n\n if m.functions().any(|f| f.name() == quote { offchain_receive }) {\n panic(\n \"User-defined 'offchain_receive' is not allowed. The function is auto-injected by the #[aztec] macro. See https://docs.aztec.network/errors/7\",\n );\n }\n let offchain_receive_fn_and_abi_export = generate_offchain_receive();\n\n let process_message_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { process_message }) {\n generate_process_message(process_custom_message_option)\n } else {\n quote {}\n };\n let (has_public_init_nullifier_fn, emit_public_init_nullifier_fn_body) = generate_emit_public_init_nullifier(m);\n let public_dispatch = generate_public_dispatch(m, has_public_init_nullifier_fn);\n\n quote {\n $interface\n $self_call_structs\n $call_internal_struct\n $functions\n $fn_abi_exports\n $contract_library_method_compute_note_hash_and_nullifier\n $public_dispatch\n $sync_state_fn_and_abi_export\n $process_message_fn_and_abi_export\n $emit_public_init_nullifier_fn_body\n $offchain_receive_fn_and_abi_export\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let calls = generate_external_function_calls(m);\n\n let module_name = m.name();\n\n let has_storage_layout = module_has_storage(m) & STORAGE_LAYOUT_NAME.get(m).is_some();\n let storage_layout_getter = if has_storage_layout {\n let storage_layout_name = STORAGE_LAYOUT_NAME.get(m).unwrap();\n quote {\n pub fn storage_layout() -> StorageLayoutFields {\n $storage_layout_name.fields\n }\n }\n } else {\n quote {}\n };\n\n let library_storage_layout_getter = if has_storage_layout {\n quote {\n #[contract_library_method]\n $storage_layout_getter\n }\n } else {\n quote {}\n };\n\n quote {\n pub struct $module_name {\n pub target_contract: aztec::protocol::address::AztecAddress\n }\n\n impl $module_name {\n $calls\n\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> $module_name {\n $module_name { target_contract: addr }\n }\n\n #[contract_library_method]\n pub fn interface() -> $module_name {\n $module_name { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $library_storage_layout_getter\n\n }\n}\n\n/// Generates a contract library method called `_compute_note_hash_and_nullifier` which is used for note discovery (to\n/// create the `aztec::messages::discovery::ComputeNoteHashAndNullifier` function) and to implement the\n/// `compute_note_hash_and_nullifier` unconstrained contract function.\ncomptime fn generate_contract_library_method_compute_note_hash_and_nullifier() -> Quoted {\n if NOTES.len() > 0 {\n // Contracts that do define notes produce an if-else chain where `note_type_id` is matched against the\n // `get_note_type_id()` function of each note type that we know of, in order to identify the note type. Once we\n // know it we call we correct `unpack` method from the `Packable` trait to obtain the underlying note type, and\n // compute the note hash (non-siloed) and inner nullifier (also non-siloed).\n\n let mut if_note_type_id_match_statements_list = @[];\n for i in 0..NOTES.len() {\n let typ = NOTES.get(i);\n\n let get_note_type_id = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteType },\n quote { get_id },\n );\n let unpack = get_trait_impl_method(\n typ,\n quote { crate::protocol::traits::Packable },\n quote { unpack },\n );\n\n let compute_note_hash = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_note_hash },\n );\n\n let compute_nullifier_unconstrained = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_nullifier_unconstrained },\n );\n\n let if_or_else_if = if i == 0 {\n quote { if }\n } else {\n quote { else if }\n };\n\n if_note_type_id_match_statements_list = if_note_type_id_match_statements_list.push_back(\n quote {\n $if_or_else_if note_type_id == $get_note_type_id() {\n // As an extra safety check we make sure that the packed_note BoundedVec has the expected\n // length, since we're about to interpret its raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = <$typ as $crate::protocol::traits::Packable>::N;\n let actual_len = packed_note.len();\n if actual_len != expected_len {\n aztec::protocol::logging::warn_log_format(\n \"[aztec-nr] Packed note length mismatch for note type id {2}: expected {0} fields, got {1}. Skipping note.\",\n [expected_len as Field, actual_len as Field, note_type_id],\n );\n Option::none()\n } else {\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, owner, storage_slot, randomness);\n\n // The message discovery process finds settled notes, that is, notes that were created in\n // prior transactions and are therefore already part of the note hash tree. We therefore\n // compute the nullification note hash by treating the note as a settled note with the\n // provided note nonce.\n let note_hash_for_nullification =\n aztec::note::utils::compute_note_hash_for_nullification(\n aztec::note::HintedNote {\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata:\n aztec::note::note_metadata::SettledNoteMetadata::new(\n note_nonce,\n )\n .into(),\n },\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(\n note,\n owner,\n note_hash_for_nullification,\n );\n\n Option::some(\n aztec::messages::discovery::NoteHashAndNullifier {\n note_hash,\n inner_nullifier,\n },\n )\n }\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash tree with `note_nonce`.\n ///\n /// The signature of this function notably matches the `aztec::messages::discovery::ComputeNoteHashAndNullifier` type, and so it can be used to call functions from that module such as `do_sync_state` and `attempt_note_discovery`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n owner: aztec::protocol::address::AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol::address::AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n $if_note_type_id_match_statements\n else {\n aztec::protocol::logging::warn_log_format(\n \"[aztec-nr] Unknown note type id {0}. Skipping note.\",\n [note_type_id],\n );\n Option::none()\n }\n }\n }\n } else {\n // Contracts with no notes still implement this function to avoid having special-casing, the implementation\n // simply throws immediately.\n quote {\n /// This contract does not use private notes, so this function should never be called as it will unconditionally fail.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n _packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n _owner: aztec::protocol::address::AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol::address::AztecAddress,\n _randomness: Field,\n _nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\n/// Generates the `sync_state` utility function that performs message discovery.\ncomptime fn generate_sync_state(process_custom_message_option: Quoted, offchain_inbox_sync_option: Quoted) -> Quoted {\n quote {\n pub struct sync_state_parameters {}\n\n #[abi(functions)]\n pub struct sync_state_abi {\n parameters: sync_state_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn sync_state() {\n let address = aztec::context::UtilityContext::new().this_address();\n aztec::messages::discovery::do_sync_state(\n address,\n _compute_note_hash_and_nullifier,\n $process_custom_message_option,\n $offchain_inbox_sync_option,\n );\n }\n }\n}\n\n/// Generates the `process_message` utility function that processes a single message ciphertext.\ncomptime fn generate_process_message(process_custom_message_option: Quoted) -> Quoted {\n quote {\n pub struct process_message_parameters {\n pub message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n pub message_context: aztec::messages::processing::MessageContext,\n }\n\n #[abi(functions)]\n pub struct process_message_abi {\n parameters: process_message_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn process_message(\n message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n message_context: aztec::messages::processing::MessageContext,\n ) {\n let address = aztec::context::UtilityContext::new().this_address();\n\n aztec::messages::discovery::process_message::process_message_ciphertext(\n address,\n _compute_note_hash_and_nullifier,\n $process_custom_message_option,\n message_ciphertext,\n message_context,\n );\n\n // At this point, the note is pending validation and storage in the database. We must call\n // validate_and_store_enqueued_notes_and_events to complete that process.\n aztec::messages::processing::validate_and_store_enqueued_notes_and_events(address);\n }\n }\n}\n\n/// Generates an `offchain_receive` utility function that lets callers add messages to the offchain message inbox.\n///\n/// For more details, see `aztec::messages::processing::offchain::receive`.\ncomptime fn generate_offchain_receive() -> Quoted {\n quote {\n pub struct offchain_receive_parameters {\n pub messages: BoundedVec<\n aztec::messages::processing::offchain::OffchainMessage,\n aztec::messages::processing::offchain::MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL,\n >,\n }\n\n #[abi(functions)]\n pub struct offchain_receive_abi {\n parameters: offchain_receive_parameters,\n }\n\n /// Receives offchain messages into this contract's offchain inbox for subsequent processing.\n ///\n /// For more details, see `aztec::messages::processing::offchain::receive`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn offchain_receive(\n messages: BoundedVec<\n aztec::messages::processing::offchain::OffchainMessage,\n aztec::messages::processing::offchain::MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL,\n >,\n ) {\n let address = aztec::context::UtilityContext::new().this_address();\n aztec::messages::processing::offchain::receive(address, messages);\n }\n }\n}\n\n/// Checks that all functions in the module have a context macro applied.\n///\n/// Non-macroified functions are not allowed in contracts. They must all be one of\n/// [`crate::macros::functions::external`], [`crate::macros::functions::internal`] or `test`.\ncomptime fn check_each_fn_macroified(m: Module) {\n for f in m.functions() {\n let name = f.name();\n if !is_fn_external(f) & !is_fn_contract_library_method(f) & !is_fn_internal(f) & !is_fn_test(f) {\n // We don't suggest that #[contract_library_method] is allowed because we don't want to introduce another\n // concept\n panic(\n f\"Function {name} must be marked as either #[external(...)], #[internal(...)], or #[test]\",\n );\n }\n }\n}\n"
|
|
2767
2767
|
},
|
|
2768
2768
|
"115": {
|
|
2769
2769
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/internals_functions_generation/external/private.nr",
|
|
@@ -2819,7 +2819,7 @@
|
|
|
2819
2819
|
},
|
|
2820
2820
|
"153": {
|
|
2821
2821
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/processing/offchain.nr",
|
|
2822
|
-
"source": "use crate::{\n capsules::CapsuleArray,\n context::UtilityContext,\n messages::{\n encoding::MESSAGE_CIPHERTEXT_LEN,\n processing::{MessageContext, MessageTxContext, OffchainMessageWithContext, resolve_message_contexts},\n },\n protocol::{\n address::AztecAddress,\n constants::MAX_TX_LIFETIME,\n hash::sha256_to_field,\n traits::{Deserialize, Serialize},\n },\n};\n\n/// Base capsule slot for the persistent inbox of [`PendingOffchainMsg`] entries.\n///\n/// This is the slot where we accumulate messages received through [`receive`].\nglobal OFFCHAIN_INBOX_SLOT: Field = sha256_to_field(\"AZTEC_NR::OFFCHAIN_INBOX_SLOT\".as_bytes());\n\n/// Capsule array slot used by [`sync_inbox`] to pass tx hash resolution requests to PXE.\nglobal OFFCHAIN_CONTEXT_REQUESTS_SLOT: Field = sha256_to_field(\"AZTEC_NR::OFFCHAIN_CONTEXT_REQUESTS_SLOT\".as_bytes());\n\n/// Capsule array slot used by [`sync_inbox`] to read tx context responses from PXE.\nglobal OFFCHAIN_CONTEXT_RESPONSES_SLOT: Field = sha256_to_field(\"AZTEC_NR::OFFCHAIN_CONTEXT_RESPONSES_SLOT\".as_bytes());\n\n/// Capsule array slot used by [`sync_inbox`] to collect messages ready for processing.\nglobal OFFCHAIN_READY_MESSAGES_SLOT: Field = sha256_to_field(\"AZTEC_NR::OFFCHAIN_READY_MESSAGES_SLOT\".as_bytes());\n\n/// Maximum number of offchain messages accepted by `offchain_receive` in a single call.\npub global MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL: u32 = 16;\n\n/// Tolerance added to the `MAX_TX_LIFETIME` cap for message expiration.\nglobal TX_EXPIRATION_TOLERANCE: u64 = 7200; // 2 hours\n\n/// Maximum time-to-live for a tx-bound offchain message: `MAX_TX_LIFETIME + TX_EXPIRATION_CAP_TOLERANCE`.\n///\n/// After `received_at + MAX_MSG_TTL`, the message is evicted regardless of the sender-provided expiration.\nglobal MAX_MSG_TTL: u64 = MAX_TX_LIFETIME + TX_EXPIRATION_TOLERANCE;\n\n/// A function that manages offchain-delivered messages for processing during sync.\n///\n/// Offchain messages are messages that are not broadcasted via onchain logs. They are instead delivered to the\n/// recipient by calling the `offchain_receive` utility function (injected by the `#[aztec]` macro). Message transport\n/// is the app's responsibility. Typical examples of transport methods are: messaging apps, email, QR codes, etc.\n///\n/// Once offchain messages are delivered to the recipient's private environment via `offchain_receive`, messages are\n/// locally stored in a persistent inbox.\n///\n/// This function determines when each message in said inbox is ready for processing, when it can be safely disposed\n/// of, etc.\n///\n/// The only current implementation of an `OffchainInboxSync` is [`sync_inbox`], which manages an inbox with expiration\n/// based eviction and automatic transaction context resolution.\npub(crate) type OffchainInboxSync<Env> = unconstrained fn[Env](\n/* contract_address */AztecAddress) -> CapsuleArray<OffchainMessageWithContext>;\n\n/// A message delivered via the `offchain_receive` utility function.\npub struct OffchainMessage {\n /// The encrypted message payload.\n pub ciphertext: BoundedVec<Field, MESSAGE_CIPHERTEXT_LEN>,\n /// The intended recipient of the message.\n pub recipient: AztecAddress,\n /// The hash of the transaction that produced this message. `Option::none` indicates a tx-less message.\n pub tx_hash: Option<Field>,\n /// The timestamp after which this message can be evicted from the inbox.\n pub expiration_timestamp: u64,\n}\n\n/// An offchain message awaiting processing (or re-processing) in the inbox.\n///\n/// Messages remain in the inbox until they expire, even if they have already been processed. This is necessary to\n/// handle reorgs: a processed message may need to be re-processed if the transaction that provided its context is\n/// reverted. On each sync, resolved messages are promoted to [`OffchainMessageWithContext`] for processing.\n#[derive(Serialize, Deserialize)]\nstruct PendingOffchainMsg {\n /// The encrypted message payload.\n ciphertext: BoundedVec<Field, MESSAGE_CIPHERTEXT_LEN>,\n /// The intended recipient of the message.\n recipient: AztecAddress,\n /// The hash of the transaction that produced this message. A value of 0 indicates a tx-less message.\n tx_hash: Field,\n /// The timestamp after which this message can be evicted from the inbox (as provided by the sender).\n expiration_timestamp: u64,\n /// The timestamp at which this message was received (i.e. added to the inbox via `receive`).\n ///\n /// Used to cap the effective expiration of messages with an associated transaction: since a tx can only live for\n /// `MAX_TX_LIFETIME`, we don't need to keep the message around longer than `received_at + MAX_MSG_TTL`,\n /// regardless of the sender-provided `expiration_timestamp`.\n received_at: u64,\n}\n\n/// Delivers offchain messages to the given contract's offchain inbox for subsequent processing.\n///\n/// Offchain messages are transaction effects that are not broadcasted via onchain logs. Instead, the sender shares the\n/// message to the recipient through an external channel (e.g. a URL accessible by the recipient). The recipient then\n/// calls this function to hand the messages to the contract so they can be processed through the same mechanisms as\n/// onchain messages.\n///\n/// Messages are processed when their originating transaction is found onchain (providing the context needed to\n/// validate resulting notes and events).\n///\n/// Messages are kept in the inbox until their expiration timestamp is reached. For messages with an associated\n/// transaction, the effective expiration is capped to `received_at + MAX_MSG_TTL`, since there's no point in\n/// keeping a message around longer than its originating transaction could possibly live.\n///\n/// Processing order is not guaranteed.\npub unconstrained fn receive(\n contract_address: AztecAddress,\n messages: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL>,\n) {\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(contract_address, OFFCHAIN_INBOX_SLOT);\n let now = UtilityContext::new().timestamp();\n let mut i = 0;\n let messages_len = messages.len();\n while i < messages_len {\n let msg = messages.get(i);\n let tx_hash = if msg.tx_hash.is_some() {\n msg.tx_hash.unwrap()\n } else {\n 0\n };\n inbox.push(\n PendingOffchainMsg {\n ciphertext: msg.ciphertext,\n recipient: msg.recipient,\n tx_hash,\n expiration_timestamp: msg.expiration_timestamp,\n received_at: now,\n },\n );\n i += 1;\n }\n\n // TODO: Invoke an oracle to invalidate contract sync state cache\n}\n\n/// Returns offchain-delivered messages to process during sync.\n///\n/// Messages remain in the inbox and are reprocessed on each sync until their originating transaction is no longer at\n/// risk of being dropped by a reorg.\npub unconstrained fn sync_inbox(address: AztecAddress) -> CapsuleArray<OffchainMessageWithContext> {\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n let context_resolution_requests: CapsuleArray<Field> = CapsuleArray::at(address, OFFCHAIN_CONTEXT_REQUESTS_SLOT);\n let resolved_contexts: CapsuleArray<Option<MessageTxContext>> =\n CapsuleArray::at(address, OFFCHAIN_CONTEXT_RESPONSES_SLOT);\n let ready_to_process: CapsuleArray<OffchainMessageWithContext> =\n CapsuleArray::at(address, OFFCHAIN_READY_MESSAGES_SLOT);\n\n // Clear any stale ready messages from a previous run.\n ready_to_process.for_each(|i, _| { ready_to_process.remove(i); });\n\n // Clear any stale context resolution requests/responses from a previous run.\n context_resolution_requests.for_each(|i, _| { context_resolution_requests.remove(i); });\n resolved_contexts.for_each(|i, _| { resolved_contexts.remove(i); });\n\n // Build a request list aligned with the inbox indices.\n let mut i = 0;\n let inbox_len = inbox.len();\n while i < inbox_len {\n let msg = inbox.get(i);\n context_resolution_requests.push(msg.tx_hash);\n i += 1;\n }\n\n // Ask PXE to resolve contexts for all requested tx hashes.\n resolve_message_contexts(\n address,\n OFFCHAIN_CONTEXT_REQUESTS_SLOT,\n OFFCHAIN_CONTEXT_RESPONSES_SLOT,\n );\n\n assert_eq(resolved_contexts.len(), inbox_len);\n\n let now = UtilityContext::new().timestamp();\n\n let mut j = inbox_len;\n while j > 0 {\n // This loop decides what to do with each message in the offchain message inbox. We need to handle 3\n // different scenarios for each message.\n //\n // 1. The TX that emitted this message is still not known to PXE: in this case we can't yet process this\n // message, as any notes or events discovered will fail to be validated. So we leave the message in the inbox,\n // awaiting for future syncs to detect that the TX became available.\n //\n // 2. The message is not associated to a TX to begin with. The current version of offchain message processing\n // does not support this case, but in the future it will. Right now, a message without an associated TX will\n // sit in the inbox until it expires.\n //\n // 3. The TX that emitted this message has been found by PXE. That gives us all the information needed to\n // process the message. We add the message to the `ready_to_process` CapsuleArray so that the `sync_state` loop\n // processes it.\n //\n // In all cases, if the message has expired, or the associated TX is older than than `MAX_TX_LIFETIME`\n // (24 hours), we remove it from the inbox.\n //\n // Note: the loop runs backwards because it might call `inbox.remove(j)` to purge expired messages and we also\n // need to align it with `resolved_contexts.get(j)`. Going from last to first simplifies the algorithm as\n // not yet visited element indexes remain stable.\n j -= 1;\n let maybe_ctx = resolved_contexts.get(j);\n let msg = inbox.get(j);\n\n // Compute the message's effective expiration timestamp to determine if we can purge it from the inbox.\n let effective_expiration = if msg.tx_hash != 0 {\n // For messages with an associated transaction, we cap the sender-provided expiration timestamp to\n // `received_at + MAX_MSG_TTL`: there's no point in keeping a message once the TX\n // can no longer possibly be included in a block.\n let tx_lifetime_cap = msg.received_at + MAX_MSG_TTL;\n if msg.expiration_timestamp < tx_lifetime_cap {\n msg.expiration_timestamp\n } else {\n tx_lifetime_cap\n }\n } else {\n // Messages with no associated TX expire on their `expiration_timestamp`\n msg.expiration_timestamp\n };\n\n // Message expired. We remove it from the inbox.\n if now > effective_expiration {\n inbox.remove(j);\n }\n\n // Scenario 1: associated TX not yet available. We keep the message in the inbox, as it might become\n // processable as new blocks get mined.\n // Scenario 2: no TX associated to message. The message will sit in the inbox until it expires.\n if maybe_ctx.is_none() {\n continue;\n }\n\n // Scenario 3: Message is ready to process, add to result array. Note we still keep it in the inbox unless we\n // consider it has expired: this is because we need to account for reorgs. If reorg occurs after we processed\n // a message, the effects of processing the message get rewind. However, the associated TX can be included in\n // a subsequent block. Should that happen, the message must be re-processed to ensure consistency.\n let ctx = maybe_ctx.unwrap();\n let message_context = MessageContext {\n tx_hash: ctx.tx_hash,\n unique_note_hashes_in_tx: ctx.unique_note_hashes_in_tx,\n first_nullifier_in_tx: ctx.first_nullifier_in_tx,\n recipient: msg.recipient,\n };\n ready_to_process.push(OffchainMessageWithContext { message_ciphertext: msg.ciphertext, message_context });\n }\n\n ready_to_process\n}\n\nmod test {\n use crate::{\n capsules::CapsuleArray,\n oracle::random::random,\n protocol::{address::AztecAddress, traits::FromField},\n test::helpers::test_environment::TestEnvironment,\n };\n use super::{\n MAX_MSG_TTL, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL, OFFCHAIN_INBOX_SLOT, OffchainMessage, PendingOffchainMsg,\n receive, sync_inbox,\n };\n\n /// Creates an `OffchainMessage` with dummy ciphertext/recipient.\n fn make_msg(tx_hash: Option<Field>, expiration_timestamp: u64) -> OffchainMessage {\n OffchainMessage {\n ciphertext: BoundedVec::new(),\n recipient: AztecAddress::from_field(42),\n tx_hash,\n expiration_timestamp,\n }\n }\n\n /// Advances the TXE block timestamp by `offset` seconds and returns the resulting timestamp.\n unconstrained fn advance_by(env: TestEnvironment, offset: u64) -> u64 {\n env.advance_next_block_timestamp_by(offset);\n env.mine_block();\n env.last_block_timestamp()\n }\n\n #[test]\n unconstrained fn empty_inbox_returns_empty_result() {\n let env = TestEnvironment::new();\n env.utility_context(|context| {\n let result = sync_inbox(context.this_address());\n let inbox: CapsuleArray<PendingOffchainMsg> =\n CapsuleArray::at(context.this_address(), OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0);\n assert_eq(inbox.len(), 0);\n });\n }\n\n #[test]\n unconstrained fn tx_bound_msg_expires_by_sender_timestamp() {\n let env = TestEnvironment::new();\n let receive_time = advance_by(env, 10);\n // Msg expiration attribute is well before the lifetime cap, so it is the effective expiration.\n let sender_expiration_offset = 100;\n\n // Receive message with expiration at receive_time + offset.\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs\n .push(\n make_msg(\n Option::some(random()),\n receive_time + sender_expiration_offset,\n ),\n );\n receive(context.this_address(), msgs);\n });\n\n // Advance past sender expiration but before the lifetime cap.\n let _now = advance_by(env, sender_expiration_offset + 1);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // context is None, not ready\n assert_eq(inbox.len(), 0); // expired, removed\n });\n }\n\n #[test]\n unconstrained fn tx_bound_msg_expires_by_lifetime_cap() {\n let env = TestEnvironment::new();\n let receive_time = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n // Sender's expiration is far in the future, so the standard TX lifetime cap kicks in.\n msgs.push(make_msg(Option::some(random()), receive_time + 10 * MAX_MSG_TTL));\n receive(context.this_address(), msgs);\n });\n\n // Advance past the lifetime cap.\n let _now = advance_by(env, MAX_MSG_TTL + 1);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0);\n assert_eq(inbox.len(), 0); // capped expiration exceeded, removed\n });\n }\n\n #[test]\n unconstrained fn tx_bound_msg_not_expired_sender_timestamp_binding() {\n let env = TestEnvironment::new();\n let receive_time = advance_by(env, 10);\n // Sender expiration is in the future and below the cap, so it is the binding expiration.\n let sender_expiration_offset = 100;\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs\n .push(\n make_msg(\n Option::some(random()),\n receive_time + sender_expiration_offset,\n ),\n );\n receive(context.this_address(), msgs);\n });\n\n // Advance, but not past sender expiration.\n let _now = advance_by(env, sender_expiration_offset - 1);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // context is None, not ready\n assert_eq(inbox.len(), 1); // not expired, stays\n });\n }\n\n #[test]\n unconstrained fn tx_bound_msg_not_expired_lifetime_cap_binding() {\n let env = TestEnvironment::new();\n\n // Sender expiration is way beyond the cap, but `now` is still before the cap.\n let receive_time = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::some(random()), receive_time + 10 * MAX_MSG_TTL));\n receive(context.this_address(), msgs);\n });\n\n // Advance, but not past the lifetime cap.\n let _now = advance_by(env, 100);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // context is None, not ready\n assert_eq(inbox.len(), 1); // not expired, stays\n });\n }\n\n #[test]\n unconstrained fn tx_less_msg_expires_by_sender_timestamp() {\n let env = TestEnvironment::new();\n let receive_time = advance_by(env, 10);\n let sender_expiration_offset = 100;\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::none(), receive_time + sender_expiration_offset));\n receive(context.this_address(), msgs);\n });\n\n let _now = advance_by(env, sender_expiration_offset + 1);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0);\n assert_eq(inbox.len(), 0); // expired, removed\n });\n }\n\n #[test]\n unconstrained fn tx_less_msg_with_large_expiration_is_not_capped() {\n let env = TestEnvironment::new();\n let receive_time = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::none(), receive_time + 10 * MAX_MSG_TTL));\n receive(context.this_address(), msgs);\n });\n\n // Advance past what the lifetime cap would be for a tx-bound message.\n let _now = advance_by(env, MAX_MSG_TTL + 1);\n\n // The message is tx-less, so the lifetime cap does not apply and the sender's large\n // expiration is trusted. Even though `now` is past what the cap would be for a tx-bound\n // message, the message stays.\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // context is None, not ready\n assert_eq(inbox.len(), 1); // tx-less, not capped, stays\n });\n }\n\n #[test]\n unconstrained fn unresolved_tx_stays_in_inbox() {\n let env = TestEnvironment::new();\n let receive_time = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::some(random()), receive_time + MAX_MSG_TTL));\n receive(context.this_address(), msgs);\n });\n\n let _now = advance_by(env, 100);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // not resolved, not ready\n assert_eq(inbox.len(), 1); // not expired, stays\n });\n }\n\n #[test]\n unconstrained fn multiple_messages_mixed_expiration() {\n let env = TestEnvironment::new();\n let receive_time = advance_by(env, 10);\n\n let survivor_tx_hash = random();\n\n env.utility_context(|context| {\n let address = context.this_address();\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n // Message 0: tx-bound, will expire after 50s.\n msgs.push(make_msg(Option::some(random()), receive_time + 50));\n // Message 1: tx-bound, will expire after 50_000s (the survivor).\n msgs.push(make_msg(Option::some(survivor_tx_hash), receive_time + 50_000));\n // Message 2: tx-less, will expire after 50s.\n msgs.push(make_msg(Option::none(), receive_time + 50));\n receive(address, msgs);\n });\n\n // Advance past 50s but before 50_000s.\n let _now = advance_by(env, 51);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // all contexts are None\n // Only message 1 should remain: messages 0 and 2 expired.\n assert_eq(inbox.len(), 1);\n assert_eq(inbox.get(0).tx_hash, survivor_tx_hash);\n });\n }\n\n // -- Resolved context (ready to process) ------------------------------\n\n #[test]\n unconstrained fn resolved_msg_is_ready_to_process() {\n let env = TestEnvironment::new();\n // TestEnvironment::new() deploys protocol contracts, creating blocks with tx effects.\n // In TXE, tx hashes equal Fr(blockNumber), so Fr(1) is the tx effect from block 1.\n // We use this as a \"known resolvable\" tx hash.\n let known_tx_hash: Field = 1;\n let receive_time = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::some(known_tx_hash), receive_time + MAX_MSG_TTL));\n receive(context.this_address(), msgs);\n });\n\n let _now = advance_by(env, 100);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n // The message should be ready to process since its tx context was resolved.\n assert_eq(result.len(), 1);\n\n let ctx = result.get(0).message_context;\n assert_eq(ctx.tx_hash, known_tx_hash);\n assert_eq(ctx.recipient, AztecAddress::from_field(42));\n assert(ctx.first_nullifier_in_tx != 0, \"resolved context must have a first nullifier\");\n\n // Message stays in inbox (not expired) for potential reorg reprocessing.\n assert_eq(inbox.len(), 1);\n });\n }\n}\n"
|
|
2822
|
+
"source": "use crate::{\n capsules::CapsuleArray,\n context::UtilityContext,\n messages::{\n encoding::MESSAGE_CIPHERTEXT_LEN,\n processing::{MessageContext, MessageTxContext, OffchainMessageWithContext, resolve_message_contexts},\n },\n protocol::{\n address::AztecAddress,\n constants::MAX_TX_LIFETIME,\n hash::sha256_to_field,\n traits::{Deserialize, Serialize},\n },\n};\n\n/// Base capsule slot for the persistent inbox of [`PendingOffchainMsg`] entries.\n///\n/// This is the slot where we accumulate messages received through [`receive`].\nglobal OFFCHAIN_INBOX_SLOT: Field = sha256_to_field(\"AZTEC_NR::OFFCHAIN_INBOX_SLOT\".as_bytes());\n\n/// Capsule array slot used by [`sync_inbox`] to pass tx hash resolution requests to PXE.\nglobal OFFCHAIN_CONTEXT_REQUESTS_SLOT: Field = sha256_to_field(\"AZTEC_NR::OFFCHAIN_CONTEXT_REQUESTS_SLOT\".as_bytes());\n\n/// Capsule array slot used by [`sync_inbox`] to read tx context responses from PXE.\nglobal OFFCHAIN_CONTEXT_RESPONSES_SLOT: Field = sha256_to_field(\"AZTEC_NR::OFFCHAIN_CONTEXT_RESPONSES_SLOT\".as_bytes());\n\n/// Capsule array slot used by [`sync_inbox`] to collect messages ready for processing.\nglobal OFFCHAIN_READY_MESSAGES_SLOT: Field = sha256_to_field(\"AZTEC_NR::OFFCHAIN_READY_MESSAGES_SLOT\".as_bytes());\n\n/// Maximum number of offchain messages accepted by `offchain_receive` in a single call.\npub global MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL: u32 = 16;\n\n/// Tolerance added to the `MAX_TX_LIFETIME` cap for message expiration.\nglobal TX_EXPIRATION_TOLERANCE: u64 = 7200; // 2 hours\n\n/// Maximum time-to-live for a tx-bound offchain message.\n///\n/// After `anchor_block_timestamp + MAX_MSG_TTL`, the message is evicted from the inbox.\nglobal MAX_MSG_TTL: u64 = MAX_TX_LIFETIME + TX_EXPIRATION_TOLERANCE;\n\n/// A function that manages offchain-delivered messages for processing during sync.\n///\n/// Offchain messages are messages that are not broadcasted via onchain logs. They are instead delivered to the\n/// recipient by calling the `offchain_receive` utility function (injected by the `#[aztec]` macro). Message transport\n/// is the app's responsibility. Typical examples of transport methods are: messaging apps, email, QR codes, etc.\n///\n/// Once offchain messages are delivered to the recipient's private environment via `offchain_receive`, messages are\n/// locally stored in a persistent inbox.\n///\n/// This function determines when each message in said inbox is ready for processing, when it can be safely disposed\n/// of, etc.\n///\n/// The only current implementation of an `OffchainInboxSync` is [`sync_inbox`], which manages an inbox with expiration\n/// based eviction and automatic transaction context resolution.\npub(crate) type OffchainInboxSync<Env> = unconstrained fn[Env](\n/* contract_address */AztecAddress) -> CapsuleArray<OffchainMessageWithContext>;\n\n/// A message delivered via the `offchain_receive` utility function.\npub struct OffchainMessage {\n /// The encrypted message payload.\n pub ciphertext: BoundedVec<Field, MESSAGE_CIPHERTEXT_LEN>,\n /// The intended recipient of the message.\n pub recipient: AztecAddress,\n /// The hash of the transaction that produced this message. `Option::none` indicates a tx-less message.\n pub tx_hash: Option<Field>,\n /// Anchor block timestamp at message emission.\n pub anchor_block_timestamp: u64,\n}\n\n/// An offchain message awaiting processing (or re-processing) in the inbox.\n///\n/// Messages remain in the inbox until they expire, even if they have already been processed. This is necessary to\n/// handle reorgs: a processed message may need to be re-processed if the transaction that provided its context is\n/// reverted. On each sync, resolved messages are promoted to [`OffchainMessageWithContext`] for processing.\n#[derive(Serialize, Deserialize)]\nstruct PendingOffchainMsg {\n /// The encrypted message payload.\n ciphertext: BoundedVec<Field, MESSAGE_CIPHERTEXT_LEN>,\n /// The intended recipient of the message.\n recipient: AztecAddress,\n /// The hash of the transaction that produced this message. A value of 0 indicates a tx-less message.\n tx_hash: Field,\n /// Anchor block timestamp at message emission.\n ///\n /// Used to compute the effective expiration: messages are evicted after\n /// `anchor_block_timestamp + MAX_MSG_TTL`.\n anchor_block_timestamp: u64,\n}\n\n/// Delivers offchain messages to the given contract's offchain inbox for subsequent processing.\n///\n/// Offchain messages are transaction effects that are not broadcasted via onchain logs. Instead, the sender shares the\n/// message to the recipient through an external channel (e.g. a URL accessible by the recipient). The recipient then\n/// calls this function to hand the messages to the contract so they can be processed through the same mechanisms as\n/// onchain messages.\n///\n/// Messages are processed when their originating transaction is found onchain (providing the context needed to\n/// validate resulting notes and events).\n///\n/// Messages are kept in the inbox until they expire. The effective expiration is\n/// `anchor_block_timestamp + MAX_MSG_TTL`.\n///\n/// Processing order is not guaranteed.\npub unconstrained fn receive(\n contract_address: AztecAddress,\n messages: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL>,\n) {\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(contract_address, OFFCHAIN_INBOX_SLOT);\n let mut i = 0;\n let messages_len = messages.len();\n while i < messages_len {\n let msg = messages.get(i);\n let tx_hash = if msg.tx_hash.is_some() {\n msg.tx_hash.unwrap()\n } else {\n 0\n };\n inbox.push(\n PendingOffchainMsg {\n ciphertext: msg.ciphertext,\n recipient: msg.recipient,\n tx_hash,\n anchor_block_timestamp: msg.anchor_block_timestamp,\n },\n );\n i += 1;\n }\n\n // TODO: Invoke an oracle to invalidate contract sync state cache\n}\n\n/// Returns offchain-delivered messages to process during sync.\n///\n/// Messages remain in the inbox and are reprocessed on each sync until their originating transaction is no longer at\n/// risk of being dropped by a reorg.\npub unconstrained fn sync_inbox(address: AztecAddress) -> CapsuleArray<OffchainMessageWithContext> {\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n let context_resolution_requests: CapsuleArray<Field> = CapsuleArray::at(address, OFFCHAIN_CONTEXT_REQUESTS_SLOT);\n let resolved_contexts: CapsuleArray<Option<MessageTxContext>> =\n CapsuleArray::at(address, OFFCHAIN_CONTEXT_RESPONSES_SLOT);\n let ready_to_process: CapsuleArray<OffchainMessageWithContext> =\n CapsuleArray::at(address, OFFCHAIN_READY_MESSAGES_SLOT);\n\n // Clear any stale ready messages from a previous run.\n ready_to_process.for_each(|i, _| { ready_to_process.remove(i); });\n\n // Clear any stale context resolution requests/responses from a previous run.\n context_resolution_requests.for_each(|i, _| { context_resolution_requests.remove(i); });\n resolved_contexts.for_each(|i, _| { resolved_contexts.remove(i); });\n\n // Build a request list aligned with the inbox indices.\n let mut i = 0;\n let inbox_len = inbox.len();\n while i < inbox_len {\n let msg = inbox.get(i);\n context_resolution_requests.push(msg.tx_hash);\n i += 1;\n }\n\n // Ask PXE to resolve contexts for all requested tx hashes.\n resolve_message_contexts(\n address,\n OFFCHAIN_CONTEXT_REQUESTS_SLOT,\n OFFCHAIN_CONTEXT_RESPONSES_SLOT,\n );\n\n assert_eq(resolved_contexts.len(), inbox_len);\n\n let now = UtilityContext::new().timestamp();\n\n let mut j = inbox_len;\n while j > 0 {\n // This loop decides what to do with each message in the offchain message inbox. We need to handle 3\n // different scenarios for each message.\n //\n // 1. The TX that emitted this message is still not known to PXE: in this case we can't yet process this\n // message, as any notes or events discovered will fail to be validated. So we leave the message in the inbox,\n // awaiting for future syncs to detect that the TX became available.\n //\n // 2. The message is not associated to a TX to begin with. The current version of offchain message processing\n // does not support this case, but in the future it will. Right now, a message without an associated TX will\n // sit in the inbox until it expires.\n //\n // 3. The TX that emitted this message has been found by PXE. That gives us all the information needed to\n // process the message. We add the message to the `ready_to_process` CapsuleArray so that the `sync_state` loop\n // processes it.\n //\n // In all cases, if the message has expired (i.e. `now > anchor_block_timestamp + MAX_MSG_TTL`), we remove it\n // from the inbox.\n //\n // Note: the loop runs backwards because it might call `inbox.remove(j)` to purge expired messages and we also\n // need to align it with `resolved_contexts.get(j)`. Going from last to first simplifies the algorithm as\n // not yet visited element indexes remain stable.\n j -= 1;\n let maybe_ctx = resolved_contexts.get(j);\n let msg = inbox.get(j);\n\n // Compute the message's effective expiration timestamp to determine if we can purge it from the inbox.\n let effective_expiration = msg.anchor_block_timestamp + MAX_MSG_TTL;\n\n // Message expired. We remove it from the inbox.\n if now > effective_expiration {\n inbox.remove(j);\n }\n\n // Scenario 1: associated TX not yet available. We keep the message in the inbox, as it might become\n // processable as new blocks get mined.\n // Scenario 2: no TX associated to message. The message will sit in the inbox until it expires.\n if maybe_ctx.is_none() {\n continue;\n }\n\n // Scenario 3: Message is ready to process, add to result array. Note we still keep it in the inbox unless we\n // consider it has expired: this is because we need to account for reorgs. If reorg occurs after we processed\n // a message, the effects of processing the message get rewind. However, the associated TX can be included in\n // a subsequent block. Should that happen, the message must be re-processed to ensure consistency.\n let ctx = maybe_ctx.unwrap();\n let message_context = MessageContext {\n tx_hash: ctx.tx_hash,\n unique_note_hashes_in_tx: ctx.unique_note_hashes_in_tx,\n first_nullifier_in_tx: ctx.first_nullifier_in_tx,\n recipient: msg.recipient,\n };\n ready_to_process.push(OffchainMessageWithContext { message_ciphertext: msg.ciphertext, message_context });\n }\n\n ready_to_process\n}\n\nmod test {\n use crate::{\n capsules::CapsuleArray,\n oracle::random::random,\n protocol::{address::AztecAddress, traits::FromField},\n test::helpers::test_environment::TestEnvironment,\n };\n use super::{\n MAX_MSG_TTL, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL, OFFCHAIN_INBOX_SLOT, OffchainMessage, PendingOffchainMsg,\n receive, sync_inbox,\n };\n\n /// Creates an `OffchainMessage` with dummy ciphertext/recipient.\n fn make_msg(tx_hash: Option<Field>, anchor_block_timestamp: u64) -> OffchainMessage {\n OffchainMessage {\n ciphertext: BoundedVec::new(),\n recipient: AztecAddress::from_field(42),\n tx_hash,\n anchor_block_timestamp,\n }\n }\n\n /// Advances the TXE block timestamp by `offset` seconds and returns the resulting timestamp.\n unconstrained fn advance_by(env: TestEnvironment, offset: u64) -> u64 {\n env.advance_next_block_timestamp_by(offset);\n env.mine_block();\n env.last_block_timestamp()\n }\n\n #[test]\n unconstrained fn empty_inbox_returns_empty_result() {\n let env = TestEnvironment::new();\n env.utility_context(|context| {\n let result = sync_inbox(context.this_address());\n let inbox: CapsuleArray<PendingOffchainMsg> =\n CapsuleArray::at(context.this_address(), OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0);\n assert_eq(inbox.len(), 0);\n });\n }\n\n #[test]\n unconstrained fn tx_bound_msg_expires_after_max_msg_ttl() {\n let env = TestEnvironment::new();\n let anchor_ts = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::some(random()), anchor_ts));\n receive(context.this_address(), msgs);\n });\n\n // Advance past anchor_ts + MAX_MSG_TTL.\n let _now = advance_by(env, MAX_MSG_TTL + 1);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // context is None, not ready\n assert_eq(inbox.len(), 0); // expired, removed\n });\n }\n\n #[test]\n unconstrained fn tx_bound_msg_not_expired_before_max_msg_ttl() {\n let env = TestEnvironment::new();\n let anchor_ts = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::some(random()), anchor_ts));\n receive(context.this_address(), msgs);\n });\n\n // Advance, but not past anchor_ts + MAX_MSG_TTL.\n let _now = advance_by(env, 100);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // context is None, not ready\n assert_eq(inbox.len(), 1); // not expired, stays\n });\n }\n\n #[test]\n unconstrained fn tx_less_msg_expires_after_max_msg_ttl() {\n let env = TestEnvironment::new();\n let anchor_ts = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::none(), anchor_ts));\n receive(context.this_address(), msgs);\n });\n\n // Advance past anchor_ts + MAX_MSG_TTL.\n let _now = advance_by(env, MAX_MSG_TTL + 1);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // context is None, not ready\n assert_eq(inbox.len(), 0); // expired, removed\n });\n }\n\n #[test]\n unconstrained fn unresolved_tx_stays_in_inbox() {\n let env = TestEnvironment::new();\n let anchor_ts = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::some(random()), anchor_ts));\n receive(context.this_address(), msgs);\n });\n\n let _now = advance_by(env, 100);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // not resolved, not ready\n assert_eq(inbox.len(), 1); // not expired, stays\n });\n }\n\n #[test]\n unconstrained fn multiple_messages_mixed_expiration() {\n let env = TestEnvironment::new();\n let anchor_ts = advance_by(env, 10);\n\n let survivor_tx_hash = random();\n\n env.utility_context(|context| {\n let address = context.this_address();\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n // Message 0: tx-bound, anchor_ts in the past so it expires at\n // anchor_ts + MAX_MSG_TTL. We set anchor to 0 so it expires quickly.\n msgs.push(make_msg(Option::some(random()), 0));\n // Message 1: tx-bound, anchor_ts is recent so it survives.\n msgs.push(make_msg(Option::some(survivor_tx_hash), anchor_ts));\n // Message 2: tx-less, anchor_ts=0 so it also expires.\n msgs.push(make_msg(Option::none(), 0));\n receive(address, msgs);\n });\n\n // Advance past MAX_MSG_TTL for anchor_ts=0, but not for anchor_ts=anchor_ts.\n let _now = advance_by(env, MAX_MSG_TTL);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n assert_eq(result.len(), 0); // all contexts are None\n // Message 0 expired (anchor=0), message 1 survived (anchor=anchor_ts),\n // message 2 expired (anchor=0).\n assert_eq(inbox.len(), 1);\n assert_eq(inbox.get(0).tx_hash, survivor_tx_hash);\n });\n }\n\n // -- Resolved context (ready to process) ------------------------------\n\n #[test]\n unconstrained fn resolved_msg_is_ready_to_process() {\n let env = TestEnvironment::new();\n // TestEnvironment::new() deploys protocol contracts, creating blocks with tx effects.\n // In TXE, tx hashes equal Fr(blockNumber), so Fr(1) is the tx effect from block 1.\n // We use this as a \"known resolvable\" tx hash.\n let known_tx_hash: Field = 1;\n let anchor_ts = advance_by(env, 10);\n\n env.utility_context(|context| {\n let mut msgs: BoundedVec<OffchainMessage, MAX_OFFCHAIN_MESSAGES_PER_RECEIVE_CALL> = BoundedVec::new();\n msgs.push(make_msg(Option::some(known_tx_hash), anchor_ts));\n receive(context.this_address(), msgs);\n });\n\n let _now = advance_by(env, 100);\n\n env.utility_context(|context| {\n let address = context.this_address();\n let result = sync_inbox(address);\n let inbox: CapsuleArray<PendingOffchainMsg> = CapsuleArray::at(address, OFFCHAIN_INBOX_SLOT);\n\n // The message should be ready to process since its tx context was resolved.\n assert_eq(result.len(), 1);\n\n let ctx = result.get(0).message_context;\n assert_eq(ctx.tx_hash, known_tx_hash);\n assert_eq(ctx.recipient, AztecAddress::from_field(42));\n assert(ctx.first_nullifier_in_tx != 0, \"resolved context must have a first nullifier\");\n\n // Message stays in inbox (not expired) for potential reorg reprocessing.\n assert_eq(inbox.len(), 1);\n });\n }\n}\n"
|
|
2823
2823
|
},
|
|
2824
2824
|
"16": {
|
|
2825
2825
|
"path": "std/field/bn254.nr",
|