@aztec/protocol-contracts 3.0.0-nightly.20251119 → 3.0.0-nightly.20251120
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/AuthRegistry.json +44 -23
- package/artifacts/ContractClassRegistry.json +106 -18
- package/artifacts/ContractInstanceRegistry.json +42 -17
- package/artifacts/FeeJuice.json +63 -22
- package/artifacts/MultiCallEntrypoint.json +27 -11
- package/artifacts/Router.json +7 -7
- package/dest/protocol_contract_data.js +11 -11
- package/package.json +4 -4
- package/src/protocol_contract_data.ts +11 -11
package/artifacts/Router.json
CHANGED
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"bytecode": "JwACBAEoAAABBIBLJwAABEsnAgMEAicCBAQAHwoAAwAEAEkcAElJAhwASkoELQhJAS0ISgIlAAAATyUAAABuJwIBBEsnAgIEADsOAAIAAScAQwIDJwBEAgInAEUCAScARgIEJwBHAgYnAEgCBSYlAAAC/x4CAAQAHgIABQAeAgAGCScCBwEBJAIABgAAAJQlAAADJR4CAAYFHAoGCAAcCgIGAAoqCAYCDCoIBgkKIgFFBiQCAAYAAALoIwAAAL8KIgFEBRYKAgYkAgAFAAAC1iMAAADVCiIBQwgkAgAIAAACxCMAAADnCiIBRgokAgAKAAACrSMAAAD5CiIBSAoWCgkLJAIACgAAApYjAAABDwoiAUcGJAIABgAAAoQjAAABIScCAQJJJwICAm4nAgMCdicCBAJhJwIFAmwnAgYCaScCCAJkJwIJAiAnAgoCbycCCwJwJwIMAmUnAg0CcicCDgJ0LQgBDycCEAQSAAgBEAEnAw8EAQAiDwIQLQoQES0OAREAIhECES0OAhEAIhECES0OAxEAIhECES0OBBEAIhECES0OBREAIhECES0OBhEAIhECES0OCBEAIhECES0OCREAIhECES0OChEAIhECES0OCxEAIhECES0ODBEAIhECES0ODREAIhECES0OBBEAIhECES0ODhEAIhECES0OBhEAIhECES0OChEAIhECES0OAhEnAgEBACcCAgAACioBBwMkAgADAAAChCcCBAQTLQgBBScCBgQTAAgBBgEtCgUGKgMABgVC5EOQXKKddAAiBgIGACIPAggnAgkEES0CCAMtAgYELQIJBSUAAAM3JwIIBBEAKgYIBi0OAgYAIgYCBjwOBAUtCgsBIwAAAo0tCgECIwAAAqQEKgsGAS0KAQIjAAACpC0KAggjAAACuxIqCQIBLQoBCCMAAAK7LQoIBSMAAALNLQoJBSMAAALNLQoFBCMAAALfLQoGBCMAAALfLQoEAyMAAALxLQoCAyMAAALxJAIAAwAAAv4lAAADaSYoAAAEBHhLDAAABAMkAAADAAADJCoBAAEF2sX11rRKMm08BAIBJioBAAEFZL7Lx4qT/3I8BAIBJgAAAwUHLQADCC0ABAkKAAgHCiQAAAoAAANoLQEIBi0EBgkAAAgCCAAACQIJIwAAA0QmKgEAAQUv0lArDpHQmTwEAgEm",
|
|
56
|
-
"debug_symbols": "
|
|
56
|
+
"debug_symbols": "tZfRbtswDEX/xc95EClKlPsrQ1GkrVsECJLATQYMRf59pKPrOANstNn2Uh9dWVekRKnxZ/PaPZ/enza7t/1H8/Djs3nuN9vt5v1pu39ZHzf7namfTfA/RKl5iKuG2JrqT2tTMIgmEDmkChIBxUAMkivJwZVskF0pDqawG6sp7C+3ZOAvt/kCTN5lozh6l83O0hrYcE5SQb2rNShthVYAVYlBAFAICkFhKAwlQolQBIpASVA8wQE8wQtAUSgKpTAgV2gJkC4gIQAEUCcVioBqKMwArRAJUKcQgaFgCmQhyEKQhSALyTBUTKEwLJiiwLDFFNgCwRakEAF1ikQMqFMkJkCdInmNRXJIFQSKQPEau0CpkBmgFRSKBz+AV8sAHuoFqpKDAKphJgbU4dlDvQCUCAWhZoSah3jYwBcqWs3rcC6snjWTw/m8anD0no591/nJm5xFO6GHdd/tjs3D7rTdrpqf6+1peOnjsN4Nz+O6t147l93u1Z5m+LbZdk7n1XV0mB/KVnp1NAul0cAugBsLmregEoSrh3Gi0UTpxoPnPSLbplcPY8lzHkupFL9PLqm0rLOpyNJqCBM87NxPUpEbj/QPliP/3+WISRUWVtyzy1EWlqONYayONvJsKu1CGHazZsQR7eL961TybCoLFhQyioNCuQaRboOghRplKXw9KyXOZkJxaWdLpnFnS+E7lmOaC4Uwl8uSA0kaHVJ7j0OI7eigMrueurAUbakOEspowKxfdhBGZUnkeYeF6tSk2A21/wnXyiq3N9dScQqNGyqT8qbbKHjhBo0hRFgEllkLXtrRya1jBZLmUllcTxl3ZLKl39mRRLi2UtT7HBS1nSel/R2HHLGYOd/noAExaLzTQVGZJcS7HIogi6LzMcSFwlTUg153QuLXUxjrSe9cxjxGkMsfB/zRmuuXTX/z6XF2q36zft52tfl22r1Meo+/DujBp8uh3790r6e+c6fr94v90PpBdkva1fRonxbBmymtKAdv0tBL1oyPZw/mNw=="
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"name": "check_timestamp",
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
}
|
|
106
106
|
},
|
|
107
107
|
"bytecode": "JwACBAEoAAABBIBLJwAABEsnAgMEAicCBAQAHwoAAwAEAEkcAElJAhwASkoFLQhJAS0ISgIlAAAATyUAAABuJwIBBEsnAgIEADsOAAIAAScAQwIDJwBEAgInAEUCAScARgIEJwBHAgYnAEgCBSYlAAAC/x4CAAQAHgIABQAeAgAGCScCBwEBJAIABgAAAJQlAAADJR4CAAYGHAoGCAAcCgIGAAoqCAYCDCoIBgkKIgFFBiQCAAYAAALoIwAAAL8KIgFEBRYKAgYkAgAFAAAC1iMAAADVCiIBQwgkAgAIAAACxCMAAADnCiIBRgokAgAKAAACrSMAAAD5CiIBSAoWCgkLJAIACgAAApYjAAABDwoiAUcGJAIABgAAAoQjAAABIScCAQJJJwICAm4nAgMCdicCBAJhJwIFAmwnAgYCaScCCAJkJwIJAiAnAgoCbycCCwJwJwIMAmUnAg0CcicCDgJ0LQgBDycCEAQSAAgBEAEnAw8EAQAiDwIQLQoQES0OAREAIhECES0OAhEAIhECES0OAxEAIhECES0OBBEAIhECES0OBREAIhECES0OBhEAIhECES0OCBEAIhECES0OCREAIhECES0OChEAIhECES0OCxEAIhECES0ODBEAIhECES0ODREAIhECES0OBBEAIhECES0ODhEAIhECES0OBhEAIhECES0OChEAIhECES0OAhEnAgEBACcCAgAACioBBwMkAgADAAAChCcCBAQTLQgBBScCBgQTAAgBBgEtCgUGKgMABgVC5EOQXKKddAAiBgIGACIPAggnAgkEES0CCAMtAgYELQIJBSUAAAM3JwIIBBEAKgYIBi0OAgYAIgYCBjwOBAUtCgsBIwAAAo0tCgECIwAAAqQEKgsGAS0KAQIjAAACpC0KAggjAAACuxIqCQIBLQoBCCMAAAK7LQoIBSMAAALNLQoJBSMAAALNLQoFBCMAAALfLQoGBCMAAALfLQoEAyMAAALxLQoCAyMAAALxJAIAAwAAAv4lAAADaSYoAAAEBHhLDAAABAMkAAADAAADJCoBAAEF2sX11rRKMm08BAIBJioBAAEFYQC6/IQvolI8BAIBJgAAAwUHLQADCC0ABAkKAAgHCiQAAAoAAANoLQEIBi0EBgkAAAgCCAAACQIJIwAAA0QmKgEAAQXBmTXwTaZKMzwEAgEm",
|
|
108
|
-
"debug_symbols": "tZfRbtswDEX/
|
|
108
|
+
"debug_symbols": "tZfRbtswDEX/xc95EClKlPsrRVGkrVsECJIgTQYMRf59ZKJrOwNsdN72Uh9dWVekRCn1V/PWvZw/nje79/1n8/D41bwcN9vt5uN5u39dnzb7nalfTfA/RKl5iKuG2JrqT2tTMIgmEDmkChIBxUAMkivJwZVskF0pDqawG6sp7C+3ZOAvt/kGTN5lozh6l83O0hrYcE5SQb2rNShthVYAVYlBAFAICkFhKAwlQolQBIpASVA8wSt4gjeAolAUSmFArtASIN1AQgAIoE4qFAHVUJgBWiESoE4hAkPBFMhCkIUgC0EWkmGomEJhWDBFgWGLKbAFgi1IIQLqFIkYUKdITIA6RfIai+SQKggUgeI1doNSITNAKygUD/4KXi1X8FBvUJUcBFANMzGgDs8e6g2gRCgINSPUfI2HDXyhotW8Xs+F1bNmcrhcVg2O3vPp2HV+8kZn0U7oYX3sdqfmYXfeblfNj/X2fH3p87DeXZ+n9dF67Vx2uzd7muH7Zts5XVbD6DA9lK306mgWSr2BXQB3FjRtQSUIVw/jRL2J0p0HT3tEtk2vHsaSpzzmUil+n9xSaVknU5G51RAmeNi5H6Uidx7pHyxH/r/LEZMqLKy4J5ejzCxHG0NfHW3kyVTamTDsZs2II9rF+9ep5MlUZiwyIZEch9JI9yHQTIVyanNfXqnVNJUHxbl9bbnPxH6x0oLFGGUiZSqTufGKNHJZMl77ktBR/L+vpM4sQluqgYQhAGb9toMwKkoiTzvMVKUmxTlX+y0YKqrc31hzRSkEC8OhrOk+Cp65OWMIERaBZdJipiyJRrcNhZymUpldT+l3RGXRjiTCdZVGx+uPHIayDGGRQ45YzJyXOWhADBoXOigqs4S4yKEIsig6HUOcO6CoBx12QuL3U+jrSRcuY+4jGN8wV4cna65fN8e7T46LWx0365dtV5vv593rqPf084AefLIcjvvX7u187Nxp+G6xf7Aeye5pUnmyT4rgzZRWlIM3yZtqTdWniwfzCw=="
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
111
|
"name": "process_message",
|
|
@@ -360,7 +360,7 @@
|
|
|
360
360
|
}
|
|
361
361
|
},
|
|
362
362
|
"bytecode": "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",
|
|
363
|
-
"debug_symbols": "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"
|
|
363
|
+
"debug_symbols": "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"
|
|
364
364
|
},
|
|
365
365
|
{
|
|
366
366
|
"name": "public_dispatch",
|
|
@@ -425,7 +425,7 @@
|
|
|
425
425
|
}
|
|
426
426
|
},
|
|
427
427
|
"bytecode": "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",
|
|
428
|
-
"debug_symbols": "
|
|
428
|
+
"debug_symbols": "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"
|
|
429
429
|
},
|
|
430
430
|
{
|
|
431
431
|
"name": "sync_private_state",
|
|
@@ -587,7 +587,7 @@
|
|
|
587
587
|
}
|
|
588
588
|
},
|
|
589
589
|
"bytecode": "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",
|
|
590
|
-
"debug_symbols": "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"
|
|
590
|
+
"debug_symbols": "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"
|
|
591
591
|
}
|
|
592
592
|
],
|
|
593
593
|
"outputs": {
|
|
@@ -913,7 +913,7 @@
|
|
|
913
913
|
},
|
|
914
914
|
"371": {
|
|
915
915
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr",
|
|
916
|
-
"source": "use crate::meta::{derive_deserialize, derive_packable, derive_serialize};\nuse crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty: Eq {\n fn empty() -> Self;\n\n fn is_empty(self) -> bool {\n self.eq(Self::empty())\n }\n\n // Requires this Noir fix: https://github.com/noir-lang/noir/issues/9002\n // fn assert_not_empty<let U: u32>(self, msg: str<U>) { // This msg version was failing with weird compiler errors.\n // // We provide a default impl but it's likely inefficient.\n // // The reason we include this function is because there's a lot of\n // // opportunity for optimisation on a per-struct basis.\n // // You only need to show one element is not empty to know that the whole thing\n // // is not empty.\n // // If you know an element of your struct which should always be nonempty,\n // // you can write an impl that solely checks that that element is nonempty.\n // assert(!self.is_empty(), msg);\n // }\n\n // This default impl is overwritten by types like arrays, because there's a much\n // more efficient approach.\n fn assert_empty<let S: u32>(self, msg: str<S>) {\n assert(self.is_empty(), msg);\n }\n}\n\nimpl Empty for Field {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for u1 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u16 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u128 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl<T, let N: u32> Empty for [T; N]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty(); N]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\n\nimpl<T> Empty for [T]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty()]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\nimpl<A, B> Empty for (A, B)\nwhere\n A: Empty,\n B: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n (A::empty(), B::empty())\n }\n}\n\nimpl<T> Empty for Option<T>\nwhere\n T: Eq,\n{\n #[inline_always]\n fn empty() -> Self {\n Option::none()\n }\n}\n\n// pub fn is_empty<T>(item: T) -> bool\n// where\n// T: Empty,\n// {\n// item.eq(T::empty())\n// }\n\n// pub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool\n// where\n// T: Empty,\n// {\n// array.all(|elem| is_empty(elem))\n// }\n\n// pub fn assert_empty<T>(item: T) -> ()\n// where\n// T: Empty,\n// {\n// assert(item.eq(T::empty()))\n// }\n\n// pub fn assert_empty_array<T, let N: u32>(array: [T; N]) -> ()\n// where\n// T: Empty,\n// {\n// // A cheaper option than `is_empty_array` for if you don't need to gracefully\n// // handle a bool result.\n// // Avoids the `&` operator of `is_empty_array`'s `.all()` call.\n// for i in 0..N {\n// assert(is_empty(array[i]));\n// }\n// }\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n #[inline_always]\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u16 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u128 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl<let N: u32> ToField for str<N> {\n #[inline_always]\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value != 0\n }\n}\nimpl FromField for u1 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u16 {\n fn from_field(value: Field) -> Self {\n value as u16\n }\n}\nimpl FromField for u32 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for u128 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u128\n }\n}\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let bytes = self.as_bytes();\n/// let mut fields = [0; Self::N];\n/// for i in 0..bytes.len() {\n/// fields[i] = bytes[i] as Field; // Each byte gets its own Field\n/// }\n/// fields\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let bytes = self.as_bytes();\n let mut fields = [0; Self::N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n/// Implementation of Deserialize for BoundedVec.\n///\n/// This implementation deserializes a BoundedVec from an array of Fields. The array contains:\n/// 1. The serialized items, each taking up T::N Fields\n/// 2. The length of the BoundedVec as the last Field\n///\n/// # Type Parameters\n/// * `T` - The type of items stored in the BoundedVec, must implement Deserialize\n/// * `M` - The maximum length of the BoundedVec\n///\n/// # Fields Array Layout\n/// [item1_field1, item1_field2, ..., item2_field1, item2_field2, ..., length]\n/// Where:\n/// - itemN_fieldM: The M-th Field of the N-th item (T::N Fields per item)\n/// - length: The number of items in the BoundedVec (1 Field)\n///\n/// Total length N = T::N * M + 1, where:\n/// - T::N is the number of Fields needed to deserialize one item\n/// - M is the maximum length of the BoundedVec\n/// - +1 is for storing the length\n///\n/// # Note\n/// Not deriving this because it's not supported to call derive_deserialize on a \"remote\" struct (and it will never\n/// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = fields[<T as Deserialize>::N * M] as u32;\n\n for i in 0..len {\n let mut nested_fields = [0; <T as Deserialize>::N];\n for j in 0..<T as Deserialize>::N {\n nested_fields[j] = fields[i * <T as Deserialize>::N + j];\n }\n\n let item = T::deserialize(nested_fields);\n new_bounded_vec.push(item);\n }\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(_fields: [Field; Self::N]) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut fields = [0; Self::N];\n\n let storage = self.storage();\n\n for i in 0..M {\n let serialized_item = storage[i].serialize();\n\n for j in 0..<T as Serialize>::N {\n fields[i * <T as Serialize>::N + j] = serialized_item[j];\n }\n }\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n fields[<T as Serialize>::N * M] = self.len() as Field;\n\n fields\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// #[inline_always]\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// str::<Self::N>::from(fields.map(|value| value as u8))\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n str::<Self::N>::from(fields.map(|value| value as u8))\n }\n}\n\n/// Trait for efficiently packing and unpacking Noir types into and from arrays of Fields.\n///\n/// The `Packable` trait allows types to be serialized and deserialized with a focus on minimizing the size of\n/// the resulting Field array. This trait is used when storage efficiency is critical (e.g. when storing data\n/// in the contract's public storage).\n///\n/// # Associated Constants\n/// * `N` - The length of the Field array, known at compile time\n#[derive_via(derive_packable)]\npub trait Packable {\n let N: u32;\n\n /// Packs the current value into a compact array of `Field` elements.\n fn pack(self) -> [Field; N];\n\n /// Unpacks a compact array of `Field` elements into the original value.\n fn unpack(fields: [Field; N]) -> Self;\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
|
|
916
|
+
"source": "use crate::meta::{derive_deserialize, derive_packable, derive_serialize};\nuse crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty: Eq {\n fn empty() -> Self;\n\n fn is_empty(self) -> bool {\n self.eq(Self::empty())\n }\n\n // Requires this Noir fix: https://github.com/noir-lang/noir/issues/9002\n // fn assert_not_empty<let U: u32>(self, msg: str<U>) { // This msg version was failing with weird compiler errors.\n // // We provide a default impl but it's likely inefficient.\n // // The reason we include this function is because there's a lot of\n // // opportunity for optimisation on a per-struct basis.\n // // You only need to show one element is not empty to know that the whole thing\n // // is not empty.\n // // If you know an element of your struct which should always be nonempty,\n // // you can write an impl that solely checks that that element is nonempty.\n // assert(!self.is_empty(), msg);\n // }\n\n // This default impl is overwritten by types like arrays, because there's a much\n // more efficient approach.\n fn assert_empty<let S: u32>(self, msg: str<S>) {\n assert(self.is_empty(), msg);\n }\n}\n\nimpl Empty for Field {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for bool {\n #[inline_always]\n fn empty() -> Self {\n false\n }\n}\n\nimpl Empty for u1 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u16 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u128 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl<T, let N: u32> Empty for [T; N]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty(); N]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\n\nimpl<T> Empty for [T]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty()]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\nimpl<A, B> Empty for (A, B)\nwhere\n A: Empty,\n B: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n (A::empty(), B::empty())\n }\n}\n\nimpl<T> Empty for Option<T>\nwhere\n T: Eq,\n{\n #[inline_always]\n fn empty() -> Self {\n Option::none()\n }\n}\n\n// pub fn is_empty<T>(item: T) -> bool\n// where\n// T: Empty,\n// {\n// item.eq(T::empty())\n// }\n\n// pub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool\n// where\n// T: Empty,\n// {\n// array.all(|elem| is_empty(elem))\n// }\n\n// pub fn assert_empty<T>(item: T) -> ()\n// where\n// T: Empty,\n// {\n// assert(item.eq(T::empty()))\n// }\n\n// pub fn assert_empty_array<T, let N: u32>(array: [T; N]) -> ()\n// where\n// T: Empty,\n// {\n// // A cheaper option than `is_empty_array` for if you don't need to gracefully\n// // handle a bool result.\n// // Avoids the `&` operator of `is_empty_array`'s `.all()` call.\n// for i in 0..N {\n// assert(is_empty(array[i]));\n// }\n// }\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n #[inline_always]\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u16 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u128 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl<let N: u32> ToField for str<N> {\n #[inline_always]\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value != 0\n }\n}\nimpl FromField for u1 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u16 {\n fn from_field(value: Field) -> Self {\n value as u16\n }\n}\nimpl FromField for u32 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for u128 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u128\n }\n}\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let bytes = self.as_bytes();\n/// let mut fields = [0; Self::N];\n/// for i in 0..bytes.len() {\n/// fields[i] = bytes[i] as Field; // Each byte gets its own Field\n/// }\n/// fields\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let bytes = self.as_bytes();\n let mut fields = [0; Self::N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n/// Implementation of Deserialize for BoundedVec.\n///\n/// This implementation deserializes a BoundedVec from an array of Fields. The array contains:\n/// 1. The serialized items, each taking up T::N Fields\n/// 2. The length of the BoundedVec as the last Field\n///\n/// # Type Parameters\n/// * `T` - The type of items stored in the BoundedVec, must implement Deserialize\n/// * `M` - The maximum length of the BoundedVec\n///\n/// # Fields Array Layout\n/// [item1_field1, item1_field2, ..., item2_field1, item2_field2, ..., length]\n/// Where:\n/// - itemN_fieldM: The M-th Field of the N-th item (T::N Fields per item)\n/// - length: The number of items in the BoundedVec (1 Field)\n///\n/// Total length N = T::N * M + 1, where:\n/// - T::N is the number of Fields needed to deserialize one item\n/// - M is the maximum length of the BoundedVec\n/// - +1 is for storing the length\n///\n/// # Note\n/// Not deriving this because it's not supported to call derive_deserialize on a \"remote\" struct (and it will never\n/// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = fields[<T as Deserialize>::N * M] as u32;\n\n for i in 0..len {\n let mut nested_fields = [0; <T as Deserialize>::N];\n for j in 0..<T as Deserialize>::N {\n nested_fields[j] = fields[i * <T as Deserialize>::N + j];\n }\n\n let item = T::deserialize(nested_fields);\n new_bounded_vec.push(item);\n }\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(_fields: [Field; Self::N]) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut fields = [0; Self::N];\n\n let storage = self.storage();\n\n for i in 0..M {\n let serialized_item = storage[i].serialize();\n\n for j in 0..<T as Serialize>::N {\n fields[i * <T as Serialize>::N + j] = serialized_item[j];\n }\n }\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n fields[<T as Serialize>::N * M] = self.len() as Field;\n\n fields\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// #[inline_always]\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// str::<Self::N>::from(fields.map(|value| value as u8))\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n str::<Self::N>::from(fields.map(|value| value as u8))\n }\n}\n\n/// Trait for efficiently packing and unpacking Noir types into and from arrays of Fields.\n///\n/// The `Packable` trait allows types to be serialized and deserialized with a focus on minimizing the size of\n/// the resulting Field array. This trait is used when storage efficiency is critical (e.g. when storing data\n/// in the contract's public storage).\n///\n/// # Associated Constants\n/// * `N` - The length of the Field array, known at compile time\n#[derive_via(derive_packable)]\npub trait Packable {\n let N: u32;\n\n /// Packs the current value into a compact array of `Field` elements.\n fn pack(self) -> [Field; N];\n\n /// Unpacks a compact array of `Field` elements into the original value.\n fn unpack(fields: [Field; N]) -> Self;\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
|
|
917
917
|
},
|
|
918
918
|
"374": {
|
|
919
919
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr",
|
|
@@ -957,7 +957,7 @@
|
|
|
957
957
|
},
|
|
958
958
|
"74": {
|
|
959
959
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/contract_self.nr",
|
|
960
|
-
"source": "use crate::{\n context::{\n call_interfaces::{\n PrivateCallInterface, PrivateStaticCallInterface, PublicCallInterface,\n PublicStaticCallInterface,\n },\n private_context::PrivateContext,\n public_context::PublicContext,\n },\n event::{event_emission::emit_event_in_private, event_interface::EventInterface},\n};\nuse super::{context::utility_context::UtilityContext, event::event_emission::emit_event_in_public};\nuse protocol_types::{\n address::AztecAddress,\n constants::NULL_MSG_SENDER_CONTRACT_ADDRESS,\n traits::{Deserialize, Serialize},\n};\n\n/// `ContractSelf` is the core interface for interacting with an Aztec contract's own state and context.\n///\n/// This struct is automatically injected into every #[external(...)] contract function by the Aztec macro system and is\n/// accessible through the `self` variable.\n///\n/// # Usage in Contract Functions\n///\n/// Once injected, you can use `self` to:\n/// - Access storage: `self.storage.balances.at(owner).read()`\n/// - Call contracts: `self.call(Token::at(address).transfer(recipient, amount))`\n/// - Emit events: `self.emit(event, recipient, delivery_mode)` (private) or `self.emit(event)` (public)\n/// - Get the contract address: `self.address`\n/// - Get the caller: `self.msg_sender()`\n/// - Access low-level Aztec.nr APIs through the context: `self.context`\n///\n/// # Example\n///\n/// ```noir\n/// #[external(\"private\")]\n/// fn withdraw(amount: u128, recipient: AztecAddress) {\n/// // Get the caller of this function\n/// let sender = self.msg_sender().unwrap();\n///\n/// // Access storage\n/// let token = self.storage.donation_token.get_note().get_address();\n///\n/// // Call contracts\n/// self.call(Token::at(token).transfer(recipient, amount));\n/// }\n/// ```\n///\n/// # Type Parameters\n///\n/// - `Context`: The execution context type - either `&mut PrivateContext`, `PublicContext`, or `UtilityContext`\n/// - `Storage`: The contract's storage struct (defined with `#[storage]`), or `()` if the contract has no storage\n/// - `CallSelf`: Macro-generated type for calling contract's own non-view functions\n/// - `EnqueueSelf`: Macro-generated type for enqueuing calls to the contract's own non-view functions\n/// - `CallSelfStatic`: Macro-generated type for calling contract's own view functions\n/// - `EnqueueSelfStatic`: Macro-generated type for enqueuing calls to the contract's own view functions\npub struct ContractSelf<Context, Storage, CallSelf, EnqueueSelf, CallSelfStatic, EnqueueSelfStatic, CallInternal> {\n /// The address of this contract\n pub address: AztecAddress,\n /// The contract's storage instance, representing the struct to which the `#[storage]` macro was applied in your\n /// contract. If the contract has no storage, the type of this will be `()`.\n ///\n /// This storage instance is specialized for the current execution context (private, public, or utility) and\n /// provides access to the contract's state variables. Each state variable accepts the context as a generic\n /// parameter, which determines its available functionality. For example, a PublicImmutable variable can be read\n /// from any context (public, private, or utility) but can only be written to from public contexts.\n ///\n /// # Developer Note\n /// If you've arrived here while trying to access your contract's storage while the `Storage` generic type is set to\n /// unit type `()`, it means you haven't yet defined a Storage struct using the #[storage] macro in your contract.\n /// For guidance on setting this up, please refer to our docs:\n /// https://docs.aztec.network/developers/docs/guides/smart_contracts/storage\n pub storage: Storage,\n /// The execution context whose type is determined by the #[external(...)] attribute of the contract function based\n /// on the external function type (private, public, or utility).\n pub context: Context,\n\n /// Provides type-safe methods for calling this contract's own non-view functions.\n ///\n /// In private and public contexts this will be a struct with appropriate methods;\n /// in utility context it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.call_self.some_private_function(args)\n /// ```\n pub call_self: CallSelf,\n /// Provides type-safe methods for enqueuing calls to this contract's own non-view functions.\n ///\n /// In private context this will be a struct with appropriate methods;\n /// in public and utility contexts it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.enqueue_self.some_public_function(args)\n /// ```\n pub enqueue_self: EnqueueSelf,\n /// Provides type-safe methods for calling this contract's own view functions.\n ///\n /// In private and public contexts this will be a struct with appropriate methods;\n /// in utility context it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.call_self_static.some_view_function(args)\n /// ```\n pub call_self_static: CallSelfStatic,\n /// Provides type-safe methods for enqueuing calls to this contract's own view functions.\n ///\n /// In private context this will be a struct with appropriate methods;\n /// in public and utility contexts it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.enqueue_self_static.some_public_view_function(args)\n /// ```\n pub enqueue_self_static: EnqueueSelfStatic,\n /// Provides type-safe methods for calling internal functions.\n ///\n /// In private and public contexts this will be a struct with appropriate methods;\n /// in utility context it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.internal.some_internal_function(args)\n /// ```\n pub internal: CallInternal,\n}\n\n/// Implementation for `ContractSelf` in private execution contexts.\n///\n/// This implementation is used when a contract function is marked with `#[external(\"private\")]`.\n/// Private functions execute client-side and generate zero-knowledge proofs of their execution.\nimpl<Storage, CallSelf, EnqueueSelf, CallSelfStatic, EnqueueSelfStatic, CallInternal> ContractSelf<&mut PrivateContext, Storage, CallSelf, EnqueueSelf, CallSelfStatic, EnqueueSelfStatic, CallInternal> {\n /// Creates a new `ContractSelf` instance for a private function.\n ///\n /// This constructor is called automatically by the macro system and should not be called directly.\n pub fn new_private(\n context: &mut PrivateContext,\n storage: Storage,\n call_self: CallSelf,\n enqueue_self: EnqueueSelf,\n call_self_static: CallSelfStatic,\n enqueue_self_static: EnqueueSelfStatic,\n internal: CallInternal,\n ) -> Self {\n Self {\n context,\n storage,\n address: context.this_address(),\n call_self,\n enqueue_self,\n call_self_static,\n enqueue_self_static,\n internal,\n }\n }\n\n /// Returns the contract address that initiated this function call. This is similar to `msg.sender` in Solidity.\n ///\n /// Important Note: Since Aztec doesn't have a concept of an EoA ( Externally-owned Account), the msg_sender is\n /// \"null\" for the first function call of every transaction. The first function call of a tx is likely to be a call\n /// to the user's account contract, so this quirk will most often be handled by account contract developers.\n ///\n /// # Returns\n /// * `Option<AztecAddress>` - The address of the smart contract that called this function (be it an app contract or\n /// a user's account contract). Returns `Option<AztecAddress>::none` for the first function call of the tx. No\n /// other _private_ function calls in the tx will have a `none` msg_sender, but _public_ function calls might (see\n /// the PublicContext).\n ///\n pub fn msg_sender(self) -> Option<AztecAddress> {\n let maybe_msg_sender = self.context.msg_sender_unsafe();\n if maybe_msg_sender == NULL_MSG_SENDER_CONTRACT_ADDRESS {\n Option::none()\n } else {\n Option::some(maybe_msg_sender)\n }\n }\n\n /// Emits an event from a private function. Private events can be delivered either via private logs or offchain\n /// messages, with configurable encryption and tagging constraints.\n ///\n /// Events in private functions are encrypted and sent to a specific recipient. This ensures that only the intended\n /// recipient can read the event data.\n ///\n /// # Parameters\n /// - `event`: The event to emit (must implement `EventInterface` and `Serialize`)\n /// - `recipient`: The address that should be able to decrypt and read this event\n /// - `delivery_mode`: The delivery mode for the event (e.g., `MessageDelivery.CONSTRAINED_ONCHAIN`)\n ///\n /// # Example\n /// ```noir\n /// #[external(\"private\")]\n /// fn transfer(amount: u128, to: AztecAddress) {\n /// // ... transfer logic ...\n /// self.emit(\n /// TransferEvent { from: sender, to, amount },\n /// to,\n /// MessageDelivery.CONSTRAINED_ONCHAIN\n /// );\n /// }\n /// ```\n pub fn emit<Event>(&mut self, event: Event, recipient: AztecAddress, delivery_mode: u8)\n where\n Event: EventInterface + Serialize,\n {\n emit_event_in_private(event, self.context, recipient, delivery_mode);\n }\n\n /// Makes a call to the private function defined by the `call` parameter.\n ///\n /// # Arguments\n /// * `call` - The object representing the private function to invoke.\n ///\n /// # Returns\n /// * `T` - Whatever data the called function has returned.\n ///\n /// # Example\n /// ```noir\n /// self.call(Token::at(address).transfer_in_private(recipient, amount));\n /// ```\n ///\n /// This enables contracts to interact with each other while maintaining\n /// privacy. This \"composability\" of private contract functions is a key\n /// feature of the Aztec network.\n ///\n /// If a user's transaction includes multiple private function calls, then\n /// by the design of Aztec, the following information will remain private[1]:\n /// - The function selectors and contract addresses of all private function\n /// calls will remain private, so an observer of the public mempool will\n /// not be able to look at a tx and deduce which private functions have\n /// been executed.\n /// - The arguments and return values of all private function calls will\n /// remain private.\n /// - The person who initiated the tx will remain private.\n /// - The notes and nullifiers and private logs that are emitted by all\n /// private function calls will (if designed well) not leak any user\n /// secrets, nor leak which functions have been executed.\n ///\n /// [1] Caveats: Some of these privacy guarantees depend on how app\n /// developers design their smart contracts. Some actions _can_ leak\n /// information, such as:\n /// - Calling an internal public function.\n /// - Calling a public function and not setting msg_sender to Option::none\n /// (see https://github.com/AztecProtocol/aztec-packages/pull/16433)\n /// - Calling any public function will always leak details about the nature\n /// of the transaction, so devs should be careful in their contract\n /// designs. If it can be done in a private function, then that will give\n /// the best privacy.\n /// - Not padding the side-effects of a tx to some standardized, uniform\n /// size. The kernel circuits can take hints to pad side-effects, so a\n /// wallet should be able to request for a particular amount of padding.\n /// Wallets should ideally agree on some standard.\n /// - Padding should include:\n /// - Padding the lengths of note & nullifier arrays\n /// - Padding private logs with random fields, up to some standardized\n /// size.\n /// See also: https://docs.aztec.network/developers/resources/considerations/privacy_considerations\n ///\n /// # Advanced\n /// * The call is added to the private call stack and executed by kernel\n /// circuits after this function completes\n /// * The called function can modify its own contract's private state\n /// * Side effects from the called function are included in this transaction\n /// * The call inherits the current transaction's context and gas limits\n ///\n pub fn call<let M: u32, T>(&mut self, call: PrivateCallInterface<M, T>) -> T\n where\n T: Deserialize,\n {\n call.call(self.context)\n }\n\n /// Makes a read-only call to the private function defined by the `call` parameter.\n ///\n /// This is similar to Solidity's `staticcall`. The called function\n /// cannot modify state, emit L2->L1 messages, nor emit events. Any nested\n /// calls are constrained to also be static calls.\n ///\n /// # Arguments\n /// * `call` - The object representing the read-only private function to invoke.\n ///\n /// # Returns\n /// * `T` - Whatever data the called function has returned.\n ///\n /// # Example\n /// ```noir\n /// self.view(Token::at(address).balance_of_private(recipient));\n /// ```\n pub fn view<let M: u32, T>(&mut self, call: PrivateStaticCallInterface<M, T>) -> T\n where\n T: Deserialize,\n {\n call.view(self.context)\n }\n\n /// Enqueues a call to the public function defined by the `call` parameter,\n /// to be executed later.\n ///\n /// Unlike private functions which execute immediately on the user's device,\n /// public function calls are \"enqueued\" and executed some time later by a\n /// block proposer.\n ///\n /// This means a public function cannot return any values back to a private\n /// function, because by the time the public function is being executed,\n /// the private function which called it has already completed execution.\n /// (In fact, the private function has been executed and proven, along with\n /// all other private function calls of the user's tx. A single proof of the\n /// tx has been submitted to the Aztec network, and some time later a\n /// proposer has picked the tx up from the mempool and begun executing all\n /// of the enqueued public functions).\n ///\n /// # Privacy warning\n /// Enqueueing a public function call is an inherently leaky action.\n /// Many interesting applications will require some interaction with public\n /// state, but smart contract developers should try to use public function\n /// calls sparingly, and carefully.\n /// _Internal_ public function calls are especially leaky, because they\n /// completely leak which private contract made the call.\n /// See also: https://docs.aztec.network/developers/resources/considerations/privacy_considerations\n ///\n /// # Arguments\n /// * `call` - The interface representing the public function to enqueue.\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCallInterface type seems to be defined\n /// incorrectly.\n pub fn enqueue<let M: u32, T>(&mut self, call: PublicCallInterface<M, T>)\n where\n T: Deserialize,\n {\n call.enqueue(self.context)\n }\n\n /// Enqueues a read-only call to the public function defined by the `call` parameter.\n ///\n /// This is similar to Solidity's `staticcall`. The called function\n /// cannot modify state, emit L2->L1 messages, nor emit events. Any nested\n /// calls are constrained to also be static calls.\n ///\n /// # Arguments\n /// * `call` - The object representing the read-only public function to enqueue.\n ///\n /// # Example\n /// ```noir\n /// self.enqueue_view(MyContract::at(address).assert_timestamp_less_than(timestamp));\n /// ```\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCallInterface type seems to be defined\n /// incorrectly.\n pub fn enqueue_view<let M: u32, T>(&mut self, call: PublicStaticCallInterface<M, T>)\n where\n T: Deserialize,\n {\n call.enqueue_view(self.context)\n }\n\n /// Enqueues a call to the public function defined by the `call` parameter,\n /// to be executed later.\n ///\n /// As per `enqueue`, but hides this calling contract's address from the\n /// target public function.\n /// This means the origin of the call (msg_sender) will not be publicly\n /// visible to any blockchain observers, nor to the target public function.\n /// When the target public function reads `context.msg_sender()` it will\n /// receive an `Option<AztecAddress>::none`.\n ///\n /// NOTES:\n /// - Not all public functions will accept a msg_sender of \"none\". Many\n /// public functions will require that msg_sender is \"some\" and will\n /// revert otherwise. Therefore, if using `enqueue_incognito`, you must\n /// understand whether the function you're calling will accept a\n /// msg_sender of \"none\".\n /// Lots of public bookkeeping patterns rely on knowing which address made\n /// the call, so as to ascribe state against the caller's address.\n /// (There are patterns whereby bookkeeping could instead be done in\n /// private-land).\n /// - If you are enqueueing a call to an _internal_ public function (i.e.\n /// a public function that will only accept calls from other functions\n /// of its own contract), then by definition a call to it cannot possibly\n /// be \"incognito\": the msg_sender must be its own address, and indeed the\n /// called public function will assert this. Tl;dr this is not usable for\n /// enqueued internal public calls.\n ///\n /// # Arguments\n /// * `call` - The object representing the public function to enqueue.\n ///\n /// # Example\n /// ```noir\n /// self.enqueue_incognito(Token::at(address).increase_total_supply_by(amount));\n /// ```\n ///\n /// Advanced:\n /// - The kernel circuits will permit _any_ private function to set the\n /// msg_sender field of any enqueued public function call to\n /// NULL_MSG_SENDER_CONTRACT_ADDRESS.\n /// - When the called public function calls `PublicContext::msg_sender()`,\n /// aztec-nr will translate NULL_MSG_SENDER_CONTRACT_ADDRESS into\n /// `Option<AztecAddress>::none` for familiarity to devs.\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCallInterface type seems to be defined\n /// incorrectly.\n pub fn enqueue_incognito<let M: u32, T>(&mut self, call: PublicCallInterface<M, T>)\n where\n T: Deserialize,\n {\n call.enqueue_incognito(self.context)\n }\n\n /// Enqueues a read-only call to the public function defined by the `call` parameter.\n ///\n /// As per `enqueue_view`, but hides this calling contract's address from\n /// the target public function.\n ///\n /// See `enqueue_incognito` for more details relating to hiding msg_sender.\n ///\n /// # Arguments\n /// * `call` - The object representing the read-only public function to enqueue.\n ///\n /// # Example\n /// ```noir\n /// self.enqueue_view_incognito(MyContract::at(address).assert_timestamp_less_than(timestamp));\n /// ```\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCallInterface type seems to be defined\n /// incorrectly.\n pub fn enqueue_view_incognito<let M: u32, T>(&mut self, call: PublicStaticCallInterface<M, T>)\n where\n T: Deserialize,\n {\n call.enqueue_view_incognito(self.context)\n }\n\n /// Enqueues a call to the public function defined by the `call` parameter,\n /// and designates it to be the teardown function for this tx. Only one teardown\n /// function call can be made by a tx.\n ///\n /// Niche function: Only wallet developers and paymaster contract developers\n /// (aka Fee-payment contracts) will need to make use of this function.\n ///\n /// Aztec supports a three-phase execution model: setup, app logic, teardown.\n /// The phases exist to enable a fee payer to take on the risk of paying\n /// a transaction fee, safe in the knowledge that their payment (in whatever\n /// token or method the user chooses) will succeed, regardless of whether\n /// the app logic will succeed. The \"setup\" phase ensures the fee payer\n /// has sufficient balance to pay the proposer their fees.\n /// The teardown phase is primarily intended to: calculate exactly\n /// how much the user owes, based on gas consumption, and refund the user\n /// any change.\n ///\n /// Note: in some cases, the cost of refunding the user (i.e. DA costs of\n /// tx side-effects) might exceed the refund amount. For app logic with\n /// fairly stable and predictable gas consumption, a material refund amount\n /// is unlikely. For app logic with unpredictable gas consumption, a\n /// refund might be important to the user (e.g. if a hefty function reverts\n /// very early). Wallet/FPC/Paymaster developers should be mindful of this.\n ///\n /// See `enqueue` for more information about enqueuing public function calls.\n ///\n /// # Arguments\n /// * `call` - The object representing the public function to designate as teardown.\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCallInterface type seems to be defined\n /// incorrectly.\n pub fn set_as_teardown<let M: u32, T>(&mut self, call: PublicCallInterface<M, T>)\n where\n T: Deserialize,\n {\n call.set_as_teardown(self.context)\n }\n\n /// Enqueues a call to the public function defined by the `call` parameter,\n /// and designates it to be the teardown function for this tx. Only one teardown\n /// function call can be made by a tx.\n ///\n /// As per `set_as_teardown`, but hides this calling contract's address from\n /// the target public function.\n ///\n /// See `enqueue_incognito` for more details relating to hiding msg_sender.\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCallInterface type seems to be defined\n /// incorrectly.\n pub fn set_as_teardown_incognito<let M: u32, T>(&mut self, call: PublicCallInterface<M, T>)\n where\n T: Deserialize,\n {\n call.set_as_teardown_incognito(self.context)\n }\n}\n\n/// Implementation for `ContractSelf` in public execution contexts.\n///\n/// This implementation is used when a contract function is marked with `#[external(\"public\")]`.\n/// Public functions are executed by the sequencer in the Aztec Virtual Machine (AVM) and can work only with public\n/// state.\nimpl<Storage, CallSelf, CallSelfStatic, CallInternal> ContractSelf<PublicContext, Storage, CallSelf, (), CallSelfStatic, (), CallInternal> {\n /// Creates a new `ContractSelf` instance for a public function.\n ///\n /// This constructor is called automatically by the macro system and should not be called directly.\n pub fn new_public(\n context: PublicContext,\n storage: Storage,\n call_self: CallSelf,\n call_self_static: CallSelfStatic,\n internal: CallInternal,\n ) -> Self {\n Self {\n context,\n storage,\n address: context.this_address(),\n call_self,\n enqueue_self: (),\n call_self_static,\n enqueue_self_static: (),\n internal,\n }\n }\n\n /// Returns the contract address that initiated this function call.\n ///\n /// This is similar to `msg.sender` in Solidity (hence the name).\n ///\n /// Important Note: If the calling function is a _private_ function, then it had the option of hiding its address\n /// when enqueuing this public function call. In such cases, this `context.msg_sender()` method will return\n /// `Option<AztecAddress>::none`. If the calling function is a _public_ function, it will always return an\n /// `Option<AztecAddress>::some` (i.e. a non-null value).\n ///\n /// # Returns\n /// * `Option<AztecAddress>` - The address of the smart contract that called this function (be it an app contract or\n /// a user's account contract).\n ///\n /// # Advanced\n /// * Value is provided by the AVM sender opcode\n /// * In nested calls, this is the immediate caller, not the original transaction sender\n ///\n pub fn msg_sender(self: Self) -> Option<AztecAddress> {\n // Safety: AVM opcodes are constrained by the AVM itself\n let maybe_msg_sender = self.context.msg_sender_unsafe();\n if maybe_msg_sender == NULL_MSG_SENDER_CONTRACT_ADDRESS {\n Option::none()\n } else {\n Option::some(maybe_msg_sender)\n }\n }\n\n /// Emits an event from a public function.\n ///\n /// Events in public functions are emitted in plaintext and are visible to everyone.\n /// Unlike private events, they don't require a recipient parameter.\n ///\n /// # Parameters\n /// - `event`: The event to emit (must implement `EventInterface` and `Serialize`)\n ///\n /// # Example\n /// ```noir\n /// #[external(\"public\")]\n /// fn publish_update(value: Field) {\n /// // ... update logic ...\n /// self.emit(UpdateEvent { value });\n /// }\n /// ```\n pub fn emit<Event>(&mut self, event: Event)\n where\n Event: EventInterface + Serialize,\n {\n emit_event_in_public(event, self.context);\n }\n\n /// Makes the call to the public function defined by the `call` parameter.\n ///\n /// Will revert if the called function reverts or runs out of gas.\n ///\n /// # Arguments\n /// * `call` - The object representing the public function to invoke.\n ///\n /// # Returns\n /// * `T` - Whatever data the called function has returned.\n ///\n /// # Example\n /// ```noir\n /// self.call(Token::at(address).transfer_in_public(recipient, amount));\n /// ```\n ///\n pub unconstrained fn call<let M: u32, T>(self, call: PublicCallInterface<M, T>) -> T\n where\n T: Deserialize,\n {\n call.call(self.context)\n }\n\n /// Makes the read-only call to the public function defined by the `call` parameter.\n ///\n /// This is similar to Solidity's `staticcall`. The called function\n /// cannot modify state or emit events. Any nested calls are constrained to\n /// also be static calls.\n ///\n /// Will revert if the called function reverts or runs out of gas.\n ///\n /// # Arguments\n /// * `call` - The object representing the read-only public function to invoke.\n ///\n /// # Returns\n /// * `T` - Whatever data the called function has returned.\n ///\n /// # Example\n /// ```noir\n /// self.view(Token::at(address).balance_of_public(recipient));\n /// ```\n ///\n pub unconstrained fn view<let M: u32, T>(self, call: PublicStaticCallInterface<M, T>) -> T\n where\n T: Deserialize,\n {\n call.view(self.context)\n }\n}\n\n/// Implementation for `ContractSelf` in utility execution contexts.\n///\n/// This implementation is used when a contract function is marked with `#[external(\"utility\")]`.\n/// Utility functions are unconstrained functions that can read private state for offchain queries.\n/// They are typically used for view functions that need to access private notes (e.g. a Token's balance_of function).\nimpl<Storage> ContractSelf<UtilityContext, Storage, (), (), (), (), ()> {\n /// Creates a new `ContractSelf` instance for a utility function.\n ///\n /// This constructor is called automatically by the macro system and should not be called directly.\n pub fn new_utility(context: UtilityContext, storage: Storage) -> Self {\n Self {\n context,\n storage,\n address: context.this_address(),\n call_self: (),\n enqueue_self: (),\n call_self_static: (),\n enqueue_self_static: (),\n internal: (),\n }\n }\n}\n"
|
|
960
|
+
"source": "use crate::{\n context::{\n calls::{PrivateCall, PrivateStaticCall, PublicCall, PublicStaticCall},\n private_context::PrivateContext,\n public_context::PublicContext,\n },\n event::{event_emission::emit_event_in_private, event_interface::EventInterface},\n};\nuse super::{context::utility_context::UtilityContext, event::event_emission::emit_event_in_public};\nuse protocol_types::{\n address::AztecAddress,\n constants::NULL_MSG_SENDER_CONTRACT_ADDRESS,\n traits::{Deserialize, Serialize},\n};\n\n/// `ContractSelf` is the core interface for interacting with an Aztec contract's own state and context.\n///\n/// This struct is automatically injected into every #[external(...)] contract function by the Aztec macro system and is\n/// accessible through the `self` variable.\n///\n/// # Usage in Contract Functions\n///\n/// Once injected, you can use `self` to:\n/// - Access storage: `self.storage.balances.at(owner).read()`\n/// - Call contracts: `self.call(Token::at(address).transfer(recipient, amount))`\n/// - Emit events: `self.emit(event, recipient, delivery_mode)` (private) or `self.emit(event)` (public)\n/// - Get the contract address: `self.address`\n/// - Get the caller: `self.msg_sender()`\n/// - Access low-level Aztec.nr APIs through the context: `self.context`\n///\n/// # Example\n///\n/// ```noir\n/// #[external(\"private\")]\n/// fn withdraw(amount: u128, recipient: AztecAddress) {\n/// // Get the caller of this function\n/// let sender = self.msg_sender().unwrap();\n///\n/// // Access storage\n/// let token = self.storage.donation_token.get_note().get_address();\n///\n/// // Call contracts\n/// self.call(Token::at(token).transfer(recipient, amount));\n/// }\n/// ```\n///\n/// # Type Parameters\n///\n/// - `Context`: The execution context type - either `&mut PrivateContext`, `PublicContext`, or `UtilityContext`\n/// - `Storage`: The contract's storage struct (defined with `#[storage]`), or `()` if the contract has no storage\n/// - `CallSelf`: Macro-generated type for calling contract's own non-view functions\n/// - `EnqueueSelf`: Macro-generated type for enqueuing calls to the contract's own non-view functions\n/// - `CallSelfStatic`: Macro-generated type for calling contract's own view functions\n/// - `EnqueueSelfStatic`: Macro-generated type for enqueuing calls to the contract's own view functions\npub struct ContractSelf<Context, Storage, CallSelf, EnqueueSelf, CallSelfStatic, EnqueueSelfStatic, CallInternal> {\n /// The address of this contract\n pub address: AztecAddress,\n /// The contract's storage instance, representing the struct to which the `#[storage]` macro was applied in your\n /// contract. If the contract has no storage, the type of this will be `()`.\n ///\n /// This storage instance is specialized for the current execution context (private, public, or utility) and\n /// provides access to the contract's state variables. Each state variable accepts the context as a generic\n /// parameter, which determines its available functionality. For example, a PublicImmutable variable can be read\n /// from any context (public, private, or utility) but can only be written to from public contexts.\n ///\n /// # Developer Note\n /// If you've arrived here while trying to access your contract's storage while the `Storage` generic type is set to\n /// unit type `()`, it means you haven't yet defined a Storage struct using the #[storage] macro in your contract.\n /// For guidance on setting this up, please refer to our docs:\n /// https://docs.aztec.network/developers/docs/guides/smart_contracts/storage\n pub storage: Storage,\n /// The execution context whose type is determined by the #[external(...)] attribute of the contract function based\n /// on the external function type (private, public, or utility).\n pub context: Context,\n\n /// Provides type-safe methods for calling this contract's own non-view functions.\n ///\n /// In private and public contexts this will be a struct with appropriate methods;\n /// in utility context it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.call_self.some_private_function(args)\n /// ```\n pub call_self: CallSelf,\n /// Provides type-safe methods for enqueuing calls to this contract's own non-view functions.\n ///\n /// In private context this will be a struct with appropriate methods;\n /// in public and utility contexts it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.enqueue_self.some_public_function(args)\n /// ```\n pub enqueue_self: EnqueueSelf,\n /// Provides type-safe methods for calling this contract's own view functions.\n ///\n /// In private and public contexts this will be a struct with appropriate methods;\n /// in utility context it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.call_self_static.some_view_function(args)\n /// ```\n pub call_self_static: CallSelfStatic,\n /// Provides type-safe methods for enqueuing calls to this contract's own view functions.\n ///\n /// In private context this will be a struct with appropriate methods;\n /// in public and utility contexts it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.enqueue_self_static.some_public_view_function(args)\n /// ```\n pub enqueue_self_static: EnqueueSelfStatic,\n /// Provides type-safe methods for calling internal functions.\n ///\n /// In private and public contexts this will be a struct with appropriate methods;\n /// in utility context it will be the unit type `()`.\n ///\n /// Example API:\n /// ```noir\n /// self.internal.some_internal_function(args)\n /// ```\n pub internal: CallInternal,\n}\n\n/// Implementation for `ContractSelf` in private execution contexts.\n///\n/// This implementation is used when a contract function is marked with `#[external(\"private\")]`.\n/// Private functions execute client-side and generate zero-knowledge proofs of their execution.\nimpl<Storage, CallSelf, EnqueueSelf, CallSelfStatic, EnqueueSelfStatic, CallInternal> ContractSelf<&mut PrivateContext, Storage, CallSelf, EnqueueSelf, CallSelfStatic, EnqueueSelfStatic, CallInternal> {\n /// Creates a new `ContractSelf` instance for a private function.\n ///\n /// This constructor is called automatically by the macro system and should not be called directly.\n pub fn new_private(\n context: &mut PrivateContext,\n storage: Storage,\n call_self: CallSelf,\n enqueue_self: EnqueueSelf,\n call_self_static: CallSelfStatic,\n enqueue_self_static: EnqueueSelfStatic,\n internal: CallInternal,\n ) -> Self {\n Self {\n context,\n storage,\n address: context.this_address(),\n call_self,\n enqueue_self,\n call_self_static,\n enqueue_self_static,\n internal,\n }\n }\n\n /// Returns the contract address that initiated this function call. This is similar to `msg.sender` in Solidity.\n ///\n /// Important Note: Since Aztec doesn't have a concept of an EoA ( Externally-owned Account), the msg_sender is\n /// \"null\" for the first function call of every transaction. The first function call of a tx is likely to be a call\n /// to the user's account contract, so this quirk will most often be handled by account contract developers.\n ///\n /// # Returns\n /// * `Option<AztecAddress>` - The address of the smart contract that called this function (be it an app contract or\n /// a user's account contract). Returns `Option<AztecAddress>::none` for the first function call of the tx. No\n /// other _private_ function calls in the tx will have a `none` msg_sender, but _public_ function calls might (see\n /// the PublicContext).\n ///\n pub fn msg_sender(self) -> Option<AztecAddress> {\n let maybe_msg_sender = self.context.msg_sender_unsafe();\n if maybe_msg_sender == NULL_MSG_SENDER_CONTRACT_ADDRESS {\n Option::none()\n } else {\n Option::some(maybe_msg_sender)\n }\n }\n\n /// Emits an event from a private function. Private events can be delivered either via private logs or offchain\n /// messages, with configurable encryption and tagging constraints.\n ///\n /// Events in private functions are encrypted and sent to a specific recipient. This ensures that only the intended\n /// recipient can read the event data.\n ///\n /// # Parameters\n /// - `event`: The event to emit (must implement `EventInterface` and `Serialize`)\n /// - `recipient`: The address that should be able to decrypt and read this event\n /// - `delivery_mode`: The delivery mode for the event (e.g., `MessageDelivery.CONSTRAINED_ONCHAIN`)\n ///\n /// # Example\n /// ```noir\n /// #[external(\"private\")]\n /// fn transfer(amount: u128, to: AztecAddress) {\n /// // ... transfer logic ...\n /// self.emit(\n /// TransferEvent { from: sender, to, amount },\n /// to,\n /// MessageDelivery.CONSTRAINED_ONCHAIN\n /// );\n /// }\n /// ```\n pub fn emit<Event>(&mut self, event: Event, recipient: AztecAddress, delivery_mode: u8)\n where\n Event: EventInterface + Serialize,\n {\n emit_event_in_private(event, self.context, recipient, delivery_mode);\n }\n\n /// Makes a call to the private function defined by the `call` parameter.\n ///\n /// # Arguments\n /// * `call` - The object representing the private function to invoke.\n ///\n /// # Returns\n /// * `T` - Whatever data the called function has returned.\n ///\n /// # Example\n /// ```noir\n /// self.call(Token::at(address).transfer_in_private(recipient, amount));\n /// ```\n ///\n /// This enables contracts to interact with each other while maintaining\n /// privacy. This \"composability\" of private contract functions is a key\n /// feature of the Aztec network.\n ///\n /// If a user's transaction includes multiple private function calls, then\n /// by the design of Aztec, the following information will remain private[1]:\n /// - The function selectors and contract addresses of all private function\n /// calls will remain private, so an observer of the public mempool will\n /// not be able to look at a tx and deduce which private functions have\n /// been executed.\n /// - The arguments and return values of all private function calls will\n /// remain private.\n /// - The person who initiated the tx will remain private.\n /// - The notes and nullifiers and private logs that are emitted by all\n /// private function calls will (if designed well) not leak any user\n /// secrets, nor leak which functions have been executed.\n ///\n /// [1] Caveats: Some of these privacy guarantees depend on how app\n /// developers design their smart contracts. Some actions _can_ leak\n /// information, such as:\n /// - Calling an internal public function.\n /// - Calling a public function and not setting msg_sender to Option::none\n /// (see https://github.com/AztecProtocol/aztec-packages/pull/16433)\n /// - Calling any public function will always leak details about the nature\n /// of the transaction, so devs should be careful in their contract\n /// designs. If it can be done in a private function, then that will give\n /// the best privacy.\n /// - Not padding the side-effects of a tx to some standardized, uniform\n /// size. The kernel circuits can take hints to pad side-effects, so a\n /// wallet should be able to request for a particular amount of padding.\n /// Wallets should ideally agree on some standard.\n /// - Padding should include:\n /// - Padding the lengths of note & nullifier arrays\n /// - Padding private logs with random fields, up to some standardized\n /// size.\n /// See also: https://docs.aztec.network/developers/resources/considerations/privacy_considerations\n ///\n /// # Advanced\n /// * The call is added to the private call stack and executed by kernel\n /// circuits after this function completes\n /// * The called function can modify its own contract's private state\n /// * Side effects from the called function are included in this transaction\n /// * The call inherits the current transaction's context and gas limits\n ///\n pub fn call<let M: u32, T>(&mut self, call: PrivateCall<M, T>) -> T\n where\n T: Deserialize,\n {\n call.call(self.context)\n }\n\n /// Makes a read-only call to the private function defined by the `call` parameter.\n ///\n /// This is similar to Solidity's `staticcall`. The called function\n /// cannot modify state, emit L2->L1 messages, nor emit events. Any nested\n /// calls are constrained to also be static calls.\n ///\n /// # Arguments\n /// * `call` - The object representing the read-only private function to invoke.\n ///\n /// # Returns\n /// * `T` - Whatever data the called function has returned.\n ///\n /// # Example\n /// ```noir\n /// self.view(Token::at(address).balance_of_private(recipient));\n /// ```\n pub fn view<let M: u32, T>(&mut self, call: PrivateStaticCall<M, T>) -> T\n where\n T: Deserialize,\n {\n call.view(self.context)\n }\n\n /// Enqueues a call to the public function defined by the `call` parameter,\n /// to be executed later.\n ///\n /// Unlike private functions which execute immediately on the user's device,\n /// public function calls are \"enqueued\" and executed some time later by a\n /// block proposer.\n ///\n /// This means a public function cannot return any values back to a private\n /// function, because by the time the public function is being executed,\n /// the private function which called it has already completed execution.\n /// (In fact, the private function has been executed and proven, along with\n /// all other private function calls of the user's tx. A single proof of the\n /// tx has been submitted to the Aztec network, and some time later a\n /// proposer has picked the tx up from the mempool and begun executing all\n /// of the enqueued public functions).\n ///\n /// # Privacy warning\n /// Enqueueing a public function call is an inherently leaky action.\n /// Many interesting applications will require some interaction with public\n /// state, but smart contract developers should try to use public function\n /// calls sparingly, and carefully.\n /// _Internal_ public function calls are especially leaky, because they\n /// completely leak which private contract made the call.\n /// See also: https://docs.aztec.network/developers/resources/considerations/privacy_considerations\n ///\n /// # Arguments\n /// * `call` - The interface representing the public function to enqueue.\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCall type seems to be defined\n /// incorrectly.\n pub fn enqueue<let M: u32, T>(&mut self, call: PublicCall<M, T>)\n where\n T: Deserialize,\n {\n call.enqueue(self.context)\n }\n\n /// Enqueues a read-only call to the public function defined by the `call` parameter.\n ///\n /// This is similar to Solidity's `staticcall`. The called function\n /// cannot modify state, emit L2->L1 messages, nor emit events. Any nested\n /// calls are constrained to also be static calls.\n ///\n /// # Arguments\n /// * `call` - The object representing the read-only public function to enqueue.\n ///\n /// # Example\n /// ```noir\n /// self.enqueue_view(MyContract::at(address).assert_timestamp_less_than(timestamp));\n /// ```\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCall type seems to be defined\n /// incorrectly.\n pub fn enqueue_view<let M: u32, T>(&mut self, call: PublicStaticCall<M, T>)\n where\n T: Deserialize,\n {\n call.enqueue_view(self.context)\n }\n\n /// Enqueues a call to the public function defined by the `call` parameter,\n /// to be executed later.\n ///\n /// As per `enqueue`, but hides this calling contract's address from the\n /// target public function.\n /// This means the origin of the call (msg_sender) will not be publicly\n /// visible to any blockchain observers, nor to the target public function.\n /// When the target public function reads `context.msg_sender()` it will\n /// receive an `Option<AztecAddress>::none`.\n ///\n /// NOTES:\n /// - Not all public functions will accept a msg_sender of \"none\". Many\n /// public functions will require that msg_sender is \"some\" and will\n /// revert otherwise. Therefore, if using `enqueue_incognito`, you must\n /// understand whether the function you're calling will accept a\n /// msg_sender of \"none\".\n /// Lots of public bookkeeping patterns rely on knowing which address made\n /// the call, so as to ascribe state against the caller's address.\n /// (There are patterns whereby bookkeeping could instead be done in\n /// private-land).\n /// - If you are enqueueing a call to an _internal_ public function (i.e.\n /// a public function that will only accept calls from other functions\n /// of its own contract), then by definition a call to it cannot possibly\n /// be \"incognito\": the msg_sender must be its own address, and indeed the\n /// called public function will assert this. Tl;dr this is not usable for\n /// enqueued internal public calls.\n ///\n /// # Arguments\n /// * `call` - The object representing the public function to enqueue.\n ///\n /// # Example\n /// ```noir\n /// self.enqueue_incognito(Token::at(address).increase_total_supply_by(amount));\n /// ```\n ///\n /// Advanced:\n /// - The kernel circuits will permit _any_ private function to set the\n /// msg_sender field of any enqueued public function call to\n /// NULL_MSG_SENDER_CONTRACT_ADDRESS.\n /// - When the called public function calls `PublicContext::msg_sender()`,\n /// aztec-nr will translate NULL_MSG_SENDER_CONTRACT_ADDRESS into\n /// `Option<AztecAddress>::none` for familiarity to devs.\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCall type seems to be defined\n /// incorrectly.\n pub fn enqueue_incognito<let M: u32, T>(&mut self, call: PublicCall<M, T>)\n where\n T: Deserialize,\n {\n call.enqueue_incognito(self.context)\n }\n\n /// Enqueues a read-only call to the public function defined by the `call` parameter.\n ///\n /// As per `enqueue_view`, but hides this calling contract's address from\n /// the target public function.\n ///\n /// See `enqueue_incognito` for more details relating to hiding msg_sender.\n ///\n /// # Arguments\n /// * `call` - The object representing the read-only public function to enqueue.\n ///\n /// # Example\n /// ```noir\n /// self.enqueue_view_incognito(MyContract::at(address).assert_timestamp_less_than(timestamp));\n /// ```\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCall type seems to be defined\n /// incorrectly.\n pub fn enqueue_view_incognito<let M: u32, T>(&mut self, call: PublicStaticCall<M, T>)\n where\n T: Deserialize,\n {\n call.enqueue_view_incognito(self.context)\n }\n\n /// Enqueues a call to the public function defined by the `call` parameter,\n /// and designates it to be the teardown function for this tx. Only one teardown\n /// function call can be made by a tx.\n ///\n /// Niche function: Only wallet developers and paymaster contract developers\n /// (aka Fee-payment contracts) will need to make use of this function.\n ///\n /// Aztec supports a three-phase execution model: setup, app logic, teardown.\n /// The phases exist to enable a fee payer to take on the risk of paying\n /// a transaction fee, safe in the knowledge that their payment (in whatever\n /// token or method the user chooses) will succeed, regardless of whether\n /// the app logic will succeed. The \"setup\" phase ensures the fee payer\n /// has sufficient balance to pay the proposer their fees.\n /// The teardown phase is primarily intended to: calculate exactly\n /// how much the user owes, based on gas consumption, and refund the user\n /// any change.\n ///\n /// Note: in some cases, the cost of refunding the user (i.e. DA costs of\n /// tx side-effects) might exceed the refund amount. For app logic with\n /// fairly stable and predictable gas consumption, a material refund amount\n /// is unlikely. For app logic with unpredictable gas consumption, a\n /// refund might be important to the user (e.g. if a hefty function reverts\n /// very early). Wallet/FPC/Paymaster developers should be mindful of this.\n ///\n /// See `enqueue` for more information about enqueuing public function calls.\n ///\n /// # Arguments\n /// * `call` - The object representing the public function to designate as teardown.\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCall type seems to be defined\n /// incorrectly.\n pub fn set_as_teardown<let M: u32, T>(&mut self, call: PublicCall<M, T>)\n where\n T: Deserialize,\n {\n call.set_as_teardown(self.context)\n }\n\n /// Enqueues a call to the public function defined by the `call` parameter,\n /// and designates it to be the teardown function for this tx. Only one teardown\n /// function call can be made by a tx.\n ///\n /// As per `set_as_teardown`, but hides this calling contract's address from\n /// the target public function.\n ///\n /// See `enqueue_incognito` for more details relating to hiding msg_sender.\n ///\n /// TODO(F-131): We should drop T from here because it is strange as there\n /// is no return value. The PublicCall type seems to be defined\n /// incorrectly.\n pub fn set_as_teardown_incognito<let M: u32, T>(&mut self, call: PublicCall<M, T>)\n where\n T: Deserialize,\n {\n call.set_as_teardown_incognito(self.context)\n }\n}\n\n/// Implementation for `ContractSelf` in public execution contexts.\n///\n/// This implementation is used when a contract function is marked with `#[external(\"public\")]`.\n/// Public functions are executed by the sequencer in the Aztec Virtual Machine (AVM) and can work only with public\n/// state.\nimpl<Storage, CallSelf, CallSelfStatic, CallInternal> ContractSelf<PublicContext, Storage, CallSelf, (), CallSelfStatic, (), CallInternal> {\n /// Creates a new `ContractSelf` instance for a public function.\n ///\n /// This constructor is called automatically by the macro system and should not be called directly.\n pub fn new_public(\n context: PublicContext,\n storage: Storage,\n call_self: CallSelf,\n call_self_static: CallSelfStatic,\n internal: CallInternal,\n ) -> Self {\n Self {\n context,\n storage,\n address: context.this_address(),\n call_self,\n enqueue_self: (),\n call_self_static,\n enqueue_self_static: (),\n internal,\n }\n }\n\n /// Returns the contract address that initiated this function call.\n ///\n /// This is similar to `msg.sender` in Solidity (hence the name).\n ///\n /// Important Note: If the calling function is a _private_ function, then it had the option of hiding its address\n /// when enqueuing this public function call. In such cases, this `context.msg_sender()` method will return\n /// `Option<AztecAddress>::none`. If the calling function is a _public_ function, it will always return an\n /// `Option<AztecAddress>::some` (i.e. a non-null value).\n ///\n /// # Returns\n /// * `Option<AztecAddress>` - The address of the smart contract that called this function (be it an app contract or\n /// a user's account contract).\n ///\n /// # Advanced\n /// * Value is provided by the AVM sender opcode\n /// * In nested calls, this is the immediate caller, not the original transaction sender\n ///\n pub fn msg_sender(self: Self) -> Option<AztecAddress> {\n // Safety: AVM opcodes are constrained by the AVM itself\n let maybe_msg_sender = self.context.msg_sender_unsafe();\n if maybe_msg_sender == NULL_MSG_SENDER_CONTRACT_ADDRESS {\n Option::none()\n } else {\n Option::some(maybe_msg_sender)\n }\n }\n\n /// Emits an event from a public function.\n ///\n /// Events in public functions are emitted in plaintext and are visible to everyone.\n /// Unlike private events, they don't require a recipient parameter.\n ///\n /// # Parameters\n /// - `event`: The event to emit (must implement `EventInterface` and `Serialize`)\n ///\n /// # Example\n /// ```noir\n /// #[external(\"public\")]\n /// fn publish_update(value: Field) {\n /// // ... update logic ...\n /// self.emit(UpdateEvent { value });\n /// }\n /// ```\n pub fn emit<Event>(&mut self, event: Event)\n where\n Event: EventInterface + Serialize,\n {\n emit_event_in_public(event, self.context);\n }\n\n /// Makes the call to the public function defined by the `call` parameter.\n ///\n /// Will revert if the called function reverts or runs out of gas.\n ///\n /// # Arguments\n /// * `call` - The object representing the public function to invoke.\n ///\n /// # Returns\n /// * `T` - Whatever data the called function has returned.\n ///\n /// # Example\n /// ```noir\n /// self.call(Token::at(address).transfer_in_public(recipient, amount));\n /// ```\n ///\n pub unconstrained fn call<let M: u32, T>(self, call: PublicCall<M, T>) -> T\n where\n T: Deserialize,\n {\n call.call(self.context)\n }\n\n /// Makes the read-only call to the public function defined by the `call` parameter.\n ///\n /// This is similar to Solidity's `staticcall`. The called function\n /// cannot modify state or emit events. Any nested calls are constrained to\n /// also be static calls.\n ///\n /// Will revert if the called function reverts or runs out of gas.\n ///\n /// # Arguments\n /// * `call` - The object representing the read-only public function to invoke.\n ///\n /// # Returns\n /// * `T` - Whatever data the called function has returned.\n ///\n /// # Example\n /// ```noir\n /// self.view(Token::at(address).balance_of_public(recipient));\n /// ```\n ///\n pub unconstrained fn view<let M: u32, T>(self, call: PublicStaticCall<M, T>) -> T\n where\n T: Deserialize,\n {\n call.view(self.context)\n }\n}\n\n/// Implementation for `ContractSelf` in utility execution contexts.\n///\n/// This implementation is used when a contract function is marked with `#[external(\"utility\")]`.\n/// Utility functions are unconstrained functions that can read private state for offchain queries.\n/// They are typically used for view functions that need to access private notes (e.g. a Token's balance_of function).\nimpl<Storage> ContractSelf<UtilityContext, Storage, (), (), (), (), ()> {\n /// Creates a new `ContractSelf` instance for a utility function.\n ///\n /// This constructor is called automatically by the macro system and should not be called directly.\n pub fn new_utility(context: UtilityContext, storage: Storage) -> Self {\n Self {\n context,\n storage,\n address: context.this_address(),\n call_self: (),\n enqueue_self: (),\n call_self_static: (),\n enqueue_self_static: (),\n internal: (),\n }\n }\n}\n"
|
|
961
961
|
},
|
|
962
962
|
"77": {
|
|
963
963
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/event/event_selector.nr",
|