@aztec/accounts 0.86.0-starknet.1 → 0.87.0
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.
- package/artifacts/EcdsaKAccount.json +155 -102
- package/artifacts/EcdsaRAccount.json +155 -102
- package/artifacts/SchnorrAccount.json +199 -108
- package/artifacts/SchnorrSingleKeyAccount.json +92 -44
- package/dest/ecdsa/ecdsa_k/account_contract.d.ts +1 -3
- package/dest/ecdsa/ecdsa_k/account_contract.d.ts.map +1 -1
- package/dest/ecdsa/ecdsa_k/index.d.ts +0 -2
- package/dest/ecdsa/ecdsa_k/index.d.ts.map +1 -1
- package/dest/ecdsa/ecdsa_k/index.js +1 -1
- package/dest/ecdsa/ecdsa_k/lazy.d.ts +0 -2
- package/dest/ecdsa/ecdsa_k/lazy.d.ts.map +1 -1
- package/dest/ecdsa/ecdsa_r/account_contract.d.ts +1 -3
- package/dest/ecdsa/ecdsa_r/account_contract.d.ts.map +1 -1
- package/dest/ecdsa/ecdsa_r/index.d.ts +0 -2
- package/dest/ecdsa/ecdsa_r/index.d.ts.map +1 -1
- package/dest/ecdsa/ecdsa_r/index.js +1 -1
- package/dest/ecdsa/ecdsa_r/lazy.d.ts +0 -2
- package/dest/ecdsa/ecdsa_r/lazy.d.ts.map +1 -1
- package/dest/ecdsa/ssh_ecdsa_r/account_contract.d.ts +1 -3
- package/dest/ecdsa/ssh_ecdsa_r/account_contract.d.ts.map +1 -1
- package/dest/ecdsa/ssh_ecdsa_r/index.d.ts +0 -2
- package/dest/ecdsa/ssh_ecdsa_r/index.d.ts.map +1 -1
- package/dest/ecdsa/ssh_ecdsa_r/lazy.d.ts +0 -2
- package/dest/ecdsa/ssh_ecdsa_r/lazy.d.ts.map +1 -1
- package/dest/schnorr/index.js +1 -1
- package/dest/single_key/index.js +1 -1
- package/dest/utils/ssh_agent.d.ts +1 -4
- package/dest/utils/ssh_agent.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/ecdsa/ecdsa_k/index.ts +1 -1
- package/src/ecdsa/ecdsa_r/index.ts +1 -1
- package/src/schnorr/index.ts +1 -1
- package/src/single_key/account_contract.ts +4 -1
- package/src/single_key/index.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"transpiled": true,
|
|
3
|
-
"noir_version": "1.0.0-beta.
|
|
3
|
+
"noir_version": "1.0.0-beta.5+0000000000000000000000000000000000000000",
|
|
4
4
|
"name": "SchnorrAccount",
|
|
5
5
|
"functions": [
|
|
6
6
|
{
|
|
@@ -1100,6 +1100,14 @@
|
|
|
1100
1100
|
"kind": "field"
|
|
1101
1101
|
}
|
|
1102
1102
|
}
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"name": "length",
|
|
1106
|
+
"type": {
|
|
1107
|
+
"kind": "integer",
|
|
1108
|
+
"sign": "unsigned",
|
|
1109
|
+
"width": 32
|
|
1110
|
+
}
|
|
1103
1111
|
}
|
|
1104
1112
|
]
|
|
1105
1113
|
}
|
|
@@ -1131,12 +1139,29 @@
|
|
|
1131
1139
|
"length": 1,
|
|
1132
1140
|
"type": {
|
|
1133
1141
|
"kind": "struct",
|
|
1134
|
-
"path": "authwit::aztec::protocol_types::abis::
|
|
1142
|
+
"path": "authwit::aztec::protocol_types::abis::side_effect::counted::Counted",
|
|
1135
1143
|
"fields": [
|
|
1136
1144
|
{
|
|
1137
|
-
"name": "
|
|
1145
|
+
"name": "inner",
|
|
1138
1146
|
"type": {
|
|
1139
|
-
"kind": "
|
|
1147
|
+
"kind": "struct",
|
|
1148
|
+
"path": "authwit::aztec::protocol_types::abis::log_hash::LogHash",
|
|
1149
|
+
"fields": [
|
|
1150
|
+
{
|
|
1151
|
+
"name": "value",
|
|
1152
|
+
"type": {
|
|
1153
|
+
"kind": "field"
|
|
1154
|
+
}
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"name": "length",
|
|
1158
|
+
"type": {
|
|
1159
|
+
"kind": "integer",
|
|
1160
|
+
"sign": "unsigned",
|
|
1161
|
+
"width": 32
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
]
|
|
1140
1165
|
}
|
|
1141
1166
|
},
|
|
1142
1167
|
{
|
|
@@ -1146,14 +1171,6 @@
|
|
|
1146
1171
|
"sign": "unsigned",
|
|
1147
1172
|
"width": 32
|
|
1148
1173
|
}
|
|
1149
|
-
},
|
|
1150
|
-
{
|
|
1151
|
-
"name": "length",
|
|
1152
|
-
"type": {
|
|
1153
|
-
"kind": "integer",
|
|
1154
|
-
"sign": "unsigned",
|
|
1155
|
-
"width": 32
|
|
1156
|
-
}
|
|
1157
1174
|
}
|
|
1158
1175
|
]
|
|
1159
1176
|
}
|
|
@@ -1672,10 +1689,6 @@
|
|
|
1672
1689
|
"error_kind": "string",
|
|
1673
1690
|
"string": "Got a public log emitted by a different contract"
|
|
1674
1691
|
},
|
|
1675
|
-
"12099279057757775880": {
|
|
1676
|
-
"error_kind": "string",
|
|
1677
|
-
"string": "DST_LEN too large for offset"
|
|
1678
|
-
},
|
|
1679
1692
|
"12822839658937144934": {
|
|
1680
1693
|
"error_kind": "fmtstring",
|
|
1681
1694
|
"length": 75,
|
|
@@ -1761,8 +1774,8 @@
|
|
|
1761
1774
|
}
|
|
1762
1775
|
}
|
|
1763
1776
|
},
|
|
1764
|
-
"bytecode": "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",
|
|
1765
|
-
"debug_symbols": "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",
|
|
1777
|
+
"bytecode": "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",
|
|
1778
|
+
"debug_symbols": "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GlYaVhpWGlYaVhpWGlYaVhpWGlYaXhpeGl4aXhpeGl4aXhpeGl4aXhqrNFZprNJYpbFKY5XGKo1VGqs0VmpEUdFFVDSKuGgWSZEWWZEXlQaVBpUGlQaVBpUGlQaVBpUGlQaVxiiNURqjNEZpjNIYpTFKY5TGKI1RGlwaXBpcGlwaXBpcGlwaXBpcGlwaszRmaczSmKUxS2OWxiyNWRqzNCLP10GR5ydR0SjiolkkRVpkRV5UGloaWhpaGloaWhpaGloaWhpaGloaVhpWGlYaVhpWGlYaVhpWGlYaVhpeGl4aXhpeGl4aXhpeGl4aXhpeGqs0Vmms0lilsUpjlcYqjVUaqzRWakTh0kVUNIq4aBZJkRZZkReVBpUGlQaVBpUGlQaVBpUGlQaVBpXGKI1RGqM0RmkceW4cJEVadNQ4a5AXraQjzy+iolHERbNIirSoNLg0uDRmaczSmKUxS2OWxiyNWRqzNGZpzNKQ0pDSkNKQ0pDSkNKQ0pDSkNKQ0tDS0NLQ0tDS0NLQ0tDS0NLQ0tDSsNKw0rDSsNKw0rDSsNKw0rDSsNLw0vDS8NLw0vDS8NLw0vDS8NLw0lilsUpjlcYqjVUaqzRWaazSWKWxUiOKoy6iolHERbNIirTIiryoNKg0qDSoNKg0qDSoNKg0qDSoNKg0RmmM0hilMUpjlMYojVEaledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledSeS6V51J5LpXnUnkuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5rpXnWnmuledaea6V51p5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K2t+Zc2vrD1fWfMra89X1p6vrD1fWfMra351lnrn77TzlXZ9m19Z8ytrfnUWfCe3dm7PV9b8yppfnVXf+TvtfNXaz9v5ajvf5lfWnq+s+ZU1vzrLv5ObrjXd5lfW/OqsAb9+v/mVNb+y9nxlza/OQvD829bOza+s+ZU1v7L2fGXNr6z5lbXnq7Mi/IrT/Mra85W156uzKjx/3nSbX3nzq7MyPH8+2s+58WwsjbWxtTjeft50m195e77y9nx1Vonnz5suSft5021+5c2vvPmVt/fBs1r8+p3mV978yptfefMrb37l7fnKm195e77y5ldn3fj1+82vvPmVN7/y9nzlza+8PV958ytvfuXX8xUFn7qxlOL1fDWDufFsLI21sTX2xgt8PV+dTI2brjRdabrSdKXpStOVpitNV5uuNl1tutp0telq09Wmq033er6S4AW+3gdPpsanrgZz46ZrTdearjVda+dr7Xy9na+38/V2vt7O15uuN11vut50vel6011NdzXd1XRX011NdzXd1XRX011Nd6Gdz+LzZGo8GqOd1/U+eDJ010MbW2NvjPM9y9CTqfFozI1n46ZLTZeaLjVdarqj6Y6mO5ruaLqj6Y6mO5ruaLqj6Y7WztzamVs7c2tnbu3MrZ256XLT5abLTZfb+c52vrOdb/Or1fxqNb9aza9W86vV/Go1v1rNr1bzq9X8ajW/Ws2vVvOr1fxqNb9aza+WwDeWtHbW1s7a2lnhG0tbOze/Ws2vVvOr1fxqaTtfbedr7Xytna+187V2vs2vVvOr1fxqNb9aza9W86vV/Go1v1rNr1bzq9X8ajW/WpdfRVtdfnVya2dv7Xz5VbTh5VcnN93mV6v51Wp+tZpfreZXq/nVWnW+4/F4NKbGozE3no2lsTa2xt646VLTpaZLTffyq1hI+fKrk6WxNrZst/G4/Orkpjua7mi6o+mOdr6jne9o5zva+Y52vqOd72i63HS56XLT5abLTZebLjddbrrcdHmhTeajMTUejRltNWfjpjub7my6s+nOdr7Szlfa+Uo7X2nnK+18pelK05WmK01Xmq42XW262nS16WrrV9r6lbZ+pda49avLr4Kt6VrTtaZrTdfa+Vo7X2vna+18rZ2vtfP1putN15uuN11vut50vel604VfjYe3frVav1qtX62BNlmtX62mu5ruarqr6a52vs2v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T7+6OHSPGhU+69uTT90499OvJI7n9KuLtbE19sYLfPrVxdR4NObGoXvUw/BZ356sja2xN17g068upsajMTduutJ0pelK05WmK01Xm642XW262nS16WrT1aarTVebrjZda7rWdK3pWtO1pmtN15quNV1rutZ0vel60/Wm603Xm643XW+63nS96XrTXU13Nd3Tr9SCQ9civ06/sujbp19drI2tsTdexWd9ezI1Ho258WwsjbWxNfbGTZeaLjVdarrUdKnpUtOlpktNl5ru6Vd+eMJZ355MjUdjbjwbS2NtbI29cdPlpstNl5suN11uutx0uely0+Wmy013Nt3ZdGfTnU13Nt3ZdGfTnU13Nt3ZdKXpStOVpitNV5quNF1putJ0pelK09Wmq01Xm642XW262nS16WrT1aarTdearjVda7rWdK3pWtO1pmtN15quNV1vut50vel60/Wm603Xm643XW+63nRX011NdzXd1XRX011NdzXd1XRX013QPevbk6nxaMyNZ2NprI2tsTduutR0qelS06WmS02Xmi41XWq61HSbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX3HzK25+xc2vuPkVN7/i5lfc/IqbX83mV7P51Wx+NZtfzeZXs/nVbH41m1/N5lez+dVsfjWbX83mV7P51Wx+NZtfzeZXs/nVbH41m1/N5lez+dVsfjWbX83mV7P51Wx+NZtfzeZXs/nVbH41m1/N5lez+dVsfjWbX83mV7P51Wx+NZtfzeZXs/nVbH41m1/N5lez+dVsfjWbX83mV7P51Wx+NZtfzeZXs/nVbH41m1/N5lez+dVsfjWbX83mV7P51Wx+NZtfzeZXs/nVbH41m1/N5lez+dVsfjWbX83mV7P51Wx+NZtfzeZXs/nVbH41m1/N5lez+dVsfjWbX83mV7P51Wx+NZtfzeZXs/nVbH41m1/N5lez+dVsfjWbX83mV7P51Wx+NZtfSfMraX4lza+k+ZU0v5LmV9L86qxvl2Pejc/6dlkcHLrH/Bqf9e3Jh64+HsEjeATzyX/785/+r3/8t7/843//6z//nz/9t/98/uf//I9/+ad//8u//sv1n//+f//v/H/++7/95a9//cv/+of//W//+k///D/+49/++R/++q//dPx/f3oc/3PI/t1zlEr475+/TPWjMf881vGjgR/Zn3kcP+Lrr/9On7Pof9bndPLfx5/+nSk9/mw6/O/jl/7OnrMOf7bnFMDx/4eQPidzn/8TfxB/cXxZ9fwfPeLOknpOlQw6fiTHj45Qz4FJ9grzDBIHp7//heFH689jHj/yPN5ja4Dny9V1dM95XKuQ4wjwjHAd1/NV9/mfdvz1qr9+TuQ+H+Ovv36OvOmj/vo5zzzO/4y/Vnr+59mij/zz58jcn58jVNefP8cl//wcI8wAzyHC5396BniO9P35OaoXAeinAQZO4HmOy/JPlv/5ORJbx/z8z+fLRfwFow3t2Qx//7e//e3v//b/AA==",
|
|
1766
1779
|
"brillig_names": [
|
|
1767
1780
|
"get_contract_instance_internal",
|
|
1768
1781
|
"decompose_hint",
|
|
@@ -1782,7 +1795,7 @@
|
|
|
1782
1795
|
"directive_to_radix",
|
|
1783
1796
|
"directive_integer_quotient"
|
|
1784
1797
|
],
|
|
1785
|
-
"verification_key": "AAAAAAAEAAAAAAAAAAAAEgAAAAAAAAAQAAAAAAAAVgkAAAAA//////////
|
|
1798
|
+
"verification_key": "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"
|
|
1786
1799
|
},
|
|
1787
1800
|
{
|
|
1788
1801
|
"name": "entrypoint",
|
|
@@ -3038,6 +3051,14 @@
|
|
|
3038
3051
|
"kind": "field"
|
|
3039
3052
|
}
|
|
3040
3053
|
}
|
|
3054
|
+
},
|
|
3055
|
+
{
|
|
3056
|
+
"name": "length",
|
|
3057
|
+
"type": {
|
|
3058
|
+
"kind": "integer",
|
|
3059
|
+
"sign": "unsigned",
|
|
3060
|
+
"width": 32
|
|
3061
|
+
}
|
|
3041
3062
|
}
|
|
3042
3063
|
]
|
|
3043
3064
|
}
|
|
@@ -3069,12 +3090,29 @@
|
|
|
3069
3090
|
"length": 1,
|
|
3070
3091
|
"type": {
|
|
3071
3092
|
"kind": "struct",
|
|
3072
|
-
"path": "authwit::aztec::protocol_types::abis::
|
|
3093
|
+
"path": "authwit::aztec::protocol_types::abis::side_effect::counted::Counted",
|
|
3073
3094
|
"fields": [
|
|
3074
3095
|
{
|
|
3075
|
-
"name": "
|
|
3096
|
+
"name": "inner",
|
|
3076
3097
|
"type": {
|
|
3077
|
-
"kind": "
|
|
3098
|
+
"kind": "struct",
|
|
3099
|
+
"path": "authwit::aztec::protocol_types::abis::log_hash::LogHash",
|
|
3100
|
+
"fields": [
|
|
3101
|
+
{
|
|
3102
|
+
"name": "value",
|
|
3103
|
+
"type": {
|
|
3104
|
+
"kind": "field"
|
|
3105
|
+
}
|
|
3106
|
+
},
|
|
3107
|
+
{
|
|
3108
|
+
"name": "length",
|
|
3109
|
+
"type": {
|
|
3110
|
+
"kind": "integer",
|
|
3111
|
+
"sign": "unsigned",
|
|
3112
|
+
"width": 32
|
|
3113
|
+
}
|
|
3114
|
+
}
|
|
3115
|
+
]
|
|
3078
3116
|
}
|
|
3079
3117
|
},
|
|
3080
3118
|
{
|
|
@@ -3084,14 +3122,6 @@
|
|
|
3084
3122
|
"sign": "unsigned",
|
|
3085
3123
|
"width": 32
|
|
3086
3124
|
}
|
|
3087
|
-
},
|
|
3088
|
-
{
|
|
3089
|
-
"name": "length",
|
|
3090
|
-
"type": {
|
|
3091
|
-
"kind": "integer",
|
|
3092
|
-
"sign": "unsigned",
|
|
3093
|
-
"width": 32
|
|
3094
|
-
}
|
|
3095
3125
|
}
|
|
3096
3126
|
]
|
|
3097
3127
|
}
|
|
@@ -3611,10 +3641,6 @@
|
|
|
3611
3641
|
"length": 20,
|
|
3612
3642
|
"item_types": []
|
|
3613
3643
|
},
|
|
3614
|
-
"12099279057757775880": {
|
|
3615
|
-
"error_kind": "string",
|
|
3616
|
-
"string": "DST_LEN too large for offset"
|
|
3617
|
-
},
|
|
3618
3644
|
"12822839658937144934": {
|
|
3619
3645
|
"error_kind": "fmtstring",
|
|
3620
3646
|
"length": 75,
|
|
@@ -3700,8 +3726,8 @@
|
|
|
3700
3726
|
}
|
|
3701
3727
|
}
|
|
3702
3728
|
},
|
|
3703
|
-
"bytecode": "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",
|
|
3704
|
-
"debug_symbols": "vb3bjuRMcqX7Ln3dF+FuR59XGQwEjUYzaKAhDXTYwIagd99BI93WqvyVrMjI7H2j+lT9l31BBn0F3egk/+NP/+sf/+e//5+/+8s//e9//tc//bf//h9/+p//8pe//vUv/+fv/vrP//D3//aXf/6n59/+x58ex/8ZU//038afn3/a9adff8b1Z15/rvNPeVx/juvPef0p159XPbnqyVVPrnpy1ZOrnl719KqnVz296ulVT696etXTq55e9fSqZ1c9u+rZVc+uenbVs6ueXfXsqmdXPbvq+VXPr3p+1fOrnl/1/KrnVz2/6vlVz696cdWLq15c9eKqF1e9uOrFVS+uenHVi6teXvXyqpdXvbzq5VUvr3r5rDePP+P6M68/1/nnelx/juvPZz07/nzWi+NPvf6060+//ozrz7z+XPXnfDyuP8f157z+lOvP4/PNA2yDb4gNuWFdMB4bxoa5QTbsymNXHrvy2JXHrjx25bkrz1157spzV5678tyV5648d+W5K89dWXZl2ZVr7NgBskE32AbfEBtyw7qgxlDB2LAr666su7Luyror666su7LuyrYr265su7LtyrYr265su7LtyrYr267su7Lvyr4r+67su7Lvyr4r+67su7LvyrErx64cu3LsyrErx64cu3LsyrErx66cu3Luyrkr566cu3Luyrkr566cu3LuymtXXrvyMe5GHiAbdINt8A2xITesE+QYfyeMDXODbNANtuFIiXlAbMgN64JjDJ4wNswNskE32IZdeezKY1ceu/IxBqcdMDbMDbJBN9gG3xAbcsO6QHZl2ZVlV5Zd+RiDcx1gG3xDbMgN64JjDJ4wNswNsmFX1l1Zd2XdlXVX1l3ZdmXblW1Xtl3ZdmXblW1Xtl3ZdmXblX1X9l3Zd2XflX1X9l3Zd2XflX1X9l05duXYlWNXjl05duXYlWNXjl05duXYlXNXzl05d+XclXNXzl05d+XclXNXzl157cprV1678tqV1668duW1K69dee3K66qsj8eGsWFukA26wTb4htiQG3blsSuPXXnsymNXHrvy2JXHrjx25bErj1157spzV5678tyV5648d+W5K89dee7Kc1eWXVl2ZdmVZVfeY1D3GNQ9BvUYgzIOyA3rgmMMnjA2zA2yQTfYBt+wK+uurLuy7cq2K9uubLuy7cq2K9uubLuy7cq2K/uu7Luy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",
|
|
3729
|
+
"bytecode": "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",
|
|
3730
|
+
"debug_symbols": "vf3druRMdp0L30sf90FGzN/wrRiGIWtrGwIakiHLBj4YuvcvOcmYY9QqL1auXKv3iepR9VvzSTI5RzKCQfL//OX/+af/9r/++3/953/5f//1f/7lP/3n//OX//Zv//y3v/3zf/+vf/vXf/yHf//nf/2X59/+n788jv8zpv7lP42/Pv+060+//ozrz7z+XOef8rj+HNef8/pTrj+venLVk6ueXPXkqidXPb3q6VVPr3p61dOrnl719KqnVz296ulVz656dtWzq55d9eyqZ1c9u+rZVc+uenbV86ueX/X8qudXPb/q+VXPr3p+1fOrnl/14qoXV7246sVVL656cdWLq15c9eKqF1e9vOrlVS+vennVy6teXvXyWW8ef8b1Z15/rvPP9bj+HNefz3p2/PmsF8efev1p159+/RnXn3n9uerP+Xhcf47rz3n9Kdefx+ebB9gG3xAbcsO6YDw2jA1zg2zYlceuPHblsSuPXXnsynNXnrvy3JXnrjx35bkrz1157spzV567suzKsitX79gBskE32AbfEBtyw7qgeqhgbNiVdVfWXVl3Zd2VdVfWXVl3ZduVbVe2Xdl2ZduVbVe2Xdl2ZduVbVf2Xdl3Zd+VfVf2Xdl3Zd+VfVf2Xdl35diVY1eOXTl25diVY1eOXTl25diVY1fOXTl35dyVc1fOXTl35dyVc1fOXTl35bUrr1356LuRB8gG3WAbfENsyA3rBDn674SxYW6QDbrBNhwpMQ+IDblhXXD04Aljw9wgG3SDbdiVx648duWxKx89OO2AsWFukA26wTb4htiQG9YFsivLriy7suzKRw/OdYBt8A2xITesC44ePGFsmBtkw66su7Luyror666su7LtyrYr265su7LtyrYr265su7LtyrYr+67su7Lvyr4r+67su7Lvyr4r+67su3LsyrErx64cu3LsyrErx64cu3LsyrEr566cu3Luyrkr566cu3Luyrkr566cu/LaldeuvHbltSuvXXntymtXXrvy2pXXVVkfjw1jw9wgG3SDbfANsSE37MpjVx678tiVx648duWxK49deezKY1ceu/LcleeuPHfluSvPXXnuynNXnrvy3JXnriy7suzKsivLrrx7UHcP6u5BPXpQxgG5YV1w9OAJY8PcIBt0g23wDbuy7sq6K9uubLuy7cq2K9uubLuy7cq2K9uubLuy78q+K/uu7Luy78q+K/uu7Luy78q+K8euHLty7MqxK8euHLty7MqxK8euHLty7sq5K+eunLty7sq5K+eunLty7sq5K69dee3Ka1deu/LaldeuvHbltSuvXXldle3x2DA2zA2yQTfYBt8QG3LDrjx25bErj1157MpjVx678tiVx648duWxK89dee7Kc1eeu/LcleeuPHfluSvPXXnuyrIry64su7LsyrIry64su/LuQds9aLsHbfeg7R603YO2e9B2D9ruQds9aLsHbfeg7R603YO2e9B2D9ruQds9aLsHbfeg7R603YO2e9B2D9ruQds9aLsHrXrQDrANviE25IZ1QfVgwdgwN8iGXTl25diVY1c+elDnAeuCowdPGBvmBtmgG2yDb4gNu3LuymtXXrvy2pXXrrx25bUrr1157cprV15XZT96UPWAsWFukA26wTb4htiQG9YFY1ceu/LYlceufPSg2gG2wTfEhtywLjh68ISxYW6QDbvy3JXnrjx35aMHNQ9YFxw9eMKzsj0OmBtkg26wDb4hNuSGdcHRgyfsyror666su/LRgyYH+IbYkBvWBUcPnjA2zA2yQTfsyrYr265su/LRg3Z8O0cPnjA2zA2yQTfYBt8QG3LDrhy7cuzKsSvHrhy7cuzKsSvHrhy7cuzKuSvnrpy7cu7KuSvnrpy7cu7KuSvnrrx25bUrr1157cprV1678tqV1668duV1VY7HY8PYMDfIBt1gG3xDbMgNu/LYlceuPHblsSuPXXnsymNXHrvy2JXHrjx35bkrz1157spzV5678tyV5648d+W5K8uuLLuy7MqyK8uuLLuy7MqyK8uuLLuy7sq6K+uurLuy7sq6K+uurLuy7sq6K9uubLuy7crVg36AbrANviE25IZ1QfVgwdgwN+zKviv7ruy7su/Kviv7rhy7cuzKsSvHrhy7cuzKsSvHrhy7cuzKuSvnrpy7cu7KuSvnrpy7cu7KuSvnrrx25bUrr1157cprV1678tqV1668duV1Vc7HY8PYMDfIBt1gG3xDbMgNu/LYlceuPHblsSuPXXnsymNXHrvy2JXHrjx35bkrz1157spzV5678tyV5648d+W5K8uuLLuy7MqyK8uuLLuy7MqyK8uuLLuy7sq6K+uurLuy7sq6K+uurLuy7sq6K9uubLuy7cq7B3P3YO4ezN2DuXswdw/m7sHc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",
|
|
3705
3731
|
"brillig_names": [
|
|
3706
3732
|
"discover_new_messages",
|
|
3707
3733
|
"get_note_internal",
|
|
@@ -3718,7 +3744,7 @@
|
|
|
3718
3744
|
"directive_integer_quotient",
|
|
3719
3745
|
"directive_to_radix"
|
|
3720
3746
|
],
|
|
3721
|
-
"verification_key": "AAAAAAAEAAAAAAAAAAAAEgAAAAAAAAAQAAAAAAAAVgkAAAAA//////////
|
|
3747
|
+
"verification_key": "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"
|
|
3722
3748
|
},
|
|
3723
3749
|
{
|
|
3724
3750
|
"name": "lookup_validity",
|
|
@@ -3866,10 +3892,6 @@
|
|
|
3866
3892
|
"error_kind": "string",
|
|
3867
3893
|
"string": "Wrong collapsed vec length"
|
|
3868
3894
|
},
|
|
3869
|
-
"12099279057757775880": {
|
|
3870
|
-
"error_kind": "string",
|
|
3871
|
-
"string": "DST_LEN too large for offset"
|
|
3872
|
-
},
|
|
3873
3895
|
"12822839658937144934": {
|
|
3874
3896
|
"error_kind": "fmtstring",
|
|
3875
3897
|
"length": 75,
|
|
@@ -3955,8 +3977,8 @@
|
|
|
3955
3977
|
}
|
|
3956
3978
|
}
|
|
3957
3979
|
},
|
|
3958
|
-
"bytecode": "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",
|
|
3959
|
-
"debug_symbols": "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",
|
|
3980
|
+
"bytecode": "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",
|
|
3981
|
+
"debug_symbols": "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",
|
|
3960
3982
|
"brillig_names": [
|
|
3961
3983
|
"lookup_validity"
|
|
3962
3984
|
]
|
|
@@ -4058,10 +4080,6 @@
|
|
|
4058
4080
|
"error_kind": "string",
|
|
4059
4081
|
"string": "Got a public log emitted by a different contract"
|
|
4060
4082
|
},
|
|
4061
|
-
"12099279057757775880": {
|
|
4062
|
-
"error_kind": "string",
|
|
4063
|
-
"string": "DST_LEN too large for offset"
|
|
4064
|
-
},
|
|
4065
4083
|
"12822839658937144934": {
|
|
4066
4084
|
"error_kind": "fmtstring",
|
|
4067
4085
|
"length": 75,
|
|
@@ -4143,8 +4161,8 @@
|
|
|
4143
4161
|
}
|
|
4144
4162
|
}
|
|
4145
4163
|
},
|
|
4146
|
-
"bytecode": "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",
|
|
4147
|
-
"debug_symbols": "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",
|
|
4164
|
+
"bytecode": "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",
|
|
4165
|
+
"debug_symbols": "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",
|
|
4148
4166
|
"brillig_names": [
|
|
4149
4167
|
"sync_notes"
|
|
4150
4168
|
]
|
|
@@ -5240,6 +5258,14 @@
|
|
|
5240
5258
|
"kind": "field"
|
|
5241
5259
|
}
|
|
5242
5260
|
}
|
|
5261
|
+
},
|
|
5262
|
+
{
|
|
5263
|
+
"name": "length",
|
|
5264
|
+
"type": {
|
|
5265
|
+
"kind": "integer",
|
|
5266
|
+
"sign": "unsigned",
|
|
5267
|
+
"width": 32
|
|
5268
|
+
}
|
|
5243
5269
|
}
|
|
5244
5270
|
]
|
|
5245
5271
|
}
|
|
@@ -5271,12 +5297,29 @@
|
|
|
5271
5297
|
"length": 1,
|
|
5272
5298
|
"type": {
|
|
5273
5299
|
"kind": "struct",
|
|
5274
|
-
"path": "authwit::aztec::protocol_types::abis::
|
|
5300
|
+
"path": "authwit::aztec::protocol_types::abis::side_effect::counted::Counted",
|
|
5275
5301
|
"fields": [
|
|
5276
5302
|
{
|
|
5277
|
-
"name": "
|
|
5303
|
+
"name": "inner",
|
|
5278
5304
|
"type": {
|
|
5279
|
-
"kind": "
|
|
5305
|
+
"kind": "struct",
|
|
5306
|
+
"path": "authwit::aztec::protocol_types::abis::log_hash::LogHash",
|
|
5307
|
+
"fields": [
|
|
5308
|
+
{
|
|
5309
|
+
"name": "value",
|
|
5310
|
+
"type": {
|
|
5311
|
+
"kind": "field"
|
|
5312
|
+
}
|
|
5313
|
+
},
|
|
5314
|
+
{
|
|
5315
|
+
"name": "length",
|
|
5316
|
+
"type": {
|
|
5317
|
+
"kind": "integer",
|
|
5318
|
+
"sign": "unsigned",
|
|
5319
|
+
"width": 32
|
|
5320
|
+
}
|
|
5321
|
+
}
|
|
5322
|
+
]
|
|
5280
5323
|
}
|
|
5281
5324
|
},
|
|
5282
5325
|
{
|
|
@@ -5286,14 +5329,6 @@
|
|
|
5286
5329
|
"sign": "unsigned",
|
|
5287
5330
|
"width": 32
|
|
5288
5331
|
}
|
|
5289
|
-
},
|
|
5290
|
-
{
|
|
5291
|
-
"name": "length",
|
|
5292
|
-
"type": {
|
|
5293
|
-
"kind": "integer",
|
|
5294
|
-
"sign": "unsigned",
|
|
5295
|
-
"width": 32
|
|
5296
|
-
}
|
|
5297
5332
|
}
|
|
5298
5333
|
]
|
|
5299
5334
|
}
|
|
@@ -5821,10 +5856,6 @@
|
|
|
5821
5856
|
"length": 20,
|
|
5822
5857
|
"item_types": []
|
|
5823
5858
|
},
|
|
5824
|
-
"12099279057757775880": {
|
|
5825
|
-
"error_kind": "string",
|
|
5826
|
-
"string": "DST_LEN too large for offset"
|
|
5827
|
-
},
|
|
5828
5859
|
"12822839658937144934": {
|
|
5829
5860
|
"error_kind": "fmtstring",
|
|
5830
5861
|
"length": 75,
|
|
@@ -5910,8 +5941,8 @@
|
|
|
5910
5941
|
}
|
|
5911
5942
|
}
|
|
5912
5943
|
},
|
|
5913
|
-
"bytecode": "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",
|
|
5914
|
-
"debug_symbols": "vb3dju3McWX7LrrWxcqMyD+/SqNhqN06DQGC3JDtAxwY/e5nMciIEVXbKzdrValvVEP7q5qTTDImyWQy8z//8D///D/+43/981/+9v/867/94Z/+23/+4X/8/S9//etf/tc///Vf/+VP//6Xf/3b81//8w+P439KLX/4p/LH5896/ZTrp14/2/WzXz/H9XNeP9f5Ux7Xz0tPLj259OTSk0tPLj259OTSk0tPLz299PTS00tPLz299PTS00tPLz299Nql1y69dum1S69deu3Sa5deu/TapdcuvX7p9UuvX3r90uuXXr/0+qXXL71+6fVLb1x649Ibl9649MalNy69cemNS29ceuPSm5fevPTmpTefevX4qdfPdv3s189x/ZzXz6dee/5cT71x/CzXz3r9lOunXj/b9bNfP8f1c14/l/2sj8f189i+ekB1EAd1aA7dYThMh3VBeTi4cnHl4srFlYsrF1curlxcubhydeXqytWVqytXV66uXF25unJ1ZaudZ+NWKx6D4lAdxEEdmkN3GA7TwZXVldWV1ZXVldWV1ZXVldWV1ZXVlZsrN1durtxcublyc+Xmys2Vmys3V+6u3F25u3J35e7K3ZW7K3dX7q7cXXm48nDl4crDlYcrD1cerjxcebjycOXpytOVpytPV56uPF15uvJ05enKR92V+YSj8E4oDtVBHNShOXSH4TAdLmV5PByKQ3U4UqIeoA7NoTsMh+mwLjhq8ITiUB1cubhyceXiykcN1nbAdFgXHDV4QnGoDuKgDs2hO7hydeXqyuLKRw3WdUB1EAd1aA7dYThMh3XBUYMnuLK6srqyurK6srqyurK6srpyc+Xmys2Vmys3V26u3Fy5uXJz5ebK3ZW7K3dX7q7cXbm7cnfl7srdlbsrD1cerjxcebjycOXhysOVhysPVx6uPF15uvJ05enK05WnK09Xnq48XXm68nLl5crLlZcrL1derrxcebnycuV1Kevj4VAcqoM4qENz6A7DYTq4cnHl4srFlYsrF1curlxcubhyceXiytWVqytXV66uXF25unJ15erK1ZWrK4srew2q16B6DepRg1IOaA7dYThMh3XBUYMnFIfqIA6urK6srqyurK6srtxcublyc+Xmys2Vmys3V26u3Fy5uXJ35e7K3ZW7K3dX7q7cXbm7cnfl7srDlYcrD1cerjxcebjycOXhysOVhytPV56uPF15uvJ05enK05WnK09Xnq68XHm58nLl5crLlZcrL1derrxceV3K7fFwKA7VQRzUoTl0h+EwHVy5uHJx5eLKxZWLKxdXLq5cXLm4cnHl6srVlasrV1eurlxdubpydeXqytWVxZXFlcWVxZW9BpvXYPMabF6DzWuweQ02r8HmNdi8BpvXYPMabF6DzWuweQ02r8HmNdi8BpvXYPMabF6DzWuweQ02r8HmNdi8BpvXYPMabFaD7YDqIA7q0By6w3CYDusCq0EDVx6uPFx5uPJRg1oP6A7DYTqsC44aPKE4VAdxUAdXnq48XXm68nTl5crLlZcrL1derrxcebnyUYOqB0yHdUI/avCE4lAdxEEdmkN3GA7TwZWLKx81qO2A6iAO6tAcusNwmA7rgqMGT3Dl6srVlasrHzWo84DuMByeyu1xwLrgqMETikN1EAd1aA7dYTi4sriyurK68lGDTQ4QB3VoDt1hOEyHdcFRgycUB1durtxcubnyUYPtODpHDZ4wHdYFRw2eUByqgzioQ3Nw5e7K3ZW7Kw9XHq48XHm48nDl4crDlYcrD1cerjxdebrydOXpytOVpytPV56uPF15uvJy5eXKy5WXKy9XXq68XHm58nLldSmPx8OhOFQHcVCH5tAdhsN0cOXiysWViysXVy6uXFy5uHJx5eLKxZWrK1dXrq5cXbm6cnXl6srVlasrV1cWVxZXFlcWVxZXFlcWVxZXFlcWV1ZXVldWV1ZXVldWV1ZXVldWV1ZXthrsBxSH6iAO6tAcusNwmA7rgu7K3ZW7K3dX7q7cXbm7cnfl7srdlYcrD1cerjxcebjycOXhysOVhysPV56uPF15uvJ05enK05WnK09Xnq48XXm58nLl5crLlZcrL1derrxcebnyupTn4+FQHKqDOKhDc+gOw2E6uHJx5eLKxZWLKxdXLq5cXLm4cnHl4srVlasrV1eurlxdubpydeXqytWVqyuLK4sriyuLK4sriyuLK4sriyuLK6srqyurK6srqyurK6srqyurK6srew1Or8HpNTi9BqfX4PQanF6D02tweg1Or8HpNTi9BqfX4PQanF6D02tweg1Or8HpNTi9BqfX4PQanF6D02tweg1Or8HpNTi9BqfX4PQanF6D02tweg1Or8HpNTi9BqfX4PQanF6D02tweg1Or8HpNTi9BqfX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urro6aKji34uurno5aKTiz4uurjo4aKDi/4turfo3aJzi74turbo2aJji34turXo1aJTiz4turTo0aJDi/4surPozaIzi74surLoyaIji34surHoxaITiz4surDowaIDi/4ruq/ovaLzir4ruq7ouaLjin4ruq3otaLTij4ruqzosaLDiv4qjTrXqHONOqeviq4qeqroqKKfim4qeqnopKKPii4qeqjooKJ/iu4peqfonKJvSjU8NDw0PM5anc+n0Xo8jdoN/fHRld3PG4iDOjSHbvD8W+Fvp//t9L+d/rfT/3b63x4wHKbDusDu7Y9ZnOw23uD4HVvt9fCylWUPL1veVRzU4fCyhV27w3Q4LLo/EbdxPRHb9D3q0ByOP7dpd4bDoWMrIB065/QoB/jz7/DnXxvO3RzmBXZXPdqz3fRoN3vsmo/n/23xf49P6+whzMBa5ni2spYZxy2hwfNPuvUhWKvWa08NhsN0sL+t/+f5N3/913/507//5V//9s///vc///n4e/+Hf/vDP/23//zD//7T3//8t3//wz/97T/++tc//uH//dNf/8N+6d/+95/+Zj///U9/f/7XZ9v/+W//8/nzKfj//OWvfz7o//yRv368/tNqy5XaXz+v8T0EymPclXjeJfSQWAOJcnsrnrcN6hLPW9OXEvJa4vms5lvxfAirSUI/SOhrCT1GbZtCk9QSbdzehnksoHpuwyzz5Tb01xLNpvQ9N6JPCYlebivYNHCnwrMP8pXC3JwTrXhDPO/wyyuF9VrBPmMzgTlSS2r7IFB252U5IvHchufjemhY1SSJspGYnNkvBfYNWWjI+aoZyvaEiNJ4PuPKyxOibM7KZwfGco1nt+vLzdBdkfdFUzxeb0bfbcbQ2IySdmV92o7xWsOGUZjE85VKUnjc3pPnU8oga15XWNmcnM8etRpH5WmeD8vHUq+P77dHLd9uj92+PDsu/CR99gA+9PW+yK7YjpnLrmKbKX6XfNTYnWM29/SpMWo6Tb+wLzJn7Ivq5rhsztPao+SenQgt7cv8qDF2l6PqG/J8PM0aH/embkL0+ewXZ+rzvv61xm47qra4LM7X2yGb8/RYmtpT7PFYLzX2R6Y/OMvGhyvbp4tj3dXuikCu+ch81tidqTbT8HWWlfVaY3em1oen4bMzbbynoRKXSJ2vz1TZnKldvWB6Zyuez60f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",
|
|
5944
|
+
"bytecode": "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",
|
|
5945
|
+
"debug_symbols": "vf3fruTOcaYL34uOdVCR8SczfCuDgaHxaA8ECPJAtjfwwfC9f8UgI95Yq72yuaqW9on78U/d8RRZjLfIZDL5n3/433/+X//xf/75L3/7f/713/7wT//jP//wv/7+l7/+9S//55//+q//8qd//8u//u35X//zD4/j/9CgP/wT/fH557j+5OtPuf7U60+7/pzXn+v6088/+XH9edXjqx5f9fiqx1c9vurxVY+venzVk6ueXPXkqidXPbnqyVVPrnpy1ZOrnlz19KqnVz296ulVT696etXTq55e9fSqp1c9u+rZVc+uenbVs6ueXfXsqmdXPbvq2VVvXvXmVW9e9eZVb1715lVvXvXmVW9e9eZVb1311lVvXfXWs944/pTrT73+tOvPef25rj+f9fT5pz/rzeNPuv4c1598/SnXn3r9adef8/pzXX96/Dkej+vP4/ONA0YCJ0iCJljCTFgJfgE9ErIyZWXKypSVKStTVqasTFmZsvLIyiMrj6w8svLIyiMrj6w8svLIytE7z507onkCKGEkcIIkaIIlzISVkJUlK0tWlqwsWVmysmRlycqSlSUrS1bWrKxZWbOyZmXNypqVNStrVtasrFnZsrJlZcvKlpUtK1tWtqxsWdmysmXlmZVnVp5ZeWblmZVnVp5ZeWblmZVnVl5ZeWXllZVXVl5ZeWXllZVXVl5Z+eg7Wk84Gu8EShgJnCAJmmAJM2ElXJX58UighJFwpMQ4QBI0wRJmwkrwC44ePIESRkJWpqxMWZmy8tGDQw9YCX7B0YMnUMJI4ARJ0ARLyMojK4+szFn56MHhB4wETpAETbCEmbAS/IKjB0/IypKVJStLVpasLFlZsrJkZcnKmpU1K2tW1qysWVmzsmZlzcqalTUrW1a2rGxZ2bKyZWXLypaVLStbVrasPLPyzMozK8+sPLPyzMozK8+sPLPyzMorK6+svLLyysorK6+svLLyysorK6+s7FnZs7JnZc/KnpU9K3tW9qzsWdmvyvJ4JFDCSOAESdAES5gJKyErU1amrExZmbIyZWXKypSVKStTVqasPLLyyMojK4+sPLLyyMojK4+sPLLyyMqclbMHJXtQsgfl6EGmAzTBEmbCSvALjh48gRJGAidkZcnKkpUlK0tWlqysWVmzsmZlzcqalTUra1bWrKxZWbOyZWXLypaVLStbVrasbFnZsrJlZcvK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etDa9aC160Fr14PWrgetXQ9ayytreWUtr6zl1WzXg7OdX812fjXb+dVs51ezXQ/Odj042/XgbNeDs10PznY9OFtezZZXs+XVbHk12/XgbOdXs51fzXZ+Ndv51WzXg7NdD852PTjb9eBs14OzXQ/Ollez5dVseTVbXs12PTjb+dVs51eznV/Ndn412/XgbNeDs10PznY9ONv14GzXg7Pl1Wx5NVtezZZXs10PznZ+Ndv51WznV7OdX812PTjb9eBs14OzXQ/Odj042/XgbHk1W17Nllez5dVs14OznV/Ndn412/nVbOdXs10PznY9ONv14GzXg7NdD852PThbXs2WV7Pl1Wx5Ndv14GznV7OdX812fjXb+dVs14OzXQ/Odj042/XgbNeDs10PzpZXs51fzXZ+Ndv51WzXg7Pl1Wx5NVtezXZ+Ndv51Wx5NVtezSuvZrAXryuvPDi8xwKwdE4NT+bG0ji8xyvN6Jwenv99Nl6NHXzm1flvqXmpeal5qXmpeal5qXmpeal5R/OO5h3NO5p3NO9o3tG8o3lH847m5ebl5uXm5ebl5uXm5ebl5uXm5eaV5pXmleaV5pXmleaV5pXmleaV5tXm1ebV5tXm1ebV5tXm1ebV5tXmtea15rXmtea15rXmtea15rXmteadzTubdzbvbN7ZvLN5Z/PO5p3NO5t3Ne9q3tW8q3lX867mXc27mnc172peb15vXm9eb15vXm9eb15vXm9eh/ecfH7+W2955S2vvOWVt7zyllfe8spbXnnLK2955S2vvOWVt7zyllfe8spbXnnLK2955S2vvOWVt7zyllfe8spbXnnLK2955S2vvOWVt7zyllfe8spbXnnLK2955S2vvOWVt7zyllfe8spbXnnLK2955S2vvOWVt7zyllfe8spbXnnLK2955S2vvOWVt7zyllfe8spbXnnLK2955S2vvOWVt7zyK69OPr0SzI2l8ek9lv79f//097/86X/99c//9od/+s9jDd7/+Nu/5Hq7z//33/9//zf/l//197/89a9/+T///H///q//8uf//R9///OxNu/xv/3hcf2f//G8vhp/fF5M8f98Sp7//zzeCP88uVzP/5+P//94mfDzIuZx/O/HP3gOissfn//Hj/8Q/+Jh9PwbxscCwJR1n/em/vi8R3NVed5R++Pz7lbWeN6o++PzhltWeF6f//F5LX78+3H8++NfPE9S2Mv5+KPo8T9zLCl8/KfJf5zr+E9S/4n8j0OO/6T1n56nT8OP/2RZ9/lFyMi6Sn9U+5//daxd/P8H",
|
|
5915
5946
|
"brillig_names": [
|
|
5916
5947
|
"discover_new_messages",
|
|
5917
5948
|
"get_note_internal",
|
|
@@ -5924,7 +5955,7 @@
|
|
|
5924
5955
|
"directive_integer_quotient",
|
|
5925
5956
|
"directive_to_radix"
|
|
5926
5957
|
],
|
|
5927
|
-
"verification_key": "AAAAAAAEAAAAAAAAAAAAEgAAAAAAAAAQAAAAAAAAVgkAAAAA//////////
|
|
5958
|
+
"verification_key": "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"
|
|
5928
5959
|
},
|
|
5929
5960
|
{
|
|
5930
5961
|
"name": "public_dispatch",
|
|
@@ -6300,6 +6331,62 @@
|
|
|
6300
6331
|
"kind": "struct",
|
|
6301
6332
|
"path": "SchnorrAccount::entrypoint_abi"
|
|
6302
6333
|
},
|
|
6334
|
+
{
|
|
6335
|
+
"fields": [
|
|
6336
|
+
{
|
|
6337
|
+
"name": "parameters",
|
|
6338
|
+
"type": {
|
|
6339
|
+
"fields": [
|
|
6340
|
+
{
|
|
6341
|
+
"name": "consumer",
|
|
6342
|
+
"type": {
|
|
6343
|
+
"fields": [
|
|
6344
|
+
{
|
|
6345
|
+
"name": "inner",
|
|
6346
|
+
"type": {
|
|
6347
|
+
"kind": "field"
|
|
6348
|
+
}
|
|
6349
|
+
}
|
|
6350
|
+
],
|
|
6351
|
+
"kind": "struct",
|
|
6352
|
+
"path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
|
|
6353
|
+
}
|
|
6354
|
+
},
|
|
6355
|
+
{
|
|
6356
|
+
"name": "inner_hash",
|
|
6357
|
+
"type": {
|
|
6358
|
+
"kind": "field"
|
|
6359
|
+
}
|
|
6360
|
+
}
|
|
6361
|
+
],
|
|
6362
|
+
"kind": "struct",
|
|
6363
|
+
"path": "SchnorrAccount::lookup_validity_parameters"
|
|
6364
|
+
}
|
|
6365
|
+
},
|
|
6366
|
+
{
|
|
6367
|
+
"name": "return_type",
|
|
6368
|
+
"type": {
|
|
6369
|
+
"kind": "boolean"
|
|
6370
|
+
}
|
|
6371
|
+
}
|
|
6372
|
+
],
|
|
6373
|
+
"kind": "struct",
|
|
6374
|
+
"path": "SchnorrAccount::lookup_validity_abi"
|
|
6375
|
+
},
|
|
6376
|
+
{
|
|
6377
|
+
"fields": [
|
|
6378
|
+
{
|
|
6379
|
+
"name": "parameters",
|
|
6380
|
+
"type": {
|
|
6381
|
+
"fields": [],
|
|
6382
|
+
"kind": "struct",
|
|
6383
|
+
"path": "SchnorrAccount::sync_notes_parameters"
|
|
6384
|
+
}
|
|
6385
|
+
}
|
|
6386
|
+
],
|
|
6387
|
+
"kind": "struct",
|
|
6388
|
+
"path": "SchnorrAccount::sync_notes_abi"
|
|
6389
|
+
},
|
|
6303
6390
|
{
|
|
6304
6391
|
"fields": [
|
|
6305
6392
|
{
|
|
@@ -6337,7 +6424,7 @@
|
|
|
6337
6424
|
},
|
|
6338
6425
|
"105": {
|
|
6339
6426
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/functions/utils.nr",
|
|
6340
|
-
"source": "use crate::macros::{\n functions::{abi_export::create_fn_abi_export, call_interface_stubs::stub_fn, stub_registry},\n notes::NOTES,\n utils::{\n add_to_hasher, fn_has_noinitcheck, get_fn_visibility, is_fn_contract_library_method,\n is_fn_initializer, is_fn_internal, is_fn_private, is_fn_public, is_fn_test, is_fn_utility,\n is_fn_view, modify_fn_body, module_has_initializer, module_has_storage,\n },\n};\nuse protocol_types::meta::generate_serialize_to_fields;\nuse std::meta::type_of;\n\npub(crate) comptime fn transform_private(f: FunctionDefinition) -> Quoted {\n let fn_abi = create_fn_abi_export(f);\n let fn_stub = stub_fn(f);\n stub_registry::register(f.module(), fn_stub);\n\n // If a function is further modified as unconstrained, we throw an error\n if f.is_unconstrained() {\n let name = f.name();\n panic(\n f\"Function {name} is annotated with #[private] but marked as unconstrained, remove unconstrained keyword\",\n );\n }\n\n let module_has_initializer = module_has_initializer(f.module());\n let module_has_storage = module_has_storage(f.module());\n\n // Private functions undergo a lot of transformations from their Aztec.nr form into a circuit that can be fed to the\n // Private Kernel Circuit.\n // First we change the function signature so that it also receives `PrivateContextInputs`, which contain information\n // about the execution context (e.g. the caller).\n let original_params = f.parameters();\n f.set_parameters(&[(\n quote { inputs },\n quote { crate::context::inputs::private_context_inputs::PrivateContextInputs }.as_type(),\n )]\n .append(original_params));\n\n let mut body = f.body().as_block().unwrap();\n\n // The original params are hashed and passed to the `context` object, so that the kernel can verify we've received\n // the correct values.\n // TODO: Optimize args_hasher for small number of arguments\n let args_hasher_name = quote { args_hasher };\n let args_hasher = original_params.fold(\n quote {\n let mut $args_hasher_name = dep::aztec::hash::ArgsHasher::new();\n },\n |args_hasher, param: (Quoted, Type)| {\n let (name, typ) = param;\n let appended_arg = add_to_hasher(args_hasher_name, name, typ);\n quote {\n $args_hasher\n $appended_arg\n }\n },\n );\n\n let context_creation = quote {\n let mut context = dep::aztec::context::private_context::PrivateContext::new(inputs, dep::aztec::protocol_types::traits::Hash::hash($args_hasher_name));\n };\n\n // Modifications introduced by the different marker attributes.\n let internal_check = if is_fn_internal(f) {\n create_internal_check(f)\n } else {\n quote {}\n };\n\n let view_check = if is_fn_view(f) {\n create_view_check(f)\n } else {\n quote {}\n };\n\n let (assert_initializer, mark_as_initialized) = if is_fn_initializer(f) {\n (create_assert_correct_initializer_args(f), create_mark_as_initialized(f))\n } else {\n (quote {}, quote {})\n };\n\n let storage_init = if module_has_storage {\n quote {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n #[allow(unused_variables)]\n let storage = Storage::init(&mut context);\n }\n } else {\n quote {}\n };\n\n // Initialization checks are not included in contracts that don't have initializers.\n let init_check = if module_has_initializer & !is_fn_initializer(f) & !fn_has_noinitcheck(f) {\n create_init_check(f)\n } else {\n quote {}\n };\n\n // All private functions perform message discovery, since they may need to access notes. This is slightly\n // inefficient and could be improved by only doing it once we actually attempt to read any.\n let message_discovery_call = if NOTES.len() > 0 {\n create_message_discovery_call()\n } else {\n quote {}\n };\n\n // Finally, we need to change the return type to be `PrivateCircuitPublicInputs`, which is what the Private Kernel\n // circuit expects.\n let return_value_var_name = quote { macro__returned__values };\n\n let return_value_type = f.return_type();\n let return_value = if body.len() == 0 {\n quote {}\n } else if return_value_type != type_of(()) {\n // The original return value is passed to a second args hasher which the context receives.\n let (body_without_return, last_body_expr) = body.pop_back();\n let return_value = last_body_expr.quoted();\n let return_value_assignment =\n quote { let $return_value_var_name: $return_value_type = $return_value; };\n let return_hasher_name = quote { return_hasher };\n let return_value_into_hasher =\n add_to_hasher(return_hasher_name, return_value_var_name, return_value_type);\n\n body = body_without_return;\n\n quote {\n let mut $return_hasher_name = dep::aztec::hash::ArgsHasher::new();\n $return_value_assignment\n $return_value_into_hasher\n context.set_return_hash($return_hasher_name);\n }\n } else {\n let (body_without_return, last_body_expr) = body.pop_back();\n if !last_body_expr.has_semicolon()\n & last_body_expr.as_for().is_none()\n & last_body_expr.as_assert().is_none()\n & last_body_expr.as_for_range().is_none()\n & last_body_expr.as_assert_eq().is_none()\n & last_body_expr.as_let().is_none() {\n let unused_return_value_name = f\"_{return_value_var_name}\".quoted_contents();\n body = body_without_return.push_back(\n quote { let $unused_return_value_name = $last_body_expr; }.as_expr().unwrap(),\n );\n }\n quote {}\n };\n\n let context_finish = quote { context.finish() };\n\n let to_prepend = quote {\n $args_hasher\n $context_creation\n $assert_initializer\n $init_check\n $internal_check\n $view_check\n $storage_init\n $message_discovery_call\n };\n\n let to_append = quote {\n $return_value\n $mark_as_initialized\n $context_finish\n };\n let modified_body = modify_fn_body(body, to_prepend, to_append);\n f.set_body(modified_body);\n f.set_return_type(\n quote { dep::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs }\n .as_type(),\n );\n f.set_return_data();\n\n fn_abi\n}\n\npub(crate) comptime fn transform_public(f: FunctionDefinition) -> Quoted {\n let fn_abi = create_fn_abi_export(f);\n let fn_stub = stub_fn(f);\n stub_registry::register(f.module(), fn_stub);\n\n // If a function is further modified as unconstrained, we throw an error\n if f.is_unconstrained() {\n let name = f.name();\n panic(\n f\"Function {name} is annotated with #[public] but marked as unconstrained, remove unconstrained keyword\",\n );\n }\n\n let module_has_initializer = module_has_initializer(f.module());\n let module_has_storage = module_has_storage(f.module());\n\n // Public functions undergo a lot of transformations from their Aztec.nr form.\n let original_params = f.parameters();\n let args_len = original_params\n .map(|(name, typ): (Quoted, Type)| {\n generate_serialize_to_fields(name, typ, false).0.len()\n })\n .fold(0, |acc: u32, val: u32| acc + val);\n\n // Unlike in the private case, in public the `context` does not need to receive the hash of the original params.\n let context_creation = quote {\n let mut context = dep::aztec::context::public_context::PublicContext::new(|| {\n // We start from 1 because we skip the selector for the dispatch function.\n let serialized_args : [Field; $args_len] = dep::aztec::context::public_context::calldata_copy(1, $args_len);\n dep::aztec::hash::hash_args_array(serialized_args)\n });\n };\n\n // Modifications introduced by the different marker attributes.\n let internal_check = if is_fn_internal(f) {\n create_internal_check(f)\n } else {\n quote {}\n };\n\n let view_check = if is_fn_view(f) {\n create_view_check(f)\n } else {\n quote {}\n };\n\n let (assert_initializer, mark_as_initialized) = if is_fn_initializer(f) {\n (create_assert_correct_initializer_args(f), create_mark_as_initialized(f))\n } else {\n (quote {}, quote {})\n };\n\n let storage_init = if module_has_storage {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n quote {\n #[allow(unused_variables)]\n let storage = Storage::init(&mut context);\n }\n } else {\n quote {}\n };\n\n // Initialization checks are not included in contracts that don't have initializers.\n let init_check = if module_has_initializer & !fn_has_noinitcheck(f) & !is_fn_initializer(f) {\n create_init_check(f)\n } else {\n quote {}\n };\n\n let to_prepend = quote {\n $context_creation\n $assert_initializer\n $init_check\n $internal_check\n $view_check\n $storage_init\n };\n\n let to_append = quote {\n $mark_as_initialized\n };\n\n let body = f.body().as_block().unwrap();\n let modified_body = modify_fn_body(body, to_prepend, to_append);\n f.set_body(modified_body);\n\n // All public functions are automatically made unconstrained, even if they were not marked as such. This is because\n // instead of compiling into a circuit, they will compile to bytecode that will be later transpiled into AVM\n // bytecode.\n f.set_unconstrained(true);\n f.set_return_public(true);\n\n fn_abi\n}\n\npub(crate) comptime fn transform_utility(f: FunctionDefinition) {\n // Check if function is marked as unconstrained\n if !f.is_unconstrained() {\n let name = f.name();\n panic(\n f\"Function {name} is annotated with #[utility] but not marked as unconstrained, add unconstrained keyword\",\n );\n }\n\n // Create utility context\n let context_creation =\n quote { let mut context = dep::aztec::context::utility_context::UtilityContext::new(); };\n let module_has_storage = module_has_storage(f.module());\n\n // Initialize Storage if module has storage\n let storage_init = if module_has_storage {\n quote {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n #[allow(unused_variables)]\n let storage = Storage::init(context);\n }\n } else {\n quote {}\n };\n\n // All utility functions perform message discovery, since they may need to access private notes that would be\n // found during this process. This is slightly inefficient and could be improved by only doing it once we actually\n // attempt to read any.\n let message_discovery_call = if NOTES.len() > 0 {\n create_message_discovery_call()\n } else {\n quote {}\n };\n\n // Inject context creation, storage initialization, and message discovery call at the beginning of the function\n // body.\n let to_prepend = quote {\n $context_creation\n $storage_init\n $message_discovery_call\n };\n let body = f.body().as_block().unwrap();\n let modified_body = modify_fn_body(body, to_prepend, quote {});\n f.set_body(modified_body);\n\n f.set_return_public(true);\n}\n\ncomptime fn create_internal_check(f: FunctionDefinition) -> Quoted {\n let name = f.name();\n let assertion_message = f\"Function {name} can only be called internally\";\n quote { assert(context.msg_sender() == context.this_address(), $assertion_message); }\n}\n\ncomptime fn create_view_check(f: FunctionDefinition) -> Quoted {\n let name = f.name();\n let assertion_message = f\"Function {name} can only be called statically\";\n if is_fn_private(f) {\n // Here `context` is of type context::PrivateContext\n quote { assert(context.inputs.call_context.is_static_call == true, $assertion_message); }\n } else {\n // Here `context` is of type context::PublicContext\n quote { assert(context.is_static_call(), $assertion_message); }\n }\n}\n\ncomptime fn create_assert_correct_initializer_args(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::assert_initialization_matches_address_preimage_{fn_visibility}(context);\"\n .quoted_contents()\n}\n\ncomptime fn create_mark_as_initialized(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::mark_as_initialized_{fn_visibility}(&mut context);\"\n .quoted_contents()\n}\n\ncomptime fn create_init_check(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::assert_is_initialized_{fn_visibility}(&mut context);\"\n .quoted_contents()\n}\n\n/// Injects a call to `aztec::messages::discovery::discover_new_messages`, causing for new notes to be added to PXE and made\n/// available for the current execution.\npub(crate) comptime fn create_message_discovery_call() -> Quoted {\n quote {\n /// Safety: message discovery returns nothing and is performed solely for its side-effects. It is therefore\n /// always safe to call.\n unsafe {\n dep::aztec::messages::discovery::discover_new_messages(\n context.this_address(),\n _compute_note_hash_and_nullifier,\n );\n };\n }\n}\n\n/// Checks if each function in the module is marked with either #[private], #[public], #[utility],\n/// #[contract_library_method], or #[test]. Non-macroified functions are not allowed in contracts.\npub(crate) comptime fn check_each_fn_macroified(m: Module) {\n for f in m.functions() {\n let name = f.name();\n if !is_fn_private(f)\n & !is_fn_public(f)\n & !is_fn_utility(f)\n & !is_fn_contract_library_method(f)\n & !is_fn_test(f) {\n panic(\n f\"Function {name} must be marked as either #[private], #[public], #[utility], #[contract_library_method], or #[test]\",\n );\n }\n }\n}\n"
|
|
6427
|
+
"source": "use crate::macros::{\n functions::{abi_export::create_fn_abi_export, call_interface_stubs::stub_fn, stub_registry},\n notes::NOTES,\n utils::{\n add_to_hasher, fn_has_noinitcheck, get_fn_visibility, is_fn_contract_library_method,\n is_fn_initializer, is_fn_internal, is_fn_private, is_fn_public, is_fn_test, is_fn_utility,\n is_fn_view, modify_fn_body, module_has_initializer, module_has_storage,\n },\n};\nuse protocol_types::meta::generate_serialize_to_fields;\nuse std::meta::type_of;\n\npub(crate) comptime fn transform_private(f: FunctionDefinition) -> Quoted {\n let fn_abi = create_fn_abi_export(f);\n let fn_stub = stub_fn(f);\n stub_registry::register(f.module(), fn_stub);\n\n // If a function is further modified as unconstrained, we throw an error\n if f.is_unconstrained() {\n let name = f.name();\n panic(\n f\"Function {name} is annotated with #[private] but marked as unconstrained, remove unconstrained keyword\",\n );\n }\n\n let module_has_initializer = module_has_initializer(f.module());\n let module_has_storage = module_has_storage(f.module());\n\n // Private functions undergo a lot of transformations from their Aztec.nr form into a circuit that can be fed to the\n // Private Kernel Circuit.\n // First we change the function signature so that it also receives `PrivateContextInputs`, which contain information\n // about the execution context (e.g. the caller).\n let original_params = f.parameters();\n f.set_parameters(&[(\n quote { inputs },\n quote { crate::context::inputs::private_context_inputs::PrivateContextInputs }.as_type(),\n )]\n .append(original_params));\n\n let mut body = f.body().as_block().unwrap();\n\n // The original params are hashed and passed to the `context` object, so that the kernel can verify we've received\n // the correct values.\n // TODO: Optimize args_hasher for small number of arguments\n let args_hasher_name = quote { args_hasher };\n let args_hasher = original_params.fold(\n quote {\n let mut $args_hasher_name = dep::aztec::hash::ArgsHasher::new();\n },\n |args_hasher, param: (Quoted, Type)| {\n let (name, typ) = param;\n let appended_arg = add_to_hasher(args_hasher_name, name, typ);\n quote {\n $args_hasher\n $appended_arg\n }\n },\n );\n\n let context_creation = quote {\n let mut context = dep::aztec::context::private_context::PrivateContext::new(inputs, dep::aztec::protocol_types::traits::Hash::hash($args_hasher_name));\n };\n\n // Modifications introduced by the different marker attributes.\n let internal_check = if is_fn_internal(f) {\n create_internal_check(f)\n } else {\n quote {}\n };\n\n let view_check = if is_fn_view(f) {\n create_view_check(f)\n } else {\n quote {}\n };\n\n let (assert_initializer, mark_as_initialized) = if is_fn_initializer(f) {\n (create_assert_correct_initializer_args(f), create_mark_as_initialized(f))\n } else {\n (quote {}, quote {})\n };\n\n let storage_init = if module_has_storage {\n quote {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n #[allow(unused_variables)]\n let storage = Storage::init(&mut context);\n }\n } else {\n quote {}\n };\n\n // Initialization checks are not included in contracts that don't have initializers.\n let init_check = if module_has_initializer & !is_fn_initializer(f) & !fn_has_noinitcheck(f) {\n create_init_check(f)\n } else {\n quote {}\n };\n\n // All private functions perform message discovery, since they may need to access notes. This is slightly\n // inefficient and could be improved by only doing it once we actually attempt to read any.\n let message_discovery_call = if NOTES.len() > 0 {\n create_message_discovery_call()\n } else {\n quote {}\n };\n\n // Finally, we need to change the return type to be `PrivateCircuitPublicInputs`, which is what the Private Kernel\n // circuit expects.\n let return_value_var_name = quote { macro__returned__values };\n\n let return_value_type = f.return_type();\n let return_value = if body.len() == 0 {\n quote {}\n } else if return_value_type != type_of(()) {\n // The original return value is passed to a second args hasher which the context receives.\n let (body_without_return, last_body_expr) = body.pop_back();\n let return_value = last_body_expr.quoted();\n let return_value_assignment =\n quote { let $return_value_var_name: $return_value_type = $return_value; };\n let return_hasher_name = quote { return_hasher };\n let return_value_into_hasher =\n add_to_hasher(return_hasher_name, return_value_var_name, return_value_type);\n\n body = body_without_return;\n\n quote {\n let mut $return_hasher_name = dep::aztec::hash::ArgsHasher::new();\n $return_value_assignment\n $return_value_into_hasher\n context.set_return_hash($return_hasher_name);\n }\n } else {\n let (body_without_return, last_body_expr) = body.pop_back();\n if !last_body_expr.has_semicolon()\n & last_body_expr.as_for().is_none()\n & last_body_expr.as_assert().is_none()\n & last_body_expr.as_for_range().is_none()\n & last_body_expr.as_assert_eq().is_none()\n & last_body_expr.as_let().is_none() {\n let unused_return_value_name = f\"_{return_value_var_name}\".quoted_contents();\n body = body_without_return.push_back(\n quote { let $unused_return_value_name = $last_body_expr; }.as_expr().unwrap(),\n );\n }\n quote {}\n };\n\n let context_finish = quote { context.finish() };\n\n let to_prepend = quote {\n $args_hasher\n $context_creation\n $assert_initializer\n $init_check\n $internal_check\n $view_check\n $storage_init\n $message_discovery_call\n };\n\n let to_append = quote {\n $return_value\n $mark_as_initialized\n $context_finish\n };\n let modified_body = modify_fn_body(body, to_prepend, to_append);\n f.set_body(modified_body);\n f.set_return_type(\n quote { dep::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs }\n .as_type(),\n );\n f.set_return_data();\n\n fn_abi\n}\n\npub(crate) comptime fn transform_public(f: FunctionDefinition) -> Quoted {\n let fn_abi = create_fn_abi_export(f);\n let fn_stub = stub_fn(f);\n stub_registry::register(f.module(), fn_stub);\n\n // If a function is further modified as unconstrained, we throw an error\n if f.is_unconstrained() {\n let name = f.name();\n panic(\n f\"Function {name} is annotated with #[public] but marked as unconstrained, remove unconstrained keyword\",\n );\n }\n\n let module_has_initializer = module_has_initializer(f.module());\n let module_has_storage = module_has_storage(f.module());\n\n // Public functions undergo a lot of transformations from their Aztec.nr form.\n let original_params = f.parameters();\n let args_len = original_params\n .map(|(name, typ): (Quoted, Type)| {\n generate_serialize_to_fields(name, typ, false).0.len()\n })\n .fold(0, |acc: u32, val: u32| acc + val);\n\n // Unlike in the private case, in public the `context` does not need to receive the hash of the original params.\n let context_creation = quote {\n let mut context = dep::aztec::context::public_context::PublicContext::new(|| {\n // We start from 1 because we skip the selector for the dispatch function.\n let serialized_args : [Field; $args_len] = dep::aztec::context::public_context::calldata_copy(1, $args_len);\n dep::aztec::hash::hash_args_array(serialized_args)\n });\n };\n\n // Modifications introduced by the different marker attributes.\n let internal_check = if is_fn_internal(f) {\n create_internal_check(f)\n } else {\n quote {}\n };\n\n let view_check = if is_fn_view(f) {\n create_view_check(f)\n } else {\n quote {}\n };\n\n let (assert_initializer, mark_as_initialized) = if is_fn_initializer(f) {\n (create_assert_correct_initializer_args(f), create_mark_as_initialized(f))\n } else {\n (quote {}, quote {})\n };\n\n let storage_init = if module_has_storage {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n quote {\n #[allow(unused_variables)]\n let storage = Storage::init(&mut context);\n }\n } else {\n quote {}\n };\n\n // Initialization checks are not included in contracts that don't have initializers.\n let init_check = if module_has_initializer & !fn_has_noinitcheck(f) & !is_fn_initializer(f) {\n create_init_check(f)\n } else {\n quote {}\n };\n\n let to_prepend = quote {\n $context_creation\n $assert_initializer\n $init_check\n $internal_check\n $view_check\n $storage_init\n };\n\n let to_append = quote {\n $mark_as_initialized\n };\n\n let body = f.body().as_block().unwrap();\n let modified_body = modify_fn_body(body, to_prepend, to_append);\n f.set_body(modified_body);\n\n // All public functions are automatically made unconstrained, even if they were not marked as such. This is because\n // instead of compiling into a circuit, they will compile to bytecode that will be later transpiled into AVM\n // bytecode.\n f.set_unconstrained(true);\n f.set_return_public(true);\n\n fn_abi\n}\n\npub(crate) comptime fn transform_utility(f: FunctionDefinition) -> Quoted {\n let fn_abi = create_fn_abi_export(f);\n let fn_stub = stub_fn(f);\n stub_registry::register(f.module(), fn_stub);\n\n // Check if function is marked as unconstrained\n if !f.is_unconstrained() {\n let name = f.name();\n panic(\n f\"Function {name} is annotated with #[utility] but not marked as unconstrained, add unconstrained keyword\",\n );\n }\n\n // Create utility context\n let context_creation =\n quote { let mut context = dep::aztec::context::utility_context::UtilityContext::new(); };\n let module_has_storage = module_has_storage(f.module());\n\n // Initialize Storage if module has storage\n let storage_init = if module_has_storage {\n quote {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n #[allow(unused_variables)]\n let storage = Storage::init(context);\n }\n } else {\n quote {}\n };\n\n // All utility functions perform message discovery, since they may need to access private notes that would be\n // found during this process. This is slightly inefficient and could be improved by only doing it once we actually\n // attempt to read any.\n let message_discovery_call = if NOTES.len() > 0 {\n create_message_discovery_call()\n } else {\n quote {}\n };\n\n // Inject context creation, storage initialization, and message discovery call at the beginning of the function\n // body.\n let to_prepend = quote {\n $context_creation\n $storage_init\n $message_discovery_call\n };\n let body = f.body().as_block().unwrap();\n let modified_body = modify_fn_body(body, to_prepend, quote {});\n f.set_body(modified_body);\n\n f.set_return_public(true);\n\n fn_abi\n}\n\ncomptime fn create_internal_check(f: FunctionDefinition) -> Quoted {\n let name = f.name();\n let assertion_message = f\"Function {name} can only be called internally\";\n quote { assert(context.msg_sender() == context.this_address(), $assertion_message); }\n}\n\ncomptime fn create_view_check(f: FunctionDefinition) -> Quoted {\n let name = f.name();\n let assertion_message = f\"Function {name} can only be called statically\";\n if is_fn_private(f) {\n // Here `context` is of type context::PrivateContext\n quote { assert(context.inputs.call_context.is_static_call == true, $assertion_message); }\n } else {\n // Here `context` is of type context::PublicContext\n quote { assert(context.is_static_call(), $assertion_message); }\n }\n}\n\ncomptime fn create_assert_correct_initializer_args(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::assert_initialization_matches_address_preimage_{fn_visibility}(context);\"\n .quoted_contents()\n}\n\ncomptime fn create_mark_as_initialized(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::mark_as_initialized_{fn_visibility}(&mut context);\"\n .quoted_contents()\n}\n\ncomptime fn create_init_check(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::assert_is_initialized_{fn_visibility}(&mut context);\"\n .quoted_contents()\n}\n\n/// Injects a call to `aztec::messages::discovery::discover_new_messages`, causing for new notes to be added to PXE and made\n/// available for the current execution.\npub(crate) comptime fn create_message_discovery_call() -> Quoted {\n quote {\n /// Safety: message discovery returns nothing and is performed solely for its side-effects. It is therefore\n /// always safe to call.\n unsafe {\n dep::aztec::messages::discovery::discover_new_messages(\n context.this_address(),\n _compute_note_hash_and_nullifier,\n );\n };\n }\n}\n\n/// Checks if each function in the module is marked with either #[private], #[public], #[utility],\n/// #[contract_library_method], or #[test]. Non-macroified functions are not allowed in contracts.\npub(crate) comptime fn check_each_fn_macroified(m: Module) {\n for f in m.functions() {\n let name = f.name();\n if !is_fn_private(f)\n & !is_fn_public(f)\n & !is_fn_utility(f)\n & !is_fn_contract_library_method(f)\n & !is_fn_test(f) {\n panic(\n f\"Function {name} must be marked as either #[private], #[public], #[utility], #[contract_library_method], or #[test]\",\n );\n }\n }\n}\n"
|
|
6341
6428
|
},
|
|
6342
6429
|
"107": {
|
|
6343
6430
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/notes.nr",
|
|
@@ -6353,7 +6440,7 @@
|
|
|
6353
6440
|
},
|
|
6354
6441
|
"112": {
|
|
6355
6442
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/discovery/partial_notes.nr",
|
|
6356
|
-
"source": "use crate::{\n capsules::CapsuleArray,\n messages::{\n discovery::{ComputeNoteHashAndNullifier, nonce_discovery::attempt_note_nonce_discovery},\n encoding::MAX_MESSAGE_CONTENT_LEN,\n },\n oracle::message_discovery::{deliver_note, get_log_by_tag},\n utils::array,\n};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::
|
|
6443
|
+
"source": "use crate::{\n capsules::CapsuleArray,\n messages::{\n discovery::{ComputeNoteHashAndNullifier, nonce_discovery::attempt_note_nonce_discovery},\n encoding::MAX_MESSAGE_CONTENT_LEN,\n },\n oracle::message_discovery::{deliver_note, get_log_by_tag},\n utils::array,\n};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::PUBLIC_LOG_SIZE_IN_FIELDS,\n debug_log::debug_log_format,\n hash::sha256_to_field,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_NOTE_PRIVATE_MSG_CONTENT_NON_NOTE_FIELDS_LEN: u32 = 2;\n\n/// Partial notes have a maximum packed length of their private fields bound by extra content in their private message\n/// (e.g. the storage slot, note completion log tag, etc.).\npub global MAX_PARTIAL_NOTE_PRIVATE_PACKED_LEN: u32 =\n MAX_MESSAGE_CONTENT_LEN - PARTIAL_NOTE_PRIVATE_MSG_CONTENT_NON_NOTE_FIELDS_LEN;\n\n/// The slot in the PXE capsules where we store a `CapsuleArray` of `DeliveredPendingPartialNote`.\npub global DELIVERED_PENDING_PARTIAL_NOTE_ARRAY_LENGTH_CAPSULES_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::DELIVERED_PENDING_PARTIAL_NOTE_ARRAY_LENGTH_CAPSULES_SLOT\".as_bytes(),\n);\n\n/// Public logs contain an extra field at the beginning with the address of the contract that emitted them, and partial\n/// notes emit their completion tag in the log, resulting in the first two fields in the public log not being part of\n/// the packed public content.\n// TODO(#10273): improve how contract log siloing is handled\npub global NON_PACKED_CONTENT_FIELDS_IN_PUBLIC_LOG: u32 = 2;\n\n/// The maximum length of the packed representation of public fields in a partial note. This is limited by public log\n/// size and extra fields in the log (e.g. the tag).\npub global MAX_PUBLIC_PARTIAL_NOTE_PACKED_CONTENT_LENGTH: u32 =\n PUBLIC_LOG_SIZE_IN_FIELDS - NON_PACKED_CONTENT_FIELDS_IN_PUBLIC_LOG;\n\n/// A partial note that was delivered but is still pending completion. Contains the information necessary to find the\n/// log that will complete it and lead to a note being discovered and delivered.\n#[derive(Serialize, Deserialize)]\npub(crate) struct DeliveredPendingPartialNote {\n pub(crate) note_completion_log_tag: Field,\n pub(crate) storage_slot: Field,\n pub(crate) note_type_id: Field,\n pub(crate) packed_private_note_content: BoundedVec<Field, MAX_PARTIAL_NOTE_PRIVATE_PACKED_LEN>,\n pub(crate) recipient: AztecAddress,\n}\n\npub unconstrained fn process_partial_note_private_msg(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n msg_metadata: u64,\n msg_content: BoundedVec<Field, MAX_MESSAGE_CONTENT_LEN>,\n) {\n let (note_type_id, storage_slot, note_completion_log_tag, packed_private_note_content) =\n decode_partial_note_private_msg(msg_metadata, msg_content);\n\n // We store the information of the partial note we found in a persistent capsule in PXE, so that we can later search\n // for the public log that will complete it.\n let pending = DeliveredPendingPartialNote {\n note_completion_log_tag,\n storage_slot,\n note_type_id,\n packed_private_note_content,\n recipient,\n };\n\n CapsuleArray::at(\n contract_address,\n DELIVERED_PENDING_PARTIAL_NOTE_ARRAY_LENGTH_CAPSULES_SLOT,\n )\n .push(pending);\n}\n\n/// Searches for public logs that would result in the completion of pending partial notes, ultimately resulting in the\n/// notes being delivered to PXE if completed.\npub unconstrained fn fetch_and_process_public_partial_note_completion_logs<Env>(\n contract_address: AztecAddress,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n) {\n let pending_partial_notes = CapsuleArray::at(\n contract_address,\n DELIVERED_PENDING_PARTIAL_NOTE_ARRAY_LENGTH_CAPSULES_SLOT,\n );\n\n debug_log_format(\n \"{} pending partial notes\",\n [pending_partial_notes.len() as Field],\n );\n\n pending_partial_notes.for_each(|i, pending_partial_note: DeliveredPendingPartialNote| {\n let maybe_log = get_log_by_tag(pending_partial_note.note_completion_log_tag);\n if maybe_log.is_none() {\n debug_log_format(\n \"Found no completion logs for partial note with tag {}\",\n [pending_partial_note.note_completion_log_tag],\n );\n\n // Note that we're not removing the pending partial note from the capsule array, so we will continue\n // searching for this tagged log when performing message discovery in the future until we either find it or\n // the entry is somehow removed from the array.\n } else {\n debug_log_format(\n \"Completion log found for partial note with tag {}\",\n [pending_partial_note.note_completion_log_tag],\n );\n let log = maybe_log.unwrap();\n\n // Public logs have an extra field at the beginning with the contract address, which we use to verify\n // that we're getting the logs from the expected contract.\n // TODO(#10273): improve how contract log siloing is handled\n assert_eq(\n log.log_content.get(0),\n contract_address.to_field(),\n \"Got a public log emitted by a different contract\",\n );\n\n // Public fields are assumed to all be placed at the end of the packed representation, so we combine the\n // private and public packed fields (i.e. the contents of the private message and public log sans the extra\n // fields) to get the complete packed content.\n let packed_public_note_content: BoundedVec<_, MAX_PUBLIC_PARTIAL_NOTE_PACKED_CONTENT_LENGTH> =\n array::subbvec(log.log_content, NON_PACKED_CONTENT_FIELDS_IN_PUBLIC_LOG);\n let complete_packed_note = array::append(\n pending_partial_note.packed_private_note_content,\n packed_public_note_content,\n );\n\n let discovered_notes = attempt_note_nonce_discovery(\n log.unique_note_hashes_in_tx,\n log.first_nullifier_in_tx,\n compute_note_hash_and_nullifier,\n contract_address,\n pending_partial_note.storage_slot,\n pending_partial_note.note_type_id,\n complete_packed_note,\n );\n\n debug_log_format(\n \"Discovered {0} notes for partial note with tag {1}\",\n [discovered_notes.len() as Field, pending_partial_note.note_completion_log_tag],\n );\n\n discovered_notes.for_each(|discovered_note| {\n // TODO:(#10728): decide how to handle notes that fail delivery. This could be due to e.g. a\n // temporary node connectivity issue - is simply throwing good enough here?\n assert(\n deliver_note(\n contract_address,\n pending_partial_note.storage_slot,\n discovered_note.nonce,\n complete_packed_note,\n discovered_note.note_hash,\n discovered_note.inner_nullifier,\n log.tx_hash,\n pending_partial_note.recipient,\n ),\n \"Failed to deliver note\",\n );\n });\n\n // Because there is only a single log for a given tag, once we've processed the tagged log then we\n // simply delete the pending work entry, regardless of whether it was actually completed or not.\n // TODO(#11627): only remove the pending entry if we actually process a log that results in the note\n // being completed.\n pending_partial_notes.remove(i);\n }\n });\n}\n\nfn decode_partial_note_private_msg(\n msg_metadata: u64,\n msg_content: BoundedVec<Field, MAX_MESSAGE_CONTENT_LEN>,\n) -> (Field, Field, Field, BoundedVec<Field, MAX_PARTIAL_NOTE_PRIVATE_PACKED_LEN>) {\n let note_type_id = msg_metadata as Field; // TODO: make note type id not be a full field\n\n assert(\n msg_content.len() > PARTIAL_NOTE_PRIVATE_MSG_CONTENT_NON_NOTE_FIELDS_LEN,\n f\"Invalid private note message: all partial note private messages must have at least {PARTIAL_NOTE_PRIVATE_MSG_CONTENT_NON_NOTE_FIELDS_LEN} fields\",\n );\n\n // If PARTIAL_NOTE_PRIVATE_MSG_CONTENT_NON_NOTE_FIELDS_LEN is changed, causing the assertion below to fail, then the\n // destructuring of the partial note private message encoding below must be updated as well.\n std::static_assert(\n PARTIAL_NOTE_PRIVATE_MSG_CONTENT_NON_NOTE_FIELDS_LEN == 2,\n \"unexpected value for PARTIAL_NOTE_PRIVATE_MSG_CONTENT_NON_NOTE_FIELDS_LEN\",\n );\n\n // We currently have two fields that are not the partial note's packed representation, which are the storage slot\n // and the note completion log tag.\n let storage_slot = msg_content.get(0);\n let note_completion_log_tag = msg_content.get(1);\n\n let packed_private_note_content = array::subbvec(msg_content, 2);\n\n (note_type_id, storage_slot, note_completion_log_tag, packed_private_note_content)\n}\n"
|
|
6357
6444
|
},
|
|
6358
6445
|
"114": {
|
|
6359
6446
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/discovery/private_logs.nr",
|
|
@@ -6377,7 +6464,7 @@
|
|
|
6377
6464
|
},
|
|
6378
6465
|
"124": {
|
|
6379
6466
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/logs/note.nr",
|
|
6380
|
-
"source": "use crate::{\n context::PrivateContext,\n messages::{\n encoding::encode_message,\n encryption::{aes128::AES128, log_encryption::LogEncryption},\n logs::utils::prefix_with_tag,\n msg_type::{PARTIAL_NOTE_PRIVATE_MSG_TYPE_ID, PRIVATE_NOTE_MSG_TYPE_ID},\n },\n note::{note_emission::NoteEmission, note_interface::NoteType},\n};\nuse protocol_types::{\n abis::note_hash::NoteHash, address::AztecAddress, constants::PRIVATE_LOG_SIZE_IN_FIELDS,\n traits::Packable,\n};\n\n// TODO: it feels like this existence check is in the wrong place. In fact, why is it needed at all? Under what circumstances have we found a non-existent note being emitted accidentally?\nfn assert_note_exists(context: PrivateContext, note_hash_counter: u32) {\n // TODO(#8589): use typesystem to skip this check when not needed\n let note_exists =\n context.note_hashes.storage().any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n}\n\npub fn compute_note_log<Note, let N: u32>(\n note: Note,\n storage_slot: Field,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS]\nwhere\n Note: NoteType + Packable<N>,\n{\n compute_log(\n note,\n storage_slot,\n recipient,\n sender,\n PRIVATE_NOTE_MSG_TYPE_ID,\n )\n}\n\npub fn compute_partial_note_log<Note, let N: u32>(\n note: Note,\n storage_slot: Field,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS]\nwhere\n Note: NoteType + Packable<N>,\n{\n compute_log(\n note,\n storage_slot,\n recipient,\n sender,\n PARTIAL_NOTE_PRIVATE_MSG_TYPE_ID,\n )\n}\n\nfn compute_log<Note, let N: u32>(\n note: Note,\n storage_slot: Field,\n recipient: AztecAddress,\n sender: AztecAddress,\n msg_type: u64,\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS]\nwhere\n Note: NoteType + Packable<N>,\n{\n let packed_note = note.pack();\n\n // A note message's content is the storage slot followed by the packed note representation\n let mut msg_content: [Field; N + 1] = std::mem::zeroed();\n msg_content[0] = storage_slot;\n for i in 0..packed_note.len() {\n msg_content[1 + i] = packed_note[i];\n }\n\n // Notes use the note type id for metadata\n let plaintext = encode_message(msg_type, Note::get_id() as u64, msg_content);\n\n let ciphertext = AES128::encrypt_log(plaintext, recipient);\n\n let log = prefix_with_tag(ciphertext, sender, recipient);\n\n log\n}\n\npub unconstrained fn compute_note_log_unconstrained<Note, let N: u32>(\n note: Note,\n storage_slot: Field,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS]\nwhere\n Note: NoteType + Packable<N>,\n{\n compute_note_log(note, storage_slot, recipient, sender)\n}\n\n/// Sends an encrypted message to `recipient` with the content of the note, which they will discover when processing\n/// private logs.\npub fn encode_and_encrypt_note<Note, let N: u32>(\n context: &mut PrivateContext,\n recipient: AztecAddress,\n // We need this because to compute a tagging secret, we require a sender:\n sender: AztecAddress,\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> ()\nwhere\n Note: NoteType + Packable<N>,\n{\n |e: NoteEmission<Note>| {\n let note = e.note;\n let storage_slot = e.storage_slot;\n let note_hash_counter = e.note_hash_counter;\n assert_note_exists(*context, note_hash_counter);\n\n let encrypted_log = compute_note_log(note, storage_slot, recipient, sender);\n context.emit_raw_note_log(encrypted_log, note_hash_counter);\n }\n}\n\n/// Same as `encode_and_encrypt_note`, except encryption is unconstrained. This means that the sender is free to make\n/// the log contents be whatever they wish, potentially resulting in scenarios in which the recipient is unable to\n/// decrypt and process the payload, **leading to the note being lost**.\n///\n/// Only use this function in scenarios where the recipient not receiving the note is an acceptable outcome.\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32>(\n context: &mut PrivateContext,\n recipient: AztecAddress,\n // We need this because to compute a tagging secret, we require a sender:\n sender: AztecAddress,\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> ()\nwhere\n Note: NoteType + Packable<N>,\n{\n |e: NoteEmission<Note>| {\n let note = e.note;\n let storage_slot = e.storage_slot;\n let note_hash_counter = e.note_hash_counter;\n\n assert_note_exists(*context, note_hash_counter);\n\n // Safety: this function does not constrain the encryption of the log, as explained on its description.\n let encrypted_log =\n unsafe { compute_note_log_unconstrained(note, storage_slot, recipient, sender) };\n context.emit_raw_note_log(encrypted_log, note_hash_counter);\n }\n}\n"
|
|
6467
|
+
"source": "use crate::{\n context::PrivateContext,\n messages::{\n encoding::encode_message,\n encryption::{aes128::AES128, log_encryption::LogEncryption},\n logs::utils::prefix_with_tag,\n msg_type::{PARTIAL_NOTE_PRIVATE_MSG_TYPE_ID, PRIVATE_NOTE_MSG_TYPE_ID},\n },\n note::{note_emission::NoteEmission, note_interface::NoteType},\n};\nuse protocol_types::{\n abis::note_hash::NoteHash, address::AztecAddress, constants::PRIVATE_LOG_SIZE_IN_FIELDS,\n traits::Packable,\n};\n\n// TODO: it feels like this existence check is in the wrong place. In fact, why is it needed at all? Under what circumstances have we found a non-existent note being emitted accidentally?\nfn assert_note_exists(context: PrivateContext, note_hash_counter: u32) {\n // TODO(#8589): use typesystem to skip this check when not needed\n let note_exists =\n context.note_hashes.storage().any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n}\n\npub fn compute_note_log<Note, let N: u32>(\n note: Note,\n storage_slot: Field,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS]\nwhere\n Note: NoteType + Packable<N>,\n{\n compute_log(\n note,\n storage_slot,\n recipient,\n sender,\n PRIVATE_NOTE_MSG_TYPE_ID,\n )\n}\n\npub fn compute_partial_note_log<Note, let N: u32>(\n note: Note,\n storage_slot: Field,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS]\nwhere\n Note: NoteType + Packable<N>,\n{\n compute_log(\n note,\n storage_slot,\n recipient,\n sender,\n PARTIAL_NOTE_PRIVATE_MSG_TYPE_ID,\n )\n}\n\nfn compute_log<Note, let N: u32>(\n note: Note,\n storage_slot: Field,\n recipient: AztecAddress,\n sender: AztecAddress,\n msg_type: u64,\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS]\nwhere\n Note: NoteType + Packable<N>,\n{\n let packed_note = note.pack();\n\n // A note message's content is the storage slot followed by the packed note representation\n let mut msg_content: [Field; N + 1] = std::mem::zeroed();\n msg_content[0] = storage_slot;\n for i in 0..packed_note.len() {\n msg_content[1 + i] = packed_note[i];\n }\n\n // Notes use the note type id for metadata\n let plaintext = encode_message(msg_type, Note::get_id() as u64, msg_content);\n\n let ciphertext = AES128::encrypt_log(plaintext, recipient);\n\n let log = prefix_with_tag(ciphertext, sender, recipient);\n\n log\n}\n\npub unconstrained fn compute_note_log_unconstrained<Note, let N: u32>(\n note: Note,\n storage_slot: Field,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS]\nwhere\n Note: NoteType + Packable<N>,\n{\n compute_note_log(note, storage_slot, recipient, sender)\n}\n\n/// Sends an encrypted message to `recipient` with the content of the note, which they will discover when processing\n/// private logs.\npub fn encode_and_encrypt_note<Note, let N: u32>(\n context: &mut PrivateContext,\n recipient: AztecAddress,\n // We need this because to compute a tagging secret, we require a sender:\n sender: AztecAddress,\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> ()\nwhere\n Note: NoteType + Packable<N>,\n{\n |e: NoteEmission<Note>| {\n let note = e.note;\n let storage_slot = e.storage_slot;\n let note_hash_counter = e.note_hash_counter;\n assert_note_exists(*context, note_hash_counter);\n\n let encrypted_log = compute_note_log(note, storage_slot, recipient, sender);\n // Regardless of the original note size `N, the log is padded with random bytes up to\n // `PRIVATE_LOG_SIZE_IN_FIELDS` to prevent leaking information about the actual size.\n let length = encrypted_log.len();\n context.emit_raw_note_log(encrypted_log, length, note_hash_counter);\n }\n}\n\n/// Same as `encode_and_encrypt_note`, except encryption is unconstrained. This means that the sender is free to make\n/// the log contents be whatever they wish, potentially resulting in scenarios in which the recipient is unable to\n/// decrypt and process the payload, **leading to the note being lost**.\n///\n/// Only use this function in scenarios where the recipient not receiving the note is an acceptable outcome.\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32>(\n context: &mut PrivateContext,\n recipient: AztecAddress,\n // We need this because to compute a tagging secret, we require a sender:\n sender: AztecAddress,\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> ()\nwhere\n Note: NoteType + Packable<N>,\n{\n |e: NoteEmission<Note>| {\n let note = e.note;\n let storage_slot = e.storage_slot;\n let note_hash_counter = e.note_hash_counter;\n\n assert_note_exists(*context, note_hash_counter);\n\n // Safety: this function does not constrain the encryption of the log, as explained on its description.\n let encrypted_log =\n unsafe { compute_note_log_unconstrained(note, storage_slot, recipient, sender) };\n // Regardless of the original note size `N`, the log is padded with random bytes up to\n // `PRIVATE_LOG_SIZE_IN_FIELDS` to prevent leaking information about the actual size.\n let length = encrypted_log.len();\n context.emit_raw_note_log(encrypted_log, length, note_hash_counter);\n }\n}\n"
|
|
6381
6468
|
},
|
|
6382
6469
|
"125": {
|
|
6383
6470
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/logs/utils.nr",
|
|
@@ -6393,12 +6480,16 @@
|
|
|
6393
6480
|
},
|
|
6394
6481
|
"135": {
|
|
6395
6482
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/note/note_getter.nr",
|
|
6396
|
-
"source": "use crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, NoteStatus, PropertySelector, Select, Sort, SortOrder},\n note_interface::{NoteHash, NoteType},\n note_viewer_options::NoteViewerOptions,\n retrieved_note::RetrievedNote,\n utils::compute_note_hash_for_read_request,\n};\nuse crate::oracle;\nuse crate::utils::{array, comparison::compare};\nuse dep::protocol_types::{\n constants::{GET_NOTES_ORACLE_RETURN_LENGTH, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL},\n traits::{Packable, ToField},\n};\n\npub use crate::note::constants::MAX_NOTES_PER_PAGE;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n packed_note: [Field; N],\n selector: PropertySelector,\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the packed note.\n // This allows easier packing and custom (un)packing schemas. A note property is located\n // inside the packed note using the index inside the array, a byte offset and a length.\n let value: [u8; 32] = packed_note[selector.index as u32].to_be_bytes();\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[(31 + offset - i) as u32] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_packed_note<let N: u32>(packed_note: [Field; N], selects: BoundedVec<Option<Select>, N>) {\n for i in 0..selects.len() {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field =\n extract_property_value_from_selector(packed_note, select.property_selector);\n\n assert(\n compare(value_field, select.comparator, select.value.to_field()),\n \"Mismatch return note field.\",\n );\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>,\n) {\n for i in 0..sorts.len() {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field,\n) -> (RetrievedNote<Note>, Field)\nwhere\n Note: NoteType + NoteHash + Packable<N>,\n{\n // Safety: Constraining that we got a valid note from the oracle is fairly straightforward: all we need to do\n // is check that the metadata is correct, and that the note exists.\n let retrieved_note = unsafe { get_note_internal::<Note, N>(storage_slot) };\n\n // For settled notes, the contract address is implicitly checked since the hash returned from\n // `compute_note_hash_for_read_request` is siloed and kernels verify the siloing during note read request\n // validation. Pending notes however are read with the unsiloed note hash, so we need to check that the contract\n // address returned from the oracle matches. Since branching in circuits is expensive, we perform this check on all\n // note types.\n assert(\n retrieved_note.contract_address.eq(context.this_address()),\n \"Note contract address mismatch.\",\n );\n\n let note_hash_for_read_request =\n compute_note_hash_for_read_request(retrieved_note, storage_slot);\n context.push_note_hash_read_request(note_hash_for_read_request);\n\n (retrieved_note, note_hash_for_read_request)\n}\n\n/// Returns a BoundedVec of notes that have been proven to have been created by this contract, either in the current or\n/// past transactions (i.e. pending or settled notes). A second BoundedVec contains the note hashes used for the read\n/// requests, which can save constraints when computing the note's nullifiers.\n///\n/// WARNING: recall that notes are never destroyed! Note existence therefore does not imply that the note is _current_\n/// or _valid_ - this typically requires also emitting the note's nullifier to prove that it had not been emitted\n/// before. Because of this, calling this function directly from end-user applications should be discouraged, and safe\n/// abstractions such as aztec-nr's state variables should be used instead.\npub fn get_notes<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n ) -> (BoundedVec<RetrievedNote<Note>, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>)\nwhere\n Note: NoteType + NoteHash + Eq + Packable<N>,\n{\n // Safety: The notes are constrained below.\n let opt_notes = unsafe { get_notes_internal(storage_slot, options) };\n\n // We apply the constraints in a separate function instead of inlining them here to make it easier to test that\n // these checks correctly reject bad notes.\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS,\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<RetrievedNote<Note>>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n ) -> (BoundedVec<RetrievedNote<Note>, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>)\nwhere\n Note: NoteType + NoteHash + Eq + Packable<N>,\n{\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the notes (as opposed to simply removing some), the private\n // kernel will later validate that these note actually exist, so transformations would cause for that check\n // to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = array::collapse(filtered_notes);\n let mut note_hashes = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_packed_note = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let retrieved_note = notes.get_unchecked(i);\n\n // For settled notes, the contract address is implicitly checked since the hash returned from\n // `compute_note_hash_for_read_request` is siloed and kernels verify the siloing during note read request\n // validation. Pending notes however are read with the unsiloed note hash, so we need to check that the\n // contract address returned from the oracle matches. Since branching in circuits is expensive, we perform\n // this check on all note types.\n assert(\n retrieved_note.contract_address.eq(context.this_address()),\n \"Note contract address mismatch.\",\n );\n\n let packed_note = retrieved_note.note.pack();\n check_packed_note(packed_note, options.selects);\n if i != 0 {\n check_notes_order(prev_packed_note, packed_note, options.sorts);\n }\n prev_packed_note = packed_note;\n\n let note_hash_for_read_request =\n compute_note_hash_for_read_request(retrieved_note, storage_slot);\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32>(storage_slot: Field) -> RetrievedNote<Note>\nwhere\n Note: NoteType + Packable<N>,\n{\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let opt_notes: [_; 1] = oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_fields,\n );\n\n opt_notes[0].expect(f\"Failed to get a note\") // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n) -> [Option<RetrievedNote<Note>>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL]\nwhere\n Note: NoteType + Packable<N>,\n{\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) =\n flatten_options(options.selects, options.sorts);\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_fields,\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\n/// Unconstrained variant of `get_notes`, meant to be used in unconstrained execution contexts. Notably only the note\n/// content is returned, and not any of the information used when proving its existence (e.g. nonce, note hash, etc.).\npub unconstrained fn view_notes<Note, let N: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N>,\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE>\nwhere\n Note: NoteType + Packable<N> + Eq,\n{\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) =\n flatten_options(options.selects, options.sorts);\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n\n // We fetch the notes from the same oracle we use in the constrained case, except we don't bother inspecting the\n // metadata in order to prove existence.\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_fields,\n );\n\n // Even though we don't expect for the opt_notes array to be sparse, collapse is still useful in this case to\n // convert it into a BoundedVec.\n array::collapse(opt_notes).map(\n // view_notes just returns the actual note, so we drop the metadata\n |retrieved_note| retrieved_note.note,\n )\n}\n\nunconstrained fn flatten_options<let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>,\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len() {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects as u32] =\n select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects as u32] =\n select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects as u32] =\n select.unwrap_unchecked().property_selector.length;\n select_values[num_selects as u32] = select.unwrap_unchecked().value;\n select_comparators[num_selects as u32] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len() {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values,\n select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order,\n )\n}\n"
|
|
6483
|
+
"source": "use crate::{\n context::PrivateContext,\n note::{\n note_getter_options::{\n NoteGetterOptions, NoteStatus, PropertySelector, Select, Sort, SortOrder,\n },\n note_interface::{NoteHash, NoteType},\n note_viewer_options::NoteViewerOptions,\n retrieved_note::RetrievedNote,\n utils::compute_note_hash_for_read_request,\n },\n oracle,\n utils::{array, comparison::compare},\n};\n\nuse protocol_types::{constants::MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, traits::{Packable, ToField}};\n\npub use crate::note::constants::MAX_NOTES_PER_PAGE;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n packed_note: [Field; N],\n selector: PropertySelector,\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the packed note.\n // This allows easier packing and custom (un)packing schemas. A note property is located\n // inside the packed note using the index inside the array, a byte offset and a length.\n let value: [u8; 32] = packed_note[selector.index as u32].to_be_bytes();\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[(31 + offset - i) as u32] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_packed_note<let N: u32>(packed_note: [Field; N], selects: BoundedVec<Option<Select>, N>) {\n for i in 0..selects.len() {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field =\n extract_property_value_from_selector(packed_note, select.property_selector);\n\n assert(\n compare(value_field, select.comparator, select.value.to_field()),\n \"Mismatch return note field.\",\n );\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>,\n) {\n for i in 0..sorts.len() {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field,\n) -> (RetrievedNote<Note>, Field)\nwhere\n Note: NoteType + NoteHash + Packable<N>,\n{\n // Safety: Constraining that we got a valid note from the oracle is fairly straightforward: all we need to do\n // is check that the metadata is correct, and that the note exists.\n let retrieved_note = unsafe { get_note_internal::<Note, N>(storage_slot) };\n\n // For settled notes, the contract address is implicitly checked since the hash returned from\n // `compute_note_hash_for_read_request` is siloed and kernels verify the siloing during note read request\n // validation. Pending notes however are read with the unsiloed note hash, so we need to check that the contract\n // address returned from the oracle matches. Since branching in circuits is expensive, we perform this check on all\n // note types.\n assert(\n retrieved_note.contract_address.eq(context.this_address()),\n \"Note contract address mismatch.\",\n );\n\n let note_hash_for_read_request =\n compute_note_hash_for_read_request(retrieved_note, storage_slot);\n context.push_note_hash_read_request(note_hash_for_read_request);\n\n (retrieved_note, note_hash_for_read_request)\n}\n\n/// Returns a BoundedVec of notes that have been proven to have been created by this contract, either in the current or\n/// past transactions (i.e. pending or settled notes). A second BoundedVec contains the note hashes used for the read\n/// requests, which can save constraints when computing the note's nullifiers.\n///\n/// WARNING: recall that notes are never destroyed! Note existence therefore does not imply that the note is _current_\n/// or _valid_ - this typically requires also emitting the note's nullifier to prove that it had not been emitted\n/// before. Because of this, calling this function directly from end-user applications should be discouraged, and safe\n/// abstractions such as aztec-nr's state variables should be used instead.\npub fn get_notes<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n ) -> (BoundedVec<RetrievedNote<Note>, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>)\nwhere\n Note: NoteType + NoteHash + Eq + Packable<N>,\n{\n // Safety: The notes are constrained below.\n let opt_notes = unsafe { get_notes_internal(storage_slot, options) };\n\n // We apply the constraints in a separate function instead of inlining them here to make it easier to test that\n // these checks correctly reject bad notes.\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS,\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<RetrievedNote<Note>>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n ) -> (BoundedVec<RetrievedNote<Note>, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>)\nwhere\n Note: NoteType + NoteHash + Eq + Packable<N>,\n{\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the notes (as opposed to simply removing some), the private\n // kernel will later validate that these note actually exist, so transformations would cause for that check\n // to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = array::collapse(filtered_notes);\n let mut note_hashes = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_packed_note = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let retrieved_note = notes.get_unchecked(i);\n\n // For settled notes, the contract address is implicitly checked since the hash returned from\n // `compute_note_hash_for_read_request` is siloed and kernels verify the siloing during note read request\n // validation. Pending notes however are read with the unsiloed note hash, so we need to check that the\n // contract address returned from the oracle matches. Since branching in circuits is expensive, we perform\n // this check on all note types.\n assert(\n retrieved_note.contract_address.eq(context.this_address()),\n \"Note contract address mismatch.\",\n );\n\n let packed_note = retrieved_note.note.pack();\n check_packed_note(packed_note, options.selects);\n if i != 0 {\n check_notes_order(prev_packed_note, packed_note, options.sorts);\n }\n prev_packed_note = packed_note;\n\n let note_hash_for_read_request =\n compute_note_hash_for_read_request(retrieved_note, storage_slot);\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32>(storage_slot: Field) -> RetrievedNote<Note>\nwhere\n Note: NoteType + Packable<N>,\n{\n let opt_notes: [_; 1] = oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n );\n\n opt_notes[0].expect(f\"Failed to get a note\") // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n) -> [Option<RetrievedNote<Note>>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL]\nwhere\n Note: NoteType + Packable<N>,\n{\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) =\n flatten_options(options.selects, options.sorts);\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\n/// Unconstrained variant of `get_notes`, meant to be used in unconstrained execution contexts. Notably only the note\n/// content is returned, and not any of the information used when proving its existence (e.g. nonce, note hash, etc.).\npub unconstrained fn view_notes<Note, let N: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N>,\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE>\nwhere\n Note: NoteType + Packable<N> + Eq,\n{\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) =\n flatten_options(options.selects, options.sorts);\n\n // We fetch the notes from the same oracle we use in the constrained case, except we don't bother inspecting the\n // metadata in order to prove existence.\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n );\n\n // Even though we don't expect for the opt_notes array to be sparse, collapse is still useful in this case to\n // convert it into a BoundedVec.\n array::collapse(opt_notes).map(\n // view_notes just returns the actual note, so we drop the metadata\n |retrieved_note| retrieved_note.note,\n )\n}\n\nunconstrained fn flatten_options<let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>,\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len() {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects as u32] =\n select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects as u32] =\n select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects as u32] =\n select.unwrap_unchecked().property_selector.length;\n select_values[num_selects as u32] = select.unwrap_unchecked().value;\n select_comparators[num_selects as u32] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len() {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values,\n select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order,\n )\n}\n"
|
|
6397
6484
|
},
|
|
6398
6485
|
"138": {
|
|
6399
6486
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/note/note_metadata.nr",
|
|
6400
6487
|
"source": "use protocol_types::traits::Serialize;\n\n// There's temporarily quite a bit of boilerplate here because Noir does not yet support enums. This file will\n// eventually be simplified into something closer to:\n//\n// pub enum NoteMetadata {\n// PendingSamePhase{ note_hash_counter: u32 },\n// PendingOtherPhase{ note_hash_counter: u32, nonce: Field },\n// Settled{ nonce: Field },\n// }\n//\n// For now, we have `NoteMetadata` acting as a sort of tagged union.\n\nstruct NoteStageEnum {\n /// A note that was created in the transaction that is currently being executed, during the current execution phase,\n /// i.e. non-revertible or revertible.\n ///\n /// These notes are not yet in the note hash tree, though they will be inserted unless nullified in this transaction\n /// (becoming a transient note).\n PENDING_SAME_PHASE: u8,\n /// A note that was created in the transaction that is currently being executed, during the previous execution\n /// phase. Because there are only two phases and their order is always the same (first non-revertible and then\n /// revertible) this implies that the note was created in the non-revertible phase, and that the current phase is\n /// the revertible phase.\n ///\n /// These notes are not yet in the note hash tree, though they will be inserted **even if nullified in this\n /// transaction**. This means that they must be nullified as if they were settled (i.e. using the unique note hash)\n /// in order to avoid double spends once they become settled.\n PENDING_PREVIOUS_PHASE: u8,\n /// A note that was created in a prior transaction and is therefore already in the note hash tree.\n SETTLED: u8,\n}\n\nglobal NoteStage: NoteStageEnum =\n NoteStageEnum { PENDING_SAME_PHASE: 1, PENDING_PREVIOUS_PHASE: 2, SETTLED: 3 };\n\n/// The metadata required to both prove a note's existence and destroy it, by computing the correct note hash for kernel\n/// read requests, as well as the correct nullifier to avoid double-spends.\n///\n/// This represents a note in any of the three valid stages (pending same phase, pending previous phase, or settled). In\n/// order to access the underlying fields callers must first find the appropriate stage (e.g. via `is_settled()`) and\n/// then convert this into the appropriate type (e.g. via `to_settled()`).\n#[derive(Eq, Serialize)]\npub struct NoteMetadata {\n stage: u8,\n maybe_nonce: Field,\n}\n\nimpl NoteMetadata {\n /// Constructs a `NoteMetadata` object from optional note hash counter and nonce. Both a zero note hash counter and\n /// a zero nonce are invalid, so those are used to signal non-existent values.\n pub fn from_raw_data(nonzero_note_hash_counter: bool, maybe_nonce: Field) -> Self {\n if nonzero_note_hash_counter {\n if maybe_nonce == 0 {\n Self { stage: NoteStage.PENDING_SAME_PHASE, maybe_nonce }\n } else {\n Self { stage: NoteStage.PENDING_PREVIOUS_PHASE, maybe_nonce }\n }\n } else if maybe_nonce != 0 {\n Self { stage: NoteStage.SETTLED, maybe_nonce }\n } else {\n panic(\n f\"Note has a zero note hash counter and no nonce - existence cannot be proven\",\n )\n }\n }\n\n /// Returns true if the note is pending **and** from the same phase, i.e. if it's been created in the current\n /// transaction during the current execution phase (either non-revertible or revertible).\n pub fn is_pending_same_phase(self) -> bool {\n self.stage == NoteStage.PENDING_SAME_PHASE\n }\n\n /// Returns true if the note is pending **and** from the previous phase, i.e. if it's been created in the current\n /// transaction during an execution phase prior to the current one. Because private execution only has two phases\n /// with strict ordering, this implies that the note was created in the non-revertible phase, and that the current\n /// phase is the revertible phase.\n pub fn is_pending_previous_phase(self) -> bool {\n self.stage == NoteStage.PENDING_PREVIOUS_PHASE\n }\n\n /// Returns true if the note is settled, i.e. if it's been created in a prior transaction and is therefore already\n /// in the note hash tree.\n pub fn is_settled(self) -> bool {\n self.stage == NoteStage.SETTLED\n }\n\n /// Asserts that the metadata is that of a pending note from the same phase and converts it accordingly.\n pub fn to_pending_same_phase(self) -> PendingSamePhaseNoteMetadata {\n assert_eq(self.stage, NoteStage.PENDING_SAME_PHASE);\n PendingSamePhaseNoteMetadata::new()\n }\n\n /// Asserts that the metadata is that of a pending note from a previous phase and converts it accordingly.\n pub fn to_pending_previous_phase(self) -> PendingPreviousPhaseNoteMetadata {\n assert_eq(self.stage, NoteStage.PENDING_PREVIOUS_PHASE);\n PendingPreviousPhaseNoteMetadata::new(self.maybe_nonce)\n }\n\n /// Asserts that the metadata is that of a settled note and converts it accordingly.\n pub fn to_settled(self) -> SettledNoteMetadata {\n assert_eq(self.stage, NoteStage.SETTLED);\n SettledNoteMetadata::new(self.maybe_nonce)\n }\n}\n\nimpl From<PendingSamePhaseNoteMetadata> for NoteMetadata {\n fn from(_value: PendingSamePhaseNoteMetadata) -> Self {\n NoteMetadata::from_raw_data(true, std::mem::zeroed())\n }\n}\n\nimpl From<PendingPreviousPhaseNoteMetadata> for NoteMetadata {\n fn from(value: PendingPreviousPhaseNoteMetadata) -> Self {\n NoteMetadata::from_raw_data(true, value.nonce())\n }\n}\n\nimpl From<SettledNoteMetadata> for NoteMetadata {\n fn from(value: SettledNoteMetadata) -> Self {\n NoteMetadata::from_raw_data(false, value.nonce())\n }\n}\n\n/// The metadata required to both prove a note's existence and destroy it, by computing the correct note hash for kernel\n/// read requests, as well as the correct nullifier to avoid double-spends.\n///\n/// This represents a pending same phase note, i.e. a note that was created in the transaction that is currently being\n/// executed during the current execution phase (either non-revertible or revertible).\npub struct PendingSamePhaseNoteMetadata {\n // This struct contains no fields since there is no metadata associated with a pending same phase note: it has no\n // nonce (since it may get squashed by a nullifier emitted in the same phase), and while it does have a note hash\n // counter we cannot constrain its value (and don't need to - only that it is non-zero).\n}\n\nimpl PendingSamePhaseNoteMetadata {\n pub fn new() -> Self {\n Self {}\n }\n}\n\n/// The metadata required to both prove a note's existence and destroy it, by computing the correct note hash for kernel\n/// read requests, as well as the correct nullifier to avoid double-spends.\n///\n/// This represents a pending previous phase note, i.e. a note that was created in the transaction that is currently\n/// being executed, during the previous execution phase. Because there are only two phases and their order is always the\n/// same (first non-revertible and then revertible) this implies that the note was created in the non-revertible phase,\n/// and that the current phase is the revertible phase.\npub struct PendingPreviousPhaseNoteMetadata {\n nonce: Field,\n // This struct does not contain a note hash counter, even though one exists for this note, because we cannot\n // constrain its value (and don't need to - only that it is non-zero).\n}\n\nimpl PendingPreviousPhaseNoteMetadata {\n pub fn new(nonce: Field) -> Self {\n Self { nonce }\n }\n\n pub fn nonce(self) -> Field {\n self.nonce\n }\n}\n\n/// The metadata required to both prove a note's existence and destroy it, by computing the correct note hash for kernel\n/// read requests, as well as the correct nullifier to avoid double-spends.\n///\n/// This represents a settled note, i.e. a note that was created in a prior transaction and is therefore already in the\n/// note hash tree.\npub struct SettledNoteMetadata {\n nonce: Field,\n}\n\nimpl SettledNoteMetadata {\n pub fn new(nonce: Field) -> Self {\n Self { nonce }\n }\n\n pub fn nonce(self) -> Field {\n self.nonce\n }\n}\n"
|
|
6401
6488
|
},
|
|
6489
|
+
"140": {
|
|
6490
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/note/retrieved_note.nr",
|
|
6491
|
+
"source": "use crate::{note::note_metadata::NoteMetadata, utils::array::subarray::subarray};\nuse protocol_types::{\n address::AztecAddress,\n traits::{FromField, Packable, Serialize, ToField},\n utils::arrays::array_concat,\n};\n\n// Number of fields a RetrievedNote adds to the packed or serialized representation of a note\n// +1 for the contract address\n// +2 for the note metadata\npub global RETRIEVED_NOTE_OVERHEAD: u32 = 1 + 2;\n\n/// A container of a note and the metadata required to prove its existence, regardless of whether the note is\n/// pending (created in the current transaction) or settled (created in a previous transaction).\n#[derive(Eq)]\npub struct RetrievedNote<NOTE> {\n pub note: NOTE,\n pub contract_address: AztecAddress,\n pub metadata: NoteMetadata,\n}\n\nimpl<NOTE, let N: u32> Serialize<N + RETRIEVED_NOTE_OVERHEAD> for RetrievedNote<NOTE>\nwhere\n NOTE: Serialize<N>,\n{\n fn serialize(self) -> [Field; N + RETRIEVED_NOTE_OVERHEAD] {\n array_concat(\n array_concat(self.note.serialize(), [self.contract_address.to_field()]),\n self.metadata.serialize(),\n )\n }\n}\n\n// This function is not part of the Packable trait implementation because in the case of the retrieved note, the pack\n// functionality resides in TS (oracle.ts and txe_service.ts).\npub fn unpack_retrieved_note<NOTE, let N: u32>(\n packed_retrieved_note: [Field; N + RETRIEVED_NOTE_OVERHEAD],\n) -> RetrievedNote<NOTE>\nwhere\n NOTE: Packable<N>,\n{\n let contract_address = AztecAddress::from_field(packed_retrieved_note[0]);\n let nonce = packed_retrieved_note[1];\n let nonzero_note_hash_counter = packed_retrieved_note[2] as bool;\n\n let packed_note = subarray(packed_retrieved_note, RETRIEVED_NOTE_OVERHEAD);\n let note = NOTE::unpack(packed_note);\n\n RetrievedNote {\n note,\n contract_address,\n metadata: NoteMetadata::from_raw_data(nonzero_note_hash_counter, nonce),\n }\n}\n"
|
|
6492
|
+
},
|
|
6402
6493
|
"141": {
|
|
6403
6494
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/note/utils.nr",
|
|
6404
6495
|
"source": "use crate::{\n context::PrivateContext,\n note::{note_interface::NoteHash, retrieved_note::RetrievedNote},\n};\n\nuse dep::protocol_types::hash::{\n compute_siloed_note_hash, compute_siloed_nullifier, compute_unique_note_hash,\n};\n\n/// Returns the note hash that must be used to issue a private kernel read request for a note.\npub fn compute_note_hash_for_read_request<Note>(\n retrieved_note: RetrievedNote<Note>,\n storage_slot: Field,\n) -> Field\nwhere\n Note: NoteHash,\n{\n let note_hash = retrieved_note.note.compute_note_hash(storage_slot);\n\n if retrieved_note.metadata.is_settled() {\n // Settled notes are read by siloing with contract address and nonce (resulting in the final unique note hash,\n // which is already in the note hash tree).\n let siloed_note_hash = compute_siloed_note_hash(retrieved_note.contract_address, note_hash);\n compute_unique_note_hash(\n retrieved_note.metadata.to_settled().nonce(),\n siloed_note_hash,\n )\n } else {\n // Pending notes (both same phase and previous phase ones) re read by their non-siloed hash (not even by\n // contract address), which is what is stored in the new note hashes array (at the position hinted by note hash\n // counter).\n note_hash\n }\n}\n\n/// Returns the note hash that must be used to compute a note's nullifier when calling `NoteHash::compute_nullifier` or\n/// `NoteHash::compute_nullifier_unconstrained`.\npub fn compute_note_hash_for_nullify<Note>(\n retrieved_note: RetrievedNote<Note>,\n storage_slot: Field,\n) -> Field\nwhere\n Note: NoteHash,\n{\n compute_note_hash_for_nullify_from_read_request(\n retrieved_note,\n compute_note_hash_for_read_request(retrieved_note, storage_slot),\n )\n}\n\n/// Same as `compute_note_hash_for_nullify`, except it takes the note hash used in a read request (i.e. what\n/// `compute_note_hash_for_read_request` would return). This is useful in scenarios where that hash has already been\n/// computed to reduce constraints by reusing this value.\npub fn compute_note_hash_for_nullify_from_read_request<Note>(\n retrieved_note: RetrievedNote<Note>,\n note_hash_for_read_request: Field,\n) -> Field {\n // There is just one instance in which the note hash for nullification does not match the note hash used for a read\n // request, which is when dealing with pending previous phase notes. These had their existence proven using their\n // non-siloed note hash along with the note hash counter (like all pending notes), but since they will be\n // unconditionally inserted in the note hash tree (since they cannot be squashed) they must be nullified using the\n // *unique* note hash.\n // If we didn't, it'd be possible to emit a second different nullifier for the same note in a follow up transaction,\n // once the note is settled, resulting in a double spend.\n\n if retrieved_note.metadata.is_pending_previous_phase() {\n let siloed_note_hash =\n compute_siloed_note_hash(retrieved_note.contract_address, note_hash_for_read_request);\n let nonce = retrieved_note.metadata.to_pending_previous_phase().nonce();\n\n compute_unique_note_hash(nonce, siloed_note_hash)\n } else {\n note_hash_for_read_request\n }\n}\n\n/// Computes a note's siloed nullifier, i.e. the one that will be inserted into the nullifier tree.\npub fn compute_siloed_note_nullifier<Note>(\n retrieved_note: RetrievedNote<Note>,\n storage_slot: Field,\n context: &mut PrivateContext,\n) -> Field\nwhere\n Note: NoteHash,\n{\n let note_hash_for_nullify = compute_note_hash_for_nullify(retrieved_note, storage_slot);\n let inner_nullifier = retrieved_note.note.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier(retrieved_note.contract_address, inner_nullifier)\n}\n"
|
|
@@ -6441,19 +6532,19 @@
|
|
|
6441
6532
|
},
|
|
6442
6533
|
"156": {
|
|
6443
6534
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/logs.nr",
|
|
6444
|
-
"source": "use crate::messages::encoding::MAX_MESSAGE_CONTENT_LEN;\nuse protocol_types::{abis::event_selector::EventSelector, address::AztecAddress};\n\n/// The below only exists to broadcast the raw log, so we can provide it to the base rollup later to be constrained.\npub unconstrained fn notify_created_contract_class_log<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) {\n notify_created_contract_class_log_private_oracle(contract_address, message, counter)\n}\n\n#[oracle(notifyCreatedContractClassLog)]\nunconstrained fn notify_created_contract_class_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) {}\n\npub unconstrained fn store_private_event_log(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n event_selector: EventSelector,\n msg_content: BoundedVec<Field, MAX_MESSAGE_CONTENT_LEN>,\n tx_hash: Field,\n log_index_in_tx: Field,\n tx_index_in_block: Field,\n) {\n store_private_event_log_oracle(\n contract_address,\n recipient,\n event_selector,\n msg_content,\n tx_hash,\n log_index_in_tx,\n tx_index_in_block,\n )\n}\n\n#[oracle(storePrivateEventLog)]\nunconstrained fn store_private_event_log_oracle(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n event_selector: EventSelector,\n msg_content: BoundedVec<Field, MAX_MESSAGE_CONTENT_LEN>,\n tx_hash: Field,\n log_index_in_tx: Field,\n tx_index_in_block: Field,\n) {}\n"
|
|
6535
|
+
"source": "use crate::messages::encoding::MAX_MESSAGE_CONTENT_LEN;\nuse protocol_types::{abis::event_selector::EventSelector, address::AztecAddress};\n\n/// The below only exists to broadcast the raw log, so we can provide it to the base rollup later to be constrained.\npub unconstrained fn notify_created_contract_class_log<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n length: u32,\n counter: u32,\n) {\n notify_created_contract_class_log_private_oracle(contract_address, message, length, counter)\n}\n\n#[oracle(notifyCreatedContractClassLog)]\nunconstrained fn notify_created_contract_class_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n length: u32,\n counter: u32,\n) {}\n\npub unconstrained fn store_private_event_log(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n event_selector: EventSelector,\n msg_content: BoundedVec<Field, MAX_MESSAGE_CONTENT_LEN>,\n tx_hash: Field,\n log_index_in_tx: Field,\n tx_index_in_block: Field,\n) {\n store_private_event_log_oracle(\n contract_address,\n recipient,\n event_selector,\n msg_content,\n tx_hash,\n log_index_in_tx,\n tx_index_in_block,\n )\n}\n\n#[oracle(storePrivateEventLog)]\nunconstrained fn store_private_event_log_oracle(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n event_selector: EventSelector,\n msg_content: BoundedVec<Field, MAX_MESSAGE_CONTENT_LEN>,\n tx_hash: Field,\n log_index_in_tx: Field,\n tx_index_in_block: Field,\n) {}\n"
|
|
6445
6536
|
},
|
|
6446
6537
|
"157": {
|
|
6447
6538
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/message_discovery.nr",
|
|
6448
|
-
"source": "use crate::messages::discovery::private_notes::MAX_NOTE_PACKED_LEN;\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::{MAX_NOTE_HASHES_PER_TX,
|
|
6539
|
+
"source": "use crate::messages::discovery::private_notes::MAX_NOTE_PACKED_LEN;\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::{MAX_NOTE_HASHES_PER_TX, PUBLIC_LOG_SIZE_IN_FIELDS},\n};\n\n/// Finds new private logs that may have been sent to all registered accounts in PXE in the current contract and makes\n/// them available for later processing in Noir by storing them in a capsule array.\npub unconstrained fn sync_notes(pending_tagged_log_array_base_slot: Field) {\n sync_notes_oracle(pending_tagged_log_array_base_slot);\n}\n\n#[oracle(syncNotes)]\nunconstrained fn sync_notes_oracle(pending_tagged_log_array_base_slot: Field) {}\n\n/// Informs PXE of a note's existence so that it can later be retrieved by the `getNotes` oracle. The note will be\n/// scoped to `contract_address`, meaning other contracts will not be able to access it unless authorized.\n///\n/// The packed note is what `getNotes` will later return. PXE indexes notes by `storage_slot`, so this value\n/// is typically used to filter notes that correspond to different state variables. `note_hash` and `nullifier` are\n/// the inner hashes, i.e. the raw hashes returned by `NoteHash::compute_note_hash` and\n/// `NoteHash::compute_nullifier`. PXE will verify that the siloed unique note hash was inserted into the tree\n/// at `tx_hash`, and will store the nullifier to later check for nullification.\n///\n/// `recipient` is the account to which the note was sent to. Other accounts will not be able to access this note (e.g.\n/// other accounts will not be able to see one another's token balance notes, even in the same PXE) unless authorized.\n///\n/// Returns true if the note was successfully delivered and added to PXE's database.\npub unconstrained fn deliver_note(\n contract_address: AztecAddress,\n storage_slot: Field,\n nonce: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n note_hash: Field,\n nullifier: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) -> bool {\n deliver_note_oracle(\n contract_address,\n storage_slot,\n nonce,\n packed_note,\n note_hash,\n nullifier,\n tx_hash,\n recipient,\n )\n}\n\n/// The contents of a public log, plus contextual information about the transaction in which the log was emitted. This\n/// is the data required in order to discover notes that are being delivered in a log.\n// TODO(#11639): this could also be used to fetch private logs, but the `BoundedVec` maximum length is that of a public\n// log.\npub struct LogWithTxData {\n // The log fields length is PUBLIC_LOG_SIZE_IN_FIELDS. + 1 because the contract address is prepended to the content.\n pub log_content: BoundedVec<Field, PUBLIC_LOG_SIZE_IN_FIELDS + 1>,\n pub tx_hash: Field,\n /// The array of new note hashes created by `tx_hash`\n pub unique_note_hashes_in_tx: BoundedVec<Field, MAX_NOTE_HASHES_PER_TX>,\n /// The first nullifier created by `tx_hash`\n pub first_nullifier_in_tx: Field,\n}\n\n/// Fetches a log from the node that has the corresponding `tag`. The log can be either a public or a private log, and\n/// the tag is the first field in the log's content. Returns `Option::none` if no such log exists. Throws if more than\n/// one log with that tag exists.\n/// Public logs have an extra field included at the beginning with the address of the contract that emitted them.\n// TODO(#11627): handle multiple logs with the same tag.\n// TODO(#10273): improve contract siloing of logs, don't introduce an extra field.\npub unconstrained fn get_log_by_tag(tag: Field) -> Option<LogWithTxData> {\n get_log_by_tag_oracle(tag)\n}\n\n#[oracle(deliverNote)]\nunconstrained fn deliver_note_oracle(\n contract_address: AztecAddress,\n storage_slot: Field,\n nonce: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n note_hash: Field,\n nullifier: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) -> bool {}\n\n#[oracle(getLogByTag)]\nunconstrained fn get_log_by_tag_oracle(tag: Field) -> Option<LogWithTxData> {}\n"
|
|
6449
6540
|
},
|
|
6450
6541
|
"159": {
|
|
6451
6542
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/notes.nr",
|
|
6452
|
-
"source": "use crate::{\n
|
|
6543
|
+
"source": "use crate::note::{\n note_interface::NoteType,\n retrieved_note::{RETRIEVED_NOTE_OVERHEAD, RetrievedNote, unpack_retrieved_note},\n};\n\nuse dep::protocol_types::{\n address::AztecAddress, indexed_tagging_secret::IndexedTaggingSecret, traits::Packable,\n};\n\n/// Notifies the simulator that a note has been created, so that it can be returned in future read requests in the same\n/// transaction. This note should only be added to the non-volatile database if found in an actual block.\npub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n packed_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe {\n notify_created_note_oracle_wrapper(\n storage_slot,\n note_type_id,\n packed_note,\n note_hash,\n counter,\n )\n };\n}\n\n/// Notifies the simulator that a note has been nullified, so that it is no longer returned in future read requests in\n/// the same transaction. This note should only be removed to the non-volatile database if its nullifier is found in an\n/// actual block.\npub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_nullified_note_oracle_wrapper(nullifier, note_hash, counter) };\n}\n\n/// Notifies the simulator that a non-note nullifier has been created, so that it can be used for note nonces.\npub fn notify_created_nullifier(nullifier: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_created_nullifier_oracle_wrapper(nullifier) };\n}\n\nunconstrained fn notify_created_note_oracle_wrapper<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n packed_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n notify_created_note_oracle(storage_slot, note_type_id, packed_note, note_hash, counter);\n}\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _packed_note: [Field; N],\n _note_hash: Field,\n _counter: u32,\n) {}\n\nunconstrained fn notify_nullified_note_oracle_wrapper(\n nullifier: Field,\n note_hash: Field,\n counter: u32,\n) {\n notify_nullified_note_oracle(nullifier, note_hash, counter);\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(_nullifier: Field, _note_hash: Field, _counter: u32) {}\n\nunconstrained fn notify_created_nullifier_oracle_wrapper(nullifier: Field) {\n notify_created_nullifier_oracle(nullifier);\n}\n\n#[oracle(notifyCreatedNullifier)]\nunconstrained fn notify_created_nullifier_oracle(_nullifier: Field) {}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let NOTE_PCKD_LEN: u32, let M: u32, let MAX_NOTES: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; M],\n _select_by_offsets: [u8; M],\n _select_by_lengths: [u8; M],\n _select_values: [Field; M],\n _select_comparators: [u8; M],\n _sort_by_indexes: [u8; M],\n _sort_by_offsets: [u8; M],\n _sort_by_lengths: [u8; M],\n _sort_order: [u8; M],\n _limit: u32,\n _offset: u32,\n _status: u8,\n // This is always set to MAX_NOTES. We need to pass it to TS in order to correctly construct the BoundedVec\n _max_notes: u32,\n // This is always set to NOTE_PCKD_LEN + RETRIEVED_NOTE_OVERHEAD. We need to pass it to TS in order to be able to\n // correctly construct the BoundedVec there.\n _packed_retrieved_note_length: u32,\n) -> BoundedVec<[Field; NOTE_PCKD_LEN + RETRIEVED_NOTE_OVERHEAD], MAX_NOTES> {}\n\npub unconstrained fn get_notes<Note, let NOTE_PCKD_LEN: u32, let M: u32, let MAX_NOTES: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n) -> [Option<RetrievedNote<Note>>; MAX_NOTES]\nwhere\n Note: NoteType + Packable<NOTE_PCKD_LEN>,\n{\n // N + 3 because of the contract address, nonce, and note_hash_counter that are stored out of the packed note.\n let packed_retrieved_notes: BoundedVec<[Field; NOTE_PCKD_LEN + RETRIEVED_NOTE_OVERHEAD], MAX_NOTES> = get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n MAX_NOTES,\n NOTE_PCKD_LEN + RETRIEVED_NOTE_OVERHEAD,\n );\n\n let mut notes = BoundedVec::<_, MAX_NOTES>::new();\n for i in 0..packed_retrieved_notes.len() {\n let retrieved_note = unpack_retrieved_note(packed_retrieved_notes.get(i));\n notes.push(retrieved_note);\n }\n\n // At last we convert the bounded vector to an array of options. We do this because that is what the filter\n // function needs to have on the output and we've decided to have the same type on the input and output of\n // the filter and preprocessor functions.\n //\n // We have decided to have the same type on the input and output of the filter and preprocessor functions because\n // it allows us to chain multiple filters and preprocessors together.\n //\n // So why do we want the array of options on the output of the filter function?\n //\n // Filter returns an array of options rather than a BoundedVec for performance reasons. Using an array of options\n // allows setting values at known indices in the output array which is much more efficient than pushing to a\n // BoundedVec where the write position depends on previous iterations. The array can then be efficiently converted\n // to a BoundedVec using utils/array/collapse.nr::collapse function from Aztec.nr. This avoids expensive dynamic\n // memory access patterns that would be required when building up a BoundedVec incrementally. For preprocessor\n // functions we could use BoundedVec return value as there the optimization does not matter since it is applied in\n // an unconstrained context. We, however, use the same return value type to be able to use the same function as\n // both a preprocessor and a filter.\n let mut notes_array = [Option::none(); MAX_NOTES];\n for i in 0..notes.len() {\n if i < notes.len() {\n notes_array[i] = Option::some(notes.get_unchecked(i));\n }\n }\n\n notes_array\n}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before the\n/// current transaction is included in a block. While this might seem of little use at first, certain design patterns\n/// benefit from this abstraction (see e.g. `PrivateMutable`).\npub unconstrained fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier)\n}\n\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> bool {}\n\n/// Returns the derived app tagging secret ready to be included in a log for a given sender and recipient pair,\n/// siloed for the current contract address.\npub unconstrained fn get_app_tag_as_sender(sender: AztecAddress, recipient: AztecAddress) -> Field {\n get_indexed_tagging_secret_as_sender_oracle(sender, recipient).compute_tag(recipient)\n}\n\n#[oracle(getIndexedTaggingSecretAsSender)]\nunconstrained fn get_indexed_tagging_secret_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) -> IndexedTaggingSecret {}\n\n/// Notifies the simulator that a tag has been used in a note, and to therefore increment the associated index so that\n/// future notes get a different tag and can be discovered by the recipient.\n/// This change should only be persisted in a non-volatile database if the tagged log is found in an actual block -\n/// otherwise e.g. a reverting transaction can cause the sender to accidentally skip indices and later produce notes\n/// that are not found by the recipient.\npub fn increment_app_tagging_secret_index_as_sender(sender: AztecAddress, recipient: AztecAddress) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe {\n increment_app_tagging_secret_index_as_sender_wrapper(sender, recipient);\n }\n}\n\nunconstrained fn increment_app_tagging_secret_index_as_sender_wrapper(\n sender: AztecAddress,\n recipient: AztecAddress,\n) {\n increment_app_tagging_secret_index_as_sender_oracle(sender, recipient);\n}\n\n#[oracle(incrementAppTaggingSecretIndexAsSender)]\nunconstrained fn increment_app_tagging_secret_index_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) {}\n"
|
|
6453
6544
|
},
|
|
6454
6545
|
"16": {
|
|
6455
6546
|
"path": "std/embedded_curve_ops.nr",
|
|
6456
|
-
"source": "use crate::cmp::Eq;\nuse crate::hash::Hash;\nuse crate::ops::arith::{Add, Neg, Sub};\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\npub struct EmbeddedCurvePoint {\n pub x: Field,\n pub y: Field,\n pub is_infinite: bool,\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n pub fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n pub fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n\n /// Returns the curve's generator point.\n pub fn generator() -> EmbeddedCurvePoint {\n // Generator point for the grumpkin curve (y^2 = x^3 - 17)\n EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860, // sqrt(-16)\n is_infinite: false,\n }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: self.x, y: -self.y, is_infinite: self.is_infinite }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite)\n | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\nimpl Hash for EmbeddedCurvePoint {\n fn hash<H>(self, state: &mut H)\n where\n H: crate::hash::Hasher,\n {\n if self.is_infinite {\n self.is_infinite.hash(state);\n } else {\n self.x.hash(state);\n self.y.hash(state);\n }\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\npub struct EmbeddedCurveScalar {\n pub lo: Field,\n pub hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n pub fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a, b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n\n //Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\n #[field(bn254)]\n pub(crate) fn from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v = 1;\n let mut lo = 0 as Field;\n let mut hi = 0 as Field;\n for i in 0..16 {\n lo = lo + (bytes[offset + 31 - i] as Field) * v;\n hi = hi + (bytes[offset + 15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = crate::embedded_curve_ops::EmbeddedCurveScalar { lo, hi };\n sig_s\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\nimpl Hash for EmbeddedCurveScalar {\n fn hash<H>(self, state: &mut H)\n where\n H: crate::hash::Hasher,\n {\n self.hi.hash(state);\n self.lo.hash(state);\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the\n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N],\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n multi_scalar_mul_array_return(points, scalars)[0]\n}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_array_return<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N],\n) -> [EmbeddedCurvePoint; 1] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n multi_scalar_mul([EmbeddedCurvePoint::generator()], [scalar])\n}\n\n/// This function only assumes that the points are on the curve\n/// It handles corner cases around the infinity point causing some overhead compared to embedded_curve_add_not_nul and embedded_curve_add_unsafe\n// docs:start:embedded_curve_add\npub fn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n // docs:end:embedded_curve_add\n if crate::runtime::is_unconstrained() {\n // `embedded_curve_add_unsafe` requires the inputs not to be the infinity point, so we check it here.\n // This is because `embedded_curve_add_unsafe` uses the `embedded_curve_add` opcode.\n // For efficiency, the backend does not check the inputs for the infinity point, but it assumes that they are not the infinity point\n // so that it can apply the ec addition formula directly.\n if point1.is_infinite {\n point2\n } else if point2.is_infinite {\n point1\n } else {\n embedded_curve_add_unsafe(point1, point2)\n }\n } else {\n // In a constrained context, we also need to check the inputs are not the infinity point because we also use `embedded_curve_add_unsafe`\n // However we also need to identify the case where the two inputs are the same, because then\n // the addition formula does not work and we need to use the doubling formula instead.\n // In unconstrained context, we can check directly if the input values are the same when solving the opcode, so it is not an issue.\n\n // x_coordinates_match is true if both abscissae are the same\n let x_coordinates_match = point1.x == point2.x;\n // y_coordinates_match is true if both ordinates are the same\n let y_coordinates_match = point1.y == point2.y;\n // double_predicate is true if both abscissae and ordinates are the same\n let double_predicate = (x_coordinates_match & y_coordinates_match);\n // If the abscissae are the same, but not the ordinates, then one point is the opposite of the other\n let infinity_predicate = (x_coordinates_match & !y_coordinates_match);\n let point1_1 = EmbeddedCurvePoint {\n x: point1.x + (x_coordinates_match as Field),\n y: point1.y,\n is_infinite: x_coordinates_match,\n };\n // point1_1 is guaranteed to have a different abscissa than point2:\n // - if x_coordinates_match is 0, that means point1.x != point2.x, and point1_1.x = point1.x + 0\n // - if x_coordinates_match is 1, that means point1.x = point2.x, but point1_1.x = point1.x + 1 in this case\n // Because the abscissa is different, the addition formula is guaranteed to succeed, so we can safely use `embedded_curve_add_unsafe`\n // Note that this computation may be garbage: if x_coordinates_match is 1, or if one of the input is the point at infinity.\n let mut result = embedded_curve_add_unsafe(point1_1, point2);\n\n // `embedded_curve_add_unsafe` is doing a doubling if the input is the same variable, because in this case it is guaranteed (at 'compile time') that the input is the same.\n let double = embedded_curve_add_unsafe(point1, point1);\n // `embedded_curve_add_unsafe` would not perform doubling, even if the inputs point1 and point2 are the same, because it cannot know this without adding some logic (and some constraints)\n // However we did this logic when we computed `double_predicate`, so we set the result to 2*point1 if point1 and point2 are the same\n result = if double_predicate { double } else { result };\n\n // Same logic as above for unconstrained context, we set the proper result when one of the inputs is the infinity point\n if point1.is_infinite {\n result = point2;\n }\n if point2.is_infinite {\n result = point1;\n }\n\n // Finally, we set the is_infinity flag of the result:\n // Opposite points should sum into the infinity point, however, if one of them is point at infinity, their coordinates are not meaningful\n // so we should not use the fact that the inputs are opposite in this case:\n let mut result_is_infinity =\n infinity_predicate & (!point1.is_infinite & !point2.is_infinite);\n // However, if both of them are at infinity, then the result is also at infinity\n result.is_infinite = result_is_infinity | (point1.is_infinite & point2.is_infinite);\n result\n }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(\n _point1: EmbeddedCurvePoint,\n _point2: EmbeddedCurvePoint,\n) -> [EmbeddedCurvePoint; 1] {}\n\n/// This function assumes that:\n/// The points are on the curve, and\n/// The points don't share an x-coordinate, and\n/// Neither point is the infinity point.\n/// If it is used with correct input, the function ensures the correct non-zero result is returned.\n/// Except for points on the curve, the other assumptions are checked by the function. It will cause assertion failure if they are not respected.\npub fn embedded_curve_add_not_nul(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n assert(point1.x != point2.x);\n assert(!point1.is_infinite);\n assert(!point2.is_infinite);\n embedded_curve_add_unsafe(point1, point2)\n}\n\n/// Unsafe ec addition\n/// If the inputs are the same, it will perform a doubling, but only if point1 and point2 are the same variable.\n/// If they have the same value but are different variables, the result will be incorrect because in this case\n/// it assumes (but does not check) that the points' x-coordinates are not equal.\n/// It also assumes neither point is the infinity point.\npub fn embedded_curve_add_unsafe(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n embedded_curve_add_array_return(point1, point2)[0]\n}\n"
|
|
6547
|
+
"source": "use crate::cmp::Eq;\nuse crate::hash::Hash;\nuse crate::ops::arith::{Add, Neg, Sub};\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\npub struct EmbeddedCurvePoint {\n pub x: Field,\n pub y: Field,\n pub is_infinite: bool,\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n pub fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n pub fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n\n /// Returns the curve's generator point.\n pub fn generator() -> EmbeddedCurvePoint {\n // Generator point for the grumpkin curve (y^2 = x^3 - 17)\n EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860, // sqrt(-16)\n is_infinite: false,\n }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: self.x, y: -self.y, is_infinite: self.is_infinite }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite)\n | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\nimpl Hash for EmbeddedCurvePoint {\n fn hash<H>(self, state: &mut H)\n where\n H: crate::hash::Hasher,\n {\n if self.is_infinite {\n self.is_infinite.hash(state);\n } else {\n self.x.hash(state);\n self.y.hash(state);\n }\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\npub struct EmbeddedCurveScalar {\n pub lo: Field,\n pub hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n pub fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a, b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n\n //Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\n #[field(bn254)]\n pub(crate) fn from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v = 1;\n let mut lo = 0 as Field;\n let mut hi = 0 as Field;\n for i in 0..16 {\n lo = lo + (bytes[offset + 31 - i] as Field) * v;\n hi = hi + (bytes[offset + 15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = crate::embedded_curve_ops::EmbeddedCurveScalar { lo, hi };\n sig_s\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\nimpl Hash for EmbeddedCurveScalar {\n fn hash<H>(self, state: &mut H)\n where\n H: crate::hash::Hasher,\n {\n self.hi.hash(state);\n self.lo.hash(state);\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the\n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N],\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n multi_scalar_mul_array_return(points, scalars)[0]\n}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_array_return<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N],\n) -> [EmbeddedCurvePoint; 1] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n multi_scalar_mul([EmbeddedCurvePoint::generator()], [scalar])\n}\n\n/// This function only assumes that the points are on the curve\n/// It handles corner cases around the infinity point causing some overhead compared to embedded_curve_add_not_nul and embedded_curve_add_unsafe\n// docs:start:embedded_curve_add\npub fn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n // docs:end:embedded_curve_add\n if crate::runtime::is_unconstrained() {\n // `embedded_curve_add_unsafe` requires the inputs not to be the infinity point, so we check it here.\n // This is because `embedded_curve_add_unsafe` uses the `embedded_curve_add` opcode.\n // For efficiency, the backend does not check the inputs for the infinity point, but it assumes that they are not the infinity point\n // so that it can apply the ec addition formula directly.\n if point1.is_infinite {\n point2\n } else if point2.is_infinite {\n point1\n } else {\n embedded_curve_add_unsafe(point1, point2)\n }\n } else {\n // In a constrained context, we also need to check the inputs are not the infinity point because we also use `embedded_curve_add_unsafe`\n // However we also need to identify the case where the two inputs are the same, because then\n // the addition formula does not work and we need to use the doubling formula instead.\n // In unconstrained context, we can check directly if the input values are the same when solving the opcode, so it is not an issue.\n\n // x_coordinates_match is true if both abscissae are the same\n let x_coordinates_match = point1.x == point2.x;\n // y_coordinates_match is true if both ordinates are the same\n let y_coordinates_match = point1.y == point2.y;\n // double_predicate is true if both abscissae and ordinates are the same\n let double_predicate = (x_coordinates_match & y_coordinates_match);\n // If the abscissae are the same, but not the ordinates, then one point is the opposite of the other\n let infinity_predicate = (x_coordinates_match & !y_coordinates_match);\n let point1_1 = EmbeddedCurvePoint {\n x: point1.x + (x_coordinates_match as Field),\n y: point1.y,\n is_infinite: false,\n };\n let point2_1 = EmbeddedCurvePoint { x: point2.x, y: point2.y, is_infinite: false };\n // point1_1 is guaranteed to have a different abscissa than point2:\n // - if x_coordinates_match is 0, that means point1.x != point2.x, and point1_1.x = point1.x + 0\n // - if x_coordinates_match is 1, that means point1.x = point2.x, but point1_1.x = point1.x + 1 in this case\n // Because the abscissa is different, the addition formula is guaranteed to succeed, so we can safely use `embedded_curve_add_unsafe`\n // Note that this computation may be garbage: if x_coordinates_match is 1, or if one of the input is the point at infinity.\n let mut result = embedded_curve_add_unsafe(point1_1, point2_1);\n\n // `embedded_curve_add_unsafe` is doing a doubling if the input is the same variable, because in this case it is guaranteed (at 'compile time') that the input is the same.\n let double = embedded_curve_add_unsafe(point1, point1);\n // `embedded_curve_add_unsafe` would not perform doubling, even if the inputs point1 and point2 are the same, because it cannot know this without adding some logic (and some constraints)\n // However we did this logic when we computed `double_predicate`, so we set the result to 2*point1 if point1 and point2 are the same\n result = if double_predicate { double } else { result };\n\n // Same logic as above for unconstrained context, we set the proper result when one of the inputs is the infinity point\n if point1.is_infinite {\n result = point2;\n }\n if point2.is_infinite {\n result = point1;\n }\n\n // Finally, we set the is_infinity flag of the result:\n // Opposite points should sum into the infinity point, however, if one of them is point at infinity, their coordinates are not meaningful\n // so we should not use the fact that the inputs are opposite in this case:\n let mut result_is_infinity =\n infinity_predicate & (!point1.is_infinite & !point2.is_infinite);\n // However, if both of them are at infinity, then the result is also at infinity\n result.is_infinite = result_is_infinity | (point1.is_infinite & point2.is_infinite);\n result\n }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(\n _point1: EmbeddedCurvePoint,\n _point2: EmbeddedCurvePoint,\n) -> [EmbeddedCurvePoint; 1] {}\n\n/// This function assumes that:\n/// The points are on the curve, and\n/// The points don't share an x-coordinate, and\n/// Neither point is the infinity point.\n/// If it is used with correct input, the function ensures the correct non-zero result is returned.\n/// Except for points on the curve, the other assumptions are checked by the function. It will cause assertion failure if they are not respected.\npub fn embedded_curve_add_not_nul(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n assert(point1.x != point2.x);\n assert(!point1.is_infinite);\n assert(!point2.is_infinite);\n embedded_curve_add_unsafe(point1, point2)\n}\n\n/// Unsafe ec addition\n/// If the inputs are the same, it will perform a doubling, but only if point1 and point2 are the same variable.\n/// If they have the same value but are different variables, the result will be incorrect because in this case\n/// it assumes (but does not check) that the points' x-coordinates are not equal.\n/// It also assumes neither point is the infinity point.\npub fn embedded_curve_add_unsafe(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint,\n) -> EmbeddedCurvePoint {\n embedded_curve_add_array_return(point1, point2)[0]\n}\n"
|
|
6457
6548
|
},
|
|
6458
6549
|
"160": {
|
|
6459
6550
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/random.nr",
|
|
@@ -6463,7 +6554,7 @@
|
|
|
6463
6554
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/shared_secret.nr",
|
|
6464
6555
|
"source": "use protocol_types::{address::aztec_address::AztecAddress, point::Point};\n\n// TODO(#12656): return an app-siloed secret + document this\n#[oracle(getSharedSecret)]\nunconstrained fn get_shared_secret_oracle(address: AztecAddress, ephPk: Point) -> Point {}\n\n/// Returns an app-siloed shared secret between `address` and someone who knows the secret key behind an\n/// ephemeral public key `ephPk`. The app-siloing means that contracts cannot retrieve secrets that belong to\n/// other contracts, and therefore cannot e.g. decrypt their messages. This is an important security consideration\n/// given that both the `address` and `ephPk` are public information.\n///\n/// The shared secret `S` is computed as:\n/// `let S = (ivsk + h) * ephPk`\n/// where `ivsk + h` is the 'preaddress' i.e. the preimage of the address, also called the address secret.\n/// TODO(#12656): app-silo this secret\npub unconstrained fn get_shared_secret(address: AztecAddress, ephPk: Point) -> Point {\n get_shared_secret_oracle(address, ephPk)\n}\n"
|
|
6465
6556
|
},
|
|
6466
|
-
"
|
|
6557
|
+
"167": {
|
|
6467
6558
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr",
|
|
6468
6559
|
"source": "use dep::protocol_types::{\n constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER, hash::poseidon2_hash_with_separator,\n traits::Packable,\n};\n\nuse crate::context::{PrivateContext, UtilityContext};\nuse crate::note::{\n lifecycle::create_note,\n note_emission::NoteEmission,\n note_getter::{get_note, view_notes},\n note_interface::{NoteHash, NoteType},\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\npub struct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\n// Private storage slots are not really 'slots' but rather a value in the note hash preimage, so there is no notion of a\n// value spilling over multiple slots. For this reason PrivateImmutable (and all other private state variables) needs\n// just one slot to be reserved, regardless of what it stores.\nimpl<T, Context> Storage<1> for PrivateImmutable<T, Context> {\n fn get_storage_slot(self) -> Field {\n self.storage_slot\n }\n}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor.\n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<let N: u32>(self, note: Note) -> NoteEmission<Note>\n where\n Note: NoteType + NoteHash + Packable<N>,\n {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<let N: u32>(self) -> Note\n where\n Note: NoteType + NoteHash + Packable<N>,\n {\n let storage_slot = self.storage_slot;\n let retrieved_note = get_note(self.context, storage_slot).0;\n\n // Because the notes obtained from PrivateImmutable are not meant to be nullified and get_note(...) function\n // has already constrained the note (by pushing a read request to the context), we can return just the note\n // and skip the additional data in RetrievedNote.\n retrieved_note.note\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UtilityContext>\nwhere\n Note: NoteType + NoteHash + Eq,\n{\n // docs:start:is_initialized\n pub unconstrained fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n pub unconstrained fn view_note<let N: u32>(self) -> Note\n where\n Note: Packable<N>,\n {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"
|
|
6469
6560
|
},
|
|
@@ -6475,11 +6566,11 @@
|
|
|
6475
6566
|
"path": "std/field/mod.nr",
|
|
6476
6567
|
"source": "pub mod bn254;\nuse crate::{runtime::is_unconstrained, static_assert};\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n /// Asserts that `self` can be represented in `bit_size` bits.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{bit_size}`.\n // docs:start:assert_max_bit_size\n pub fn assert_max_bit_size<let BIT_SIZE: u32>(self) {\n // docs:end:assert_max_bit_size\n static_assert(\n BIT_SIZE < modulus_num_bits() as u32,\n \"BIT_SIZE must be less than modulus_num_bits\",\n );\n self.__assert_max_bit_size(BIT_SIZE);\n }\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_le_bits)]\n fn _to_le_bits<let N: u32>(self: Self) -> [u1; N] {}\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_be_bits)]\n fn _to_be_bits<let N: u32>(self: Self) -> [u1; N] {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// The bit decomposition returned is canonical and is guaranteed to not overflow the modulus.\n // docs:start:to_le_bits\n pub fn to_le_bits<let N: u32>(self: Self) -> [u1; N] {\n // docs:end:to_le_bits\n let bits = self._to_le_bits();\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_le_bits();\n assert(bits.len() <= p.len());\n let mut ok = bits.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bits[N - 1 - i] != p[N - 1 - i]) {\n assert(p[N - 1 - i] == 1);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bits\n }\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// The bit decomposition returned is canonical and is guaranteed to not overflow the modulus.\n // docs:start:to_be_bits\n pub fn to_be_bits<let N: u32>(self: Self) -> [u1; N] {\n // docs:end:to_be_bits\n let bits = self._to_be_bits();\n\n if !is_unconstrained() {\n // Ensure that the decomposition does not overflow the modulus\n let p = modulus_be_bits();\n assert(bits.len() <= p.len());\n let mut ok = bits.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bits[i] != p[i]) {\n assert(p[i] == 1);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bits\n }\n\n /// Decomposes `self` into its little endian byte decomposition as a `[u8;N]` array\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n ///\n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self',\n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_le_bytes\n pub fn to_le_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_le_bytes\n static_assert(\n N <= modulus_le_bytes().len(),\n \"N must be less than or equal to modulus_le_bytes().len()\",\n );\n // Compute the byte decomposition\n let bytes = self.to_le_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_le_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[N - 1 - i] != p[N - 1 - i]) {\n assert(bytes[N - 1 - i] < p[N - 1 - i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n /// Decomposes `self` into its big endian byte decomposition as a `[u8;N]` array of length required to represent the field modulus\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n ///\n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self',\n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_be_bytes\n pub fn to_be_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_be_bytes\n static_assert(\n N <= modulus_le_bytes().len(),\n \"N must be less than or equal to modulus_le_bytes().len()\",\n );\n // Compute the byte decomposition\n let bytes = self.to_be_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_be_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[i] != p[i]) {\n assert(bytes[i] < p[i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n // docs:start:to_le_radix\n pub fn to_le_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n // Brillig does not need an immediate radix\n if !crate::runtime::is_unconstrained() {\n static_assert(1 < radix, \"radix must be greater than 1\");\n static_assert(radix <= 256, \"radix must be less than or equal to 256\");\n static_assert(radix & (radix - 1) == 0, \"radix must be a power of 2\");\n }\n self.__to_le_radix(radix)\n }\n // docs:end:to_le_radix\n\n // docs:start:to_be_radix\n pub fn to_be_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n // Brillig does not need an immediate radix\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(radix);\n }\n self.__to_be_radix(radix)\n }\n // docs:end:to_be_radix\n\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n // `_radix` must be less than 256\n #[builtin(to_be_radix)]\n fn __to_be_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b: [u1; 32] = exponent.to_le_bits();\n\n for i in 1..33 {\n r *= r;\n r = (b[32 - i] as Field) * (r * self) + (1 - b[32 - i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x `elem` {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n\n /// Convert a little endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_le_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n static_assert(\n N <= modulus_le_bytes().len(),\n \"N must be less than or equal to modulus_le_bytes().len()\",\n );\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[i] as Field) * v;\n v = v * 256;\n }\n result\n }\n\n /// Convert a big endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_be_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[N - 1 - i] as Field) * v;\n v = v * 256;\n }\n result\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n/// An unconstrained only built in to efficiently compare fields.\n#[builtin(field_less_than)]\nunconstrained fn __field_less_than(x: Field, y: Field) -> bool {}\n\npub(crate) unconstrained fn field_less_than(x: Field, y: Field) -> bool {\n __field_less_than(x, y)\n}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n if is_unconstrained() {\n // Safety: unconstrained context\n unsafe {\n field_less_than(x, y)\n }\n } else {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..32 {\n if (!done) {\n let x_byte = x_bytes[32 - 1 - i] as u8;\n let y_byte = y_bytes[32 - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n }\n}\n\nmod tests {\n use crate::{panic::panic, runtime};\n use super::field_less_than;\n\n #[test]\n // docs:start:to_be_bits_example\n fn test_to_be_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_be_bits();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 1, 0]);\n }\n // docs:end:to_be_bits_example\n\n #[test]\n // docs:start:to_le_bits_example\n fn test_to_le_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_le_bits();\n assert_eq(bits, [0, 1, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bits_example\n\n #[test]\n // docs:start:to_be_bytes_example\n fn test_to_be_bytes() {\n let field = 2;\n let bytes: [u8; 8] = field.to_be_bytes();\n assert_eq(bytes, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bytes), field);\n }\n // docs:end:to_be_bytes_example\n\n #[test]\n // docs:start:to_le_bytes_example\n fn test_to_le_bytes() {\n let field = 2;\n let bytes: [u8; 8] = field.to_le_bytes();\n assert_eq(bytes, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bytes), field);\n }\n // docs:end:to_le_bytes_example\n\n #[test]\n // docs:start:to_be_radix_example\n fn test_to_be_radix() {\n // 259, in base 256, big endian, is [1, 3].\n // i.e. 3 * 256^0 + 1 * 256^1\n let field = 259;\n\n // The radix (in this example, 256) must be a power of 2.\n // The length of the returned byte array can be specified to be\n // >= the amount of space needed.\n let bytes: [u8; 8] = field.to_be_radix(256);\n assert_eq(bytes, [0, 0, 0, 0, 0, 0, 1, 3]);\n assert_eq(Field::from_be_bytes::<8>(bytes), field);\n }\n // docs:end:to_be_radix_example\n\n #[test]\n // docs:start:to_le_radix_example\n fn test_to_le_radix() {\n // 259, in base 256, little endian, is [3, 1].\n // i.e. 3 * 256^0 + 1 * 256^1\n let field = 259;\n\n // The radix (in this example, 256) must be a power of 2.\n // The length of the returned byte array can be specified to be\n // >= the amount of space needed.\n let bytes: [u8; 8] = field.to_le_radix(256);\n assert_eq(bytes, [3, 1, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bytes), field);\n }\n // docs:end:to_le_radix_example\n\n #[test(should_fail_with = \"radix must be greater than 1\")]\n fn test_to_le_radix_1() {\n // this test should only fail in constrained mode\n if !runtime::is_unconstrained() {\n let field = 2;\n let _: [u8; 8] = field.to_le_radix(1);\n } else {\n panic(f\"radix must be greater than 1\");\n }\n }\n\n // TODO: Update this test to account for the Brillig restriction that the radix must be greater than 2\n //#[test]\n //fn test_to_le_radix_brillig_1() {\n // // this test should only fail in constrained mode\n // if runtime::is_unconstrained() {\n // let field = 1;\n // let out: [u8; 8] = field.to_le_radix(1);\n // crate::println(out);\n // let expected = [0; 8];\n // assert(out == expected, \"unexpected result\");\n // }\n //}\n\n #[test(should_fail_with = \"radix must be a power of 2\")]\n fn test_to_le_radix_3() {\n // this test should only fail in constrained mode\n if !runtime::is_unconstrained() {\n let field = 2;\n let _: [u8; 8] = field.to_le_radix(3);\n } else {\n panic(f\"radix must be a power of 2\");\n }\n }\n\n #[test]\n fn test_to_le_radix_brillig_3() {\n // this test should only fail in constrained mode\n if runtime::is_unconstrained() {\n let field = 1;\n let out: [u8; 8] = field.to_le_radix(3);\n let mut expected = [0; 8];\n expected[0] = 1;\n assert(out == expected, \"unexpected result\");\n }\n }\n\n #[test(should_fail_with = \"radix must be less than or equal to 256\")]\n fn test_to_le_radix_512() {\n // this test should only fail in constrained mode\n if !runtime::is_unconstrained() {\n let field = 2;\n let _: [u8; 8] = field.to_le_radix(512);\n } else {\n panic(f\"radix must be less than or equal to 256\")\n }\n }\n\n // TODO: Update this test to account for the Brillig restriction that the radix must be less than 512\n //#[test]\n //fn test_to_le_radix_brillig_512() {\n // // this test should only fail in constrained mode\n // if runtime::is_unconstrained() {\n // let field = 1;\n // let out: [u8; 8] = field.to_le_radix(512);\n // let mut expected = [0; 8];\n // expected[0] = 1;\n // assert(out == expected, \"unexpected result\");\n // }\n //}\n\n #[test]\n unconstrained fn test_field_less_than() {\n assert(field_less_than(0, 1));\n assert(field_less_than(0, 0x100));\n assert(field_less_than(0x100, 0 - 1));\n assert(!field_less_than(0 - 1, 0));\n }\n}\n"
|
|
6477
6568
|
},
|
|
6478
|
-
"
|
|
6569
|
+
"188": {
|
|
6479
6570
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/append.nr",
|
|
6480
6571
|
"source": "/// Appends two `BoundedVec`s together, returning one that contains all of the elements of the first one followed by all\n/// of the elements of the second one. The resulting `BoundedVec` can have any arbitrary maximum length, but it must be\n/// large enough to fit all of the elements of both the first and second vectors.\npub fn append<T, let A_LEN: u32, let B_LEN: u32, let DST_LEN: u32>(\n a: BoundedVec<T, A_LEN>,\n b: BoundedVec<T, B_LEN>,\n) -> BoundedVec<T, DST_LEN> {\n let mut dst = BoundedVec::new();\n\n dst.extend_from_bounded_vec(a);\n dst.extend_from_bounded_vec(b);\n\n dst\n}\n\nmod test {\n use super::append;\n\n #[test]\n unconstrained fn append_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::new();\n let b: BoundedVec<_, 14> = BoundedVec::new();\n\n let result: BoundedVec<Field, 5> = append(a, b);\n\n assert_eq(result.len(), 0);\n assert_eq(result.storage(), std::mem::zeroed());\n }\n\n #[test]\n unconstrained fn append_non_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let result: BoundedVec<Field, 8> = append(a, b);\n\n assert_eq(result.len(), 6);\n assert_eq(result.storage(), [1, 2, 3, 4, 5, 6, std::mem::zeroed(), std::mem::zeroed()]);\n }\n\n #[test(should_fail_with = \"out of bounds\")]\n unconstrained fn append_non_empty_vecs_insufficient_max_len() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let _: BoundedVec<Field, 5> = append(a, b);\n }\n}\n"
|
|
6481
6572
|
},
|
|
6482
|
-
"
|
|
6573
|
+
"189": {
|
|
6483
6574
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/collapse.nr",
|
|
6484
6575
|
"source": "/// Collapses an array of `Option`s with sparse `Some` values into a `BoundedVec`, essentially unwrapping the `Option`s\n/// and removing the `None` values.\n///\n/// For example, given:\n/// `input: [some(3), none(), some(1)]`\n/// this returns\n/// `collapsed: [3, 1]`\npub fn collapse<T, let N: u32>(input: [Option<T>; N]) -> BoundedVec<T, N>\nwhere\n T: Eq,\n{\n // Computing the collapsed BoundedVec would result in a very large number of constraints, since we'd need to loop\n // over the input array and conditionally write to a dynamic vec index, which is a very unfriendly pattern to the\n // proving backend.\n // Instead, we use an unconstrained function to produce the final collapsed array, along with some hints, and then\n // verify that the input and collapsed arrays are equivalent.\n\n // Safety: The hints are verified by the `verify_collapse_hints` function.\n let (collapsed, collapsed_to_input_index_mapping) = unsafe { get_collapse_hints(input) };\n verify_collapse_hints(input, collapsed, collapsed_to_input_index_mapping);\n collapsed\n}\n\nfn verify_collapse_hints<T, let N: u32>(\n input: [Option<T>; N],\n collapsed: BoundedVec<T, N>,\n collapsed_to_input_index_mapping: BoundedVec<u32, N>,\n)\nwhere\n T: Eq,\n{\n // collapsed should be a BoundedVec with all the non-none elements in input, in the same order. We need to lay down\n // multiple constraints to guarantee this.\n // First we check that the number of elements is correct\n let mut count = 0;\n for i in 0..N {\n if input[i].is_some() {\n count += 1;\n }\n }\n assert_eq(count, collapsed.len(), \"Wrong collapsed vec length\");\n\n // Then we check that all elements exist in the original array, and are in the same order. To do this we use the\n // auxiliary collapsed_to_input_index_mapping array, which at index n contains the index in the input array that\n // corresponds to the collapsed entry at index n.\n // Example:\n // - input: [some(3), none(), some(1)]\n // - collapsed: [3, 1]\n // - collapsed_to_input_index_mapping: [0, 2]\n // These two arrays should therefore have the same length.\n assert_eq(\n collapsed.len(),\n collapsed_to_input_index_mapping.len(),\n \"Collapse hint vec length mismatch\",\n );\n\n // We now look at each collapsed entry and check that there is a valid equal entry in the input array.\n let mut last_index = Option::none();\n for i in 0..N {\n if i < collapsed.len() {\n let input_index = collapsed_to_input_index_mapping.get_unchecked(i);\n assert(input_index < N, \"Out of bounds index hint\");\n\n assert_eq(\n collapsed.get_unchecked(i),\n input[input_index].unwrap(),\n \"Wrong collapsed vec content\",\n );\n\n // By requiring increasing input indices, we both guarantee that we're not looking at the same input\n // element more than once, and that we're going over them in the original order.\n if last_index.is_some() {\n assert(input_index > last_index.unwrap_unchecked(), \"Wrong collapsed vec order\");\n }\n last_index = Option::some(input_index);\n } else {\n // BoundedVec assumes that the unused parts of the storage are zeroed out (e.g. in the Eq impl), so we make\n // sure that this property holds.\n assert_eq(\n collapsed.get_unchecked(i),\n std::mem::zeroed(),\n \"Dirty collapsed vec storage\",\n );\n }\n }\n // We now know that:\n // - all values in the collapsed array exist in the input array\n // - the order of the collapsed values is the same as in the input array\n // - no input value is present more than once in the collapsed array\n // - the number of elements in the collapsed array is the same as in the input array.\n // Therefore, the collapsed array is correct.\n}\n\nunconstrained fn get_collapse_hints<T, let N: u32>(\n input: [Option<T>; N],\n) -> (BoundedVec<T, N>, BoundedVec<u32, N>) {\n let mut collapsed: BoundedVec<T, N> = BoundedVec::new();\n let mut collapsed_to_input_index_mapping: BoundedVec<u32, N> = BoundedVec::new();\n\n for i in 0..N {\n if input[i].is_some() {\n collapsed.push(input[i].unwrap_unchecked());\n collapsed_to_input_index_mapping.push(i);\n }\n }\n\n (collapsed, collapsed_to_input_index_mapping)\n}\n\nmod test {\n use super::{collapse, verify_collapse_hints};\n\n #[test]\n unconstrained fn collapse_empty_array() {\n let original: [Option<Field>; 2] = [Option::none(), Option::none()];\n let collapsed = collapse(original);\n\n assert_eq(collapsed.len(), 0);\n }\n\n #[test]\n unconstrained fn collapse_non_sparse_array() {\n let original = [Option::some(7), Option::some(3), Option::none()];\n let collapsed = collapse(original);\n\n assert_eq(collapsed.len(), 2);\n assert_eq(collapsed.get(0), 7);\n assert_eq(collapsed.get(1), 3);\n }\n\n #[test]\n unconstrained fn collapse_sparse_array() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n let collapsed = collapse(original);\n\n assert_eq(collapsed.len(), 2);\n assert_eq(collapsed.get(0), 7);\n assert_eq(collapsed.get(1), 3);\n }\n\n #[test]\n unconstrained fn collapse_front_padding() {\n let original =\n [Option::none(), Option::none(), Option::some(7), Option::none(), Option::some(3)];\n let collapsed = collapse(original);\n\n assert_eq(collapsed.len(), 2);\n assert_eq(collapsed.get(0), 7);\n assert_eq(collapsed.get(1), 3);\n }\n\n #[test]\n unconstrained fn collapse_back_padding() {\n let original =\n [Option::some(7), Option::none(), Option::some(3), Option::none(), Option::none()];\n let collapsed = collapse(original);\n\n assert_eq(collapsed.len(), 2);\n assert_eq(collapsed.get(0), 7);\n assert_eq(collapsed.get(1), 3);\n }\n\n #[test]\n unconstrained fn verify_collapse_hints_good_hints() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n let collapsed = BoundedVec::from_array([7, 3]);\n let collapsed_to_input_index_mapping = BoundedVec::from_array([0, 2]);\n\n verify_collapse_hints(original, collapsed, collapsed_to_input_index_mapping);\n }\n\n #[test(should_fail_with = \"Wrong collapsed vec length\")]\n unconstrained fn verify_collapse_hints_wrong_length() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n let collapsed = BoundedVec::from_array([7]);\n let collapsed_to_input_index_mapping = BoundedVec::from_array([0]);\n\n verify_collapse_hints(original, collapsed, collapsed_to_input_index_mapping);\n }\n\n #[test(should_fail_with = \"Collapse hint vec length mismatch\")]\n unconstrained fn verify_collapse_hints_hint_length_mismatch() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n let collapsed = BoundedVec::from_array([7, 3]);\n let collapsed_to_input_index_mapping = BoundedVec::from_array([0]);\n\n verify_collapse_hints(original, collapsed, collapsed_to_input_index_mapping);\n }\n\n #[test(should_fail_with = \"Out of bounds index hint\")]\n unconstrained fn verify_collapse_hints_out_of_bounds_index_hint() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n let collapsed = BoundedVec::from_array([7, 3]);\n let collapsed_to_input_index_mapping = BoundedVec::from_array([0, 5]);\n\n verify_collapse_hints(original, collapsed, collapsed_to_input_index_mapping);\n }\n\n #[test(should_fail)]\n unconstrained fn verify_collapse_hints_hint_to_none() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n let collapsed = BoundedVec::from_array([7, 0]);\n let collapsed_to_input_index_mapping = BoundedVec::from_array([0, 1]);\n\n verify_collapse_hints(original, collapsed, collapsed_to_input_index_mapping);\n }\n\n #[test(should_fail_with = \"Wrong collapsed vec content\")]\n unconstrained fn verify_collapse_hints_wrong_vec_content() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n let collapsed = BoundedVec::from_array([7, 42]);\n let collapsed_to_input_index_mapping = BoundedVec::from_array([0, 2]);\n\n verify_collapse_hints(original, collapsed, collapsed_to_input_index_mapping);\n }\n\n #[test(should_fail_with = \"Wrong collapsed vec order\")]\n unconstrained fn verify_collapse_hints_wrong_vec_order() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n let collapsed = BoundedVec::from_array([3, 7]);\n let collapsed_to_input_index_mapping = BoundedVec::from_array([2, 0]);\n\n verify_collapse_hints(original, collapsed, collapsed_to_input_index_mapping);\n }\n\n #[test(should_fail_with = \"Dirty collapsed vec storage\")]\n unconstrained fn verify_collapse_hints_dirty_storage() {\n let original = [Option::some(7), Option::none(), Option::some(3)];\n\n let mut collapsed: BoundedVec<u32, 3> = BoundedVec::from_array([7, 3]);\n // We have to use the unchecked setter as we're knowingly writing past the length, breaking its invariants.\n collapsed.set_unchecked(2, 1);\n\n let collapsed_to_input_index_mapping = BoundedVec::from_array([0, 2]);\n\n verify_collapse_hints(original, collapsed, collapsed_to_input_index_mapping);\n }\n\n}\n"
|
|
6485
6576
|
},
|
|
@@ -6487,39 +6578,39 @@
|
|
|
6487
6578
|
"path": "std/hash/mod.nr",
|
|
6488
6579
|
"source": "// Exposed only for usage in `std::meta`\npub(crate) mod poseidon2;\n\nuse crate::default::Default;\nuse crate::embedded_curve_ops::{\n EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_array_return,\n};\nuse crate::meta::derive_via;\n\n#[foreign(sha256_compression)]\n// docs:start:sha256_compression\npub fn sha256_compression(input: [u32; 16], state: [u32; 8]) -> [u32; 8] {}\n// docs:end:sha256_compression\n\n#[foreign(keccakf1600)]\n// docs:start:keccakf1600\npub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {}\n// docs:end:keccakf1600\n\npub mod keccak {\n #[deprecated(\"This function has been moved to std::hash::keccakf1600\")]\n pub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {\n super::keccakf1600(input)\n }\n}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[inline_always]\npub fn pedersen_commitment_with_separator<let N: u32>(\n input: [Field; N],\n separator: u32,\n) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[no_predicates]\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: [EmbeddedCurveScalar; N + 1] = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N + 1];\n let mut generators: [EmbeddedCurvePoint; N + 1] =\n [EmbeddedCurvePoint::point_at_infinity(); N + 1];\n let domain_generators: [EmbeddedCurvePoint; N] =\n derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n\n for i in 0..N {\n scalars[i] = from_field_unsafe(input[i]);\n generators[i] = domain_generators[i];\n }\n scalars[N] = EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field };\n\n let length_generator: [EmbeddedCurvePoint; 1] =\n derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n generators[N] = length_generator[0];\n multi_scalar_mul_array_return(generators, scalars)[0].x\n}\n\n#[field(bn254)]\n#[inline_always]\npub fn derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n// Same as from_field but:\n// does not assert the limbs are 128 bits\n// does not assert the decomposition does not overflow the EmbeddedCurveScalar\nfn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n // Safety: xlo and xhi decomposition is checked below\n let (xlo, xhi) = unsafe { crate::field::bn254::decompose_hint(scalar) };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: TypeDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(\n s,\n name,\n signature,\n for_each_field,\n quote {},\n |fields| fields,\n )\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher<H>\nwhere\n H: Hasher,\n{\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u128 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H)\n where\n H: Hasher,\n {}\n}\n\nimpl<T, let N: u32> Hash for [T; N]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B)\nwhere\n A: Hash,\n B: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1),\n 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f,\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1),\n EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false,\n },\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2),\n 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2),\n EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3),\n 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3),\n EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4),\n 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4),\n EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5),\n 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5),\n EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6),\n 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6),\n EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false,\n },\n );\n}\n"
|
|
6489
6580
|
},
|
|
6490
|
-
"
|
|
6581
|
+
"191": {
|
|
6491
6582
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
|
|
6492
6583
|
"source": "/// Returns `DST_LEN` elements from a source array, starting at `offset`. `DST_LEN` must not be larger than the number\n/// of elements past `offset`.\n///\n/// Examples:\n/// ```\n/// let foo: [Field; 2] = subarray([1, 2, 3, 4, 5], 2);\n/// assert_eq(foo, [3, 4]);\n///\n/// let bar: [Field; 5] = subarray([1, 2, 3, 4, 5], 2); // fails - we can't return 5 elements since only 3 remain\n/// ```\npub fn subarray<T, let SRC_LEN: u32, let DST_LEN: u32>(\n src: [T; SRC_LEN],\n offset: u32,\n) -> [T; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"DST_LEN too large for offset\");\n\n let mut dst: [T; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\nmod test {\n use super::subarray;\n\n #[test]\n unconstrained fn subarray_into_empty() {\n // In all of these cases we're setting DST_LEN to be 0, so we always get back an emtpy array.\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 2), []);\n }\n\n #[test]\n unconstrained fn subarray_complete() {\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), [1, 2, 3, 4, 5]);\n }\n\n #[test]\n unconstrained fn subarray_different_end_sizes() {\n // We implicitly select how many values to read in the size of the return array\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4, 5]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2]);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subarray_offset_too_large() {\n // With an offset of 1 we can only request up to 4 elements\n let _: [_; 5] = subarray([1, 2, 3, 4, 5], 1);\n }\n\n #[test(should_fail)]\n unconstrained fn subarray_bad_return_value() {\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [3, 3, 4, 5]);\n }\n}\n"
|
|
6493
6584
|
},
|
|
6494
|
-
"
|
|
6585
|
+
"192": {
|
|
6495
6586
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subbvec.nr",
|
|
6496
6587
|
"source": "use crate::utils::array;\n\n/// Returns `DST_MAX_LEN` elements from a source BoundedVec, starting at `offset`. `offset` must not be larger than the\n/// original length, and `DST_LEN` must not be larger than the total number of elements past `offset` (including the\n/// zeroed elements past `len()`).\n///\n/// Only elements at the beginning of the vector can be removed: it is not possible to also remove elements at the end\n/// of the vector by passing a value for `DST_LEN` that is smaller than `len() - offset`.\n///\n/// Examples:\n/// ```\n/// let foo = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n/// assert_eq(subbvec(foo, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n///\n/// let bar: BoundedVec<_, 1> = subbvec(foo, 2); // fails - we can't return just 1 element since 3 remain\n/// let baz: BoundedVec<_, 10> = subbvec(foo, 3); // fails - we can't return 10 elements since only 7 remain\n/// ```\npub fn subbvec<T, let SRC_MAX_LEN: u32, let DST_MAX_LEN: u32>(\n bvec: BoundedVec<T, SRC_MAX_LEN>,\n offset: u32,\n) -> BoundedVec<T, DST_MAX_LEN> {\n // from_parts_unchecked does not verify that the elements past len are zeroed, but that is not an issue in our case\n // because we're constructing the new storage array as a subarray of the original one (which should have zeroed\n // storage past len), guaranteeing correctness. This is because `subarray` does not allow extending arrays past\n // their original length.\n BoundedVec::from_parts_unchecked(array::subarray(bvec.storage(), offset), bvec.len() - offset)\n}\n\nmod test {\n use super::subbvec;\n\n #[test]\n unconstrained fn subbvec_empty() {\n let bvec = BoundedVec::<Field, 0>::from_array([]);\n assert_eq(subbvec(bvec, 0), bvec);\n }\n\n #[test]\n unconstrained fn subbvec_complete() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), bvec);\n\n let smaller_capacity = BoundedVec::<_, 5>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), smaller_capacity);\n }\n\n #[test]\n unconstrained fn subbvec_partial() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 3>::from_array([3, 4, 5]));\n }\n\n #[test]\n unconstrained fn subbvec_into_empty() {\n let bvec: BoundedVec<_, 10> = BoundedVec::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 5), BoundedVec::<_, 5>::from_array([]));\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_offset_past_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n let _: BoundedVec<_, 1> = subbvec(bvec, 6);\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_insufficient_dst_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // We're not providing enough space to hold all of the items inside the original BoundedVec. subbvec can cause\n // for the capacity to reduce, but not the length (other than by len - offset).\n let _: BoundedVec<_, 1> = subbvec(bvec, 2);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subbvec_dst_len_causes_enlarge() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // subbvec does not supprt capacity increases\n let _: BoundedVec<_, 11> = subbvec(bvec, 0);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subbvec_dst_len_too_large_for_offset() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // This effectively requests a capacity increase, since there'd be just one element plus the 5 empty slots,\n // which is less than 7.\n let _: BoundedVec<_, 7> = subbvec(bvec, 4);\n }\n}\n"
|
|
6497
6588
|
},
|
|
6498
|
-
"
|
|
6589
|
+
"194": {
|
|
6499
6590
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/bytes_to_fields.nr",
|
|
6500
6591
|
"source": "use std::static_assert;\n\n// These functions are used to facilitate the conversion of log ciphertext between byte and field representations.\n//\n// `bytes_to_fields` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `bytes_from_fields` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between bytes and fields when processing encrypted logs.\n\n/// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 whole\n/// bytes. Use `bytes_from_fields` to obtain the original bytes array.\n///\n/// The input bytes are chunked into chunks of 31 bytes. Each 31-byte chunk is viewed as big-endian, and is converted\n/// into a Field.\n/// For example, [1, 10, 3, ..., 0] (31 bytes) is encoded as [1 * 256^30 + 10 * 256^29 + 3 * 256^28 + ... + 0]\n/// Note: N must be a multiple of 31 bytes\npub fn bytes_to_fields<let N: u32>(bytes: [u8; N]) -> [Field; N / 31] {\n // Assert that N is a multiple of 31\n static_assert(N % 31 == 0, \"N must be a multiple of 31\");\n\n let mut fields = [0; N / 31];\n\n // Since N is a multiple of 31, we can simply process all chunks fully\n for i in 0..N / 31 {\n let mut field = 0;\n for j in 0..31 {\n // Shift the existing value left by 8 bits and add the new byte\n field = field * 256 + bytes[i * 31 + j] as Field;\n }\n fields[i] = field;\n }\n\n fields\n}\n\n/// Converts an input BoundedVec of fields into a BoundedVec of bytes in big-endian order. Arbitrary Field arrays\n/// are not allowed: this is assumed to be an array obtained via `bytes_to_fields`, i.e. one that actually represents\n/// bytes. To convert a Field array into bytes, use `fields_to_bytes`.\n///\n/// Each input field must contain at most 31 bytes (this is constrained to be so).\n/// Each field is converted into 31 big-endian bytes, and the resulting 31-byte chunks are concatenated\n/// back together in the order of the original fields.\npub fn bytes_from_fields<let N: u32>(fields: BoundedVec<Field, N>) -> BoundedVec<u8, N * 31> {\n let mut bytes = BoundedVec::new();\n\n for i in 0..fields.len() {\n let field = fields.get(i);\n\n // We expect that the field contains at most 31 bytes of information.\n field.assert_max_bit_size::<248>();\n\n // Now we can safely convert the field to 31 bytes.\n let field_as_bytes: [u8; 31] = field.to_be_bytes();\n\n for j in 0..31 {\n bytes.push(field_as_bytes[j]);\n }\n }\n\n bytes\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{bytes_from_fields, bytes_to_fields};\n\n #[test]\n unconstrained fn random_bytes_to_fields_and_back(input: [u8; 93]) {\n let fields = bytes_to_fields(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end.\n // So we need to convert the field array to a BoundedVec to be able to feed it to the `bytes_from_fields`\n // function.\n let fields_as_bounded_vec = BoundedVec::<_, 6>::from_array(fields);\n\n let bytes_back = bytes_from_fields(fields_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(bytes_back.len(), input.len());\n assert_eq(subarray(bytes_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"N must be a multiple of 31\")]\n unconstrained fn bytes_to_fields_input_length_not_multiple_of_31() {\n // Try to convert 32 bytes (not a multiple of 31) to fields\n let _fields = bytes_to_fields([0; 32]);\n }\n\n}\n"
|
|
6501
6592
|
},
|
|
6502
|
-
"
|
|
6593
|
+
"195": {
|
|
6503
6594
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/fields_to_bytes.nr",
|
|
6504
6595
|
"source": "// These functions are used to facilitate the conversion of log plaintext represented as fields into bytes and back.\n//\n// `fields_to_bytes` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `fields_from_bytes` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between fields and bytes.\n\n/// Converts an input array of fields into a single array of bytes. Use `fields_from_bytes` to obtain the original\n/// field array.\n/// Each field is converted to a 32-byte big-endian array.\n///\n/// For example, if you have a field array [123, 456], it will be converted to a 64-byte array:\n/// [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123, // First field (32 bytes)\n/// 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,200] // Second field (32 bytes)\n///\n/// Since a field is ~254 bits, you'll end up with a subtle 2-bit \"gap\" at the big end, every 32 bytes. Be careful\n/// that such a gap doesn't leak information! This could happen if you for example expected the output to be\n/// indistinguishable from random bytes.\npub fn fields_to_bytes<let N: u32>(fields: [Field; N]) -> [u8; 32 * N] {\n let mut bytes = [0; 32 * N];\n\n for i in 0..N {\n let field_as_bytes: [u8; 32] = fields[i].to_be_bytes();\n\n for j in 0..32 {\n bytes[i * 32 + j] = field_as_bytes[j];\n }\n }\n\n bytes\n}\n\n/// Converts an input BoundedVec of bytes into a BoundedVec of fields. Arbitrary byte arrays are not allowed: this\n/// is assumed to be an array obtained via `fields_to_bytes`, i.e. one that actually represents fields. To convert\n/// a byte array into Fields, use `bytes_to_fields`.\n///\n/// The input bytes are chunked into chunks of 32 bytes. Each 32-byte chunk is viewed as big-endian, and is converted\n/// into a Field.\n/// For example, [1, 10, 3, ..., 0] (32 bytes) is encoded as [1 * 256^31 + 10 * 256^30 + 3 * 256^29 + ... + 0]\n/// Note 1: N must be a multiple of 32 bytes\n/// Note 2: The max value check code was taken from std::field::to_be_bytes function.\npub fn fields_from_bytes<let N: u32>(bytes: BoundedVec<u8, N>) -> BoundedVec<Field, N / 32> {\n // Assert that input length is a multiple of 32\n assert(bytes.len() % 32 == 0, \"Input length must be a multiple of 32\");\n\n let mut fields = BoundedVec::new();\n\n let p = std::field::modulus_be_bytes();\n\n // Since input length is a multiple of 32, we can simply process all chunks fully\n for i in 0..bytes.len() / 32 {\n let mut field = 0;\n\n // Process each byte in the 32-byte chunk\n let mut ok = false;\n\n for j in 0..32 {\n let next_byte = bytes.get(i * 32 + j);\n field = field * 256 + next_byte as Field;\n\n if !ok {\n if next_byte != p[j] {\n assert(next_byte < p[j], \"Value does not fit in field\");\n ok = true;\n }\n }\n }\n assert(ok, \"Value does not fit in field\");\n\n fields.push(field);\n }\n\n fields\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{fields_from_bytes, fields_to_bytes};\n\n #[test]\n unconstrained fn random_fields_to_bytes_and_back(input: [Field; 3]) {\n // Convert to bytes\n let bytes = fields_to_bytes(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end.\n // So we need to convert the field array to a BoundedVec to be able to feed it to the `fields_from_bytes`\n // function.\n // 113 is an arbitrary max length that is larger than the input length of 96.\n let bytes_as_bounded_vec = BoundedVec::<_, 113>::from_array(bytes);\n\n // Convert back to fields\n let fields_back = fields_from_bytes(bytes_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(fields_back.len(), input.len());\n assert_eq(subarray(fields_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"Input length must be a multiple of 32\")]\n unconstrained fn to_fields_assert() {\n // 143 is an arbitrary max length that is larger than 33\n let input = BoundedVec::<_, 143>::from_array([\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33,\n ]);\n\n // This should fail since 33 is not a multiple of 32\n let _fields = fields_from_bytes(input);\n }\n\n #[test]\n unconstrained fn fields_from_bytes_max_value() {\n let max_field_as_bytes: [u8; 32] = (-1).to_be_bytes();\n let input = BoundedVec::<_, 32>::from_array(max_field_as_bytes);\n\n let fields = fields_from_bytes(input);\n\n // The result should be a largest value storable in a field (-1 since we are modulo-ing)\n assert_eq(fields.get(0), -1);\n }\n\n // In this test we verify that overflow check works by taking the max allowed value, bumping a random byte\n // and then feeding it to `fields_from_bytes` as input.\n #[test(should_fail_with = \"Value does not fit in field\")]\n unconstrained fn fields_from_bytes_overflow(random_value: u8) {\n let index_of_byte_to_bump = random_value % 32;\n\n // Obtain the byte representation of the maximum field value\n let max_field_value_as_bytes: [u8; 32] = (-1).to_be_bytes();\n\n let byte_to_bump = max_field_value_as_bytes[index_of_byte_to_bump as u32];\n\n // Skip test execution if the selected byte is already at maximum value (255).\n // This is acceptable since we are using fuzz testing to generate many test cases.\n if byte_to_bump != 255 {\n let mut input = BoundedVec::<_, 32>::from_array(max_field_value_as_bytes);\n\n // Increment the selected byte to exceed the field's maximum value\n input.set(index_of_byte_to_bump as u32, byte_to_bump + 1);\n\n // Attempt the conversion, which should fail due to the value exceeding the field's capacity\n let _fields = fields_from_bytes(input);\n }\n }\n\n}\n"
|
|
6505
6596
|
},
|
|
6506
|
-
"
|
|
6597
|
+
"197": {
|
|
6507
6598
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/field.nr",
|
|
6508
6599
|
"source": "use std::option::Option;\n\nglobal KNOWN_NON_RESIDUE: Field = 5; // This is a non-residue in Noir's native Field.\n\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n\n// Power function of two Field arguments of arbitrary size.\n// Adapted from std::field::pow_32.\npub fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n\n// Boolean indicating whether Field element is a square, i.e. whether there exists a y in Field s.t. x = y*y.\nunconstrained fn is_square(x: Field) -> bool {\n let v = pow(x, -1 / 2);\n v * (v - 1) == 0\n}\n\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\nunconstrained fn tonelli_shanks_sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\n// NB: this doesn't return an option, because in the case of there _not_ being a square root, we still want to return a field element that allows us to then assert in the _constrained_ sqrt function that there is no sqrt.\npub unconstrained fn __sqrt(x: Field) -> (bool, Field) {\n let is_sq = is_square(x);\n if is_sq {\n let sqrt = tonelli_shanks_sqrt(x);\n (true, sqrt)\n } else {\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // sq * sq = sq // 1 * 1 = 1\n // non-sq * non-sq = sq // -1 * -1 = 1\n // sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n let not_sqrt = tonelli_shanks_sqrt(demo_x_not_square);\n (false, not_sqrt)\n }\n}\n\n// Returns (false, 0) if there is no square root.\n// Returns (true, sqrt) if there is a square root.\npub fn sqrt(x: Field) -> Option<Field> {\n // Safety: if the hint returns the square root of x, then we simply square it\n // check the result equals x. If x is not square, we return a value that\n // enables us to prove that fact (see the `else` clause below).\n let (is_sq, maybe_sqrt) = unsafe { __sqrt(x) };\n\n if is_sq {\n let sqrt = maybe_sqrt;\n validate_sqrt_hint(x, sqrt);\n Option::some(sqrt)\n } else {\n let not_sqrt_hint = maybe_sqrt;\n validate_not_sqrt_hint(x, not_sqrt_hint);\n Option::none()\n }\n}\n\nfn validate_sqrt_hint(x: Field, hint: Field) {\n assert(hint * hint == x, f\"The claimed_sqrt {hint} is not the sqrt of x {x}\");\n}\n\nfn validate_not_sqrt_hint(x: Field, hint: Field) {\n // We need this assertion, because x = 0 would pass the other assertions in this\n // function, and we don't want people to be able to prove that 0 is not square!\n assert(x != 0, \"0 has a square root; you cannot claim it is not square\");\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n //\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // 1. sq * sq = sq // 1 * 1 = 1\n // 2. non-sq * non-sq = sq // -1 * -1 = 1\n // 3. sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n //\n // We want to demonstrate that this below multiplication falls under bullet-point (2):\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n // I.e. we want to demonstrate that `demo_x_not_square` has Legendre symbol 1\n // (i.e. that it is a square), so we prove that it is square below.\n // Why do we want to prove that it has LS 1?\n // Well, since it was computed with a known-non-residue, its squareness implies we're\n // in case 2 (something multiplied by a known-non-residue yielding a result which\n // has a LS of 1), which implies that x must be a non-square. The unconstrained\n // function gave us the sqrt of demo_x_not_square, so all we need to do is\n // assert its squareness:\n assert(\n hint * hint == demo_x_not_square,\n f\"The hint {hint} does not demonstrate that {x} is not a square\",\n );\n}\n\n#[test]\nfn test_sqrt() {\n let x = 9;\n let maybe_sqrt = sqrt(x);\n assert(maybe_sqrt.is_some());\n let sqrt = maybe_sqrt.unwrap_unchecked();\n assert((sqrt == 3) | (sqrt == -3));\n}\n\n#[test]\nfn test_non_square() {\n let x = 5;\n let maybe_sqrt = sqrt(x);\n assert(maybe_sqrt.is_none());\n}\n\n#[test]\nunconstrained fn test_known_non_residue_is_actually_a_non_residue_in_the_field() {\n assert(!is_square(KNOWN_NON_RESIDUE));\n}\n\n#[test]\nfn test_sqrt_0() {\n let x = 0;\n let sqrt = sqrt(x).unwrap();\n assert(sqrt == 0);\n}\n\n#[test]\nfn test_sqrt_1() {\n let x = 1;\n let sqrt = sqrt(x).unwrap();\n assert((sqrt == 1) | (sqrt == -1));\n}\n\n#[test(should_fail_with = \"The claimed_sqrt 0x04 is not the sqrt of x 0x09\")]\nfn test_bad_sqrt_hint_fails() {\n validate_sqrt_hint(9, 4);\n}\n\n#[test(should_fail_with = \"The hint 0x04 does not demonstrate that 0x0a is not a square\")]\nfn test_bad_not_sqrt_hint_fails() {\n validate_not_sqrt_hint(10, 4);\n}\n\n#[test(should_fail_with = \"0 has a square root; you cannot claim it is not square\")]\nfn test_0_not_sqrt_hint_fails() {\n validate_not_sqrt_hint(0, 0);\n}\n\n#[test]\nunconstrained fn test_is_square() {\n assert(is_square(25));\n}\n\n#[test]\nunconstrained fn test_is_not_square() {\n assert(!is_square(10));\n}\n"
|
|
6509
6600
|
},
|
|
6510
|
-
"
|
|
6601
|
+
"199": {
|
|
6511
6602
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/point.nr",
|
|
6512
6603
|
"source": "use crate::utils::field::sqrt;\nuse dep::protocol_types::point::Point;\n\n// I am storing the modulus minus 1 divided by 2 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field =\n 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a point to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(p: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!p.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result: [u8; 32] = p.x.to_be_bytes();\n\n if get_sign_of_point(p) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result\n}\n\n/**\n * Returns: true if p.y <= MOD_DIV_2, else false.\n */\npub fn get_sign_of_point(p: Point) -> bool {\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n !BN254_FR_MODULUS_DIV_2.lt(p.y)\n}\n\npub fn point_from_x_coord(x: Field) -> Point {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n let y = sqrt(rhs).unwrap();\n Point { x, y, is_infinite: false }\n}\n\n/// Uses the x coordinate and sign flag (+/-) to reconstruct the point.\n/// The y coordinate can be derived from the x coordinate and the \"sign\" flag by solving the grumpkin curve\n/// equation for y.\n/// @param x - The x coordinate of the point\n/// @param sign - The \"sign\" of the y coordinate - determines whether y <= (Fr.MODULUS - 1) / 2\npub fn point_from_x_coord_and_sign(x: Field, sign: bool) -> Point {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n let y = sqrt(rhs).unwrap();\n\n // If y > MOD_DIV_2 and we want positive sign (or vice versa), negate y\n let y_is_positive = !BN254_FR_MODULUS_DIV_2.lt(y);\n let final_y = if y_is_positive == sign { y } else { -y };\n\n Point { x, y: final_y, is_infinite: false }\n}\n\nmod test {\n use crate::utils::point::{point_from_x_coord_and_sign, point_to_bytes};\n use dep::protocol_types::point::Point;\n\n #[test]\n unconstrained fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122,\n 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115,\n ];\n assert_eq(expected_compressed_point_positive_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169,\n 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181,\n ];\n\n assert_eq(expected_compressed_point_negative_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_and_sign() {\n // Test positive y coordinate\n let x = 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73;\n let sign = true;\n let p = point_from_x_coord_and_sign(x, sign);\n\n assert_eq(p.x, x);\n assert_eq(p.y, 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a);\n assert_eq(p.is_infinite, false);\n\n // Test negative y coordinate\n let x2 = 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5;\n let sign2 = false;\n let p2 = point_from_x_coord_and_sign(x2, sign2);\n\n assert_eq(p2.x, x2);\n assert_eq(p2.y, 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0);\n assert_eq(p2.is_infinite, false);\n }\n}\n"
|
|
6513
6604
|
},
|
|
6514
|
-
"
|
|
6605
|
+
"200": {
|
|
6515
6606
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/random.nr",
|
|
6516
6607
|
"source": "use crate::oracle::random::random;\n\n/// Returns as many random bytes as specified through N.\npub unconstrained fn get_random_bytes<let N: u32>() -> [u8; N] {\n let mut bytes = [0; N];\n let mut idx = 32;\n let mut randomness = [0; 32];\n for i in 0..N {\n if idx == 32 {\n randomness = random().to_be_bytes();\n idx = 1; // Skip the first byte as it's always 0.\n }\n bytes[i] = randomness[idx];\n idx += 1;\n }\n bytes\n}\n"
|
|
6517
6608
|
},
|
|
6518
|
-
"
|
|
6609
|
+
"210": {
|
|
6519
6610
|
"path": "/home/aztec-dev/nargo/github.com/noir-lang/poseidon/v0.1.0/src/poseidon2.nr",
|
|
6520
6611
|
"source": "use std::default::Default;\nuse std::hash::Hasher;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"
|
|
6521
6612
|
},
|
|
6522
|
-
"
|
|
6613
|
+
"227": {
|
|
6523
6614
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/abis/event_selector.nr",
|
|
6524
6615
|
"source": "use crate::traits::{Deserialize, Empty, FromField, Serialize, ToField};\n\npub struct EventSelector {\n // 1st 4-bytes (big-endian leftmost) of abi-encoding of an event.\n inner: u32,\n}\n\nimpl Eq for EventSelector {\n fn eq(self, other: EventSelector) -> bool {\n other.inner == self.inner\n }\n}\n\nimpl Serialize<1> for EventSelector {\n fn serialize(self: Self) -> [Field; 1] {\n [self.inner as Field]\n }\n}\n\nimpl Deserialize<1> for EventSelector {\n fn deserialize(fields: [Field; 1]) -> Self {\n Self { inner: fields[0] as u32 }\n }\n}\n\nimpl FromField for EventSelector {\n fn from_field(field: Field) -> Self {\n Self { inner: field as u32 }\n }\n}\n\nimpl ToField for EventSelector {\n fn to_field(self) -> Field {\n self.inner as Field\n }\n}\n\nimpl Empty for EventSelector {\n fn empty() -> Self {\n Self { inner: 0 as u32 }\n }\n}\n\nimpl EventSelector {\n pub fn from_u32(value: u32) -> Self {\n Self { inner: value }\n }\n\n pub fn from_signature<let N: u32>(signature: str<N>) -> Self {\n let bytes = signature.as_bytes();\n let hash = crate::hash::poseidon2_hash_bytes(bytes);\n\n // `hash` is automatically truncated to fit within 32 bits.\n EventSelector::from_field(hash)\n }\n\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n}\n"
|
|
6525
6616
|
},
|
|
@@ -6527,71 +6618,71 @@
|
|
|
6527
6618
|
"path": "std/meta/expr.nr",
|
|
6528
6619
|
"source": "//! Contains methods on the built-in `Expr` type for quoted, syntactically valid expressions.\n\nuse crate::meta::op::BinaryOp;\nuse crate::meta::op::UnaryOp;\nuse crate::option::Option;\n\nimpl Expr {\n /// If this expression is an array literal `[elem1, ..., elemN]`, this returns a slice of each element in the array.\n #[builtin(expr_as_array)]\n // docs:start:as_array\n pub comptime fn as_array(self) -> Option<[Expr]> {}\n // docs:end:as_array\n\n /// If this expression is an assert, this returns the assert expression and the optional message.\n #[builtin(expr_as_assert)]\n // docs:start:as_assert\n pub comptime fn as_assert(self) -> Option<(Expr, Option<Expr>)> {}\n // docs:end:as_assert\n\n /// If this expression is an assert_eq, this returns the left-hand-side and right-hand-side\n /// expressions, together with the optional message.\n #[builtin(expr_as_assert_eq)]\n // docs:start:as_assert_eq\n pub comptime fn as_assert_eq(self) -> Option<(Expr, Expr, Option<Expr>)> {}\n // docs:end:as_assert_eq\n\n /// If this expression is an assignment, this returns a tuple with the left hand side\n /// and right hand side in order.\n #[builtin(expr_as_assign)]\n // docs:start:as_assign\n pub comptime fn as_assign(self) -> Option<(Expr, Expr)> {}\n // docs:end:as_assign\n\n /// If this expression is a binary operator operation `<lhs> <op> <rhs>`,\n /// return the left-hand side, operator, and the right-hand side of the operation.\n #[builtin(expr_as_binary_op)]\n // docs:start:as_binary_op\n pub comptime fn as_binary_op(self) -> Option<(Expr, BinaryOp, Expr)> {}\n // docs:end:as_binary_op\n\n /// If this expression is a block `{ stmt1; stmt2; ...; stmtN }`, return\n /// a slice containing each statement.\n #[builtin(expr_as_block)]\n // docs:start:as_block\n pub comptime fn as_block(self) -> Option<[Expr]> {}\n // docs:end:as_block\n\n /// If this expression is a boolean literal, return that literal.\n #[builtin(expr_as_bool)]\n // docs:start:as_bool\n pub comptime fn as_bool(self) -> Option<bool> {}\n // docs:end:as_bool\n\n /// If this expression is a cast expression `expr as type`, returns the casted\n /// expression and the type to cast to.\n // docs:start:as_cast\n #[builtin(expr_as_cast)]\n pub comptime fn as_cast(self) -> Option<(Expr, UnresolvedType)> {}\n // docs:end:as_cast\n\n /// If this expression is a `comptime { stmt1; stmt2; ...; stmtN }` block,\n /// return each statement in the block.\n #[builtin(expr_as_comptime)]\n // docs:start:as_comptime\n pub comptime fn as_comptime(self) -> Option<[Expr]> {}\n // docs:end:as_comptime\n\n /// If this expression is a constructor `Type { field1: expr1, ..., fieldN: exprN }`,\n /// return the type and the fields.\n #[builtin(expr_as_constructor)]\n // docs:start:as_constructor\n pub comptime fn as_constructor(self) -> Option<(UnresolvedType, [(Quoted, Expr)])> {}\n // docs:end:as_constructor\n\n /// If this expression is a for statement over a single expression, return the identifier,\n /// the expression and the for loop body.\n #[builtin(expr_as_for)]\n // docs:start:as_for\n pub comptime fn as_for(self) -> Option<(Quoted, Expr, Expr)> {}\n // docs:end:as_for\n\n /// If this expression is a for statement over a range, return the identifier,\n /// the range start, the range end and the for loop body.\n #[builtin(expr_as_for_range)]\n // docs:start:as_for_range\n pub comptime fn as_for_range(self) -> Option<(Quoted, Expr, Expr, Expr)> {}\n // docs:end:as_for_range\n\n /// If this expression is a function call `foo(arg1, ..., argN)`, return\n /// the function and a slice of each argument.\n #[builtin(expr_as_function_call)]\n // docs:start:as_function_call\n pub comptime fn as_function_call(self) -> Option<(Expr, [Expr])> {}\n // docs:end:as_function_call\n\n /// If this expression is an `if condition { then_branch } else { else_branch }`,\n /// return the condition, then branch, and else branch. If there is no else branch,\n /// `None` is returned for that branch instead.\n #[builtin(expr_as_if)]\n // docs:start:as_if\n pub comptime fn as_if(self) -> Option<(Expr, Expr, Option<Expr>)> {}\n // docs:end:as_if\n\n /// If this expression is an index into an array `array[index]`, return the\n /// array and the index.\n #[builtin(expr_as_index)]\n // docs:start:as_index\n pub comptime fn as_index(self) -> Option<(Expr, Expr)> {}\n // docs:end:as_index\n\n /// If this expression is an integer literal, return the integer as a field\n /// as well as whether the integer is negative (true) or not (false).\n #[builtin(expr_as_integer)]\n // docs:start:as_integer\n pub comptime fn as_integer(self) -> Option<(Field, bool)> {}\n // docs:end:as_integer\n\n /// If this expression is a lambda, returns the parameters, return type and body.\n #[builtin(expr_as_lambda)]\n // docs:start:as_lambda\n pub comptime fn as_lambda(\n self,\n ) -> Option<([(Expr, Option<UnresolvedType>)], Option<UnresolvedType>, Expr)> {}\n // docs:end:as_lambda\n\n /// If this expression is a let statement, returns the let pattern as an `Expr`,\n /// the optional type annotation, and the assigned expression.\n #[builtin(expr_as_let)]\n // docs:start:as_let\n pub comptime fn as_let(self) -> Option<(Expr, Option<UnresolvedType>, Expr)> {}\n // docs:end:as_let\n\n /// If this expression is a member access `foo.bar`, return the struct/tuple\n /// expression and the field. The field will be represented as a quoted value.\n #[builtin(expr_as_member_access)]\n // docs:start:as_member_access\n pub comptime fn as_member_access(self) -> Option<(Expr, Quoted)> {}\n // docs:end:as_member_access\n\n /// If this expression is a method call `foo.bar::<generic1, ..., genericM>(arg1, ..., argN)`, return\n /// the receiver, method name, a slice of each generic argument, and a slice of each argument.\n #[builtin(expr_as_method_call)]\n // docs:start:as_method_call\n pub comptime fn as_method_call(self) -> Option<(Expr, Quoted, [UnresolvedType], [Expr])> {}\n // docs:end:as_method_call\n\n /// If this expression is a repeated element array `[elem; length]`, return\n /// the repeated element and the length expressions.\n #[builtin(expr_as_repeated_element_array)]\n // docs:start:as_repeated_element_array\n pub comptime fn as_repeated_element_array(self) -> Option<(Expr, Expr)> {}\n // docs:end:as_repeated_element_array\n\n /// If this expression is a repeated element slice `[elem; length]`, return\n /// the repeated element and the length expressions.\n #[builtin(expr_as_repeated_element_slice)]\n // docs:start:as_repeated_element_slice\n pub comptime fn as_repeated_element_slice(self) -> Option<(Expr, Expr)> {}\n // docs:end:as_repeated_element_slice\n\n /// If this expression is a slice literal `&[elem1, ..., elemN]`,\n /// return each element of the slice.\n #[builtin(expr_as_slice)]\n // docs:start:as_slice\n pub comptime fn as_slice(self) -> Option<[Expr]> {}\n // docs:end:as_slice\n\n /// If this expression is a tuple `(field1, ..., fieldN)`,\n /// return each element of the tuple.\n #[builtin(expr_as_tuple)]\n // docs:start:as_tuple\n pub comptime fn as_tuple(self) -> Option<[Expr]> {}\n // docs:end:as_tuple\n\n /// If this expression is a unary operation `<op> <rhs>`,\n /// return the unary operator as well as the right-hand side expression.\n #[builtin(expr_as_unary_op)]\n // docs:start:as_unary_op\n pub comptime fn as_unary_op(self) -> Option<(UnaryOp, Expr)> {}\n // docs:end:as_unary_op\n\n /// If this expression is an `unsafe { stmt1; ...; stmtN }` block,\n /// return each statement inside in a slice.\n #[builtin(expr_as_unsafe)]\n // docs:start:as_unsafe\n pub comptime fn as_unsafe(self) -> Option<[Expr]> {}\n // docs:end:as_unsafe\n\n /// Returns `true` if this expression is trailed by a semicolon.\n ///\n /// Example:\n ///\n /// ```noir\n /// comptime {\n /// let expr1 = quote { 1 + 2 }.as_expr().unwrap();\n /// let expr2 = quote { 1 + 2; }.as_expr().unwrap();\n ///\n /// assert(expr1.as_binary_op().is_some());\n /// assert(expr2.as_binary_op().is_some());\n ///\n /// assert(!expr1.has_semicolon());\n /// assert(expr2.has_semicolon());\n /// }\n /// ```\n #[builtin(expr_has_semicolon)]\n // docs:start:has_semicolon\n pub comptime fn has_semicolon(self) -> bool {}\n // docs:end:has_semicolon\n\n /// Returns `true` if this expression is `break`.\n #[builtin(expr_is_break)]\n // docs:start:is_break\n pub comptime fn is_break(self) -> bool {}\n // docs:end:is_break\n\n /// Returns `true` if this expression is `continue`.\n #[builtin(expr_is_continue)]\n // docs:start:is_continue\n pub comptime fn is_continue(self) -> bool {}\n // docs:end:is_continue\n\n /// Applies a mapping function to this expression and to all of its sub-expressions.\n /// `f` will be applied to each sub-expression first, then applied to the expression itself.\n ///\n /// This happens recursively for every expression within `self`.\n ///\n /// For example, calling `modify` on `(&[1], &[2, 3])` with an `f` that returns `Option::some`\n /// for expressions that are integers, doubling them, would return `(&[2], &[4, 6])`.\n // docs:start:modify\n pub comptime fn modify<Env>(self, f: fn[Env](Expr) -> Option<Expr>) -> Expr {\n // docs:end:modify\n let result = modify_array(self, f);\n let result = result.or_else(|| modify_assert(self, f));\n let result = result.or_else(|| modify_assert_eq(self, f));\n let result = result.or_else(|| modify_assign(self, f));\n let result = result.or_else(|| modify_binary_op(self, f));\n let result = result.or_else(|| modify_block(self, f));\n let result = result.or_else(|| modify_cast(self, f));\n let result = result.or_else(|| modify_comptime(self, f));\n let result = result.or_else(|| modify_constructor(self, f));\n let result = result.or_else(|| modify_if(self, f));\n let result = result.or_else(|| modify_index(self, f));\n let result = result.or_else(|| modify_for(self, f));\n let result = result.or_else(|| modify_for_range(self, f));\n let result = result.or_else(|| modify_lambda(self, f));\n let result = result.or_else(|| modify_let(self, f));\n let result = result.or_else(|| modify_function_call(self, f));\n let result = result.or_else(|| modify_member_access(self, f));\n let result = result.or_else(|| modify_method_call(self, f));\n let result = result.or_else(|| modify_repeated_element_array(self, f));\n let result = result.or_else(|| modify_repeated_element_slice(self, f));\n let result = result.or_else(|| modify_slice(self, f));\n let result = result.or_else(|| modify_tuple(self, f));\n let result = result.or_else(|| modify_unary_op(self, f));\n let result = result.or_else(|| modify_unsafe(self, f));\n if result.is_some() {\n let result = result.unwrap_unchecked();\n let modified = f(result);\n modified.unwrap_or(result)\n } else {\n f(self).unwrap_or(self)\n }\n }\n\n /// Returns this expression as a `Quoted` value. It's the same as `quote { $self }`.\n // docs:start:quoted\n pub comptime fn quoted(self) -> Quoted {\n // docs:end:quoted\n quote { $self }\n }\n\n /// Resolves and type-checks this expression and returns the result as a `TypedExpr`.\n ///\n /// The `in_function` argument specifies where the expression is resolved:\n /// - If it's `none`, the expression is resolved in the function where `resolve` was called\n /// - If it's `some`, the expression is resolved in the given function\n ///\n /// If any names used by this expression are not in scope or if there are any type errors,\n /// this will give compiler errors as if the expression was written directly into\n /// the current `comptime` function.\n #[builtin(expr_resolve)]\n // docs:start:resolve\n pub comptime fn resolve(self, in_function: Option<FunctionDefinition>) -> TypedExpr {}\n // docs:end:resolve\n}\n\ncomptime fn modify_array<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_array().map(|exprs| {\n let exprs = modify_expressions(exprs, f);\n new_array(exprs)\n })\n}\n\ncomptime fn modify_assert<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_assert().map(|(predicate, msg)| {\n let predicate = predicate.modify(f);\n let msg = msg.map(|msg| msg.modify(f));\n new_assert(predicate, msg)\n })\n}\n\ncomptime fn modify_assert_eq<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_assert_eq().map(|(lhs, rhs, msg)| {\n let lhs = lhs.modify(f);\n let rhs = rhs.modify(f);\n let msg = msg.map(|msg| msg.modify(f));\n new_assert_eq(lhs, rhs, msg)\n })\n}\n\ncomptime fn modify_assign<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_assign().map(|expr| {\n let (lhs, rhs) = expr;\n let lhs = lhs.modify(f);\n let rhs = rhs.modify(f);\n new_assign(lhs, rhs)\n })\n}\n\ncomptime fn modify_binary_op<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_binary_op().map(|(lhs, op, rhs)| {\n let lhs = lhs.modify(f);\n let rhs = rhs.modify(f);\n new_binary_op(lhs, op, rhs)\n })\n}\n\ncomptime fn modify_block<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_block().map(|exprs| {\n let exprs = modify_expressions(exprs, f);\n new_block(exprs)\n })\n}\n\ncomptime fn modify_cast<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_cast().map(|(expr, typ)| {\n let expr = expr.modify(f);\n new_cast(expr, typ)\n })\n}\n\ncomptime fn modify_comptime<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_comptime().map(|exprs| {\n let exprs = exprs.map(|expr| expr.modify(f));\n new_comptime(exprs)\n })\n}\n\ncomptime fn modify_constructor<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_constructor().map(|(typ, fields)| {\n let fields = fields.map(|(name, value)| (name, value.modify(f)));\n new_constructor(typ, fields)\n })\n}\n\ncomptime fn modify_function_call<Env>(\n expr: Expr,\n f: fn[Env](Expr) -> Option<Expr>,\n) -> Option<Expr> {\n expr.as_function_call().map(|(function, arguments)| {\n let function = function.modify(f);\n let arguments = arguments.map(|arg| arg.modify(f));\n new_function_call(function, arguments)\n })\n}\n\ncomptime fn modify_if<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_if().map(|(condition, consequence, alternative)| {\n let condition = condition.modify(f);\n let consequence = consequence.modify(f);\n let alternative = alternative.map(|alternative| alternative.modify(f));\n new_if(condition, consequence, alternative)\n })\n}\n\ncomptime fn modify_index<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_index().map(|(object, index)| {\n let object = object.modify(f);\n let index = index.modify(f);\n new_index(object, index)\n })\n}\n\ncomptime fn modify_for<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_for().map(|(identifier, array, body)| {\n let array = array.modify(f);\n let body = body.modify(f);\n new_for(identifier, array, body)\n })\n}\n\ncomptime fn modify_for_range<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_for_range().map(|(identifier, from, to, body)| {\n let from = from.modify(f);\n let to = to.modify(f);\n let body = body.modify(f);\n new_for_range(identifier, from, to, body)\n })\n}\n\ncomptime fn modify_lambda<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_lambda().map(|(params, return_type, body)| {\n let params = params.map(|(name, typ)| (name.modify(f), typ));\n let body = body.modify(f);\n new_lambda(params, return_type, body)\n })\n}\n\ncomptime fn modify_let<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_let().map(|(pattern, typ, expr)| {\n let pattern = pattern.modify(f);\n let expr = expr.modify(f);\n new_let(pattern, typ, expr)\n })\n}\n\ncomptime fn modify_member_access<Env>(\n expr: Expr,\n f: fn[Env](Expr) -> Option<Expr>,\n) -> Option<Expr> {\n expr.as_member_access().map(|(object, name)| {\n let object = object.modify(f);\n new_member_access(object, name)\n })\n}\n\ncomptime fn modify_method_call<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_method_call().map(|(object, name, generics, arguments)| {\n let object = object.modify(f);\n let arguments = arguments.map(|arg| arg.modify(f));\n new_method_call(object, name, generics, arguments)\n })\n}\n\ncomptime fn modify_repeated_element_array<Env>(\n expr: Expr,\n f: fn[Env](Expr) -> Option<Expr>,\n) -> Option<Expr> {\n expr.as_repeated_element_array().map(|(expr, length)| {\n let expr = expr.modify(f);\n let length = length.modify(f);\n new_repeated_element_array(expr, length)\n })\n}\n\ncomptime fn modify_repeated_element_slice<Env>(\n expr: Expr,\n f: fn[Env](Expr) -> Option<Expr>,\n) -> Option<Expr> {\n expr.as_repeated_element_slice().map(|(expr, length)| {\n let expr = expr.modify(f);\n let length = length.modify(f);\n new_repeated_element_slice(expr, length)\n })\n}\n\ncomptime fn modify_slice<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_slice().map(|exprs| {\n let exprs = modify_expressions(exprs, f);\n new_slice(exprs)\n })\n}\n\ncomptime fn modify_tuple<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_tuple().map(|exprs| {\n let exprs = modify_expressions(exprs, f);\n new_tuple(exprs)\n })\n}\n\ncomptime fn modify_unary_op<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_unary_op().map(|(op, rhs)| {\n let rhs = rhs.modify(f);\n new_unary_op(op, rhs)\n })\n}\n\ncomptime fn modify_unsafe<Env>(expr: Expr, f: fn[Env](Expr) -> Option<Expr>) -> Option<Expr> {\n expr.as_unsafe().map(|exprs| {\n let exprs = exprs.map(|expr| expr.modify(f));\n new_unsafe(exprs)\n })\n}\n\ncomptime fn modify_expressions<Env>(exprs: [Expr], f: fn[Env](Expr) -> Option<Expr>) -> [Expr] {\n exprs.map(|expr| expr.modify(f))\n}\n\ncomptime fn new_array(exprs: [Expr]) -> Expr {\n let exprs = join_expressions(exprs, quote { , });\n quote { [$exprs]}.as_expr().unwrap()\n}\n\ncomptime fn new_assert(predicate: Expr, msg: Option<Expr>) -> Expr {\n if msg.is_some() {\n let msg = msg.unwrap();\n quote { assert($predicate, $msg) }.as_expr().unwrap()\n } else {\n quote { assert($predicate) }.as_expr().unwrap()\n }\n}\n\ncomptime fn new_assert_eq(lhs: Expr, rhs: Expr, msg: Option<Expr>) -> Expr {\n if msg.is_some() {\n let msg = msg.unwrap();\n quote { assert_eq($lhs, $rhs, $msg) }.as_expr().unwrap()\n } else {\n quote { assert_eq($lhs, $rhs) }.as_expr().unwrap()\n }\n}\n\ncomptime fn new_assign(lhs: Expr, rhs: Expr) -> Expr {\n quote { $lhs = $rhs }.as_expr().unwrap()\n}\n\ncomptime fn new_binary_op(lhs: Expr, op: BinaryOp, rhs: Expr) -> Expr {\n let op = op.quoted();\n quote { ($lhs) $op ($rhs) }.as_expr().unwrap()\n}\n\ncomptime fn new_block(exprs: [Expr]) -> Expr {\n let exprs = join_expressions(exprs, quote { ; });\n quote { { $exprs }}.as_expr().unwrap()\n}\n\ncomptime fn new_cast(expr: Expr, typ: UnresolvedType) -> Expr {\n quote { ($expr) as $typ }.as_expr().unwrap()\n}\n\ncomptime fn new_comptime(exprs: [Expr]) -> Expr {\n let exprs = join_expressions(exprs, quote { ; });\n quote { comptime { $exprs }}.as_expr().unwrap()\n}\n\ncomptime fn new_constructor(typ: UnresolvedType, fields: [(Quoted, Expr)]) -> Expr {\n let fields = fields.map(|(name, value)| quote { $name: $value }).join(quote { , });\n quote { $typ { $fields }}.as_expr().unwrap()\n}\n\ncomptime fn new_if(condition: Expr, consequence: Expr, alternative: Option<Expr>) -> Expr {\n if alternative.is_some() {\n let alternative = alternative.unwrap();\n quote { if $condition { $consequence } else { $alternative }}.as_expr().unwrap()\n } else {\n quote { if $condition { $consequence } }.as_expr().unwrap()\n }\n}\n\ncomptime fn new_for(identifier: Quoted, array: Expr, body: Expr) -> Expr {\n quote { for $identifier in $array { $body } }.as_expr().unwrap()\n}\n\ncomptime fn new_for_range(identifier: Quoted, from: Expr, to: Expr, body: Expr) -> Expr {\n quote { for $identifier in $from .. $to { $body } }.as_expr().unwrap()\n}\n\ncomptime fn new_index(object: Expr, index: Expr) -> Expr {\n quote { $object[$index] }.as_expr().unwrap()\n}\n\ncomptime fn new_lambda(\n params: [(Expr, Option<UnresolvedType>)],\n return_type: Option<UnresolvedType>,\n body: Expr,\n) -> Expr {\n let params = params\n .map(|(name, typ)| {\n if typ.is_some() {\n let typ = typ.unwrap();\n quote { $name: $typ }\n } else {\n quote { $name }\n }\n })\n .join(quote { , });\n\n if return_type.is_some() {\n let return_type = return_type.unwrap();\n quote { |$params| -> $return_type { $body } }.as_expr().unwrap()\n } else {\n quote { |$params| { $body } }.as_expr().unwrap()\n }\n}\n\ncomptime fn new_let(pattern: Expr, typ: Option<UnresolvedType>, expr: Expr) -> Expr {\n if typ.is_some() {\n let typ = typ.unwrap();\n quote { let $pattern : $typ = $expr; }.as_expr().unwrap()\n } else {\n quote { let $pattern = $expr; }.as_expr().unwrap()\n }\n}\n\ncomptime fn new_member_access(object: Expr, name: Quoted) -> Expr {\n quote { $object.$name }.as_expr().unwrap()\n}\n\ncomptime fn new_function_call(function: Expr, arguments: [Expr]) -> Expr {\n let arguments = join_expressions(arguments, quote { , });\n\n quote { $function($arguments) }.as_expr().unwrap()\n}\n\ncomptime fn new_method_call(\n object: Expr,\n name: Quoted,\n generics: [UnresolvedType],\n arguments: [Expr],\n) -> Expr {\n let arguments = join_expressions(arguments, quote { , });\n\n if generics.len() == 0 {\n quote { $object.$name($arguments) }.as_expr().unwrap()\n } else {\n let generics = generics.map(|generic| quote { $generic }).join(quote { , });\n quote { $object.$name::<$generics>($arguments) }.as_expr().unwrap()\n }\n}\n\ncomptime fn new_repeated_element_array(expr: Expr, length: Expr) -> Expr {\n quote { [$expr; $length] }.as_expr().unwrap()\n}\n\ncomptime fn new_repeated_element_slice(expr: Expr, length: Expr) -> Expr {\n quote { &[$expr; $length] }.as_expr().unwrap()\n}\n\ncomptime fn new_slice(exprs: [Expr]) -> Expr {\n let exprs = join_expressions(exprs, quote { , });\n quote { &[$exprs]}.as_expr().unwrap()\n}\n\ncomptime fn new_tuple(exprs: [Expr]) -> Expr {\n let exprs = join_expressions(exprs, quote { , });\n quote { ($exprs) }.as_expr().unwrap()\n}\n\ncomptime fn new_unary_op(op: UnaryOp, rhs: Expr) -> Expr {\n let op = op.quoted();\n quote { $op($rhs) }.as_expr().unwrap()\n}\n\ncomptime fn new_unsafe(exprs: [Expr]) -> Expr {\n let exprs = join_expressions(exprs, quote { ; });\n quote { \n // Safety: generated by macro\n unsafe { $exprs }\n }\n .as_expr()\n .unwrap()\n}\n\ncomptime fn join_expressions(exprs: [Expr], separator: Quoted) -> Quoted {\n exprs.map(|expr| expr.quoted()).join(separator)\n}\n"
|
|
6529
6620
|
},
|
|
6530
|
-
"
|
|
6621
|
+
"272": {
|
|
6531
6622
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
|
|
6532
6623
|
"source": "use crate::{\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1, MAX_FIELD_VALUE,\n MAX_PROTOCOL_CONTRACTS,\n },\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM},\n traits::{Deserialize, Empty, FromField, Packable, Serialize, ToField},\n utils::field::{pow, sqrt},\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse std::{\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n ops::Add,\n};\n\n// Aztec address\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\n/// We implement the Packable trait for AztecAddress because it can be stored in contract's storage (and there\n/// the implementation of Packable is required).\nimpl Packable<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn pack(self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n self.serialize()\n }\n\n fn unpack(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n Self::deserialize(fields)\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secret can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_class_id(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_protocol_contract(self) -> bool {\n self.inner.lt(MAX_PROTOCOL_CONTRACTS as Field)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn compute_preaddress_from_partial_and_pub_keys() {\n let pre_address = poseidon2_hash_with_separator([1, 2], GENERATOR_INDEX__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(pre_address == expected_computed_preaddress_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"
|
|
6533
6624
|
},
|
|
6534
|
-
"
|
|
6625
|
+
"275": {
|
|
6535
6626
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr",
|
|
6536
6627
|
"source": "use crate::{\n address::{aztec_address::AztecAddress, salted_initialization_hash::SaltedInitializationHash},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n pub inner: Field,\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress,\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer),\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n ) -> Self {\n PartialAddress::from_field(poseidon2_hash_with_separator(\n [contract_class_id.to_field(), salted_initialization_hash.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
6537
6628
|
},
|
|
6538
|
-
"
|
|
6629
|
+
"277": {
|
|
6539
6630
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr",
|
|
6540
6631
|
"source": "use crate::{\n address::aztec_address::AztecAddress, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n pub inner: Field,\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(poseidon2_hash_with_separator(\n [salt, initialization_hash, deployer.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
6541
6632
|
},
|
|
6542
|
-
"
|
|
6633
|
+
"282": {
|
|
6543
6634
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr",
|
|
6544
6635
|
"source": "use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress},\n constants::CONTRACT_INSTANCE_LENGTH,\n contract_class_id::ContractClassId,\n public_keys::PublicKeys,\n traits::{Deserialize, FromField, Hash, Serialize, ToField},\n};\n\npub struct ContractInstance {\n pub salt: Field,\n pub deployer: AztecAddress,\n pub contract_class_id: ContractClassId,\n pub initialization_hash: Field,\n pub public_keys: PublicKeys,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys.eq(other.public_keys)\n & self.initialization_hash.eq(other.initialization_hash)\n & self.contract_class_id.eq(other.contract_class_id)\n & self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n let public_keys_serialized = self.public_keys.serialize();\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n public_keys_serialized[0],\n public_keys_serialized[1],\n public_keys_serialized[2],\n public_keys_serialized[3],\n public_keys_serialized[4],\n public_keys_serialized[5],\n public_keys_serialized[6],\n public_keys_serialized[7],\n public_keys_serialized[8],\n public_keys_serialized[9],\n public_keys_serialized[10],\n public_keys_serialized[11],\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys: PublicKeys::deserialize([\n serialized[4],\n serialized[5],\n serialized[6],\n serialized[7],\n serialized[8],\n serialized[9],\n serialized[10],\n serialized[11],\n serialized[12],\n serialized[13],\n serialized[14],\n serialized[15],\n ]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n pub fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer,\n ),\n )\n }\n}\n"
|
|
6545
6636
|
},
|
|
6546
|
-
"
|
|
6637
|
+
"289": {
|
|
6547
6638
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
|
|
6548
6639
|
"source": "/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"
|
|
6549
6640
|
},
|
|
6550
|
-
"
|
|
6641
|
+
"290": {
|
|
6551
6642
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
|
|
6552
|
-
"source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n contract_class_log::ContractClassLog,\n function_selector::FunctionSelector,\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n private_log::{PrivateLog, PrivateLogData},\n side_effect::{OrderedValue, scoped::Scoped},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH, TWO_POW_64,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n poseidon2::Poseidon2Sponge,\n traits::{FromField, Hash, ToField},\n utils::{\n arrays::{array_concat, unsafe_padded_array_length},\n field::{field_from_bytes, field_from_bytes_32_trunc},\n },\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog { fields }\n }\n}\n\nfn compute_siloed_contract_class_log_field(\n contract_address: AztecAddress,\n first_field: Field,\n) -> Field {\n poseidon2_hash([contract_address.to_field(), first_field])\n}\n\npub fn silo_contract_class_log(contract_class_log: ContractClassLog) -> ContractClassLog {\n if contract_class_log.contract_address.is_zero() {\n contract_class_log\n } else {\n let mut log = contract_class_log;\n log.log.fields[0] = compute_siloed_contract_class_log_field(\n contract_class_log.contract_address,\n log.log.fields[0],\n );\n log\n }\n}\n\npub fn compute_contract_class_log_hash(contract_class_log: ContractClassLog) -> Field {\n let array = contract_class_log.log.fields;\n // Safety: The below length is constrained in the base rollup.\n let length = unsafe { unsafe_padded_array_length(array) };\n if length == 0 {\n 0\n } else {\n poseidon2_hash(array)\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: [u8; 160] = std::mem::zeroed();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..5 {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes[32 * i + j] = item_bytes[j];\n }\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a u128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n poseidon::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = array_concat([separator.to_field()], inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n// Performs a fixed length hash with a subarray of the given input.\n// Useful for SpongeBlob in which we aborb M things and want to check it vs a hash of M elts of an N-len array.\n// Using stdlib poseidon, this will always absorb an extra 1 as a 'variable' hash, and not match spongeblob.squeeze()\n// or any ts implementation. Also checks that any remaining elts not hashed are empty.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, false);\n sponge.squeeze()\n}\n\n// NB the below is the same as poseidon::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, true);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// The below fn reduces gates of a conditional poseidon2 hash by approx 3x (thank you ~* Giant Brain Dev @IlyasRidhuan *~ for the idea)\n// Why? Because when we call stdlib poseidon, we call absorb for each item. When absorbing is conditional, it seems the compiler does not know\n// what cache_size will be when calling absorb, so it assigns the permutation gates for /each i/ rather than /every 3rd i/, which is actually required.\n// The below code forces the compiler to:\n// - absorb normally up to 2 times to set cache_size to 1\n// - absorb in chunks of 3 to ensure perm. only happens every 3rd absorb\n// - absorb normally up to 2 times to add any remaining values to the hash\n// In fixed len hashes, the compiler is able to tell that it will only need to perform the permutation every 3 absorbs.\n// NB: it also replaces unnecessary range checks (i < thing) with a bit check (&= i != thing), which alone reduces the gates of a var. hash by half.\n\n#[no_predicates]\nfn poseidon2_absorb_chunks<let N: u32>(\n input: [Field; N],\n in_len: u32,\n variable: bool,\n) -> Poseidon2Sponge {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n // Even though shift is always 1 here, if we input in_len = 0 we get an underflow\n // since we cannot isolate computation branches. The below is just to avoid that.\n let shift = if in_len == 0 { 0 } else { 1 };\n if in_len != 0 {\n // cache_size = 0, init absorb\n sponge.cache[0] = input[0];\n sponge.cache_size = 1;\n // shift = num elts already added to make cache_size 1 = 1 for a fresh sponge\n // M = max_chunks = (N - 1 - (N - 1) % 3) / 3: (must be written as a fn of N to compile)\n // max_remainder = (N - 1) % 3;\n // max_chunks = (N - 1 - max_remainder) / 3;\n sponge = poseidon2_absorb_chunks_loop::<N, (N - 1 - (N - 1) % 3) / 3>(\n sponge,\n input,\n in_len,\n variable,\n shift,\n );\n }\n sponge\n}\n\n// NB: If it's not required to check that the non-absorbed elts of 'input' are 0s, set skip_0_check=true\n#[no_predicates]\npub fn poseidon2_absorb_chunks_existing_sponge<let N: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n skip_0_check: bool,\n) -> Poseidon2Sponge {\n let mut sponge = in_sponge;\n // 'shift' is to account for already added inputs\n let mut shift = 0;\n // 'stop' is to avoid an underflow when inputting in_len = 0\n let mut stop = false;\n for i in 0..3 {\n if shift == in_len {\n stop = true;\n }\n if (sponge.cache_size != 1) & (!stop) {\n sponge.absorb(input[i]);\n shift += 1;\n }\n }\n sponge = if stop {\n sponge\n } else {\n // max_chunks = (N - (N % 3)) / 3;\n poseidon2_absorb_chunks_loop::<N, (N - (N % 3)) / 3>(\n sponge,\n input,\n in_len,\n skip_0_check,\n shift,\n )\n };\n sponge\n}\n\n// The below is the loop to absorb elts into a poseidon sponge in chunks of 3\n// shift - the num of elts already absorbed to ensure the sponge's cache_size = 1\n// M - the max number of chunks required to absorb N things (must be comptime to compile)\n// NB: The 0 checks ('Found non-zero field...') are messy, but having a separate loop over N to check\n// for 0s costs 3N gates. Current approach is approx 2N gates.\n#[no_predicates]\nfn poseidon2_absorb_chunks_loop<let N: u32, let M: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n variable: bool,\n shift: u32,\n) -> Poseidon2Sponge {\n assert(in_len <= N, \"Given in_len to absorb is larger than the input array len\");\n // When we have an existing sponge, we may have a shift of 0, and the final 'k+2' below = N\n // The below avoids an overflow\n let skip_last = 3 * M == N;\n // Writing in_sponge: &mut does not compile\n let mut sponge = in_sponge;\n let mut should_add = true;\n // The num of things left over after absorbing in 3s\n let remainder = (in_len - shift) % 3;\n // The num of chunks of 3 to absorb (maximum M)\n let chunks = (in_len - shift - remainder) / 3;\n for i in 0..M {\n // Now we loop through cache size = 1 -> 3\n should_add &= i != chunks;\n // This is the index at the start of the chunk (for readability)\n let k = 3 * i + shift;\n if should_add {\n // cache_size = 1, 2 => just assign\n sponge.cache[1] = input[k];\n sponge.cache[2] = input[k + 1];\n // cache_size = 3 => duplex + perm\n for j in 0..3 {\n sponge.state[j] += sponge.cache[j];\n }\n sponge.state = std::hash::poseidon2_permutation(sponge.state, 4);\n sponge.cache[0] = input[k + 2];\n // cache_size is now 1 again, repeat loop\n } else if (!variable) & (i != chunks) {\n // if we are hashing a fixed len array which is a subarray, we check the remaining elts are 0\n // NB: we don't check at i == chunks, because that chunk contains elts to be absorbed or checked below\n let last_0 = if (i == M - 1) & (skip_last) {\n 0\n } else {\n input[k + 2]\n };\n let all_0 = (input[k] == 0) & (input[k + 1] == 0) & (last_0 == 0);\n assert(all_0, \"Found non-zero field after breakpoint\");\n }\n }\n // we have 'remainder' num of items left to absorb\n should_add = true;\n // below is to avoid overflows (i.e. if inlen is close to N)\n let mut should_check = !variable;\n for i in 0..3 {\n should_add &= i != remainder;\n should_check &= in_len - remainder + i != N;\n if should_add {\n // we want to absorb the final 'remainder' items\n sponge.absorb(input[in_len - remainder + i]);\n } else if should_check {\n assert(input[in_len - remainder + i] == 0, \"Found non-zero field after breakpoint\");\n }\n }\n sponge\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn existing_sponge_poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n // absorb 250 of the 501 things\n let empty_sponge = Poseidon2Sponge::new((in_len as Field) * TWO_POW_64);\n let first_sponge = poseidon2_absorb_chunks_existing_sponge(empty_sponge, input, 250, true);\n // now absorb the final 251 (since they are all 3s, im being lazy and not making a new array)\n let mut final_sponge = poseidon2_absorb_chunks_existing_sponge(first_sponge, input, 251, true);\n let fixed_len_hash = Poseidon2Sponge::hash(fixed_input, fixed_input.len());\n assert(final_sponge.squeeze() == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_empty_inputs() {\n let in_len = 0;\n let mut input: [Field; 4096] = [0; 4096];\n let mut constructed_empty_sponge = poseidon2_absorb_chunks(input, in_len, true);\n let mut first_sponge =\n poseidon2_absorb_chunks_existing_sponge(constructed_empty_sponge, input, in_len, true);\n assert(first_sponge.squeeze() == constructed_empty_sponge.squeeze());\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256::digest(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
|
|
6643
|
+
"source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n contract_class_log::ContractClassLog,\n function_selector::FunctionSelector,\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n private_log::{PrivateLog, PrivateLogData},\n side_effect::{OrderedValue, scoped::Scoped},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE,\n GENERATOR_INDEX__OUTER_NULLIFIER, GENERATOR_INDEX__SILOED_NOTE_HASH,\n GENERATOR_INDEX__UNIQUE_NOTE_HASH, TWO_POW_64,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n poseidon2::Poseidon2Sponge,\n traits::{FromField, Hash, ToField},\n utils::{arrays::array_concat, field::{field_from_bytes, field_from_bytes_32_trunc}},\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog::new(fields, private_log.inner.log.length)\n }\n}\n\npub fn compute_siloed_contract_class_log_field(\n contract_address: AztecAddress,\n first_field: Field,\n) -> Field {\n poseidon2_hash([contract_address.to_field(), first_field])\n}\n\npub fn silo_contract_class_log(contract_class_log: ContractClassLog) -> ContractClassLog {\n if contract_class_log.contract_address.is_zero() {\n contract_class_log\n } else {\n let mut log = contract_class_log;\n log.log.fields[0] = compute_siloed_contract_class_log_field(\n contract_class_log.contract_address,\n log.log.fields[0],\n );\n log\n }\n}\n\npub fn compute_contract_class_log_hash(log: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS]) -> Field {\n poseidon2_hash(log)\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: [u8; 160] = std::mem::zeroed();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..5 {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes[32 * i + j] = item_bytes[j];\n }\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a u128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n poseidon::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = array_concat([separator.to_field()], inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n// Performs a fixed length hash with a subarray of the given input.\n// Useful for SpongeBlob in which we aborb M things and want to check it vs a hash of M elts of an N-len array.\n// Using stdlib poseidon, this will always absorb an extra 1 as a 'variable' hash, and not match spongeblob.squeeze()\n// or any ts implementation. Also checks that any remaining elts not hashed are empty.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, false);\n sponge.squeeze()\n}\n\n// NB the below is the same as poseidon::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, true);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// The below fn reduces gates of a conditional poseidon2 hash by approx 3x (thank you ~* Giant Brain Dev @IlyasRidhuan *~ for the idea)\n// Why? Because when we call stdlib poseidon, we call absorb for each item. When absorbing is conditional, it seems the compiler does not know\n// what cache_size will be when calling absorb, so it assigns the permutation gates for /each i/ rather than /every 3rd i/, which is actually required.\n// The below code forces the compiler to:\n// - absorb normally up to 2 times to set cache_size to 1\n// - absorb in chunks of 3 to ensure perm. only happens every 3rd absorb\n// - absorb normally up to 2 times to add any remaining values to the hash\n// In fixed len hashes, the compiler is able to tell that it will only need to perform the permutation every 3 absorbs.\n// NB: it also replaces unnecessary range checks (i < thing) with a bit check (&= i != thing), which alone reduces the gates of a var. hash by half.\n\n#[no_predicates]\nfn poseidon2_absorb_chunks<let N: u32>(\n input: [Field; N],\n in_len: u32,\n variable: bool,\n) -> Poseidon2Sponge {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n // Even though shift is always 1 here, if we input in_len = 0 we get an underflow\n // since we cannot isolate computation branches. The below is just to avoid that.\n let shift = if in_len == 0 { 0 } else { 1 };\n if in_len != 0 {\n // cache_size = 0, init absorb\n sponge.cache[0] = input[0];\n sponge.cache_size = 1;\n // shift = num elts already added to make cache_size 1 = 1 for a fresh sponge\n // M = max_chunks = (N - 1 - (N - 1) % 3) / 3: (must be written as a fn of N to compile)\n // max_remainder = (N - 1) % 3;\n // max_chunks = (N - 1 - max_remainder) / 3;\n sponge = poseidon2_absorb_chunks_loop::<N, (N - 1 - (N - 1) % 3) / 3>(\n sponge,\n input,\n in_len,\n variable,\n shift,\n );\n }\n sponge\n}\n\n// NB: If it's not required to check that the non-absorbed elts of 'input' are 0s, set skip_0_check=true\n#[no_predicates]\npub fn poseidon2_absorb_chunks_existing_sponge<let N: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n skip_0_check: bool,\n) -> Poseidon2Sponge {\n let mut sponge = in_sponge;\n // 'shift' is to account for already added inputs\n let mut shift = 0;\n // 'stop' is to avoid an underflow when inputting in_len = 0\n let mut stop = false;\n for i in 0..3 {\n if shift == in_len {\n stop = true;\n }\n if (sponge.cache_size != 1) & (!stop) {\n sponge.absorb(input[i]);\n shift += 1;\n }\n }\n sponge = if stop {\n sponge\n } else {\n // max_chunks = (N - (N % 3)) / 3;\n poseidon2_absorb_chunks_loop::<N, (N - (N % 3)) / 3>(\n sponge,\n input,\n in_len,\n skip_0_check,\n shift,\n )\n };\n sponge\n}\n\n// The below is the loop to absorb elts into a poseidon sponge in chunks of 3\n// shift - the num of elts already absorbed to ensure the sponge's cache_size = 1\n// M - the max number of chunks required to absorb N things (must be comptime to compile)\n// NB: The 0 checks ('Found non-zero field...') are messy, but having a separate loop over N to check\n// for 0s costs 3N gates. Current approach is approx 2N gates.\n#[no_predicates]\nfn poseidon2_absorb_chunks_loop<let N: u32, let M: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n variable: bool,\n shift: u32,\n) -> Poseidon2Sponge {\n assert(in_len <= N, \"Given in_len to absorb is larger than the input array len\");\n // When we have an existing sponge, we may have a shift of 0, and the final 'k+2' below = N\n // The below avoids an overflow\n let skip_last = 3 * M == N;\n // Writing in_sponge: &mut does not compile\n let mut sponge = in_sponge;\n let mut should_add = true;\n // The num of things left over after absorbing in 3s\n let remainder = (in_len - shift) % 3;\n // The num of chunks of 3 to absorb (maximum M)\n let chunks = (in_len - shift - remainder) / 3;\n for i in 0..M {\n // Now we loop through cache size = 1 -> 3\n should_add &= i != chunks;\n // This is the index at the start of the chunk (for readability)\n let k = 3 * i + shift;\n if should_add {\n // cache_size = 1, 2 => just assign\n sponge.cache[1] = input[k];\n sponge.cache[2] = input[k + 1];\n // cache_size = 3 => duplex + perm\n for j in 0..3 {\n sponge.state[j] += sponge.cache[j];\n }\n sponge.state = std::hash::poseidon2_permutation(sponge.state, 4);\n sponge.cache[0] = input[k + 2];\n // cache_size is now 1 again, repeat loop\n } else if (!variable) & (i != chunks) {\n // if we are hashing a fixed len array which is a subarray, we check the remaining elts are 0\n // NB: we don't check at i == chunks, because that chunk contains elts to be absorbed or checked below\n let last_0 = if (i == M - 1) & (skip_last) {\n 0\n } else {\n input[k + 2]\n };\n let all_0 = (input[k] == 0) & (input[k + 1] == 0) & (last_0 == 0);\n assert(all_0, \"Found non-zero field after breakpoint\");\n }\n }\n // we have 'remainder' num of items left to absorb\n should_add = true;\n // below is to avoid overflows (i.e. if inlen is close to N)\n let mut should_check = !variable;\n for i in 0..3 {\n should_add &= i != remainder;\n should_check &= in_len - remainder + i != N;\n if should_add {\n // we want to absorb the final 'remainder' items\n sponge.absorb(input[in_len - remainder + i]);\n } else if should_check {\n assert(input[in_len - remainder + i] == 0, \"Found non-zero field after breakpoint\");\n }\n }\n sponge\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn existing_sponge_poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n // absorb 250 of the 501 things\n let empty_sponge = Poseidon2Sponge::new((in_len as Field) * TWO_POW_64);\n let first_sponge = poseidon2_absorb_chunks_existing_sponge(empty_sponge, input, 250, true);\n // now absorb the final 251 (since they are all 3s, im being lazy and not making a new array)\n let mut final_sponge = poseidon2_absorb_chunks_existing_sponge(first_sponge, input, 251, true);\n let fixed_len_hash = Poseidon2Sponge::hash(fixed_input, fixed_input.len());\n assert(final_sponge.squeeze() == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_empty_inputs() {\n let in_len = 0;\n let mut input: [Field; 4096] = [0; 4096];\n let mut constructed_empty_sponge = poseidon2_absorb_chunks(input, in_len, true);\n let mut first_sponge =\n poseidon2_absorb_chunks_existing_sponge(constructed_empty_sponge, input, in_len, true);\n assert(first_sponge.squeeze() == constructed_empty_sponge.squeeze());\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256::digest(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
|
|
6553
6644
|
},
|
|
6554
|
-
"
|
|
6645
|
+
"291": {
|
|
6555
6646
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/indexed_tagging_secret.nr",
|
|
6556
6647
|
"source": "use crate::traits::{Deserialize, Serialize, ToField};\nuse super::{address::aztec_address::AztecAddress, hash::poseidon2_hash};\nuse std::meta::derive;\n\npub global INDEXED_TAGGING_SECRET_LENGTH: u32 = 2;\n\n#[derive(Serialize, Deserialize)]\npub struct IndexedTaggingSecret {\n app_tagging_secret: Field,\n index: u32,\n}\n\nimpl IndexedTaggingSecret {\n pub fn compute_tag(self, recipient: AztecAddress) -> Field {\n poseidon2_hash(\n [self.app_tagging_secret, recipient.to_field(), self.index as Field],\n )\n }\n}\n"
|
|
6557
6648
|
},
|
|
6558
|
-
"
|
|
6649
|
+
"304": {
|
|
6559
6650
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr",
|
|
6560
6651
|
"source": "use super::traits::{Deserialize, Packable, Serialize};\n\n/// Returns the typed expression of a trait method implementation.\n///\n/// This helper function is preferred over directly inlining with `$typ::target_method()` in a quote,\n/// as direct inlining would result in missing import warnings in the generated code (specifically,\n/// warnings that the trait implementation is not in scope).\n///\n/// # Note\n/// A copy of this function exists in `aztec-nr/aztec/src/macros/utils.nr`. We maintain separate copies\n/// because importing it there from here would cause the `target_trait` to be interpreted in the context\n/// of this crate, making it impossible to compile code for traits from that crate (e.g. NoteType).\ncomptime fn get_trait_impl_method(\n typ: Type,\n target_trait: Quoted,\n target_method: Quoted,\n) -> TypedExpr {\n let trait_constraint = target_trait.as_trait_constraint();\n typ\n .get_trait_impl(trait_constraint)\n .expect(f\"Could not find impl for {target_trait} for type {typ}\")\n .methods()\n .filter(|m| m.name() == target_method)[0]\n .as_typed_expr()\n}\n\n/// Generates code that deserializes a struct, primitive type, array or string from a field array.\n///\n/// # Parameters\n/// - `name`: The name of the current field being processed, used to identify fields for replacement.\n/// - `typ`: The type of the struct or field being deserialized (e.g., a custom struct, array, or primitive).\n/// - `field_array_name`: The name of the field array containing serialized field data (e.g., `\"values\"`).\n/// - `num_already_consumed`: The number of fields already processed in previous recursion calls.\n/// - `should_unpack`: A boolean indicating whether the type should be unpacked (see description of `Packable`\n/// and `Serialize` trait for more information about the difference between packing and serialization).\n///\n/// # Returns\n/// A tuple containing:\n/// - `Quoted`: A code that deserializes a given struct, primitive type, array, or string from the field array.\n/// - `u32`: The total number of fields consumed during deserialization (used for recursion).\n///\n/// # Nested Struct Example\n/// Given the following setup:\n/// ```\n/// struct UintNote {\n/// value: u128,\n/// owner: AztecAddress,\n/// randomness: Field,\n/// }\n///\n/// struct AztecAddress {\n/// inner: Field,\n/// }\n/// ```\n///\n/// If `UintNote` is the input type, the function will generate the following deserialization code:\n/// ```\n/// UintNote {\n/// value: fields[0] as u128,\n/// owner: AztecAddress {\n/// inner: fields[1],\n/// },\n/// randomness: fields[2],\n/// }\n/// ```\n/// # Nested Struct Example with Unpacking\n/// - given the same setup as above and given that u128, AztecAddress and Field implement the `Packable` trait\n/// the result we get is:\n/// ```\n/// UintNote {\n/// value: aztec::protocol_types::traits::Packable::unpack([fields[0]]),\n/// owner: aztec::protocol_types::traits::Packable::unpack([fields[1]]),\n/// randomness: aztec::protocol_types::traits::Packable::unpack([fields[2]]),\n/// }\n/// ```\n///\n/// # Panics\n/// - If the deserialization logic encounters a type it does not support.\n/// - If an incorrect number of fields are consumed when deserializing a string.\npub comptime fn generate_deserialize_from_fields(\n name: Quoted,\n typ: Type,\n field_array_name: Quoted,\n num_already_consumed: u32,\n should_unpack: bool,\n) -> (Quoted, u32) {\n let mut result = quote {};\n // Counter for the number of fields consumed\n let mut consumed_counter: u32 = 0;\n\n // If the type implements `Packable`, its length will be assigned to the `maybe_packed_len_typ` variable.\n let maybe_packed_len_typ = std::meta::typ::fresh_type_variable();\n let packable_constraint = quote { Packable<$maybe_packed_len_typ> }.as_trait_constraint();\n\n if (should_unpack & typ.implements(packable_constraint)) {\n // Unpacking is enabled and the given type implements the `Packable` trait so we call the `unpack()`\n // method, add the resulting field array to `aux_vars` and each field to `fields`.\n let packed_len = maybe_packed_len_typ.as_constant().unwrap();\n\n // We copy the packed fields into a new array and pass that to the unpack function in a quote\n let mut packed_fields_quotes = &[];\n for i in 0..packed_len {\n let index_in_field_array = i + num_already_consumed;\n packed_fields_quotes =\n packed_fields_quotes.push_back(quote { $field_array_name[$index_in_field_array] });\n }\n let packed_fields = packed_fields_quotes.join(quote {,});\n\n // Now we call unpack on the type\n let unpack_method = get_trait_impl_method(typ, quote { Packable<_> }, quote { unpack });\n result = quote { $unpack_method([ $packed_fields ]) };\n\n consumed_counter = packed_len;\n } else if typ.is_field() | typ.as_integer().is_some() | typ.is_bool() {\n // The field is a primitive so we just reference it in the field array\n result = quote { $field_array_name[$num_already_consumed] as $typ };\n consumed_counter = 1;\n } else if typ.as_data_type().is_some() {\n // The field is a struct so we iterate over each struct field and recursively call\n // `generate_deserialize_from_fields`\n let (nested_def, generics) = typ.as_data_type().unwrap();\n let nested_name = nested_def.name();\n let mut deserialized_fields_list = &[];\n\n // Iterate over each field in the struct\n for field in nested_def.fields(generics) {\n let (field_name, field_type) = field;\n // Recursively call `generate_deserialize_from_fields` for each field in the struct\n let (deserialized_field, num_consumed_in_recursion) = generate_deserialize_from_fields(\n field_name,\n field_type,\n field_array_name,\n consumed_counter + num_already_consumed,\n should_unpack,\n );\n // We increment the consumed counter by the number of fields consumed in the recursion\n consumed_counter += num_consumed_in_recursion;\n // We add the deserialized field to the list of deserialized fields.\n // E.g. `value: u128 { lo: fields[0], hi: fields[1] }`\n deserialized_fields_list =\n deserialized_fields_list.push_back(quote { $field_name: $deserialized_field });\n }\n\n // We can construct the struct from the deserialized fields\n let deserialized_fields = deserialized_fields_list.join(quote {,});\n result = quote {\n $nested_name {\n $deserialized_fields\n }\n };\n } else if typ.as_array().is_some() {\n // The field is an array so we iterate over each element and recursively call\n // `generate_deserialize_from_fields`\n let (element_type, array_len) = typ.as_array().unwrap();\n let array_len = array_len.as_constant().unwrap();\n let mut array_fields_list = &[];\n\n // Iterate over each element in the array\n for _ in 0..array_len {\n // Recursively call `generate_deserialize_from_fields` for each element in the array\n let (deserialized_field, num_consumed_in_recursion) = generate_deserialize_from_fields(\n name,\n element_type,\n field_array_name,\n consumed_counter + num_already_consumed,\n should_unpack,\n );\n // We increment the consumed counter by the number of fields consumed in the recursion\n consumed_counter += num_consumed_in_recursion;\n // We add the deserialized field to the list of deserialized fields.\n array_fields_list = array_fields_list.push_back(deserialized_field);\n }\n\n // We can construct the array from the deserialized fields\n let array_fields = array_fields_list.join(quote {,});\n result = quote { [ $array_fields ] };\n } else if typ.as_str().is_some() {\n // The field is a string and we expect each byte of the string to be represented as 1 field in the field\n // array. So we iterate over the string length and deserialize each character as u8 in the recursive call\n // to `generate_deserialize_from_fields`.\n let length_type = typ.as_str().unwrap();\n let str_len = length_type.as_constant().unwrap();\n let mut byte_list = &[];\n\n // Iterate over each character in the string\n for _ in 0..str_len {\n // Recursively call `generate_deserialize_from_fields` for each character in the string\n let (deserialized_field, num_consumed_in_recursion) = generate_deserialize_from_fields(\n name,\n quote {u8}.as_type(),\n field_array_name,\n consumed_counter + num_already_consumed,\n should_unpack,\n );\n\n // We should consume just one field in the recursion so we sanity check that\n assert_eq(\n num_consumed_in_recursion,\n 1,\n \"Incorrect number of fields consumed in string deserialization\",\n );\n\n // We increment the consumed counter by 1 as we have consumed one field\n consumed_counter += 1;\n\n // We add the deserialized field to the list of deserialized fields.\n // E.g. `fields[6] as u8`\n byte_list = byte_list.push_back(deserialized_field);\n }\n\n // We construct the string from the deserialized fields\n let bytes = byte_list.join(quote {,});\n result = quote { [ $bytes ].as_str_unchecked() };\n } else {\n panic(\n f\"Unsupported type for serialization of argument {name} and type {typ}\",\n )\n }\n\n (result, consumed_counter)\n}\n\n/// Generates code that serializes a type into an array of fields. Also generates auxiliary variables if necessary\n/// for serialization. If `should_pack` is true, we check if the type implements the `Packable` trait and pack it\n/// if it does.\n///\n/// # Parameters\n/// - `name`: The base identifier (e.g., `self`, `some_var`).\n/// - `typ`: The type being serialized (e.g., a custom struct, array, or primitive type).\n/// - `should_pack`: A boolean indicating whether the type should be packed.\n///\n/// # Returns\n/// A tuple containing:\n/// - A flattened array of `Quoted` field references representing the serialized fields.\n/// - An array of `Quoted` auxiliary variables needed for serialization, such as byte arrays for strings.\n///\n/// # Examples\n///\n/// ## Struct\n/// Given the following struct:\n/// ```rust\n/// struct MockStruct {\n/// a: Field,\n/// b: Field,\n/// }\n/// ```\n///\n/// Serializing the struct:\n/// ```rust\n/// generate_serialize_to_fields(quote { my_mock_struct }, MockStruct, false)\n/// // Returns:\n/// // ([`my_mock_struct.a`, `my_mock_struct.b`], [])\n/// ```\n///\n/// ## Nested Struct\n/// For a more complex struct:\n/// ```rust\n/// struct NestedStruct {\n/// m1: MockStruct,\n/// m2: MockStruct,\n/// }\n/// ```\n///\n/// Serialization output:\n/// ```rust\n/// generate_serialize_to_fields(quote { self }, NestedStruct, false)\n/// // Returns:\n/// // ([`self.m1.a`, `self.m1.b`, `self.m2.a`, `self.m2.b`], [])\n/// ```\n///\n/// ## Array\n/// For an array type:\n/// ```rust\n/// generate_serialize_to_fields(quote { my_array }, [Field; 3], false)\n/// // Returns:\n/// // ([`my_array[0]`, `my_array[1]`, `my_array[2]`], [])\n/// ```\n///\n/// ## String\n/// For a string field, where each character is serialized as a `Field`:\n/// ```rust\n/// generate_serialize_to_fields(quote { my_string }, StringType, false)\n/// // Returns:\n/// // ([`my_string_as_bytes[0] as Field`, `my_string_as_bytes[1] as Field`, ...],\n/// // [`let my_string_as_bytes = my_string.as_bytes()`])\n/// ```\n///\n/// ## Nested Struct with packing enabled\n/// - u128 has a `Packable` implementation hence it will be packed.\n///\n/// For a more complex struct:\n/// ```rust\n/// struct MyStruct {\n/// value: u128,\n/// value2: Field,\n/// }\n/// ```\n///\n/// # Panics\n/// - If the type is unsupported for serialization.\n/// - If the provided `typ` contains invalid constants or incompatible structures.\npub comptime fn generate_serialize_to_fields(\n name: Quoted,\n typ: Type,\n should_pack: bool,\n) -> ([Quoted], [Quoted]) {\n let mut fields = &[];\n let mut aux_vars = &[];\n\n // If the type implements `Packable`, its length will be assigned to the `maybe_packed_len_typ` variable.\n let maybe_packed_len_typ = std::meta::typ::fresh_type_variable();\n let packable_constraint =\n quote { crate::traits::Packable<$maybe_packed_len_typ> }.as_trait_constraint();\n\n if (should_pack & typ.implements(packable_constraint)) {\n // Packing is enabled and the given type implements the `Packable` trait so we call the `pack()`\n // method, add the resulting field array to `aux_vars` and each field to `fields`.\n let packed_len = maybe_packed_len_typ.as_constant().unwrap();\n\n // We collapse the name to a one that gets tokenized as a single token (e.g. \"self.value\" -> \"self_value\").\n let name_at_one_token = collapse_to_one_token(name);\n let packed_struct_name = f\"{name_at_one_token}_aux_var\".quoted_contents();\n\n // We add the individual fields to the fields array\n let pack_method = get_trait_impl_method(\n typ,\n quote { crate::traits::Packable<$packed_len> },\n quote { pack },\n );\n let packed_struct = quote { let $packed_struct_name = $pack_method($name) };\n for i in 0..packed_len {\n fields = fields.push_back(quote { $packed_struct_name[$i] });\n }\n\n // We add the new auxiliary variable to the aux_vars array\n aux_vars = aux_vars.push_back(packed_struct);\n } else if typ.is_field() {\n // For field we just add the value to fields\n fields = fields.push_back(name);\n } else if typ.as_integer().is_some() | typ.is_bool() {\n // For integer and bool we just cast to Field and add the value to fields\n fields = fields.push_back(quote { $name as Field });\n } else if typ.as_data_type().is_some() {\n // For struct we pref\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n let struct_flattened = params.map(|(param_name, param_type): (Quoted, Type)| {\n let maybe_prefixed_name = if name == quote {} {\n // Triggered when the param name is of a value available in the current scope (e.g. a function\n // argument) --> then we don't prefix the name with anything.\n param_name\n } else {\n // Triggered when we want to prefix the param name with the `name` from function input. This\n // can typically be `self` when implementing a method on a struct.\n quote { $name.$param_name }\n };\n generate_serialize_to_fields(quote {$maybe_prefixed_name}, param_type, should_pack)\n });\n let struct_flattened_fields = struct_flattened.fold(\n &[],\n |acc: [Quoted], (fields, _): (_, [Quoted])| acc.append(fields),\n );\n let struct_flattened_aux_vars = struct_flattened.fold(\n &[],\n |acc: [Quoted], (_, aux_vars): ([Quoted], _)| acc.append(aux_vars),\n );\n fields = fields.append(struct_flattened_fields);\n aux_vars = aux_vars.append(struct_flattened_aux_vars);\n } else if typ.as_array().is_some() {\n // For array we recursively call `generate_serialize_to_fields(...)` for each element\n let (element_type, array_len) = typ.as_array().unwrap();\n let array_len = array_len.as_constant().unwrap();\n for i in 0..array_len {\n let (element_fields, element_aux_vars) =\n generate_serialize_to_fields(quote { $name[$i] }, element_type, should_pack);\n fields = fields.append(element_fields);\n aux_vars = aux_vars.append(element_aux_vars);\n }\n } else if typ.as_str().is_some() {\n // For string we convert the value to bytes, we store the `as_bytes` in an auxiliary variables and\n // then we add each byte to fields as a Field\n let length_type = typ.as_str().unwrap();\n let str_len = length_type.as_constant().unwrap();\n let as_member = name.as_expr().unwrap().as_member_access();\n let var_name = if as_member.is_some() {\n as_member.unwrap().1\n } else {\n name\n };\n let as_bytes_name = f\"{var_name}_as_bytes\".quoted_contents();\n let as_bytes = quote { let $as_bytes_name = $name.as_bytes() };\n for i in 0..str_len {\n fields = fields.push_back(quote { $as_bytes_name[$i] as Field });\n }\n aux_vars = aux_vars.push_back(as_bytes);\n } else {\n panic(\n f\"Unsupported type for serialization of argument {name} and type {typ}\",\n )\n }\n\n (fields, aux_vars)\n}\n\n/// From a quote that gets tokenized to a multiple tokens we collapse it to a single token by replacing all `.` with `_`.\n/// E.g. \"self.values[0]\" -> \"self_values_0_\"\ncomptime fn collapse_to_one_token(q: Quoted) -> Quoted {\n let tokens = q.tokens();\n\n let mut single_token = quote {};\n for token in tokens {\n let new_token = if ((token == quote {.}) | (token == quote {[}) | (token == quote {]})) {\n quote {_}\n } else {\n token\n };\n single_token = f\"{single_token}{new_token}\".quoted_contents();\n }\n single_token\n}\n\npub(crate) comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let (fields, aux_vars) = generate_serialize_to_fields(quote { self }, typ, false);\n let aux_vars_for_serialization = if aux_vars.len() > 0 {\n let joint = aux_vars.join(quote {;});\n quote { $joint; }\n } else {\n quote {}\n };\n\n let field_serializations = fields.join(quote {,});\n let serialized_len = fields.len();\n quote {\n impl Serialize<$serialized_len> for $typ {\n fn serialize(self) -> [Field; $serialized_len] {\n $aux_vars_for_serialization\n [ $field_serializations ]\n }\n }\n }\n}\n\npub(crate) comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let (fields, _) = generate_serialize_to_fields(quote { self }, typ, false);\n let serialized_len = fields.len();\n let (deserialized, _) =\n generate_deserialize_from_fields(quote { self }, typ, quote { serialized }, 0, false);\n quote {\n impl Deserialize<$serialized_len> for $typ {\n fn deserialize(serialized: [Field; $serialized_len]) -> Self {\n $deserialized\n }\n }\n }\n}\n\n/// Generates `Packable` implementation for a given struct and returns the packed length.\n///\n/// Note: We are having this function separate from `derive_packable` because we use this in the note macros to get\n/// the packed length of a note as well as the `Packable` implementation. We need the length to be able to register\n/// the note in the global `NOTES` map. There the length is used to generate partial note helper functions.\npub comptime fn derive_packable_and_get_packed_len(s: TypeDefinition) -> (Quoted, u32) {\n let packing_enabled = true;\n\n let typ = s.as_type();\n let (fields, aux_vars) = generate_serialize_to_fields(quote { self }, typ, packing_enabled);\n let aux_vars_for_packing = if aux_vars.len() > 0 {\n let joint = aux_vars.join(quote {;});\n quote { $joint; }\n } else {\n quote {}\n };\n\n let (unpacked, _) =\n generate_deserialize_from_fields(quote { self }, typ, quote { packed }, 0, packing_enabled);\n\n let field_packings = fields.join(quote {,});\n let packed_len = fields.len();\n let packable_trait: TraitConstraint = quote { Packable<$packed_len> }.as_trait_constraint();\n (\n quote {\n impl $packable_trait for $typ {\n fn pack(self) -> [Field; $packed_len] {\n $aux_vars_for_packing\n [ $field_packings ]\n }\n\n fn unpack(packed: [Field; $packed_len]) -> Self {\n $unpacked\n }\n }\n },\n packed_len,\n )\n}\n\npub(crate) comptime fn derive_packable(s: TypeDefinition) -> Quoted {\n let (packable_impl, _) = derive_packable_and_get_packed_len(s);\n packable_impl\n}\n\n#[derive(Packable, Serialize, Deserialize, Eq)]\npub struct Smol {\n a: Field,\n b: Field,\n}\n\n#[derive(Serialize, Deserialize, Eq)]\npub struct HasArray {\n a: [Field; 2],\n b: bool,\n}\n\n#[derive(Serialize, Deserialize, Eq)]\npub struct Fancier {\n a: Smol,\n b: [Field; 2],\n c: [u8; 3],\n d: str<16>,\n}\n\nfn main() {\n assert(false);\n}\n\n#[test]\nfn smol_test() {\n let smol = Smol { a: 1, b: 2 };\n let serialized = smol.serialize();\n assert(serialized == [1, 2], serialized);\n let deserialized = Smol::deserialize(serialized);\n assert(deserialized == smol);\n\n // None of the struct members implements the `Packable` trait so the packed and serialized data should be the same\n let packed = smol.pack();\n assert_eq(packed, serialized, \"Packed does not match serialized\");\n}\n\n#[test]\nfn has_array_test() {\n let has_array = HasArray { a: [1, 2], b: true };\n let serialized = has_array.serialize();\n assert(serialized == [1, 2, 1], serialized);\n let deserialized = HasArray::deserialize(serialized);\n assert(deserialized == has_array);\n}\n\n#[test]\nfn fancier_test() {\n let fancier =\n Fancier { a: Smol { a: 1, b: 2 }, b: [0, 1], c: [1, 2, 3], d: \"metaprogramming!\" };\n let serialized = fancier.serialize();\n assert(\n serialized\n == [\n 1, 2, 0, 1, 1, 2, 3, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61,\n 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x21,\n ],\n serialized,\n );\n let deserialized = Fancier::deserialize(serialized);\n assert(deserialized == fancier);\n}\n"
|
|
6561
6652
|
},
|
|
6562
|
-
"
|
|
6653
|
+
"306": {
|
|
6563
6654
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/point.nr",
|
|
6564
6655
|
"source": "pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{hash::poseidon2_hash, traits::{Deserialize, Empty, Hash, Packable, Serialize}};\n\npub global POINT_LENGTH: u32 = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n// TODO(#11356): use compact representation here.\nimpl Packable<POINT_LENGTH> for Point {\n fn pack(self) -> [Field; POINT_LENGTH] {\n self.serialize()\n }\n\n fn unpack(packed: [Field; POINT_LENGTH]) -> Self {\n Self::deserialize(packed)\n }\n}\n"
|
|
6565
6656
|
},
|
|
6566
|
-
"
|
|
6657
|
+
"307": {
|
|
6567
6658
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
|
|
6568
6659
|
"source": "use crate::constants::TWO_POW_64;\n\n// NB: This is a clone of noir/noir-repo/noir_stdlib/src/hash/poseidon2.nr\n// It exists as we sometimes need to perform custom absorption, but the stdlib version\n// has a private absorb() method (it's also designed to just be a hasher)\n// Can be removed when standalone noir poseidon lib exists: See noir#6679\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2Sponge {\n pub cache: [Field; 3],\n pub state: [Field; 4],\n pub cache_size: u32,\n pub squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2Sponge {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2Sponge::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2Sponge {\n let mut result =\n Poseidon2Sponge { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = std::hash::poseidon2_permutation(self.state, 4);\n }\n\n pub fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n pub fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n"
|
|
6569
6660
|
},
|
|
6570
|
-
"
|
|
6661
|
+
"317": {
|
|
6571
6662
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
|
|
6572
6663
|
"source": "use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_OVPK_M_X,\n DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y, GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n point::POINT_LENGTH,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n pub npk_m: NpkM,\n pub ivpk_m: IvpkM,\n pub ovpk_m: OvpkM,\n pub tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n pub inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\npub struct AddressPoint {\n pub inner: Point,\n}\n\nimpl ToPoint for AddressPoint {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"
|
|
6573
6664
|
},
|
|
6574
|
-
"
|
|
6665
|
+
"347": {
|
|
6575
6666
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr",
|
|
6576
6667
|
"source": "use crate::traits::{Deserialize, Serialize};\n\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize<BOOL_SERIALIZED_LEN> for bool {\n fn serialize(self) -> [Field; BOOL_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<BOOL_SERIALIZED_LEN> for bool {\n fn deserialize(fields: [Field; BOOL_SERIALIZED_LEN]) -> bool {\n fields[0] as bool\n }\n}\n\nimpl Serialize<U8_SERIALIZED_LEN> for u8 {\n fn serialize(self) -> [Field; U8_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U8_SERIALIZED_LEN> for u8 {\n fn deserialize(fields: [Field; U8_SERIALIZED_LEN]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize<U16_SERIALIZED_LEN> for u16 {\n fn serialize(self) -> [Field; U16_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U16_SERIALIZED_LEN> for u16 {\n fn deserialize(fields: [Field; U16_SERIALIZED_LEN]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Serialize<U32_SERIALIZED_LEN> for u32 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U32_SERIALIZED_LEN> for u32 {\n fn deserialize(fields: [Field; U32_SERIALIZED_LEN]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize<U64_SERIALIZED_LEN> for u64 {\n fn serialize(self) -> [Field; U64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U64_SERIALIZED_LEN> for u64 {\n fn deserialize(fields: [Field; U64_SERIALIZED_LEN]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize<U128_SERIALIZED_LEN> for u128 {\n fn serialize(self) -> [Field; U128_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U128_SERIALIZED_LEN> for u128 {\n fn deserialize(fields: [Field; U128_SERIALIZED_LEN]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Serialize<FIELD_SERIALIZED_LEN> for Field {\n fn serialize(self) -> [Field; FIELD_SERIALIZED_LEN] {\n [self]\n }\n}\n\nimpl Deserialize<FIELD_SERIALIZED_LEN> for Field {\n fn deserialize(fields: [Field; FIELD_SERIALIZED_LEN]) -> Self {\n fields[0]\n }\n}\n\nimpl Serialize<I8_SERIALIZED_LEN> for i8 {\n fn serialize(self) -> [Field; I8_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I8_SERIALIZED_LEN> for i8 {\n fn deserialize(fields: [Field; I8_SERIALIZED_LEN]) -> Self {\n fields[0] as i8\n }\n}\n\nimpl Serialize<I16_SERIALIZED_LEN> for i16 {\n fn serialize(self) -> [Field; I16_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I16_SERIALIZED_LEN> for i16 {\n fn deserialize(fields: [Field; I16_SERIALIZED_LEN]) -> Self {\n fields[0] as i16\n }\n}\n\nimpl Serialize<I32_SERIALIZED_LEN> for i32 {\n fn serialize(self) -> [Field; I32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I32_SERIALIZED_LEN> for i32 {\n fn deserialize(fields: [Field; I32_SERIALIZED_LEN]) -> Self {\n fields[0] as i32\n }\n}\n\nimpl Serialize<I64_SERIALIZED_LEN> for i64 {\n fn serialize(self) -> [Field; I64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I64_SERIALIZED_LEN> for i64 {\n fn deserialize(fields: [Field; I64_SERIALIZED_LEN]) -> Self {\n fields[0] as i64\n }\n}\n\nimpl<T, let N: u32, let M: u32> Serialize<N * M> for [T; N]\nwhere\n T: Serialize<M>,\n{\n fn serialize(self) -> [Field; N * M] {\n let mut result: [Field; N * M] = std::mem::zeroed();\n let mut serialized: [Field; M] = std::mem::zeroed();\n for i in 0..N {\n serialized = self[i].serialize();\n for j in 0..M {\n result[i * M + j] = serialized[j];\n }\n }\n result\n }\n}\n\nimpl<T, let N: u32, let M: u32> Deserialize<N * M> for [T; N]\nwhere\n T: Deserialize<M>,\n{\n fn deserialize(fields: [Field; N * M]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; N] = std::mem::zeroed();\n reader.read_struct_array::<T, M, N>(Deserialize::deserialize, result)\n }\n}\n\n#[test]\nfn test_u16_serialization() {\n let a: u16 = 10;\n assert_eq(a, u16::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i8_serialization() {\n let a: i8 = -10;\n assert_eq(a, i8::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i16_serialization() {\n let a: i16 = -10;\n assert_eq(a, i16::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i32_serialization() {\n let a: i32 = -10;\n assert_eq(a, i32::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i64_serialization() {\n let a: i64 = -10;\n assert_eq(a, i64::deserialize(a.serialize()));\n}\n"
|
|
6577
6668
|
},
|
|
6578
|
-
"
|
|
6669
|
+
"363": {
|
|
6579
6670
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays.nr",
|
|
6580
|
-
"source": "pub mod assert_array_appended;\npub mod assert_array_prepended;\npub mod assert_combined_array;\npub mod assert_combined_transformed_array;\npub mod assert_exposed_sorted_transformed_value_array;\npub mod assert_sorted_array;\npub mod assert_sorted_transformed_value_array;\npub mod assert_split_sorted_transformed_value_arrays;\npub mod assert_split_transformed_value_arrays;\npub mod get_sorted_result;\npub mod get_sorted_tuple;\npub mod sort_by;\npub mod sort_by_counter;\n\n// Re-exports.\npub use assert_array_appended::{\n assert_array_appended, assert_array_appended_and_scoped, assert_array_appended_reversed,\n assert_array_appended_scoped,\n};\npub use assert_array_prepended::assert_array_prepended;\npub use assert_combined_array::{assert_combined_array, combine_arrays};\npub use assert_combined_transformed_array::{\n assert_combined_transformed_array, combine_and_transform_arrays,\n};\npub use assert_exposed_sorted_transformed_value_array::{\n assert_exposed_sorted_transformed_value_array,\n get_order_hints::{get_order_hints_asc, get_order_hints_desc, OrderHint},\n};\npub use assert_sorted_array::assert_sorted_array;\npub use assert_sorted_transformed_value_array::{\n assert_sorted_transformed_value_array, assert_sorted_transformed_value_array_capped_size,\n};\npub use assert_split_sorted_transformed_value_arrays::{\n assert_split_sorted_transformed_value_arrays_asc,\n assert_split_sorted_transformed_value_arrays_desc,\n get_split_order_hints::{get_split_order_hints_asc, get_split_order_hints_desc, SplitOrderHints},\n};\npub use assert_split_transformed_value_arrays::assert_split_transformed_value_arrays;\npub use get_sorted_result::{get_sorted_result, SortedResult};\npub use sort_by_counter::{sort_by_counter_asc, sort_by_counter_desc};\n\nuse crate::traits::{Empty, is_empty};\n\npub fn subarray<let SRC_LEN: u32, let DST_LEN: u32>(\n src: [Field; SRC_LEN],\n offset: u32,\n) -> [Field; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"offset too large\");\n\n let mut dst: [Field; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\n// Helper function to convert a validated array to BoundedVec.\n// Important: Only use it for validated arrays: validate_array(array) should be true.\npub unconstrained fn array_to_bounded_vec<T, let N: u32>(array: [T; N]) -> BoundedVec<T, N>\nwhere\n T: Empty + Eq,\n{\n let len = array_length(array);\n BoundedVec::from_parts_unchecked(array, len)\n}\n\n// Helper function to find the index of the first element in an array that satisfies a given predicate. If the element\n// is not found, the function returns N as the index.\npub unconstrained fn find_index_hint<T, let N: u32, Env>(\n array: [T; N],\n find: fn[Env](T) -> bool,\n) -> u32 {\n let mut index = N;\n for i in 0..N {\n // We check `index == N` to ensure that we only update the index if we haven't found a match yet.\n if (index == N) & find(array[i]) {\n index = i;\n }\n }\n index\n}\n\n// Routine which validates that all zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where any * is non-zero. Note that a full array of non-zero values is\n// valid.\npub fn validate_array<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut seen_empty = false;\n let mut length = 0;\n for i in 0..N {\n if is_empty(array[i]) {\n seen_empty = true;\n } else {\n assert(seen_empty == false, \"invalid array\");\n length += 1;\n }\n }\n length\n}\n\n// Helper function to count the number of non-empty elements in a validated array.\n// Important: Only use it for validated arrays where validate_array(array) returns true,\n// which ensures that:\n// 1. All elements before the first empty element are non-empty\n// 2. All elements after and including the first empty element are empty\n// 3. The array forms a contiguous sequence of non-empty elements followed by empty elements\npub fn array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n // We get the length by checking the index of the first empty element.\n\n // Safety: This is safe because we have validated the array (see function doc above) and the emptiness\n // of the element and non-emptiness of the previous element is checked below.\n let length = unsafe { find_index_hint(array, |elem: T| is_empty(elem)) };\n if length != 0 {\n assert(!is_empty(array[length - 1]));\n }\n if length != N {\n assert(is_empty(array[length]));\n }\n length\n}\n\npub fn array_concat<T, let N: u32, let M: u32>(array1: [T; N], array2: [T; M]) -> [T; N + M] {\n let mut result = [array1[0]; N + M];\n for i in 1..N {\n result[i] = array1[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n}\n/// This function assumes that `array1` and `array2` contain no more than N non-empty elements between them,\n/// if this is not the case then elements from the end of `array2` will be dropped.\npub fn array_merge<T, let N: u32>(array1: [T; N], array2: [T; N]) -> [T; N]\nwhere\n T: Empty + Eq,\n{\n // Safety: we constrain this array below\n let result = unsafe { array_merge_helper(array1, array2) };\n // We assume arrays have been validated. The only use cases so far are with previously validated arrays.\n let array1_len = array_length(array1);\n let mut add_from_left = true;\n for i in 0..N {\n add_from_left &= i != array1_len;\n if add_from_left {\n assert_eq(result[i], array1[i]);\n } else {\n assert_eq(result[i], array2[i - array1_len]);\n }\n }\n result\n}\n\nunconstrained fn array_merge_helper<T, let N: u32>(array1: [T; N], array2: [T; N]) -> [T; N]\nwhere\n T: Empty + Eq,\n{\n let mut result: [T; N] = [T::empty(); N];\n let mut i = 0;\n for elem in array1 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n for elem in array2 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n result\n}\n\n// Helper fn to create a subarray from a given array\npub fn array_splice<T, let N: u32, let M: u32>(array: [T; N], offset: u32) -> [T; M]\nwhere\n T: Empty,\n{\n assert(M + offset <= N, \"Subarray length larger than array length\");\n let mut result: [T; M] = [T::empty(); M];\n for i in 0..M {\n result[i] = array[offset + i];\n }\n result\n}\n\npub fn check_permutation<T, let N: u32>(\n original_array: [T; N],\n permuted_array: [T; N],\n original_indexes: [u32; N],\n)\nwhere\n T: Eq + Empty,\n{\n let mut seen_value = [false; N];\n for i in 0..N {\n let index = original_indexes[i];\n let original_value = original_array[index];\n assert(permuted_array[i].eq(original_value), \"Invalid index\");\n assert(!seen_value[index], \"Duplicated index\");\n seen_value[index] = true;\n }\n}\n\n// Helper function to find the index of the last element in an array, allowing empty elements.\n// e.g. useful for removing trailing 0s from [1, 0, 2, 0, 0, 0] -> [1, 0, 2]\n// Nothing to do with validated arrays. Correctness constrained by padded_array_length.\npub unconstrained fn find_last_value_index<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut index = N;\n for i in 0..N {\n let j = N - i - 1;\n // We check `index == N` to ensure that we only update the index if we haven't found a match yet.\n if (index == N) & !is_empty(array[j]) {\n index = j;\n }\n }\n index\n}\n\n// Routine which returns the length of an array right padded by empty elements\n// of the form: [*,*,*...,0,0,0,0] where * is any value (zeroes allowed).\n// See smoke_validate_array_trailing for examples.\n// Nothing to do with validated arrays. Correctness constrained by padded_array_length.\npub unconstrained fn unsafe_padded_array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let index = find_last_value_index(array);\n if index == N {\n 0\n } else {\n index + 1\n }\n}\n\n// Routine which validates that zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where * is any value (zeroes allowed).\npub fn padded_array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n // Safety: this value is constrained in the below loop.\n let length = unsafe { unsafe_padded_array_length(array) };\n // Check the elt just before length is non-zero:\n if length != 0 {\n assert(!is_empty(array[length - 1]), \"invalid right padded array\");\n }\n // Check all beyond length are zero:\n let mut check_zero = false;\n for i in 0..N {\n check_zero |= i == length;\n if check_zero {\n assert(is_empty(array[i]), \"invalid right padded array\");\n }\n }\n length\n}\n\n#[test]\nfn smoke_validate_array() {\n let valid_array: [Field; 0] = [];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [0];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [3];\n assert(validate_array(valid_array) == 1);\n\n let valid_array = [1, 2, 3];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0, 0];\n assert(validate_array(valid_array) == 3);\n}\n\n#[test]\nfn smoke_validate_array_trailing() {\n let valid_array: [Field; 0] = [];\n assert(padded_array_length(valid_array) == 0);\n\n let valid_array = [0];\n assert(padded_array_length(valid_array) == 0);\n\n let valid_array = [3];\n assert(padded_array_length(valid_array) == 1);\n\n let valid_array = [1, 0, 3];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [1, 0, 3, 0];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0, 0];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [0, 0, 3, 0, 0];\n assert(padded_array_length(valid_array) == 3);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case0() {\n let invalid_array = [0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case1() {\n let invalid_array = [1, 0, 0, 1, 0];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case2() {\n let invalid_array = [0, 0, 0, 0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test]\nfn test_empty_array_length() {\n assert_eq(array_length([0]), 0);\n assert_eq(array_length([0, 0, 0]), 0);\n}\n\n#[test]\nfn test_array_length() {\n assert_eq(array_length([123]), 1);\n assert_eq(array_length([123, 0, 0]), 1);\n assert_eq(array_length([123, 456]), 2);\n assert_eq(array_length([123, 456, 0]), 2);\n}\n\n#[test]\nfn test_array_length_invalid_arrays() {\n // Result can be misleading (but correct) for invalid arrays.\n assert_eq(array_length([0, 0, 123]), 0);\n assert_eq(array_length([0, 123, 0]), 0);\n assert_eq(array_length([0, 123, 456]), 0);\n assert_eq(array_length([123, 0, 456]), 1);\n}\n\n#[test]\nunconstrained fn find_index_greater_than_min() {\n let values = [10, 20, 30, 40];\n let min = 22;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 2);\n}\n\n#[test]\nunconstrained fn find_index_not_found() {\n let values = [10, 20, 30, 40];\n let min = 100;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 4);\n}\n\n#[test]\nfn test_array_concat() {\n let array0 = [1, 2, 3];\n let array1 = [4, 5];\n let concatenated = array_concat(array0, array1);\n assert_eq(concatenated, [1, 2, 3, 4, 5]);\n}\n\n#[test]\nfn check_permutation_basic_test() {\n let original_array = [1, 2, 3];\n let permuted_array = [3, 1, 2];\n let indexes = [2, 0, 1];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Duplicated index\")]\nfn check_permutation_duplicated_index() {\n let original_array = [0, 1, 0];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 0];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Invalid index\")]\nfn check_permutation_invalid_index() {\n let original_array = [0, 1, 2];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 2];\n check_permutation(original_array, permuted_array, indexes);\n}\n"
|
|
6671
|
+
"source": "pub mod assert_array_appended;\npub mod assert_array_prepended;\npub mod assert_combined_array;\npub mod assert_combined_transformed_array;\npub mod assert_exposed_sorted_transformed_value_array;\npub mod assert_sorted_array;\npub mod assert_sorted_transformed_value_array;\npub mod assert_split_sorted_transformed_value_arrays;\npub mod assert_split_transformed_value_arrays;\npub mod get_sorted_result;\npub mod get_sorted_tuple;\npub mod sort_by;\npub mod sort_by_counter;\n\n// Re-exports.\npub use assert_array_appended::{\n assert_array_appended, assert_array_appended_and_scoped, assert_array_appended_reversed,\n assert_array_appended_scoped,\n};\npub use assert_array_prepended::assert_array_prepended;\npub use assert_combined_array::{assert_combined_array, combine_arrays};\npub use assert_combined_transformed_array::{\n assert_combined_transformed_array, combine_and_transform_arrays,\n};\npub use assert_exposed_sorted_transformed_value_array::{\n assert_exposed_sorted_transformed_value_array,\n get_order_hints::{get_order_hints_asc, OrderHint},\n};\npub use assert_sorted_array::assert_sorted_array;\npub use assert_sorted_transformed_value_array::{\n assert_sorted_transformed_value_array, assert_sorted_transformed_value_array_capped_size,\n};\npub use assert_split_sorted_transformed_value_arrays::{\n assert_split_sorted_transformed_value_arrays_asc,\n get_split_order_hints::{get_split_order_hints_asc, SplitOrderHints},\n};\npub use assert_split_transformed_value_arrays::assert_split_transformed_value_arrays;\npub use get_sorted_result::{get_sorted_result, SortedResult};\npub use sort_by_counter::sort_by_counter_asc;\n\nuse crate::traits::{Empty, is_empty};\n\npub fn subarray<let SRC_LEN: u32, let DST_LEN: u32>(\n src: [Field; SRC_LEN],\n offset: u32,\n) -> [Field; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"offset too large\");\n\n let mut dst: [Field; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\n// Helper function to convert a validated array to BoundedVec.\n// Important: Only use it for validated arrays: validate_array(array) should be true.\npub unconstrained fn array_to_bounded_vec<T, let N: u32>(array: [T; N]) -> BoundedVec<T, N>\nwhere\n T: Empty + Eq,\n{\n let len = array_length(array);\n BoundedVec::from_parts_unchecked(array, len)\n}\n\n// Helper function to find the index of the first element in an array that satisfies a given predicate. If the element\n// is not found, the function returns N as the index.\npub unconstrained fn find_index_hint<T, let N: u32, Env>(\n array: [T; N],\n find: fn[Env](T) -> bool,\n) -> u32 {\n let mut index = N;\n for i in 0..N {\n // We check `index == N` to ensure that we only update the index if we haven't found a match yet.\n if (index == N) & find(array[i]) {\n index = i;\n }\n }\n index\n}\n\n// Routine which validates that all zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where any * is non-zero. Note that a full array of non-zero values is\n// valid.\npub fn validate_array<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut seen_empty = false;\n let mut length = 0;\n for i in 0..N {\n if is_empty(array[i]) {\n seen_empty = true;\n } else {\n assert(seen_empty == false, \"invalid array\");\n length += 1;\n }\n }\n length\n}\n\n// Helper function to count the number of non-empty elements in a validated array.\n// Important: Only use it for validated arrays where validate_array(array) returns true,\n// which ensures that:\n// 1. All elements before the first empty element are non-empty\n// 2. All elements after and including the first empty element are empty\n// 3. The array forms a contiguous sequence of non-empty elements followed by empty elements\npub fn array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n // We get the length by checking the index of the first empty element.\n\n // Safety: This is safe because we have validated the array (see function doc above) and the emptiness\n // of the element and non-emptiness of the previous element is checked below.\n let length = unsafe { find_index_hint(array, |elem: T| is_empty(elem)) };\n if length != 0 {\n assert(!is_empty(array[length - 1]));\n }\n if length != N {\n assert(is_empty(array[length]));\n }\n length\n}\n\n// Returns the number of consecutive elements at the start of the array for which the predicate returns false.\n// This function ensures that any element after the first matching element (predicate returns true) also matches the predicate.\npub fn array_length_until<T, let N: u32, Env>(array: [T; N], predicate: fn[Env](T) -> bool) -> u32 {\n let mut length = 0;\n let mut stop = false;\n for i in 0..N {\n if predicate(array[i]) {\n stop = true;\n } else {\n assert(\n stop == false,\n \"matching element found after already encountering a non-matching element\",\n );\n length += 1;\n }\n }\n length\n}\n\npub fn array_concat<T, let N: u32, let M: u32>(array1: [T; N], array2: [T; M]) -> [T; N + M] {\n let mut result = [array1[0]; N + M];\n for i in 1..N {\n result[i] = array1[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n}\n\n/// This function assumes that `array1` and `array2` contain no more than N non-empty elements between them,\n/// if this is not the case then elements from the end of `array2` will be dropped.\npub fn array_merge<T, let N: u32>(array1: [T; N], array2: [T; N]) -> [T; N]\nwhere\n T: Empty + Eq,\n{\n // Safety: we constrain this array below\n let result = unsafe { array_merge_helper(array1, array2) };\n // We assume arrays have been validated. The only use cases so far are with previously validated arrays.\n let array1_len = array_length(array1);\n let mut add_from_left = true;\n for i in 0..N {\n add_from_left &= i != array1_len;\n if add_from_left {\n assert_eq(result[i], array1[i]);\n } else {\n assert_eq(result[i], array2[i - array1_len]);\n }\n }\n result\n}\n\nunconstrained fn array_merge_helper<T, let N: u32>(array1: [T; N], array2: [T; N]) -> [T; N]\nwhere\n T: Empty + Eq,\n{\n let mut result: [T; N] = [T::empty(); N];\n let mut i = 0;\n for elem in array1 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n for elem in array2 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n result\n}\n\n// Helper fn to create a subarray from a given array\npub fn array_splice<T, let N: u32, let M: u32>(array: [T; N], offset: u32) -> [T; M]\nwhere\n T: Empty,\n{\n assert(M + offset <= N, \"Subarray length larger than array length\");\n let mut result: [T; M] = [T::empty(); M];\n for i in 0..M {\n result[i] = array[offset + i];\n }\n result\n}\n\npub fn check_permutation<T, let N: u32>(\n original_array: [T; N],\n permuted_array: [T; N],\n original_indexes: [u32; N],\n)\nwhere\n T: Eq + Empty,\n{\n let mut seen_value = [false; N];\n for i in 0..N {\n let index = original_indexes[i];\n let original_value = original_array[index];\n assert(permuted_array[i].eq(original_value), \"Invalid index\");\n assert(!seen_value[index], \"Duplicated index\");\n seen_value[index] = true;\n }\n}\n\n// Helper function to find the index of the last element in an array, allowing empty elements.\n// e.g. useful for removing trailing 0s from [1, 0, 2, 0, 0, 0] -> [1, 0, 2]\n// Nothing to do with validated arrays. Correctness constrained by padded_array_length.\npub unconstrained fn find_last_value_index<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut index = N;\n for i in 0..N {\n let j = N - i - 1;\n // We check `index == N` to ensure that we only update the index if we haven't found a match yet.\n if (index == N) & !is_empty(array[j]) {\n index = j;\n }\n }\n index\n}\n\n// Routine which returns the length of an array right padded by empty elements\n// of the form: [*,*,*...,0,0,0,0] where * is any value (zeroes allowed).\n// See smoke_validate_array_trailing for examples.\n// Nothing to do with validated arrays. Correctness constrained by padded_array_length.\npub unconstrained fn unsafe_padded_array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let index = find_last_value_index(array);\n if index == N {\n 0\n } else {\n index + 1\n }\n}\n\n// Routine which validates that zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where * is any value (zeroes allowed).\npub fn padded_array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n // Safety: this value is constrained in the below loop.\n let length = unsafe { unsafe_padded_array_length(array) };\n // Check the elt just before length is non-zero:\n if length != 0 {\n assert(!is_empty(array[length - 1]), \"invalid right padded array\");\n }\n // Check all beyond length are zero:\n let mut check_zero = false;\n for i in 0..N {\n check_zero |= i == length;\n if check_zero {\n assert(is_empty(array[i]), \"invalid right padded array\");\n }\n }\n length\n}\n\n// Helper function to check if an array is padded with a given value from a given index.\n// Different to padded_array_length in that it allows the elements before the given index to be the same as the padded value.\npub fn array_padded_with<T, let N: u32>(array: [T; N], from_index: u32, padded_with: T) -> bool\nwhere\n T: Eq,\n{\n let mut is_valid = true;\n let mut should_check = false;\n for i in 0..N {\n should_check |= i == from_index;\n is_valid &= !should_check | (array[i] == padded_with);\n }\n is_valid\n}\n\n#[test]\nfn smoke_validate_array() {\n let valid_array: [Field; 0] = [];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [0];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [3];\n assert(validate_array(valid_array) == 1);\n\n let valid_array = [1, 2, 3];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0, 0];\n assert(validate_array(valid_array) == 3);\n}\n\n#[test]\nfn smoke_validate_array_trailing() {\n let valid_array: [Field; 0] = [];\n assert(padded_array_length(valid_array) == 0);\n\n let valid_array = [0];\n assert(padded_array_length(valid_array) == 0);\n\n let valid_array = [3];\n assert(padded_array_length(valid_array) == 1);\n\n let valid_array = [1, 0, 3];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [1, 0, 3, 0];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0, 0];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [0, 0, 3, 0, 0];\n assert(padded_array_length(valid_array) == 3);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case0() {\n let invalid_array = [0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case1() {\n let invalid_array = [1, 0, 0, 1, 0];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case2() {\n let invalid_array = [0, 0, 0, 0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test]\nfn test_empty_array_length() {\n assert_eq(array_length([0]), 0);\n assert_eq(array_length([0, 0, 0]), 0);\n}\n\n#[test]\nfn test_array_length() {\n assert_eq(array_length([123]), 1);\n assert_eq(array_length([123, 0, 0]), 1);\n assert_eq(array_length([123, 456]), 2);\n assert_eq(array_length([123, 456, 0]), 2);\n}\n\n#[test]\nfn test_array_length_invalid_arrays() {\n // Result can be misleading (but correct) for invalid arrays.\n assert_eq(array_length([0, 0, 123]), 0);\n assert_eq(array_length([0, 123, 0]), 0);\n assert_eq(array_length([0, 123, 456]), 0);\n assert_eq(array_length([123, 0, 456]), 1);\n}\n\n#[test]\nfn test_array_length_until() {\n let array = [11, 22, 33, 44, 55];\n assert_eq(array_length_until(array, |x| x == 55), 4);\n assert_eq(array_length_until(array, |x| x == 56), 5);\n assert_eq(array_length_until(array, |x| x > 40), 3);\n assert_eq(array_length_until(array, |x| x > 10), 0);\n}\n\n#[test(should_fail_with = \"matching element found after already encountering a non-matching element\")]\nfn test_array_length_until_non_consecutive_fails() {\n let array = [1, 1, 0, 1, 0];\n let _ = array_length_until(array, |x| x == 0);\n}\n\n#[test(should_fail_with = \"matching element found after already encountering a non-matching element\")]\nfn test_array_length_until_first_non_matching_fails() {\n let array = [1, 0, 0, 0, 0];\n let _ = array_length_until(array, |x| x == 1);\n}\n\n#[test]\nunconstrained fn find_index_greater_than_min() {\n let values = [10, 20, 30, 40];\n let min = 22;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 2);\n}\n\n#[test]\nunconstrained fn find_index_not_found() {\n let values = [10, 20, 30, 40];\n let min = 100;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 4);\n}\n\n#[test]\nfn test_array_concat() {\n let array0 = [1, 2, 3];\n let array1 = [4, 5];\n let concatenated = array_concat(array0, array1);\n assert_eq(concatenated, [1, 2, 3, 4, 5]);\n}\n\n#[test]\nfn check_permutation_basic_test() {\n let original_array = [1, 2, 3];\n let permuted_array = [3, 1, 2];\n let indexes = [2, 0, 1];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Duplicated index\")]\nfn check_permutation_duplicated_index() {\n let original_array = [0, 1, 0];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 0];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Invalid index\")]\nfn check_permutation_invalid_index() {\n let original_array = [0, 1, 2];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 2];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test]\nfn test_array_padded_with() {\n let array = [11, 22, 33, 44, 44];\n assert_eq(array_padded_with(array, 0, 44), false);\n assert_eq(array_padded_with(array, 1, 44), false);\n assert_eq(array_padded_with(array, 2, 44), false);\n assert_eq(array_padded_with(array, 3, 44), true);\n assert_eq(array_padded_with(array, 4, 44), true);\n assert_eq(array_padded_with(array, 4, 33), false);\n assert_eq(array_padded_with(array, 5, 44), true); // Index out of bounds.\n assert_eq(array_padded_with(array, 0, 11), false);\n}\n"
|
|
6581
6672
|
},
|
|
6582
|
-
"
|
|
6673
|
+
"364": {
|
|
6583
6674
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr",
|
|
6584
6675
|
"source": "pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\npub fn min(f1: Field, f2: Field) -> Field {\n if f1.lt(f2) {\n f1\n } else {\n f2\n }\n}\n\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n\npub(crate) fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\npub(crate) fn sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167,\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes: [u8; 31] = field.to_be_bytes();\n assert_eq(inputs, return_bytes);\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158,\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2: [u8; 31] = field.to_be_bytes();\n\n assert_eq(return_bytes2, return_bytes);\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes: [u8; 32] = max_value.to_be_bytes();\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n"
|
|
6585
6676
|
},
|
|
6586
|
-
"
|
|
6677
|
+
"366": {
|
|
6587
6678
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
|
|
6588
6679
|
"source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"
|
|
6589
6680
|
},
|
|
6590
|
-
"
|
|
6681
|
+
"376": {
|
|
6591
6682
|
"path": "/home/aztec-dev/nargo/github.com/noir-lang/sha256/v0.1.2/src/sha256.nr",
|
|
6592
6683
|
"source": "use std::hash::sha256_compression;\nuse std::runtime::is_unconstrained;\n\nuse constants::{\n BLOCK_BYTE_PTR, BLOCK_SIZE, HASH, INITIAL_STATE, INT_BLOCK, INT_BLOCK_SIZE, INT_SIZE,\n INT_SIZE_PTR, MSG_BLOCK, MSG_SIZE_PTR, STATE, TWO_POW_16, TWO_POW_24, TWO_POW_32, TWO_POW_8,\n};\n\nmod constants;\nmod tests;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N as u64)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> HASH {\n let message_size = message_size as u32;\n assert(message_size <= N);\n\n if std::runtime::is_unconstrained() {\n // Safety: SHA256 is running as an unconstrained function.\n unsafe {\n __sha256_var(msg, message_size)\n }\n } else {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = INITIAL_STATE;\n // Pointer into msg_block on a 64 byte scale\n let mut msg_byte_ptr = 0;\n let num_blocks = N / BLOCK_SIZE;\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_block, h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n verify_msg_block_padding(msg_block, msg_byte_ptr);\n }\n }\n\n // If we had modulo == 0 then it means the last block was full,\n // and we can reset the pointer to zero to overwrite it.\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n let index = msg_byte_ptr / INT_SIZE;\n msg_block[index] = set_item_byte_then_zeros(msg_block[index], msg_byte_ptr, 1 << 7);\n\n msg_byte_ptr = msg_byte_ptr + 1;\n let last_block = msg_block;\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr > MSG_SIZE_PTR {\n h = sha256_compression(msg_block, h);\n // `attach_len_to_msg_block` will zero out everything after the `msg_byte_ptr`.\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe { attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size) };\n\n verify_msg_len(msg_block, last_block, msg_byte_ptr, message_size);\n\n hash_final_block(msg_block, h)\n }\n}\n\n// Variable size SHA-256 hash\nunconstrained fn __sha256_var<let N: u32>(msg: [u8; N], message_size: u32) -> HASH {\n let num_full_blocks = message_size / BLOCK_SIZE;\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = INITIAL_STATE;\n // Pointer into msg_block on a 64 byte scale\n for i in 0..num_full_blocks {\n let (msg_block, _) = build_msg_block(msg, message_size, BLOCK_SIZE * i);\n h = sha256_compression(msg_block, h);\n }\n\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n let modulo = message_size % BLOCK_SIZE;\n let (mut msg_block, mut msg_byte_ptr): (INT_BLOCK, u32) = if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_full_blocks;\n let (new_msg_block, new_msg_byte_ptr) = build_msg_block(msg, message_size, msg_start);\n\n (new_msg_block, new_msg_byte_ptr)\n } else {\n // If we had modulo == 0 then it means the last block was full,\n // and we can reset the pointer to zero to overwrite it.\n ([0; INT_BLOCK_SIZE], 0)\n };\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n let index = msg_byte_ptr / INT_SIZE;\n msg_block[index] = set_item_byte_then_zeros(msg_block[index], msg_byte_ptr, 1 << 7);\n\n // If we don't have room to write the size, compress the block and reset it.\n let (h, mut msg_byte_ptr): (STATE, u32) = if msg_byte_ptr >= MSG_SIZE_PTR {\n // `attach_len_to_msg_block` will zero out everything after the `msg_byte_ptr`.\n (sha256_compression(msg_block, h), 0)\n } else {\n (h, msg_byte_ptr + 1)\n };\n msg_block = attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size);\n\n hash_final_block(msg_block, h)\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start`.\n// Returns the block and the length that has been copied rather than padded with zeros.\nunconstrained fn build_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> (MSG_BLOCK, BLOCK_BYTE_PTR) {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else if message_size < msg_start + BLOCK_SIZE {\n message_size - msg_start\n } else {\n BLOCK_SIZE\n };\n\n // Figure out the number of items in the int array that we have to pack.\n // e.g. if the input is [0,1,2,3,4,5] then we need to pack it as 2 items: [0123, 4500]\n let mut int_input = block_input / INT_SIZE;\n if block_input % INT_SIZE != 0 {\n int_input = int_input + 1;\n };\n\n for i in 0..int_input {\n let mut msg_item: u32 = 0;\n // Always construct the integer as 4 bytes, even if it means going beyond the input.\n for j in 0..INT_SIZE {\n let k = i * INT_SIZE + j;\n let msg_byte = if k < block_input {\n msg[msg_start + k]\n } else {\n 0\n };\n msg_item = lshift8(msg_item, 1) + msg_byte as u32;\n }\n msg_block[i] = msg_item;\n }\n\n // Returning the index as if it was a 64 byte array.\n // We have to project it down to 16 items and bit shifting to get a byte back if we need it.\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed by `build_msg_block`\n// and matches the input data. Returns the index of the first unset item.\n// If `message_size` is less than `msg_start` then this is called with the old non-empty block;\n// in that case we can skip verification, ie. no need to check that everything is zero.\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: MSG_BLOCK,\n msg_start: u32,\n) -> BLOCK_BYTE_PTR {\n let mut msg_byte_ptr = 0;\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n // We might have to go beyond the input to pad the fields.\n if msg_end % INT_SIZE != 0 {\n msg_end = msg_end + INT_SIZE - msg_end % INT_SIZE;\n }\n\n // Reconstructed packed item.\n let mut msg_item: u32 = 0;\n\n // Inclusive at the end so that we can compare the last item.\n let mut i: u32 = 0;\n for k in msg_start..=msg_end {\n if k % INT_SIZE == 0 {\n // If we consumed some input we can compare against the block.\n if (msg_start < message_size) & (k > msg_start) {\n assert_eq(msg_block[i], msg_item as u32);\n i = i + 1;\n msg_item = 0;\n }\n }\n // Shift the accumulator\n msg_item = lshift8(msg_item, 1);\n // If we have input to consume, add it at the rightmost position.\n if k < message_size & k < msg_end {\n msg_item = msg_item + msg[k] as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\n// Verify the block we are compressing was appropriately padded with zeros by `build_msg_block`.\n// This is only relevant for the last, potentially partially filled block.\nfn verify_msg_block_padding(msg_block: MSG_BLOCK, msg_byte_ptr: BLOCK_BYTE_PTR) {\n // Check all the way to the end of the block.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_BLOCK_SIZE);\n}\n\n// Verify that a region of ints in the message block are (partially) zeroed,\n// up to an (exclusive) maximum which can either be the end of the block\n// or just where the size is to be written.\nfn verify_msg_block_zeros(\n msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n max_int_byte_ptr: u32,\n) {\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // First integer which is supposed to be (partially) zero.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n let zeros = INT_SIZE - modulo;\n let mask = if zeros == 3 {\n TWO_POW_24\n } else if zeros == 2 {\n TWO_POW_16\n } else {\n TWO_POW_8\n };\n assert_eq(msg_block[int_byte_ptr] % mask, zero);\n int_byte_ptr = int_byte_ptr + 1;\n }\n\n // Check the rest of the items.\n for i in 0..max_int_byte_ptr {\n if i >= int_byte_ptr {\n assert_eq(msg_block[i], zero);\n }\n }\n}\n\n// Verify that up to the byte pointer the two blocks are equal.\n// At the byte pointer the new block can be partially zeroed.\nfn verify_msg_block_equals_last(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n) {\n // msg_byte_ptr is the position at which they are no longer have to be the same.\n // First integer which is supposed to be (partially) zero contains that pointer.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Reconstruct the partially zero item from the last block.\n let last_field = last_block[int_byte_ptr];\n let mut msg_item: u32 = 0;\n // Reset to where they are still equal.\n msg_byte_ptr = msg_byte_ptr - modulo;\n for i in 0..INT_SIZE {\n msg_item = lshift8(msg_item, 1);\n if i < modulo {\n msg_item = msg_item + get_item_byte(last_field, msg_byte_ptr) as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n assert_eq(msg_block[int_byte_ptr], msg_item);\n }\n\n for i in 0..INT_SIZE_PTR {\n if i < int_byte_ptr {\n assert_eq(msg_block[i], last_block[i]);\n }\n }\n}\n\n// Set the rightmost `zeros` number of bytes to 0.\n#[inline_always]\nfn set_item_zeros(item: u32, zeros: u8) -> u32 {\n lshift8(rshift8(item, zeros), zeros)\n}\n\n// Replace one byte in the item with a value, and set everything after it to zero.\nfn set_item_byte_then_zeros(msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR, msg_byte: u8) -> u32 {\n let zeros = INT_SIZE - msg_byte_ptr % INT_SIZE;\n let zeroed_item = set_item_zeros(msg_item, zeros as u8);\n let new_item = byte_into_item(msg_byte, msg_byte_ptr);\n zeroed_item + new_item\n}\n\n// Get a byte of a message item according to its overall position in the `BLOCK_SIZE` space.\nfn get_item_byte(mut msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR) -> u8 {\n // How many times do we have to shift to the right to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n msg_item = rshift8(msg_item, shifts as u8);\n // At this point the byte we want is in the rightmost position.\n msg_item as u8\n}\n\n// Project a byte into a position in a field based on the overall block pointer.\n// For example putting 1 into pointer 5 would be 100, because overall we would\n// have [____, 0100] with indexes [0123,4567].\n#[inline_always]\nfn byte_into_item(msg_byte: u8, msg_byte_ptr: BLOCK_BYTE_PTR) -> u32 {\n let mut msg_item = msg_byte as u32;\n // How many times do we have to shift to the left to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n lshift8(msg_item, shifts as u8)\n}\n\n// Construct a field out of 4 bytes.\n#[inline_always]\nfn make_item(b0: u8, b1: u8, b2: u8, b3: u8) -> u32 {\n let mut item = b0 as u32;\n item = lshift8(item, 1) + b1 as u32;\n item = lshift8(item, 1) + b2 as u32;\n item = lshift8(item, 1) + b3 as u32;\n item\n}\n\n// Shift by 8 bits to the left between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise multiplies by 256.\n#[inline_always]\nfn lshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n // Brillig wouldn't shift 0<<4 without overflow.\n if shifts >= 4 {\n 0\n } else {\n item << (8 * shifts)\n }\n } else {\n // We can do a for loop up to INT_SIZE or an if-else.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item * TWO_POW_8\n } else if shifts == 2 {\n item * TWO_POW_16\n } else if shifts == 3 {\n item * TWO_POW_24\n } else {\n // Doesn't make sense, but it's most likely called on 0 anyway.\n 0\n }\n }\n}\n\n// Shift by 8 bits to the right between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise divides by 256.\nfn rshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n item >> (8 * shifts)\n } else {\n // Division wouldn't work on `Field`.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item / TWO_POW_8\n } else if shifts == 2 {\n item / TWO_POW_16\n } else if shifts == 3 {\n item / TWO_POW_24\n } else {\n 0\n }\n }\n}\n\n// Zero out all bytes between the end of the message and where the length is appended,\n// then write the length into the last 8 bytes of the block.\nunconstrained fn attach_len_to_msg_block(\n mut msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) -> MSG_BLOCK {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 bits (i.e. until msg_byte_ptr = 56).\n // There can be one item which has to be partially zeroed.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Index of the block in which we find the item we need to partially zero.\n let i = msg_byte_ptr / INT_SIZE;\n let zeros = INT_SIZE - modulo;\n msg_block[i] = set_item_zeros(msg_block[i], zeros as u8);\n msg_byte_ptr = msg_byte_ptr + zeros;\n }\n\n // The rest can be zeroed without bit shifting anything.\n for i in (msg_byte_ptr / INT_SIZE)..INT_SIZE_PTR {\n msg_block[i] = 0;\n }\n\n // Set the last two 4 byte ints as the first/second half of the 8 bytes of the length.\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..=1 {\n let shift = i * 4;\n msg_block[INT_SIZE_PTR + i] = make_item(\n len_bytes[shift],\n len_bytes[shift + 1],\n len_bytes[shift + 2],\n len_bytes[shift + 3],\n );\n }\n msg_block\n}\n\n// Verify that the message length was correctly written by `attach_len_to_msg_block`,\n// and that everything between the byte pointer and the size pointer was zeroed,\n// and that everything before the byte pointer was untouched.\nfn verify_msg_len(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) {\n // Check zeros up to the size pointer.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_SIZE_PTR);\n\n // Check that up to the pointer we match the last block.\n verify_msg_block_equals_last(msg_block, last_block, msg_byte_ptr);\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let mut reconstructed_len: u64 = 0;\n for i in INT_SIZE_PTR..INT_BLOCK_SIZE {\n reconstructed_len = reconstructed_len * TWO_POW_32;\n reconstructed_len = reconstructed_len + msg_block[i] as u64;\n }\n let len = 8 * message_size as u64;\n assert_eq(reconstructed_len, len);\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n // Hash final padded block\n state = sha256_compression(msg_block, state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[j] as Field).to_be_bytes();\n for k in 0..4 {\n out_h[4 * j + k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod equivalence_test {\n\n #[test]\n fn test_implementations_agree(msg: [u8; 100], message_size: u64) {\n let message_size = message_size % 100;\n let unconstrained_sha = unsafe { super::__sha256_var(msg, message_size as u32) };\n let sha = super::sha256_var(msg, message_size);\n assert_eq(sha, unconstrained_sha);\n }\n}\n"
|
|
6593
6684
|
},
|
|
6594
|
-
"
|
|
6685
|
+
"377": {
|
|
6595
6686
|
"path": "/home/aztec-dev/nargo/github.com/noir-lang/schnorr/v0.1.2/src/lib.nr",
|
|
6596
6687
|
"source": "use std::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul};\nuse std::hash::{blake2s, pedersen_hash};\n\n// the multiples of BN_P that are still less than 2^254 split into (lo, hi)\nglobal BN_P_m: [(Field, Field); 6] = [\n (0, 0),\n (201385395114098847380338600778089168199, 64323764613183177041862057485226039389),\n (62488423307259231297302594124410124942, 128647529226366354083724114970452078779),\n (263873818421358078677641194902499293141, 192971293839549531125586172455678118168),\n (124976846614518462594605188248820249884, 257295058452732708167448229940904157558),\n (326362241728617309974943789026909418083, 321618823065915885209310287426130196947),\n];\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\npub fn verify_signature<let N: u32>(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; N],\n) -> bool {\n //scalar lo/hi from bytes\n let sig_s = scalar_from_bytes(signature, 0);\n let sig_e = scalar_from_bytes(signature, 32);\n // pub_key is on Grumpkin curve\n let mut is_ok = (public_key.y * public_key.y == public_key.x * public_key.x * public_key.x - 17)\n & (!public_key.is_infinite);\n\n if ((sig_s.lo != 0) | (sig_s.hi != 0)) & ((sig_e.lo != 0) | (sig_e.hi != 0)) {\n let (r_is_infinite, result) =\n calculate_signature_challenge(public_key, sig_s, sig_e, message);\n\n is_ok &= !r_is_infinite;\n for i in 0..32 {\n is_ok &= result[i] == signature[32 + i];\n }\n } else {\n is_ok = false;\n }\n is_ok\n}\n\npub fn assert_valid_signature<let N: u32>(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; N],\n) {\n //scalar lo/hi from bytes\n let sig_s = scalar_from_bytes(signature, 0);\n let sig_e = scalar_from_bytes(signature, 32);\n\n // assert pub_key is on Grumpkin curve\n assert(public_key.y * public_key.y == public_key.x * public_key.x * public_key.x - 17);\n assert(public_key.is_infinite == false);\n // assert signature is not null\n assert((sig_s.lo != 0) | (sig_s.hi != 0));\n assert((sig_e.lo != 0) | (sig_e.hi != 0));\n\n let (r_is_infinite, result) = calculate_signature_challenge(public_key, sig_s, sig_e, message);\n\n assert(!r_is_infinite);\n for i in 0..32 {\n assert(result[i] == signature[32 + i]);\n }\n}\n\nfn calculate_signature_challenge<let N: u32>(\n public_key: EmbeddedCurvePoint,\n sig_s: EmbeddedCurveScalar,\n sig_e: EmbeddedCurveScalar,\n message: [u8; N],\n) -> (bool, [u8; 32]) {\n let g1 = EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860,\n is_infinite: false,\n };\n let reduced_sig_e = normalize_signature(sig_e);\n let r = multi_scalar_mul([g1, public_key], [sig_s, reduced_sig_e]);\n // compare the _hashes_ rather than field elements modulo r\n let pedersen_hash = pedersen_hash([r.x, public_key.x, public_key.y]);\n let pde: [u8; 32] = pedersen_hash.to_be_bytes();\n\n let mut hash_input = [0; N + 32];\n for i in 0..32 {\n hash_input[i] = pde[i];\n }\n for i in 0..N {\n hash_input[32 + i] = message[i];\n }\n\n let result = blake2s(hash_input);\n (r.is_infinite, result)\n}\n\nunconstrained fn __gt(a: Field, b: Field) -> bool {\n b.lt(a)\n}\n\n// gets the quotient of lo/hi when divided by BN254_Fq modulus\nunconstrained fn __get_quotient(hi: Field, lo: Field) -> Field {\n let mut q: Field = 0;\n let mut r_hi = hi;\n let mut r_lo = lo;\n let MODULUS = BN_P_m[1];\n\n for _ in 1..6 {\n // check if rhi, rlo is larger than BN_P\n let borrow = r_lo.lt(MODULUS.0);\n\n if borrow {\n r_lo = r_lo + TWO_POW_128;\n // rlo is always larger than BN_P lo now\n r_hi = r_hi - 1;\n }\n\n let MODULUS_hi = MODULUS.1;\n\n let gt_flag = !r_hi.lt(MODULUS_hi);\n\n if gt_flag {\n r_hi = r_hi - MODULUS.1;\n r_lo = r_lo - MODULUS.0;\n if TWO_POW_128.lt(r_lo) | TWO_POW_128.lt(r_hi) {\n break;\n }\n q += 1;\n }\n }\n q\n}\n\n// this method reduces the signature to the range [0, BN254_Fq_MODULUS)\nfn normalize_signature(sig_e: EmbeddedCurveScalar) -> EmbeddedCurveScalar {\n let mut hi = sig_e.hi;\n let mut lo = sig_e.lo;\n // get the quotient\n let q = unsafe { __get_quotient(hi, lo) };\n let MODULUSmq = (BN_P_m[q].0, BN_P_m[q].1);\n let MODULUS = BN_P_m[1];\n // remove MODULUS * q from lo/hi\n let borrow = unsafe { __gt(MODULUSmq.0, lo) };\n // rlo, rhi is the signature without the multiple of MODULUS\n let rlo = lo - MODULUSmq.0 + borrow as Field * TWO_POW_128;\n let rhi = hi - borrow as Field - MODULUSmq.1;\n // now we validate that rlo and rhi are positive\n rlo.assert_max_bit_size::<128>();\n rhi.assert_max_bit_size::<128>();\n // validate that rlo, rhi is smaller than MODULUS\n // if the lo is larger than the modulus lo we have to get a borrow\n let borrow = unsafe { __gt(rlo, MODULUS.0) };\n let rplo = MODULUS.0 - rlo + borrow as Field * TWO_POW_128;\n let rphi = MODULUS.1 - rhi - borrow as Field;\n // check that rplo and rphi are positive\n rplo.assert_max_bit_size::<128>();\n rphi.assert_max_bit_size::<128>();\n EmbeddedCurveScalar::new(rlo, rhi)\n}\n\n//Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\nfn scalar_from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v: Field = 1;\n let mut lo: Field = 0;\n let mut hi: Field = 0;\n for i in 0..16 {\n lo = lo + (bytes[offset + 31 - i] as Field) * v;\n hi = hi + (bytes[offset + 15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = EmbeddedCurveScalar::new(lo, hi);\n sig_s\n}\n\nmod test {\n use super::normalize_signature;\n use super::verify_signature;\n use std::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar};\n\n #[test]\n fn test_zero_signature() {\n let public_key: EmbeddedCurvePoint = EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860,\n is_infinite: false,\n };\n let signature: [u8; 64] = [0; 64];\n let message: [u8; _] = [2; 64]; // every message\n let verified = verify_signature(public_key, signature, message);\n assert(!verified);\n }\n\n #[test]\n fn smoke_test() {\n let message: [u8; 10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n let pub_key_x: Field = 0x04b260954662e97f00cab9adb773a259097f7a274b83b113532bce27fa3fb96a;\n let pub_key_y: Field = 0x2fd51571db6c08666b0edfbfbc57d432068bccd0110a39b166ab243da0037197;\n let signature: [u8; 64] = [\n 1, 13, 119, 112, 212, 39, 233, 41, 84, 235, 255, 93, 245, 172, 186, 83, 157, 253, 76,\n 77, 33, 128, 178, 15, 214, 67, 105, 107, 177, 234, 77, 48, 27, 237, 155, 84, 39, 84,\n 247, 27, 22, 8, 176, 230, 24, 115, 145, 220, 254, 122, 135, 179, 171, 4, 214, 202, 64,\n 199, 19, 84, 239, 138, 124, 12,\n ];\n\n let pub_key = EmbeddedCurvePoint { x: pub_key_x, y: pub_key_y, is_infinite: false };\n let valid_signature = verify_signature(pub_key, signature, message);\n assert(valid_signature);\n super::assert_valid_signature(pub_key, signature, message);\n }\n\n #[test]\n fn test_normalize_signature() {\n let sig_e = EmbeddedCurveScalar::new(\n 201385395114098847380338600778112493540,\n 64323764613183177041862057485226039389,\n );\n let normalized = normalize_signature(sig_e);\n let expected = EmbeddedCurveScalar::new(23325341, 0);\n assert(normalized == expected);\n }\n\n #[test]\n fn test_normalize_signature_2() {\n let sig_e = EmbeddedCurveScalar::new(\n 263873818421358078677641194902522618482,\n 192971293839549531125586172455678118168,\n );\n let normalized = normalize_signature(sig_e);\n let expected = EmbeddedCurveScalar::new(23325341, 0);\n assert(normalized == expected);\n }\n\n}\n\nmod bench {\n use super::{assert_valid_signature, verify_signature};\n use std::embedded_curve_ops::EmbeddedCurvePoint;\n\n #[export]\n pub fn bench_verify_signature(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; 32],\n ) -> bool {\n verify_signature(public_key, signature, message)\n }\n\n #[export]\n pub fn bench_assert_valid_signature(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; 32],\n ) {\n assert_valid_signature(public_key, signature, message)\n }\n}\n\n"
|
|
6597
6688
|
},
|
|
@@ -6641,7 +6732,7 @@
|
|
|
6641
6732
|
},
|
|
6642
6733
|
"69": {
|
|
6643
6734
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/context/private_context.nr",
|
|
6644
|
-
"source": "use crate::{\n context::{inputs::PrivateContextInputs, returns_hash::ReturnsHash},\n hash::{ArgsHasher, hash_args_array, hash_calldata_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n block_header::get_block_header_at,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n notify_enqueued_public_function_call, notify_set_min_revertible_side_effect_counter,\n notify_set_public_teardown_function_call,\n },\n execution_cache,\n key_validation_request::get_key_validation_request,\n notes::{notify_created_nullifier, notify_nullified_note},\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n gas_settings::GasSettings,\n log::Log,\n log_hash::LogHash,\n max_block_number::MaxBlockNumber,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n private_log::PrivateLogData,\n public_call_request::PublicCallRequest,\n read_request::ReadRequest,\n side_effect::Counted,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n },\n address::{AztecAddress, EthAddress},\n block_header::BlockHeader,\n constants::{\n MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NOTE_HASHES_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL,\n PRIVATE_LOG_SIZE_IN_FIELDS,\n },\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Empty, Hash, ToField},\n utils::arrays::array_concat,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub max_block_number: MaxBlockNumber,\n\n pub note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n pub nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n pub note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n pub nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub historical_header: BlockHeader,\n\n pub private_logs: BoundedVec<PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<LogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n pub last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n pub fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n pub fn gas_settings(self) -> GasSettings {\n self.inputs.tx_context.gas_settings\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n pub fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n pub fn push_nullifier(&mut self, nullifier: Field) {\n notify_created_nullifier(nullifier);\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n pub fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n let nullifier_counter = self.next_counter();\n notify_nullified_note(nullifier, nullified_note_hash, nullifier_counter);\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: nullifier_counter,\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n pub fn get_block_header(self) -> BlockHeader {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_block_header_at(self, block_number: u32) -> BlockHeader {\n get_block_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n self.return_hash = returns_hasher.hash();\n execution_cache::store(returns_hasher.fields, self.return_hash);\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage(),\n nullifier_read_requests: self.nullifier_read_requests.storage(),\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage(),\n note_hashes: self.note_hashes.storage(),\n nullifiers: self.nullifiers.storage(),\n private_call_requests: self.private_call_requests.storage(),\n public_call_requests: self.public_call_requests.storage(),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage(),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n private_logs: self.private_logs.storage(),\n contract_class_logs_hashes: self.contract_class_logs_hashes.storage(),\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index as u32].unwrap_or(\n KeyValidationRequest::empty(),\n );\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale\n // Typically we'd validate keys by showing that they are the preimage of `pk_m_hash`, but that'd require\n // the oracle returning the master secret keys, which could cause malicious contracts to leak it or learn\n // about secrets from other contracts. We therefore silo secret keys, and rely on the private kernel to\n // validate that we siloed secret key corresponds to correct siloing of the master secret key that hashes\n // to `pk_m_hash`.\n\n // Safety: Kernels verify that the key validation request is valid and below we verify that a request\n // for the correct public key has been received.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert_eq(request.pk_m.hash(), pk_m_hash, \"Obtained invalid key validation request\");\n\n self.key_validation_requests_and_generators.push(\n KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index as u32],\n },\n );\n self.last_key_validation_requests[key_index as u32] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n pub fn emit_private_log(&mut self, log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS]) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: Log::new(log), note_hash_counter: 0, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn emit_raw_note_log(\n &mut self,\n log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS],\n note_hash_counter: u32,\n ) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: Log::new(log), note_hash_counter, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store(args, args_hash);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store(args, args_hash);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> ReturnsHash {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n // Safety: The oracle simulates the private call and returns the value of the side effects counter after\n // execution of the call (which means that end_side_effect_counter - start_side_effect_counter is\n // the number of side effects that took place), along with the hash of the return values. We validate these\n // by requesting a private kernel iteration in which the return values are constrained to hash\n // to `returns_hash` and the side effects counter to increment from start to end.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n self.side_effect_counter = end_side_effect_counter + 1;\n ReturnsHash::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n let calldata_hash = hash_calldata_array([function_selector.to_field()]);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n let calldata_hash = hash_calldata_array([function_selector.to_field()]);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, true)\n }\n\n pub fn call_public_function_with_calldata_hash(\n &mut self,\n contract_address: AztecAddress,\n calldata_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n\n notify_enqueued_public_function_call(\n contract_address,\n calldata_hash,\n counter,\n is_static_call,\n );\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n is_static_call,\n calldata_hash,\n };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.set_public_teardown_function_with_calldata_hash(contract_address, calldata_hash, false)\n }\n\n pub fn set_public_teardown_function_with_calldata_hash(\n &mut self,\n contract_address: AztecAddress,\n calldata_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n\n notify_set_public_teardown_function_call(\n contract_address,\n calldata_hash,\n counter,\n is_static_call,\n );\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n is_static_call,\n calldata_hash,\n };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: BlockHeader::empty(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"
|
|
6735
|
+
"source": "use crate::{\n context::{inputs::PrivateContextInputs, returns_hash::ReturnsHash},\n hash::{ArgsHasher, hash_args_array, hash_calldata_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n block_header::get_block_header_at,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n notify_enqueued_public_function_call, notify_set_min_revertible_side_effect_counter,\n notify_set_public_teardown_function_call,\n },\n execution_cache,\n key_validation_request::get_key_validation_request,\n notes::{notify_created_nullifier, notify_nullified_note},\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n gas_settings::GasSettings,\n log_hash::LogHash,\n max_block_number::MaxBlockNumber,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n private_log::{PrivateLog, PrivateLogData},\n public_call_request::PublicCallRequest,\n read_request::ReadRequest,\n side_effect::Counted,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n },\n address::{AztecAddress, EthAddress},\n block_header::BlockHeader,\n constants::{\n MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NOTE_HASHES_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL,\n PRIVATE_LOG_SIZE_IN_FIELDS,\n },\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Empty, Hash, ToField},\n utils::arrays::array_concat,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub max_block_number: MaxBlockNumber,\n\n pub note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n pub nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n pub note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n pub nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub historical_header: BlockHeader,\n\n pub private_logs: BoundedVec<PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<Counted<LogHash>, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n pub last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n pub fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n pub fn gas_settings(self) -> GasSettings {\n self.inputs.tx_context.gas_settings\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n pub fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n pub fn push_nullifier(&mut self, nullifier: Field) {\n notify_created_nullifier(nullifier);\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n pub fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n let nullifier_counter = self.next_counter();\n notify_nullified_note(nullifier, nullified_note_hash, nullifier_counter);\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: nullifier_counter,\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n pub fn get_block_header(self) -> BlockHeader {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_block_header_at(self, block_number: u32) -> BlockHeader {\n get_block_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n self.return_hash = returns_hasher.hash();\n execution_cache::store(returns_hasher.fields, self.return_hash);\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage(),\n nullifier_read_requests: self.nullifier_read_requests.storage(),\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage(),\n note_hashes: self.note_hashes.storage(),\n nullifiers: self.nullifiers.storage(),\n private_call_requests: self.private_call_requests.storage(),\n public_call_requests: self.public_call_requests.storage(),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage(),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n private_logs: self.private_logs.storage(),\n contract_class_logs_hashes: self.contract_class_logs_hashes.storage(),\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index as u32].unwrap_or(\n KeyValidationRequest::empty(),\n );\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale\n // Typically we'd validate keys by showing that they are the preimage of `pk_m_hash`, but that'd require\n // the oracle returning the master secret keys, which could cause malicious contracts to leak it or learn\n // about secrets from other contracts. We therefore silo secret keys, and rely on the private kernel to\n // validate that we siloed secret key corresponds to correct siloing of the master secret key that hashes\n // to `pk_m_hash`.\n\n // Safety: Kernels verify that the key validation request is valid and below we verify that a request\n // for the correct public key has been received.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert_eq(request.pk_m.hash(), pk_m_hash, \"Obtained invalid key validation request\");\n\n self.key_validation_requests_and_generators.push(\n KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index as u32],\n },\n );\n self.last_key_validation_requests[key_index as u32] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n pub fn emit_private_log(&mut self, log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS], length: u32) {\n let counter = self.next_counter();\n let private_log =\n PrivateLogData { log: PrivateLog::new(log, length), note_hash_counter: 0, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn emit_raw_note_log(\n &mut self,\n log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS],\n length: u32,\n note_hash_counter: u32,\n ) {\n let counter = self.next_counter();\n let private_log =\n PrivateLogData { log: PrivateLog::new(log, length), note_hash_counter, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store(args, args_hash);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store(args, args_hash);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> ReturnsHash {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n // Safety: The oracle simulates the private call and returns the value of the side effects counter after\n // execution of the call (which means that end_side_effect_counter - start_side_effect_counter is\n // the number of side effects that took place), along with the hash of the return values. We validate these\n // by requesting a private kernel iteration in which the return values are constrained to hash\n // to `returns_hash` and the side effects counter to increment from start to end.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n self.side_effect_counter = end_side_effect_counter + 1;\n ReturnsHash::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n let calldata_hash = hash_calldata_array([function_selector.to_field()]);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n let calldata_hash = hash_calldata_array([function_selector.to_field()]);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, true)\n }\n\n pub fn call_public_function_with_calldata_hash(\n &mut self,\n contract_address: AztecAddress,\n calldata_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n\n notify_enqueued_public_function_call(\n contract_address,\n calldata_hash,\n counter,\n is_static_call,\n );\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n is_static_call,\n calldata_hash,\n };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.set_public_teardown_function_with_calldata_hash(contract_address, calldata_hash, false)\n }\n\n pub fn set_public_teardown_function_with_calldata_hash(\n &mut self,\n contract_address: AztecAddress,\n calldata_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n\n notify_set_public_teardown_function_call(\n contract_address,\n calldata_hash,\n counter,\n is_static_call,\n );\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n is_static_call,\n calldata_hash,\n };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: BlockHeader::empty(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"
|
|
6645
6736
|
},
|
|
6646
6737
|
"72": {
|
|
6647
6738
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/context/utility_context.nr",
|
|
@@ -6665,7 +6756,7 @@
|
|
|
6665
6756
|
},
|
|
6666
6757
|
"97": {
|
|
6667
6758
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/aztec.nr",
|
|
6668
|
-
"source": "use crate::{\n macros::{\n dispatch::generate_public_dispatch,\n functions::{stub_registry, utils::check_each_fn_macroified},\n notes::{generate_note_export, NOTES},\n storage::STORAGE_LAYOUT_NAME,\n utils::{get_trait_impl_method, module_has_storage},\n },\n messages::discovery::private_notes::MAX_NOTE_PACKED_LEN,\n};\n\n/// Marks a contract as an Aztec contract, generating the interfaces for its functions and notes, as well as injecting\n/// the `sync_notes` utility function PXE requires in order to discover notes.\n/// Note: This is a module annotation, so the returned quote gets injected inside the module (contract) itself.\npub comptime fn aztec(m: Module) -> Quoted {\n let interface = generate_contract_interface(m);\n\n // Functions that don't have #[private], #[public], #[utility], #[contract_library_method], or #[test] are not\n // allowed in contracts.\n check_each_fn_macroified(m);\n\n let contract_library_method_compute_note_hash_and_nullifier =\n generate_contract_library_method_compute_note_hash_and_nullifier();\n let note_exports = generate_note_exports();\n let public_dispatch = generate_public_dispatch(m);\n let sync_notes = generate_sync_notes();\n\n quote {\n $note_exports\n $interface\n $contract_library_method_compute_note_hash_and_nullifier\n $public_dispatch\n $sync_notes\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let module_name = m.name();\n let contract_stubs = stub_registry::get(m);\n let fn_stubs_quote = if contract_stubs.is_some() {\n contract_stubs.unwrap().join(quote {})\n } else {\n quote {}\n };\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: dep::aztec::protocol_types::address::AztecAddress\n }\n\n impl $module_name {\n $fn_stubs_quote\n\n pub fn at(\n addr: aztec::protocol_types::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol_types::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol_types::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_types::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\n/// discovery (to 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 let notes = NOTES.entries();\n\n if notes.len() > 0 {\n let max_note_packed_len = notes.fold(\n 0,\n |acc, (_, (_, len, _, _)): (Type, (TypeDefinition, u32, Field, [(Quoted, u32, bool)]))| {\n if len > acc {\n len\n } else {\n acc\n }\n },\n );\n\n if max_note_packed_len > MAX_NOTE_PACKED_LEN {\n panic(\n f\"One of the notes has packed len {max_note_packed_len} but the maximum is {MAX_NOTE_PACKED_LEN}\",\n );\n }\n\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, (_, packed_note_length, _, _)) = notes[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_types::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 it's raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = $packed_note_length;\n let actual_len = packed_note.len();\n assert(\n actual_len == expected_len,\n f\"Expected packed note of length {expected_len} but got {actual_len} for note type id {note_type_id}\"\n );\n\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, storage_slot);\n \n // The message discovery process finds settled notes, that is, notes that were created in prior\n // transactions and are therefore already part of the note hash tree. We therefore compute the\n // nullification note hash by treating the note as a settled note with the provided nonce.\n let note_hash_for_nullify = aztec::note::utils::compute_note_hash_for_nullify(\n aztec::note::retrieved_note::RetrievedNote{ \n note, \n contract_address, \n metadata: aztec::note::note_metadata::SettledNoteMetadata::new(nonce).into() \n }, \n storage_slot,\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(note, note_hash_for_nullify);\n\n Option::some(\n aztec::messages::discovery::NoteHashAndNullifier {\n note_hash, inner_nullifier\n }\n )\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash\n /// (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash\n /// tree with `nonce`.\n ///\n /// The signature of this function notably matches the `aztec::messages::discovery::ComputeNoteHashAndNullifier` type,\n /// and so it can be used to call functions from that module such as `discover_new_messages`, \n /// `do_process_log` 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::discovery::private_notes::MAX_NOTE_PACKED_LEN>,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol_types::address::AztecAddress,\n 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\n /// 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::discovery::private_notes::MAX_NOTE_PACKED_LEN>,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol_types::address::AztecAddress,\n _nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\ncomptime fn generate_note_exports() -> Quoted {\n let notes = NOTES.values();\n // Second value in each tuple is `note_packed_len` and that is ignored here because it's only used when\n // generating partial note helper functions.\n notes\n .map(|(s, _, note_type_id, fields): (TypeDefinition, u32, Field, [(Quoted, u32, bool)])| {\n generate_note_export(s, note_type_id, fields)\n })\n .join(quote {})\n}\n\ncomptime fn generate_sync_notes() -> Quoted {\n // TODO(https://github.com/noir-lang/noir/issues/7912): Doing the following unfortunately doesn't work. Once\n // the issue is fixed uncomment the following and remove the workaround from TS (look for the issue link in the\n // codebase).\n // let utility: fn(FunctionDefinition) -> () = crate::macros::functions::utility;\n // quote {\n // #[$utility]\n // unconstrained fn sync_notes() {\n // }\n // }\n\n // All we need to do here is trigger message discovery, but this is already done by the #[utility] macro - we don't\n // need to do anything extra.\n quote {\n #[aztec::macros::functions::utility]\n unconstrained fn sync_notes() { }\n }\n}\n"
|
|
6759
|
+
"source": "use crate::{\n macros::{\n dispatch::generate_public_dispatch,\n functions::{stub_registry, utils::check_each_fn_macroified},\n notes::{generate_note_export, NOTES},\n storage::STORAGE_LAYOUT_NAME,\n utils::{get_trait_impl_method, module_has_storage},\n },\n messages::discovery::private_notes::MAX_NOTE_PACKED_LEN,\n};\n\n/// Marks a contract as an Aztec contract, generating the interfaces for its functions and notes, as well as injecting\n/// the `sync_notes` utility function PXE requires in order to discover notes.\n/// Note: This is a module annotation, so the returned quote gets injected inside the module (contract) itself.\npub comptime fn aztec(m: Module) -> Quoted {\n let interface = generate_contract_interface(m);\n\n // Functions that don't have #[private], #[public], #[utility], #[contract_library_method], or #[test] are not\n // allowed in contracts.\n check_each_fn_macroified(m);\n\n let contract_library_method_compute_note_hash_and_nullifier =\n generate_contract_library_method_compute_note_hash_and_nullifier();\n let note_exports = generate_note_exports();\n let public_dispatch = generate_public_dispatch(m);\n let sync_notes = generate_sync_notes();\n\n quote {\n $note_exports\n $interface\n $contract_library_method_compute_note_hash_and_nullifier\n $public_dispatch\n $sync_notes\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let module_name = m.name();\n let contract_stubs = stub_registry::get(m);\n let fn_stubs_quote = if contract_stubs.is_some() {\n contract_stubs.unwrap().join(quote {})\n } else {\n quote {}\n };\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: dep::aztec::protocol_types::address::AztecAddress\n }\n\n impl $module_name {\n $fn_stubs_quote\n\n pub fn at(\n addr: aztec::protocol_types::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol_types::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol_types::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_types::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\n/// discovery (to 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 let notes = NOTES.entries();\n\n if notes.len() > 0 {\n let max_note_packed_len = notes.fold(\n 0,\n |acc, (_, (_, len, _, _)): (Type, (TypeDefinition, u32, Field, [(Quoted, u32, bool)]))| {\n if len > acc {\n len\n } else {\n acc\n }\n },\n );\n\n if max_note_packed_len > MAX_NOTE_PACKED_LEN {\n panic(\n f\"One of the notes has packed len {max_note_packed_len} but the maximum is {MAX_NOTE_PACKED_LEN}\",\n );\n }\n\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, (_, packed_note_length, _, _)) = notes[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_types::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 it's raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = $packed_note_length;\n let actual_len = packed_note.len();\n assert(\n actual_len == expected_len,\n f\"Expected packed note of length {expected_len} but got {actual_len} for note type id {note_type_id}\"\n );\n\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, storage_slot);\n \n // The message discovery process finds settled notes, that is, notes that were created in prior\n // transactions and are therefore already part of the note hash tree. We therefore compute the\n // nullification note hash by treating the note as a settled note with the provided nonce.\n let note_hash_for_nullify = aztec::note::utils::compute_note_hash_for_nullify(\n aztec::note::retrieved_note::RetrievedNote{ \n note, \n contract_address, \n metadata: aztec::note::note_metadata::SettledNoteMetadata::new(nonce).into() \n }, \n storage_slot,\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(note, note_hash_for_nullify);\n\n Option::some(\n aztec::messages::discovery::NoteHashAndNullifier {\n note_hash, inner_nullifier\n }\n )\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash\n /// (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash\n /// tree with `nonce`.\n ///\n /// The signature of this function notably matches the `aztec::messages::discovery::ComputeNoteHashAndNullifier` type,\n /// and so it can be used to call functions from that module such as `discover_new_messages`, \n /// `do_process_log` 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::discovery::private_notes::MAX_NOTE_PACKED_LEN>,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol_types::address::AztecAddress,\n 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\n /// 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::discovery::private_notes::MAX_NOTE_PACKED_LEN>,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol_types::address::AztecAddress,\n _nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\ncomptime fn generate_note_exports() -> Quoted {\n let notes = NOTES.values();\n // Second value in each tuple is `note_packed_len` and that is ignored here because it's only used when\n // generating partial note helper functions.\n notes\n .map(|(s, _, note_type_id, fields): (TypeDefinition, u32, Field, [(Quoted, u32, bool)])| {\n generate_note_export(s, note_type_id, fields)\n })\n .join(quote {})\n}\n\ncomptime fn generate_sync_notes() -> Quoted {\n // We obtain the `utility` function on the next line instead of directly doing\n // `#[aztec::macros::functions::utility]` in the returned quote because the latter would result in the function\n // attribute having the full path in the ABI. This is undesirable because we use the information in the ABI only\n // to determine whether a function is `private`, `public`, or `utility`.\n let utility = crate::macros::functions::utility;\n\n // All we need to do here is trigger message discovery, but this is already done by the #[utility] macro - we don't\n // need to do anything extra.\n quote {\n #[$utility]\n unconstrained fn sync_notes() {\n }\n }\n}\n"
|
|
6669
6760
|
}
|
|
6670
6761
|
}
|
|
6671
6762
|
}
|