@aztec/protocol-contracts 0.0.1-commit.f146247c → 0.0.1-commit.f1df4d2
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 +10 -10
- package/artifacts/ContractClassRegistry.json +8 -8
- package/artifacts/ContractInstanceRegistry.json +11 -11
- package/artifacts/FeeJuice.json +14 -14
- package/artifacts/MultiCallEntrypoint.json +26 -16
- package/artifacts/PublicChecks.json +23 -13
- package/dest/protocol_contract_data.js +13 -13
- package/package.json +4 -4
- package/src/protocol_contract_data.ts +13 -13
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"transpiled": true,
|
|
3
|
-
"noir_version": "1.0.0-beta.18+
|
|
3
|
+
"noir_version": "1.0.0-beta.18+242b61d72ff7c42d7b1c1b9b5337b2d4dddc14dc",
|
|
4
4
|
"name": "ContractInstanceRegistry",
|
|
5
5
|
"functions": [
|
|
6
6
|
{
|
|
@@ -107,8 +107,8 @@
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
},
|
|
110
|
-
"bytecode": "JwACBAEoAAABBIBUJwAABFQlAAAAQScCAgQBJwIDBAAfCgACAAMAUy0IUwElAAAA8CcCAQRUJwICBAA7DgACAAEpAABDAPqRAsspAABEAMB7XhkpAABFAAVVe/onAEYAAywAAEcAAAAAAA6S+filNOhY/Pd32iBuCLDGIOz53rIdE0eYE/
|
|
111
|
-
"debug_symbols": "
|
|
110
|
+
"bytecode": "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",
|
|
111
|
+
"debug_symbols": "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"
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
"name": "publish_for_public_execution",
|
|
@@ -2094,9 +2094,9 @@
|
|
|
2094
2094
|
}
|
|
2095
2095
|
}
|
|
2096
2096
|
},
|
|
2097
|
-
"bytecode": "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",
|
|
2097
|
+
"bytecode": "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",
|
|
2098
2098
|
"debug_symbols": "tVvdbts6DH6XXOdCFH8k9VWGYci2bCgQtEXWDjgY9u6HSiTZySBOs92bkHasz5REUpRI/9p9PX5++/7p8enb84/dw4dfu8/nx9Pp8fun0/OXw+vj85Pe/bVz+Qdo9wDwe7+Dy5XoldMrX69I/wlXEncPrCTtHkQf0NaiD2J9MFz/SnqPKrDXC84XQf+B/S66K4Er0ZfAb32kSvXp9Xw85sdnYqrwL4fz8el19/D0djrtdz8Pp7fLQz9eDk8X+no4679uvzs+fVWqgN8eT8fM/d5PrV2/KYqX0holYAPAIKMQK94ePZXGkWJrDuGmPfbbi1ThJfCC9sFhaR/ALWrva3vffb/R/wRc2icPS9pzrO1D6rWP/fYAjmoPlJdZH+KoDECxCgHM0yhGGEZw0IRwEhqCx2FFouiqEBTJNwi+FSK/p6uLqepCQl4iA7s2m+xQujKQ0Q2PVQhCN2kE0a015hd1LTpIxcCIvo8hG2AEY1YRm2tRnue9ieNjKtDGNPbHNBljSq5CEAFNUuCwgjI0P8XAXe3y0IfwIFVBvfeTjou/hfCWsUJTsMxOcmC8tXiPlrFFxmZtybk+iqGoyNViMc0MNt0hWGrqsE6LsmkZBkCdF5yPxx8YwfIcbVApzjAgLetKcMu6IpPFSYD1GJGXYaSpL0n604L+fYc0JdfESLErhmm0qbof9kg9o0VLCmzuGGkOEccheFLR+erI4y4QJxeo60q3H8Yyz83iBSa1CHcAhg8VboGOiMeuyyC3hfsi2MJ9kV/rvgjXuy8TY9B9Ea+2NVOMQddjY/jYMKjvAi0t1TBwmtmZHGF8neaGwExdk2czFlVDb1LQLGq5s1i2lFScCxVEbmLBcbMPVEeUQ+jGHGxMComvak4Suu6LrXWemnbB3Hst6kWEbi+MWHQKRUOYBpL8sAgRmwgJQlcEQzNTmhRTZt7vfiAtDypVIaKbZEC53V3IJv5TNvGfstp/ygb+Uzbwn7Lef8oG/nMYwwjdTIzB0E3S+w7HYOhmGVycGdzMcd0bXLB2Sz7V0QCaG8s9Bm5hcoG2MLnAa00uyHqTMzEGTS7E1TpmijFocjbGWMhiuGTxVEdUwbqhefTW6hbb6jY7Z3F+vB+DZm9JEbmtTgJdKSyElBe/6+mZ0DKEdpabAqxG4LUI0a0dBwPB1Knm+wT7p4gJ1uqUhTCmDxbCmD6YCEP6MIrAaxGM2Rwch4X6gNRyHBhjVx/San1Iq/UhrdaHtFof0mp9SKv1Ib2nPlDb4wpJd48LzjjzZN/yXuwhzWIjvgMxlnFNVbQTbeLZzgzcHUjaIsLS9NQWIZa+ZG2MBVYWaTTIskEGoywwc0ljYdZ4b4yTbRtkMFgbBzE2SDbIYKgEkN55XAf3SH+xYq4gTA77VrxNUgm2ySrB+rQSbJFXgi0SS7BBZgm2SAv9BWRsp2NrG4eWThHv+tqGloOFdi6KuiufhuQurWxllyBNmpZCt2rDxPCunYx6R9zHIOtoc0qqzKSI/yLFlBN2CfpSyLtKATG1zLSTZeMJETfAcKsxEKrxe+S+bpgZJkzNIWqstQxjlkQg2gIjLMTg6RBMZCmGaxgR1vdlKQa3Og5gcOsxcCkGTRizAPweg91aq7WlaBanGab+zLJfK4W9KLQCNF0UoL8oWDkmdtR2I/PT3vtFwcbwU+3VrE7oDwzDlRInauky2gIjdTHGB5WNQbU2VjRlIAljVxAr48TCrexJUn9irHyT6iY1JZtl3xZjzEIPGC5RFWk1ijKv9LzfNIuhYinCtPnv54XByjbxJMbsaC/+ixSplaSk1K8nAQnvm54OLrRDJXD9wjwr2YSC3OJS7mZmLSkAJilCX4pgrk3ipnVlspR/qIAOPtQlIfjEfTHMXBP5qRSXZjuX+6k1c01bTC02sw+6177pzUe9Onx5PN9W0+eC+Hwq5UHjLp0Q7wvFQqlQLlQKDYXGQtOVoiu04GHBw4KHBQ8LHhY8LHhY8LDgkcu1XEqhUF8oZs1TSoVynnalUmiu/s/3Y6HpStkVqnikCs6+UMy7cqVUKGdvrlQKDYWmvPjudwLZNSn1hWKhlA1MKReavzFQfNH2edmXmI9klSpO9ihB5ckHCgEK9YVioZQLzJVyLm5WKvkoU2nIvkxpLDRdaf5W4ULzxwrOlc8VcugUMTOqHpEyoxiRKyOVCZWJWZVVzpgKk1xloDK+MlgZqgxXRioTKlORU0VWMRsHjfONy+jeZY4al/GzeqiwjctvyKqhBxqXRTRz+R25mkyPIBsHF2+ROd84vESVmaPG5XfkqYbL5yVyaZvfkacZ8mcll7pgyJ+PXLmLLeXENmRrgpwShmxPcDmy/nk4Px4+n47Z7LJhvj19qVaol6//vdR/6lcvL+fnL8evb+djttjZpy/6+0HXMw/ZomG6lfae8i3fbul5jU/5Fk63wh59vkV/Yl2+edFHP+gKFMLH/fXvSPuoINmB/A8=",
|
|
2099
|
-
"verification_key": "
|
|
2099
|
+
"verification_key": "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"
|
|
2100
2100
|
},
|
|
2101
2101
|
{
|
|
2102
2102
|
"name": "set_update_delay",
|
|
@@ -2152,8 +2152,8 @@
|
|
|
2152
2152
|
}
|
|
2153
2153
|
}
|
|
2154
2154
|
},
|
|
2155
|
-
"bytecode": "
|
|
2156
|
-
"debug_symbols": "
|
|
2155
|
+
"bytecode": "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",
|
|
2156
|
+
"debug_symbols": "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"
|
|
2157
2157
|
},
|
|
2158
2158
|
{
|
|
2159
2159
|
"name": "update",
|
|
@@ -2216,8 +2216,8 @@
|
|
|
2216
2216
|
}
|
|
2217
2217
|
}
|
|
2218
2218
|
},
|
|
2219
|
-
"bytecode": "
|
|
2220
|
-
"debug_symbols": "
|
|
2219
|
+
"bytecode": "JwACBAEoAAABBIBMJwAABEwlAAAAQScCAgQBJwIDBAAfCgACAAMASy0ISwElAAAAqicCAQRMJwICBAA7DgACAAEnAEMAAywAAEQAAAAAAA6S+filNOhY/Pd32iBuCLDGIOz53rIdE0eYE/YsAABFADBkTnLhMaApuFBFtoGBWF0oM+hIeblwkUPh9ZPwAAAAJwBGBAMnAEcAACcASAEBJwBJBAEnAEoAASYlAAAGPh4CAAMBCiIDRQQWCgQFHAoFBgAEKgYDBScCAwEACioEAwYkAgAGAAAA4icCBwQAPAYHAR4CAAQAKQIABgBt5bH1LQgBBycCCAQEAAgBCAEnAwcEAQAiBwIILQoICS0OBgkAIgkCCS0OBAkAIgkCCS0OBQknAggECS0IAAktCgcKLQhGCwAIAAgAJQAABmQtAgAALQoKBDMKAAQAByQCAAcAAAFYJQAACdMtCAEEJwIHBAQACAEHAScDBAQBACIEAgctCgcILQ4GCAAiCAIILQxDCAAiCAIILQ4BCCcCBwQILQgACC0KBAktCEYKAAgABwAlAAAGZC0CAAAtCgkGMwoABgAEJAIABAAAAcAlAAAJ5SkCAAQAQez6Sy0IAQYnAgcEBAAIAQcBJwMGBAEAIgYCBy0KBwgtDgQIACIIAggtDEoIACIIAggtDgUIJwIHBAgtCAAILQoGCS0IRgoACAAHACUAAAZkLQIAAC0KCQQKIgRHBgoqBgMHJAIABwAAAjUlAAAJ9x4CAAMALyoABAADAAYAIgRKAx4CAAcALyoAAwAHAAgnAgcAAgAqBAcJHgIACgAvKgAJAAoACxwKBgwEHAoMCgAcCgoGBR4CAAoALyoABAAKAAwcCgwNBBwKDQoAAioMCg0sAgAKAC1eCYuCuje0O5mhMWEY/SDUL1FmyenxP7XqZaltHgptBCoNCgwcCgwOBBwKDg0AAioMDQ4EKg4KDBwKDA8BHAoPDgAcCg4PAQIqDA4QLAIADAAwM+okblBuiY6X9XDK/9cEywu0YDE/tyCynhOeXBAAAQQqEAwRHAoREgQcChIQAAIqERASBCoSChEcChESARwKEgoAHAoKEgECKhEKEwQqEwwRHAoREwQcChMMABwKDBEFFgoSDBwKChIFHAoMEwUEKhIRDBwKEBEFFgoPEBwKDg8FHAoQFAUEKg8REBwKDREFHgIAFQYMKhURFikCABEFAAFRgCQCABYAAAO2IwAAA54EKg8QEgQqFBEPACoSDxEtChECIwAAA84EKhIMDwQqExESACoPEhEtChECIwAAA84AKhUCDw4qFQ8RJAIAEQAAA+UlAAAKCQwqFQYCFgoCBhwKAhEAHAoGAgAEKhEIBgQqAgsIACoGCAIcCg8GACcCCAAgJwIPBBEtCAARLQoHEi0KCBMACAAPACUAAAobLQIAAC0KEgsEKg0LCAAqBggLJwIIAEAnAg8EES0IABEtCgcSLQoIEwAIAA8AJQAAChstAgAALQoSDQQqDg0IACoLCA0cChAIACcCCwBIJwIPBBAtCAAQLQoHES0KCxIACAAPACUAAAobLQIAAC0KEQ4EKggOCwAqDQsIJwILAGgnAg4EDy0IAA8tCgcQLQoLEQAIAA4AJQAAChstAgAALQoQDQQqCg0LACoICwocCgwIACcCCwBwJwINBA4tCAAOLQoHDy0KCxAACAANACUAAAobLQIAAC0KDwwEKggMBwAqCgcIKwIABwAAAAAAAAAAAwAAAAAAAAAALQgBCicCCwQFAAgBCwEnAwoEAQAiCgILLQoLDC0OCAwAIgwCDC0OAgwAIgwCDC0OAQwAIgwCDC0OBwwtCwoHACIHAgctDgcKLQgBBycCCwQFAAgBCwEnAwcEAQAiCgILACIHAgw/DwALAAwAIgdJCy0LCwowCgAIAAQwCgACAAMwCgABAAkAIgRDAzAKAAoAAycCBAQFJwIIBAMAKgQIBy0IAQMACAEHAScDAwQBACIDAgctDgQHACIHAgctDgQHJwIHBAMAKgMHBC0KBActDEQHACIHAgctDgUHACIHAgctDgIHACIHAgctDgEHACIHAgctDgYHJwIBBAUAIgMCBS0LBQUtCgUEJwIGBAMAKgMGAjcOAAQAAiYoAAAEBHhMDAAABAMkAAADAAAGYyoBAAEF2sX11rRKMm08BAIBJiUAAAY+HAoCBAArAgAFAAAAAAAAAAABAAAAAAAAAAAEKgQFBi0IAQQAAAECAS0IAQUnAgcEBQAIAQcBJwMFBAEAIgUCBy0KBwgtDEcIACIIAggtDEcIACIIAggtDEcIACIIAggtDgYILQ4FBAYiAkYFJwIGBAAnAgcEAi0KBgMjAAAG6AwqAwUIJAIACAAACGgjAAAG+gYiAkYFBCIFRggCKgIIAwoqAwYFFgoFCCQCAAUAAAgCIwAABx8CKgIDBQ4qAwIJJAIACQAABzYlAAALCC0LBAkAIglJCy0LCwoMIgVGCyQCAAsAAAdVJQAACxoAIgECDAAqDAUNLQsNCwAqCgsMLQIJAycABAQFJQAACywtCAUKACIKSQstDgwLLQ4KBAwoSQMJJAIACQAAB5kjAAAIAgAqCgcJLQsJAwAiBUkJDioFCQskAgALAAAHuSUAAAoJDCIJRgUkAgAFAAAHyyUAAAsaACIBAgsAKgsJDC0LDAUAKgMFAS0CCgMnAAQEBSUAAAssLQgFAwAqAwcFLQ4BBS0OAwQjAAAIAgoqAgYBEioBCAIkAgACAAAIGSMAAAhWLQsEAS0LAQIAIgICAi0OAgEtCAECJwIDBAUACAEDAScDAgQBACIBAgMAIgICBT8PAAMABS0OAgQjAAAIVi0LBAEAIgFJAy0LAwItCgIBJi0LBAgAIghJCi0LCgkEIgNGCgYiCkYMCioMAwskAgALAAAIkSUAAAuLDCIKRgskAgALAAAIoyUAAAsaACIBAgwAKgwKDS0LDQsAKgkLDC0CCAMnAAQEBSUAAAssLQgFCQAiCUkLLQ4MCwAqCQcLLQsLCAAiCkkLDioKCwwkAgAMAAAI8SUAAAoJDCILRgwkAgAMAAAJAyUAAAsaACIBAg0AKg0LDi0LDgwAKggMCy0CCQMnAAQEBSUAAAssLQgFCAAqCAcMLQ4LDAAiCEYLLQsLCQAqCgcLDioKCwwkAgAMAAAJUSUAAAoJDCILRgokAgAKAAAJYyUAAAsaACIBAgwAKgwLDS0LDQoAKgkKCy0CCAMnAAQEBSUAAAssLQgFCQAiCUYKLQ4LCi0LCQgAIggCCC0OCAktCAEIJwIKBAUACAEKAScDCAQBACIJAgoAIggCCz8PAAoACy0OCAQAIgNJCC0KCAMjAAAG6CoBAAEF1RJ9KcLS6O08BAIBJioBAAEFrpKPa6mOkow8BAIBJioBAAEFursh14IzGGQ8BAIBJioBAAEF0Afr9MvGZ5A8BAIBJiUAAAY+LQgBBAAAAQIBLQxKBCcCBgQCJwIHAQEtCAEFJwIIBCEACAEIAScDBQQBACIFAggnAgkEIEMDqgACAAYACQAHAAgtAggDLQIJBCUAAAudJwICBCEnAgYEIC0ISQMjAAAKgQwqAwIHJAIABwAACpgjAAAKky0LBAEmLQsEBwQqBwcIAioGAwcOKgMGCSQCAAkAAAq4JQAACwgMKgcGCSQCAAkAAArKJQAACxoAIgUCCgAqCgcLLQsLCRwKCQcABCoIAQkEKgcJCgIoSgcJBCoJCAcAKgoHCC0OCAQAIgNJBy0KBwMjAAAKgSoBAAEFG7xl0D/c6tw8BAIBJioBAAEF5AhQRQK1jB88BAIBJi0BAwYKAAYCByQAAAcAAAtCIwAAC0stAAMFIwAAC4otAAEFAAABBAEAAAMECS0AAwotAAULCgAKCQwkAAAMAAALhS0BCggtBAgLAAAKAgoAAAsCCyMAAAthJwEFBAEmKgEAAQUFBBuZIK9gTDwEAgEmJwAGBAIGAAQGBS0ABAgnAAkEAA4ABQkKJAAACgAAC/ACAAgCCAAAAwkLLQELBgAAAwgLLQELBwAAAwkLLQQHCwAAAwgLLQQGCwAACQIJIwAAC7Am",
|
|
2220
|
+
"debug_symbols": "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"
|
|
2221
2221
|
}
|
|
2222
2222
|
],
|
|
2223
2223
|
"outputs": {
|
|
@@ -2823,7 +2823,7 @@
|
|
|
2823
2823
|
},
|
|
2824
2824
|
"230": {
|
|
2825
2825
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/version.nr",
|
|
2826
|
-
"source": "/// The ORACLE_VERSION constant is used to check that the oracle interface is in sync between PXE and Aztec.nr. We need\n/// to version the oracle interface to ensure that developers get a reasonable error message if they use incompatible\n/// versions of Aztec.nr and PXE. The TypeScript counterpart is in `oracle_version.ts`.\n///\n/// @dev Whenever a contract function or Noir test is run, the `utilityAssertCompatibleOracleVersion` oracle is called\n/// and if the oracle version is incompatible an error is thrown.\npub global ORACLE_VERSION: Field =
|
|
2826
|
+
"source": "/// The ORACLE_VERSION constant is used to check that the oracle interface is in sync between PXE and Aztec.nr. We need\n/// to version the oracle interface to ensure that developers get a reasonable error message if they use incompatible\n/// versions of Aztec.nr and PXE. The TypeScript counterpart is in `oracle_version.ts`.\n///\n/// @dev Whenever a contract function or Noir test is run, the `utilityAssertCompatibleOracleVersion` oracle is called\n/// and if the oracle version is incompatible an error is thrown.\npub global ORACLE_VERSION: Field = 11;\n\n/// Asserts that the version of the oracle is compatible with the version expected by the contract.\npub fn assert_compatible_oracle_version() {\n // Safety: This oracle call returns nothing: we only call it to check Aztec.nr and Oracle interface versions are\n // compatible. It is therefore always safe to call.\n unsafe {\n assert_compatible_oracle_version_wrapper();\n }\n}\n\nunconstrained fn assert_compatible_oracle_version_wrapper() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION);\n}\n\n#[oracle(utilityAssertCompatibleOracleVersion)]\nunconstrained fn assert_compatible_oracle_version_oracle(version: Field) {}\n\nmod test {\n use super::{assert_compatible_oracle_version_oracle, ORACLE_VERSION};\n\n #[test]\n unconstrained fn compatible_oracle_version() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION);\n }\n\n #[test(should_fail_with = \"Incompatible oracle version. TXE is using version\")]\n unconstrained fn incompatible_oracle_version() {\n let arbitrary_incorrect_version = 318183437;\n assert_compatible_oracle_version_oracle(arbitrary_incorrect_version);\n }\n}\n"
|
|
2827
2827
|
},
|
|
2828
2828
|
"297": {
|
|
2829
2829
|
"path": "/home/aztec-dev/nargo/github.com/noir-lang/poseidon/v0.2.3/src/poseidon2.nr",
|
|
@@ -2911,7 +2911,7 @@
|
|
|
2911
2911
|
},
|
|
2912
2912
|
"51": {
|
|
2913
2913
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr",
|
|
2914
|
-
"source": "/**\n * @title ContractInstanceRegistry Contract\n * @notice Manages the registration and updating of contract instances\n * @dev This contract allows deploying new contract instances and updating their class IDs\n */\npub contract ContractInstanceRegistry {\n use aztec::{\n context::{PrivateContext, PublicContext},\n hash::hash_args,\n nullifier::utils::compute_nullifier_existence_request,\n oracle::{avm, debug_log::debug_log_format, version::assert_compatible_oracle_version},\n protocol::{\n abis::function_selector::FunctionSelector,\n address::{AztecAddress, PartialAddress},\n constants::{\n CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE,\n CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE, DEFAULT_UPDATE_DELAY, MINIMUM_UPDATE_DELAY,\n },\n contract_class_id::ContractClassId,\n point::validate_on_curve,\n public_keys::PublicKeys,\n traits::{Deserialize, Serialize, ToField},\n utils::reader::Reader,\n },\n state_vars::{DelayedPublicMutable, Map, StateVariable},\n };\n\n #[abi(events)]\n struct ContractInstancePublished {\n CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE: Field,\n address: AztecAddress,\n version: u8,\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n deployer: AztecAddress,\n }\n\n // We need to impl this separately because ts deserializes a point as two fields only.\n // We had issues that:\n // Notice how the 'is_infinite' field is deserialized as the next point.\n // {\n // masterNullifierPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000012>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000034>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterIncomingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000056>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterOutgoingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000078>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterTaggingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000910>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000001112>,\n // isInfinite: false,\n // kind: 'point'\n // }\n\n impl ContractInstancePublished {\n fn serialize_non_standard(self) -> [Field; 15] {\n [\n self.CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE,\n self.address.to_field(),\n self.version.to_field(),\n self.salt,\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys.npk_m.serialize()[0],\n self.public_keys.npk_m.serialize()[1],\n self.public_keys.ivpk_m.serialize()[0],\n self.public_keys.ivpk_m.serialize()[1],\n self.public_keys.ovpk_m.serialize()[0],\n self.public_keys.ovpk_m.serialize()[1],\n self.public_keys.tpk_m.serialize()[0],\n self.public_keys.tpk_m.serialize()[1],\n self.deployer.to_field(),\n ]\n }\n }\n\n #[abi(events)]\n #[derive(Serialize)]\n struct ContractInstanceUpdated {\n CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE: Field,\n address: AztecAddress,\n prev_contract_class_id: ContractClassId,\n new_contract_class_id: ContractClassId,\n timestamp_of_change: u64,\n }\n\n struct Storage<Context> {\n updated_class_ids: Map<AztecAddress, DelayedPublicMutable<ContractClassId, DEFAULT_UPDATE_DELAY, Context>, Context>,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_private]\n fn publish_for_public_execution(\n inputs: aztec::context::inputs::PrivateContextInputs,\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n universal_deploy: bool,\n ) -> return_data aztec::protocol::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs {\n // MACRO CODE START\n // Note: The macros initially inserted a phase check here, but since there is no phase change in this function\n // body, I have removed that check.\n assert_compatible_oracle_version();\n\n let serialized_params: [Field; 16] = [\n salt,\n contract_class_id.to_field(),\n initialization_hash,\n ]\n .concat(public_keys.serialize())\n .concat([universal_deploy.to_field()]);\n\n let args_hash: Field = hash_args(serialized_params);\n let mut context: PrivateContext = PrivateContext::new(inputs, args_hash);\n // MACRO CODE END\n\n // Verify that the contract class is registered\n let nullifier_existence_request = compute_nullifier_existence_request(\n contract_class_id.to_field(),\n CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS,\n );\n context.assert_nullifier_exists(nullifier_existence_request);\n\n // Determine the deployer based on universal_deploy flag\n let deployer = if universal_deploy {\n AztecAddress::zero()\n } else {\n context.maybe_msg_sender().unwrap()\n };\n\n let partial_address =\n PartialAddress::compute(contract_class_id, salt, initialization_hash, deployer);\n\n // Note: Out of all the public keys, only the Ivpk_m is checked to be on the curve\n // (implicitly as part of the `add` operation of deriving the address). This at least\n // protects the AVM against DoS attacks.\n // For thoroughness, we also ensure the other points are on the curve:\n validate_on_curve(public_keys.npk_m.inner);\n validate_on_curve(public_keys.ovpk_m.inner);\n validate_on_curve(public_keys.tpk_m.inner);\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // Emit the address as a nullifier:\n // - to demonstrate that this contract instance hasn't been published before\n // - to enable apps to read that this contract instance has been published.\n context.push_nullifier(address.to_field());\n\n // Emit the deployment event\n let event = ContractInstancePublished {\n CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE,\n contract_class_id,\n address,\n public_keys,\n initialization_hash,\n salt,\n deployer,\n version: 1,\n };\n let payload = event.serialize_non_standard();\n debug_log_format(\"ContractInstancePublished: {}\", payload);\n let padded_log = payload.concat([0; 3]);\n let length = payload.len();\n context.emit_private_log(padded_log, length);\n\n // MACRO CODE START\n context.finish()\n // MACRO CODE END\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n unconstrained fn update(new_contract_class_id: ContractClassId) {\n // MACRO CODE START\n let context: PublicContext = PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 1] =\n avm::calldata_copy(1, <ContractClassId as Serialize>::N);\n hash_args(serialized_args)\n },\n );\n let storage: Storage<PublicContext> = Storage::init(context);\n // MACRO CODE END\n\n let address = context.maybe_msg_sender().unwrap();\n\n // Safety: we're using the nullifier's existence as a guarantee of the availability of the contract's\n // information through publishing, which is safe - we just need this information to be _eventually_ available.\n assert(\n context.nullifier_exists_unsafe(address.to_field(), context.this_address()),\n \"msg.sender is not deployed\",\n );\n\n // Safety: we're using the nullifier's existence as a guarantee of the availability of the new contract class'\n // information through registration, which is safe - we just need this information to be _eventually_ available.\n assert(\n context.nullifier_exists_unsafe(\n new_contract_class_id.to_field(),\n CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS,\n ),\n \"New contract class is not registered\",\n );\n\n let scheduled_value_update = storage\n .updated_class_ids\n .at(address)\n .schedule_and_return_value_change(new_contract_class_id);\n let (prev_contract_class_id, timestamp_of_change) = scheduled_value_update.get_previous();\n\n let event = ContractInstanceUpdated {\n CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE,\n address,\n prev_contract_class_id,\n new_contract_class_id,\n timestamp_of_change,\n };\n context.emit_public_log(event);\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n unconstrained fn set_update_delay(new_update_delay: u64) {\n // MACRO CODE START\n let context: PublicContext = PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 1] = avm::calldata_copy(1, <u64 as Serialize>::N);\n hash_args(serialized_args)\n },\n );\n let storage: Storage<PublicContext> = Storage::init(context);\n // MACRO CODE END\n\n let msg_sender = context.maybe_msg_sender().unwrap();\n\n // Safety: we're using the nullifier's existence as a guarantee of the availability of the contract's\n // information through publishing, which is safe - we just need this information to be _eventually_ available.\n assert(\n context.nullifier_exists_unsafe(msg_sender.to_field(), context.this_address()),\n \"msg.sender is not deployed\",\n );\n\n assert(new_update_delay >= MINIMUM_UPDATE_DELAY, \"New update delay is too low\");\n\n storage.updated_class_ids.at(msg_sender).schedule_delay_change(new_update_delay);\n }\n\n /**\n * Gets the current update delay for the caller's contract instance.\n *\n * @return The current update delay value\n */\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_view]\n unconstrained fn get_update_delay() -> pub u64 {\n // MACRO CODE START\n let context: PublicContext = PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 0] = avm::calldata_copy(1, 0);\n hash_args(serialized_args)\n },\n );\n let storage: Storage<PublicContext> = Storage::init(context);\n assert(context.is_static_call(), \"Function get_update_delay can only be called statically\");\n // MACRO CODE END\n\n storage.updated_class_ids.at(avm::sender()).get_current_delay()\n }\n\n // // THE REST OF THE CODE IN THIS CONTRACT WAS ORIGINALLY INJECTED BY THE #[aztec] MACRO.\n\n // Function selectors computed at comptime from function signatures\n global UPDATE_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"update((Field))\").to_field() };\n global SET_UPDATE_DELAY_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"set_update_delay(u64)\").to_field() };\n global GET_UPDATE_DELAY_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"get_update_delay()\").to_field() };\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n pub unconstrained fn public_dispatch(selector: Field) {\n if selector == UPDATE_SELECTOR {\n let input_calldata: [Field; 1] =\n avm::calldata_copy(1, <ContractClassId as Serialize>::N);\n let mut reader: Reader<1> = Reader::new(input_calldata);\n let arg0: ContractClassId =\n reader.read_struct(<ContractClassId as Deserialize>::deserialize);\n update(arg0);\n avm::avm_return([].as_vector());\n };\n if selector == SET_UPDATE_DELAY_SELECTOR {\n let input_calldata: [Field; 1] = avm::calldata_copy(1, <u64 as Serialize>::N);\n let mut reader: Reader<1> = Reader::new(input_calldata);\n let arg0: u64 = reader.read_struct(<u64 as Deserialize>::deserialize);\n set_update_delay(arg0);\n avm::avm_return([].as_vector());\n };\n if selector == GET_UPDATE_DELAY_SELECTOR {\n let return_value: [Field; 1] = <u64 as Serialize>::serialize(get_update_delay());\n avm::avm_return(return_value.as_vector());\n };\n panic(f\"Unknown selector {selector}\")\n }\n\n // THE REST OF THE CODE IN THIS CONTRACT WAS ORIGINALLY INJECTED BY THE #[aztec] MACRO.\n\n impl<Context> Storage<Context> {\n fn init(context: Context) -> Self {\n Self {\n updated_class_ids: <Map<AztecAddress, DelayedPublicMutable<ContractClassId, DEFAULT_UPDATE_DELAY, Context>, Context> as StateVariable<1, Context>>::new(\n context,\n 1,\n ),\n }\n }\n }\n\n // Parameter structs for ABI\n pub struct publish_for_public_execution_parameters {\n pub _salt: Field,\n pub _contract_class_id: ContractClassId,\n pub _initialization_hash: Field,\n pub _public_keys: PublicKeys,\n pub _universal_deploy: bool,\n }\n\n pub struct update_parameters {\n pub _new_contract_class_id: ContractClassId,\n }\n\n pub struct set_update_delay_parameters {\n pub _new_update_delay: u64,\n }\n\n pub struct get_update_delay_parameters {}\n\n // ABI structs\n #[abi(functions)]\n pub struct publish_for_public_execution_abi {\n parameters: publish_for_public_execution_parameters,\n }\n\n #[abi(functions)]\n pub struct update_abi {\n parameters: update_parameters,\n }\n\n #[abi(functions)]\n pub struct set_update_delay_abi {\n parameters: set_update_delay_parameters,\n }\n\n #[abi(functions)]\n pub struct get_update_delay_abi {\n parameters: get_update_delay_parameters,\n return_type: u64,\n }\n}\n"
|
|
2914
|
+
"source": "/**\n * @title ContractInstanceRegistry Contract\n * @notice Manages the registration and updating of contract instances\n * @dev This contract allows deploying new contract instances and updating their class IDs\n */\npub contract ContractInstanceRegistry {\n use aztec::{\n context::{PrivateContext, PublicContext},\n hash::hash_args,\n nullifier::utils::compute_nullifier_existence_request,\n oracle::{avm, debug_log::debug_log_format, version::assert_compatible_oracle_version},\n protocol::{\n abis::function_selector::FunctionSelector,\n address::{AztecAddress, PartialAddress},\n constants::{\n CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE,\n CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE, DEFAULT_UPDATE_DELAY, MINIMUM_UPDATE_DELAY,\n },\n contract_class_id::ContractClassId,\n point::validate_on_curve,\n public_keys::PublicKeys,\n traits::{Deserialize, Serialize, ToField},\n utils::reader::Reader,\n },\n state_vars::{DelayedPublicMutable, Map, StateVariable},\n };\n\n #[abi(events)]\n struct ContractInstancePublished {\n CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE: Field,\n address: AztecAddress,\n version: u8,\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n deployer: AztecAddress,\n }\n\n // We need to impl this separately because ts deserializes a point as two fields only.\n // We had issues that:\n // Notice how the 'is_infinite' field is deserialized as the next point.\n // {\n // masterNullifierPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000012>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000034>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterIncomingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000056>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterOutgoingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000078>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterTaggingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000910>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000001112>,\n // isInfinite: false,\n // kind: 'point'\n // }\n\n impl ContractInstancePublished {\n fn serialize_non_standard(self) -> [Field; 15] {\n [\n self.CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE,\n self.address.to_field(),\n self.version.to_field(),\n self.salt,\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys.npk_m.serialize()[0],\n self.public_keys.npk_m.serialize()[1],\n self.public_keys.ivpk_m.serialize()[0],\n self.public_keys.ivpk_m.serialize()[1],\n self.public_keys.ovpk_m.serialize()[0],\n self.public_keys.ovpk_m.serialize()[1],\n self.public_keys.tpk_m.serialize()[0],\n self.public_keys.tpk_m.serialize()[1],\n self.deployer.to_field(),\n ]\n }\n }\n\n #[abi(events)]\n #[derive(Serialize)]\n struct ContractInstanceUpdated {\n CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE: Field,\n address: AztecAddress,\n prev_contract_class_id: ContractClassId,\n new_contract_class_id: ContractClassId,\n timestamp_of_change: u64,\n }\n\n struct Storage<Context> {\n updated_class_ids: Map<AztecAddress, DelayedPublicMutable<ContractClassId, DEFAULT_UPDATE_DELAY, Context>, Context>,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_private]\n fn publish_for_public_execution(\n inputs: aztec::context::inputs::PrivateContextInputs,\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n universal_deploy: bool,\n ) -> return_data aztec::protocol::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs {\n // MACRO CODE START\n // Note: The macros initially inserted a phase check here, but since there is no phase change in this function\n // body, I have removed that check.\n assert_compatible_oracle_version();\n\n let serialized_params: [Field; 16] = [\n salt,\n contract_class_id.to_field(),\n initialization_hash,\n ]\n .concat(public_keys.serialize())\n .concat([universal_deploy.to_field()]);\n\n let args_hash: Field = hash_args(serialized_params);\n let mut context: PrivateContext = PrivateContext::new(inputs, args_hash);\n // MACRO CODE END\n\n // Verify that the contract class is registered\n let nullifier_existence_request = compute_nullifier_existence_request(\n contract_class_id.to_field(),\n CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS,\n );\n context.assert_nullifier_exists(nullifier_existence_request);\n\n // Determine the deployer based on universal_deploy flag\n let deployer = if universal_deploy {\n AztecAddress::zero()\n } else {\n context.maybe_msg_sender().unwrap()\n };\n\n let partial_address =\n PartialAddress::compute(contract_class_id, salt, initialization_hash, deployer);\n\n // Note: Out of all the public keys, only the Ivpk_m is checked to be on the curve\n // (implicitly as part of the `add` operation of deriving the address). This at least\n // protects the AVM against DoS attacks.\n // For thoroughness, we also ensure the other points are on the curve:\n validate_on_curve(public_keys.npk_m.inner);\n validate_on_curve(public_keys.ovpk_m.inner);\n validate_on_curve(public_keys.tpk_m.inner);\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // Emit the address as a nullifier:\n // - to demonstrate that this contract instance hasn't been published before\n // - to enable apps to read that this contract instance has been published.\n context.push_nullifier(address.to_field());\n\n // Emit the deployment event\n let event = ContractInstancePublished {\n CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE,\n contract_class_id,\n address,\n public_keys,\n initialization_hash,\n salt,\n deployer,\n version: 1,\n };\n let payload = event.serialize_non_standard();\n debug_log_format(\"ContractInstancePublished: {}\", payload);\n let padded_log = payload.concat([0; 3]);\n let length = payload.len();\n context.emit_private_log(padded_log, length);\n\n // MACRO CODE START\n context.finish()\n // MACRO CODE END\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n unconstrained fn update(new_contract_class_id: ContractClassId) {\n // MACRO CODE START\n let context: PublicContext = PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 1] =\n avm::calldata_copy(1, <ContractClassId as Serialize>::N);\n hash_args(serialized_args)\n },\n );\n let storage: Storage<PublicContext> = Storage::init(context);\n // MACRO CODE END\n\n let address = context.maybe_msg_sender().unwrap();\n\n // Safety: we're using the nullifier's existence as a guarantee of the availability of the contract's\n // information through publishing, which is safe - we just need this information to be _eventually_ available.\n assert(\n context.nullifier_exists_unsafe(address.to_field(), context.this_address()),\n \"msg.sender is not deployed\",\n );\n\n // Safety: we're using the nullifier's existence as a guarantee of the availability of the new contract class'\n // information through registration, which is safe - we just need this information to be _eventually_ available.\n assert(\n context.nullifier_exists_unsafe(\n new_contract_class_id.to_field(),\n CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS,\n ),\n \"New contract class is not registered\",\n );\n\n let scheduled_value_update = storage\n .updated_class_ids\n .at(address)\n .schedule_and_return_value_change(new_contract_class_id);\n let (prev_contract_class_id, timestamp_of_change) = scheduled_value_update.get_previous();\n\n let event = ContractInstanceUpdated {\n CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE,\n address,\n prev_contract_class_id,\n new_contract_class_id,\n timestamp_of_change,\n };\n context.emit_public_log(event);\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n unconstrained fn set_update_delay(new_update_delay: u64) {\n // MACRO CODE START\n let context: PublicContext = PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 1] = avm::calldata_copy(1, <u64 as Serialize>::N);\n hash_args(serialized_args)\n },\n );\n let storage: Storage<PublicContext> = Storage::init(context);\n // MACRO CODE END\n\n let msg_sender = context.maybe_msg_sender().unwrap();\n\n // Safety: we're using the nullifier's existence as a guarantee of the availability of the contract's\n // information through publishing, which is safe - we just need this information to be _eventually_ available.\n assert(\n context.nullifier_exists_unsafe(msg_sender.to_field(), context.this_address()),\n \"msg.sender is not deployed\",\n );\n\n assert(new_update_delay >= MINIMUM_UPDATE_DELAY, \"New update delay is too low\");\n\n storage.updated_class_ids.at(msg_sender).schedule_delay_change(new_update_delay);\n }\n\n /**\n * Gets the current update delay for the caller's contract instance.\n *\n * @return The current update delay value\n */\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_view]\n unconstrained fn get_update_delay() -> pub u64 {\n // MACRO CODE START\n let context: PublicContext = PublicContext::new(\n || -> Field {\n let serialized_args: [Field; 0] = avm::calldata_copy(1, 0);\n hash_args(serialized_args)\n },\n );\n let storage: Storage<PublicContext> = Storage::init(context);\n assert(context.is_static_call(), \"Function get_update_delay can only be called statically\");\n // MACRO CODE END\n\n storage.updated_class_ids.at(avm::sender()).get_current_delay()\n }\n\n // // THE REST OF THE CODE IN THIS CONTRACT WAS ORIGINALLY INJECTED BY THE #[aztec] MACRO.\n\n // Function selectors computed at comptime from function signatures\n global UPDATE_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"update((Field))\").to_field() };\n global SET_UPDATE_DELAY_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"set_update_delay(u64)\").to_field() };\n global GET_UPDATE_DELAY_SELECTOR: Field =\n comptime { FunctionSelector::from_signature(\"get_update_delay()\").to_field() };\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_public]\n pub unconstrained fn public_dispatch(selector: Field) {\n if selector == UPDATE_SELECTOR {\n let input_calldata: [Field; 1] =\n avm::calldata_copy(1, <ContractClassId as Serialize>::N);\n let mut reader: Reader<1> = Reader::new(input_calldata);\n let arg0: ContractClassId =\n <ContractClassId as Deserialize>::stream_deserialize(&mut reader);\n update(arg0);\n avm::avm_return([].as_vector());\n };\n if selector == SET_UPDATE_DELAY_SELECTOR {\n let input_calldata: [Field; 1] = avm::calldata_copy(1, <u64 as Serialize>::N);\n let mut reader: Reader<1> = Reader::new(input_calldata);\n let arg0: u64 = <u64 as Deserialize>::stream_deserialize(&mut reader);\n set_update_delay(arg0);\n avm::avm_return([].as_vector());\n };\n if selector == GET_UPDATE_DELAY_SELECTOR {\n let return_value: [Field; 1] = <u64 as Serialize>::serialize(get_update_delay());\n avm::avm_return(return_value.as_vector());\n };\n panic(f\"Unknown selector {selector}\")\n }\n\n // THE REST OF THE CODE IN THIS CONTRACT WAS ORIGINALLY INJECTED BY THE #[aztec] MACRO.\n\n impl<Context> Storage<Context> {\n fn init(context: Context) -> Self {\n Self {\n updated_class_ids: <Map<AztecAddress, DelayedPublicMutable<ContractClassId, DEFAULT_UPDATE_DELAY, Context>, Context> as StateVariable<1, Context>>::new(\n context,\n 1,\n ),\n }\n }\n }\n\n // Parameter structs for ABI\n pub struct publish_for_public_execution_parameters {\n pub _salt: Field,\n pub _contract_class_id: ContractClassId,\n pub _initialization_hash: Field,\n pub _public_keys: PublicKeys,\n pub _universal_deploy: bool,\n }\n\n pub struct update_parameters {\n pub _new_contract_class_id: ContractClassId,\n }\n\n pub struct set_update_delay_parameters {\n pub _new_update_delay: u64,\n }\n\n pub struct get_update_delay_parameters {}\n\n // ABI structs\n #[abi(functions)]\n pub struct publish_for_public_execution_abi {\n parameters: publish_for_public_execution_parameters,\n }\n\n #[abi(functions)]\n pub struct update_abi {\n parameters: update_parameters,\n }\n\n #[abi(functions)]\n pub struct set_update_delay_abi {\n parameters: set_update_delay_parameters,\n }\n\n #[abi(functions)]\n pub struct get_update_delay_abi {\n parameters: get_update_delay_parameters,\n return_type: u64,\n }\n}\n"
|
|
2915
2915
|
},
|
|
2916
2916
|
"58": {
|
|
2917
2917
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/protocol/aztec_sublib/src/context/private_context.nr",
|