{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":593333723,"defaultBranch":"main","name":"noir_backend_using_gnark","ownerLogin":"lambdaclass","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-01-25T19:08:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6535196?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1680293877.0","currentOid":""},"activityList":{"items":[{"before":"7aeec1393323544014ff9090d771421a7f94d0bf","after":"0aabeb0945eb8e306b8b380b9852e85f74ccec3c","ref":"refs/heads/generate_constraints_in_black_box_functions","pushedAt":"2024-03-08T21:52:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Fix merge error","shortMessageHtmlLink":"Fix merge error"}},{"before":"15fb7d4f3677f005730918d3b762b228c5b630a7","after":"7aeec1393323544014ff9090d771421a7f94d0bf","ref":"refs/heads/generate_constraints_in_black_box_functions","pushedAt":"2024-03-08T21:46:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Fix merge error","shortMessageHtmlLink":"Fix merge error"}},{"before":"d91495c5932240d30f652dcde11c2ed25e053e40","after":"15fb7d4f3677f005730918d3b762b228c5b630a7","ref":"refs/heads/generate_constraints_in_black_box_functions","pushedAt":"2024-03-08T21:41:12.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Merge branch 'main' of github.com:lambdaclass/noir_backend_using_gnark into generate_constraints_in_black_box_functions","shortMessageHtmlLink":"Merge branch 'main' of github.com:lambdaclass/noir_backend_using_gnar…"}},{"before":"6cd2e1f54ed3251a464773de678a4e9997895124","after":"cc6405a8fef1517e3f0da0e72a38f23606be3843","ref":"refs/heads/fixed_base_scalar_mul","pushedAt":"2023-03-31T21:03:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Add test for `Square` component","shortMessageHtmlLink":"Add test for Square component"}},{"before":null,"after":"6cd2e1f54ed3251a464773de678a4e9997895124","ref":"refs/heads/fixed_base_scalar_mul","pushedAt":"2023-03-31T20:17:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Add tests scaffoldings for the implemented components","shortMessageHtmlLink":"Add tests scaffoldings for the implemented components"}},{"before":"497318449c67363856b80ae0ec537d61690f6fa8","after":null,"ref":"refs/heads/range_component","pushedAt":"2023-03-31T14:10:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"}},{"before":"0c97afe48b05ec4aa7fa9eead4d4987897f08790","after":"d91495c5932240d30f652dcde11c2ed25e053e40","ref":"refs/heads/generate_constraints_in_black_box_functions","pushedAt":"2023-03-31T14:10:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"`assertIsInRange` component (#79)\n\n* `Select` component (#78)\r\n\r\n* `Sub` component (#77)\r\n\r\n* Add `sub` component (subtraction)\r\n\r\n* Update test\r\n\r\n* Add `Select` component (if condition)\r\n\r\n* Add components to `components.go`\r\n\r\n* Add `assertIsInRange` component\r\n\r\n* Handle `Range` black box function","shortMessageHtmlLink":"assertIsInRange component (#79)"}},{"before":"597940839e434b348c0b43503452210a4684154e","after":"497318449c67363856b80ae0ec537d61690f6fa8","ref":"refs/heads/range_component","pushedAt":"2023-03-30T20:23:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Handle `Range` black box function","shortMessageHtmlLink":"Handle Range black box function"}},{"before":"ea889bf54810b10d4f316c83ca377679198f587c","after":"597940839e434b348c0b43503452210a4684154e","ref":"refs/heads/range_component","pushedAt":"2023-03-30T20:18:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Add `assertIsInRange` component","shortMessageHtmlLink":"Add assertIsInRange component"}},{"before":"9e2b797f3fb36d289177d63d9c380ed68b2f46f6","after":null,"ref":"refs/heads/select_component","pushedAt":"2023-03-30T19:55:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"}},{"before":"0c97afe48b05ec4aa7fa9eead4d4987897f08790","after":"ea889bf54810b10d4f316c83ca377679198f587c","ref":"refs/heads/range_component","pushedAt":"2023-03-30T19:55:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"`Select` component (#78)\n\n* `Sub` component (#77)\r\n\r\n* Add `sub` component (subtraction)\r\n\r\n* Update test\r\n\r\n* Add `Select` component (if condition)\r\n\r\n* Add components to `components.go`","shortMessageHtmlLink":"Select component (#78)"}},{"before":"c4b388578fb1069bba25a3694f737d32856353ec","after":"9e2b797f3fb36d289177d63d9c380ed68b2f46f6","ref":"refs/heads/select_component","pushedAt":"2023-03-30T19:01:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Add components to `components.go`","shortMessageHtmlLink":"Add components to components.go"}},{"before":"215cfcf7fe88213bef51ae846f9bc15e254cf943","after":"c4b388578fb1069bba25a3694f737d32856353ec","ref":"refs/heads/select_component","pushedAt":"2023-03-30T15:58:05.627Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Add `Select` component (if condition)","shortMessageHtmlLink":"Add Select component (if condition)"}},{"before":"513395f553988af1f7e802e3dbca2330e3bcb8b6","after":null,"ref":"refs/heads/sub_component","pushedAt":"2023-03-30T15:24:23.658Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"}},{"before":"0c97afe48b05ec4aa7fa9eead4d4987897f08790","after":"215cfcf7fe88213bef51ae846f9bc15e254cf943","ref":"refs/heads/select_component","pushedAt":"2023-03-30T15:24:22.017Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"`Sub` component (#77)\n\n* Add `sub` component (subtraction)\r\n\r\n* Update test","shortMessageHtmlLink":"Sub component (#77)"}},{"before":"e8337d4f9ec6faf27fc787e2fe56844ca3d9f39a","after":"513395f553988af1f7e802e3dbca2330e3bcb8b6","ref":"refs/heads/sub_component","pushedAt":"2023-03-30T15:04:38.935Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Update test","shortMessageHtmlLink":"Update test"}},{"before":null,"after":"0c97afe48b05ec4aa7fa9eead4d4987897f08790","ref":"refs/heads/select_component","pushedAt":"2023-03-30T15:00:18.686Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Integrate `AND` and `XOR` black box functions (#75)\n\n* Add first implementation of gadget\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Add function to get the one wire's index\r\n\r\n* Fix function signature\r\n\r\n* Improve documentation\r\n\r\n* Add secret variables instead of internal ones for the intermediate variables\r\n\r\n* Return the mutated secret variables\r\n\r\n* Refactor a function (abstract it from the ACIR)\r\n\r\n* Add tests for `assertIsBoolean` component\r\n\r\n* Add tests for bit and component\r\n\r\n* Add bit and component\r\n\r\n* Add multiple-bit and component\r\n\r\n* Update result's secret variable name\r\n\r\n* Add xor component implementation\r\n\r\nBoth for bit-to-bit and multiple bits\r\n\r\n* Fix append\r\n\r\n* Add tests for single bit xor\r\n\r\n* Fix `assertIsBoolean` constraint component\r\n\r\n* Remove useless function\r\n\r\n* Update naming\r\n\r\n* Fix\r\n\r\n* Add `assertIsEqual` component\r\n\r\n* Refactor repeated code in tests\r\n\r\n* Add `assertIsEqual` component tests\r\n\r\n* Implement `add` `mul` & `assertIsEqual` components\r\n\r\n* Fix `toBinaryConversion` component\r\n\r\n* Update secret variables naming\r\n\r\n* Add `toBinaryConversion` tests\r\n\r\n* Remove print\r\n\r\n* Add missing boolean assertion when converting to binary\r\n\r\n* Improve variable labels\r\n\r\n* Fix `toBinaryConversion`\r\n\r\n* Flag to generate constraint over `and` inputs\r\n\r\n* Update `And`\r\n\r\n* Shift coefficient after every iteration\r\n\r\n* Implement `fromBinaryConversion` component\r\n\r\n* Update tests naming\r\n\r\n* Finish `And` implementation\r\n\r\n* Update `accumulator` label name\r\n\r\n* Remove needless boolean assertion\r\n\r\nIt is asserted above\r\n\r\n* Document components\r\n\r\n* Cleanup components\r\n\r\n* Rename module\r\n\r\n* Doc `assertIsEqual`\r\n\r\n* Finish `Xor` & `xor` components implementations\r\n\r\n* Update doc\r\n\r\n* Update variable usage\r\n\r\nIn the previous iteration, only secret variables were assumed to be the only ones used for the component. In reality, both secret and public variables could be used with components. Given that in components, the intermediate variables are treated as secret, then we must track them, but we also need to use the full variables vector (public+secret in order).\r\n\r\nThis is just another iteration, it seems that having some mutable Context data structure would clean the code a lot, because it is really messy as it is and the user must take care of updating the secret, and the full variables vectors.\r\n\r\n* `HandleValues` returns a full variables vector too\r\n\r\nPublic + secret in order\r\n\r\n* Both `handleOpcodes`and `handleBlackBoxFunctionOpcode` must now return the added secret variables (that are the internal ones).\r\n\r\nIf we manage to handle these internal variables as internal and not as secret, this would be useless.\r\n\r\n* First iteration of integrating AND & XOR opcodes\r\n\r\nOn this iteration we do not handle the `variablesMap` and we do not compare the incoming output with the computed one.\r\n\r\n* Bring back Go tests\r\n\r\nAt the moment we're just running Plonk's components tests because the ACIR's are to be fixed\r\n\r\n* Update package name\r\n\r\n* Sort imports\r\n\r\n* Update imports\r\n\r\n* Add missing function\r\n\r\n* `Context` refactor (#76)\r\n\r\n* Add `Context`\r\n\r\n* Handle `Context` in components\r\n\r\n* Update tests\r\n\r\n* Comment out `go` job until fixed\r\n\r\n* Temporarily fix integration\r\n\r\nFor some reason, having a third level module (`components`) makes the `cc` crate not to compile when building `nargo`. It seems that the module is not being found.","shortMessageHtmlLink":"Integrate AND and XOR black box functions (#75)"}},{"before":null,"after":"0c97afe48b05ec4aa7fa9eead4d4987897f08790","ref":"refs/heads/range_component","pushedAt":"2023-03-30T15:00:05.555Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Integrate `AND` and `XOR` black box functions (#75)\n\n* Add first implementation of gadget\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Add function to get the one wire's index\r\n\r\n* Fix function signature\r\n\r\n* Improve documentation\r\n\r\n* Add secret variables instead of internal ones for the intermediate variables\r\n\r\n* Return the mutated secret variables\r\n\r\n* Refactor a function (abstract it from the ACIR)\r\n\r\n* Add tests for `assertIsBoolean` component\r\n\r\n* Add tests for bit and component\r\n\r\n* Add bit and component\r\n\r\n* Add multiple-bit and component\r\n\r\n* Update result's secret variable name\r\n\r\n* Add xor component implementation\r\n\r\nBoth for bit-to-bit and multiple bits\r\n\r\n* Fix append\r\n\r\n* Add tests for single bit xor\r\n\r\n* Fix `assertIsBoolean` constraint component\r\n\r\n* Remove useless function\r\n\r\n* Update naming\r\n\r\n* Fix\r\n\r\n* Add `assertIsEqual` component\r\n\r\n* Refactor repeated code in tests\r\n\r\n* Add `assertIsEqual` component tests\r\n\r\n* Implement `add` `mul` & `assertIsEqual` components\r\n\r\n* Fix `toBinaryConversion` component\r\n\r\n* Update secret variables naming\r\n\r\n* Add `toBinaryConversion` tests\r\n\r\n* Remove print\r\n\r\n* Add missing boolean assertion when converting to binary\r\n\r\n* Improve variable labels\r\n\r\n* Fix `toBinaryConversion`\r\n\r\n* Flag to generate constraint over `and` inputs\r\n\r\n* Update `And`\r\n\r\n* Shift coefficient after every iteration\r\n\r\n* Implement `fromBinaryConversion` component\r\n\r\n* Update tests naming\r\n\r\n* Finish `And` implementation\r\n\r\n* Update `accumulator` label name\r\n\r\n* Remove needless boolean assertion\r\n\r\nIt is asserted above\r\n\r\n* Document components\r\n\r\n* Cleanup components\r\n\r\n* Rename module\r\n\r\n* Doc `assertIsEqual`\r\n\r\n* Finish `Xor` & `xor` components implementations\r\n\r\n* Update doc\r\n\r\n* Update variable usage\r\n\r\nIn the previous iteration, only secret variables were assumed to be the only ones used for the component. In reality, both secret and public variables could be used with components. Given that in components, the intermediate variables are treated as secret, then we must track them, but we also need to use the full variables vector (public+secret in order).\r\n\r\nThis is just another iteration, it seems that having some mutable Context data structure would clean the code a lot, because it is really messy as it is and the user must take care of updating the secret, and the full variables vectors.\r\n\r\n* `HandleValues` returns a full variables vector too\r\n\r\nPublic + secret in order\r\n\r\n* Both `handleOpcodes`and `handleBlackBoxFunctionOpcode` must now return the added secret variables (that are the internal ones).\r\n\r\nIf we manage to handle these internal variables as internal and not as secret, this would be useless.\r\n\r\n* First iteration of integrating AND & XOR opcodes\r\n\r\nOn this iteration we do not handle the `variablesMap` and we do not compare the incoming output with the computed one.\r\n\r\n* Bring back Go tests\r\n\r\nAt the moment we're just running Plonk's components tests because the ACIR's are to be fixed\r\n\r\n* Update package name\r\n\r\n* Sort imports\r\n\r\n* Update imports\r\n\r\n* Add missing function\r\n\r\n* `Context` refactor (#76)\r\n\r\n* Add `Context`\r\n\r\n* Handle `Context` in components\r\n\r\n* Update tests\r\n\r\n* Comment out `go` job until fixed\r\n\r\n* Temporarily fix integration\r\n\r\nFor some reason, having a third level module (`components`) makes the `cc` crate not to compile when building `nargo`. It seems that the module is not being found.","shortMessageHtmlLink":"Integrate AND and XOR black box functions (#75)"}},{"before":null,"after":"e8337d4f9ec6faf27fc787e2fe56844ca3d9f39a","ref":"refs/heads/sub_component","pushedAt":"2023-03-30T14:59:16.612Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Add `sub` component (subtraction)","shortMessageHtmlLink":"Add sub component (subtraction)"}},{"before":"49b35c6f99e50f2226a4cf2e9650acd0c3127d46","after":null,"ref":"refs/heads/integrate_and_and_xor_black_box_functions","pushedAt":"2023-03-30T14:35:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"}},{"before":"69ccd6fe58c56e73e16fdb76c1b72ef8477520c8","after":"0c97afe48b05ec4aa7fa9eead4d4987897f08790","ref":"refs/heads/generate_constraints_in_black_box_functions","pushedAt":"2023-03-30T14:35:41.507Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Integrate `AND` and `XOR` black box functions (#75)\n\n* Add first implementation of gadget\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Add function to get the one wire's index\r\n\r\n* Fix function signature\r\n\r\n* Improve documentation\r\n\r\n* Add secret variables instead of internal ones for the intermediate variables\r\n\r\n* Return the mutated secret variables\r\n\r\n* Refactor a function (abstract it from the ACIR)\r\n\r\n* Add tests for `assertIsBoolean` component\r\n\r\n* Add tests for bit and component\r\n\r\n* Add bit and component\r\n\r\n* Add multiple-bit and component\r\n\r\n* Update result's secret variable name\r\n\r\n* Add xor component implementation\r\n\r\nBoth for bit-to-bit and multiple bits\r\n\r\n* Fix append\r\n\r\n* Add tests for single bit xor\r\n\r\n* Fix `assertIsBoolean` constraint component\r\n\r\n* Remove useless function\r\n\r\n* Update naming\r\n\r\n* Fix\r\n\r\n* Add `assertIsEqual` component\r\n\r\n* Refactor repeated code in tests\r\n\r\n* Add `assertIsEqual` component tests\r\n\r\n* Implement `add` `mul` & `assertIsEqual` components\r\n\r\n* Fix `toBinaryConversion` component\r\n\r\n* Update secret variables naming\r\n\r\n* Add `toBinaryConversion` tests\r\n\r\n* Remove print\r\n\r\n* Add missing boolean assertion when converting to binary\r\n\r\n* Improve variable labels\r\n\r\n* Fix `toBinaryConversion`\r\n\r\n* Flag to generate constraint over `and` inputs\r\n\r\n* Update `And`\r\n\r\n* Shift coefficient after every iteration\r\n\r\n* Implement `fromBinaryConversion` component\r\n\r\n* Update tests naming\r\n\r\n* Finish `And` implementation\r\n\r\n* Update `accumulator` label name\r\n\r\n* Remove needless boolean assertion\r\n\r\nIt is asserted above\r\n\r\n* Document components\r\n\r\n* Cleanup components\r\n\r\n* Rename module\r\n\r\n* Doc `assertIsEqual`\r\n\r\n* Finish `Xor` & `xor` components implementations\r\n\r\n* Update doc\r\n\r\n* Update variable usage\r\n\r\nIn the previous iteration, only secret variables were assumed to be the only ones used for the component. In reality, both secret and public variables could be used with components. Given that in components, the intermediate variables are treated as secret, then we must track them, but we also need to use the full variables vector (public+secret in order).\r\n\r\nThis is just another iteration, it seems that having some mutable Context data structure would clean the code a lot, because it is really messy as it is and the user must take care of updating the secret, and the full variables vectors.\r\n\r\n* `HandleValues` returns a full variables vector too\r\n\r\nPublic + secret in order\r\n\r\n* Both `handleOpcodes`and `handleBlackBoxFunctionOpcode` must now return the added secret variables (that are the internal ones).\r\n\r\nIf we manage to handle these internal variables as internal and not as secret, this would be useless.\r\n\r\n* First iteration of integrating AND & XOR opcodes\r\n\r\nOn this iteration we do not handle the `variablesMap` and we do not compare the incoming output with the computed one.\r\n\r\n* Bring back Go tests\r\n\r\nAt the moment we're just running Plonk's components tests because the ACIR's are to be fixed\r\n\r\n* Update package name\r\n\r\n* Sort imports\r\n\r\n* Update imports\r\n\r\n* Add missing function\r\n\r\n* `Context` refactor (#76)\r\n\r\n* Add `Context`\r\n\r\n* Handle `Context` in components\r\n\r\n* Update tests\r\n\r\n* Comment out `go` job until fixed\r\n\r\n* Temporarily fix integration\r\n\r\nFor some reason, having a third level module (`components`) makes the `cc` crate not to compile when building `nargo`. It seems that the module is not being found.","shortMessageHtmlLink":"Integrate AND and XOR black box functions (#75)"}},{"before":"8224056e14fae2d40ce182f7307fd11b881f6cd5","after":"49b35c6f99e50f2226a4cf2e9650acd0c3127d46","ref":"refs/heads/integrate_and_and_xor_black_box_functions","pushedAt":"2023-03-30T14:04:12.490Z","pushType":"push","commitsCount":3,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Merge branch 'generate_constraints_in_black_box_functions' of github.com:lambdaclass/noir_backend_using_gnark into integrate_and_and_xor_black_box_functions","shortMessageHtmlLink":"Merge branch 'generate_constraints_in_black_box_functions' of github.…"}},{"before":"ac9c46f42b341eeaa03467e4e34a3886ae180652","after":"8224056e14fae2d40ce182f7307fd11b881f6cd5","ref":"refs/heads/integrate_and_and_xor_black_box_functions","pushedAt":"2023-03-30T13:56:44.851Z","pushType":"push","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Temporarily fix integration\n\nFor some reason, having a third level module (`components`) makes the `cc` crate not to compile when building `nargo`. It seems that the module is not being found.","shortMessageHtmlLink":"Temporarily fix integration"}},{"before":"2a043e1a72a7b4997fff1f88557039425c0d90af","after":null,"ref":"refs/heads/context_refactor","pushedAt":"2023-03-30T13:42:38.016Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"}},{"before":"7ef8490df73399b0c07ab1d4b27986285523df33","after":"ac9c46f42b341eeaa03467e4e34a3886ae180652","ref":"refs/heads/integrate_and_and_xor_black_box_functions","pushedAt":"2023-03-30T13:42:36.602Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"`Context` refactor (#76)\n\n* Add `Context`\r\n\r\n* Handle `Context` in components\r\n\r\n* Update tests\r\n\r\n* Comment out `go` job until fixed","shortMessageHtmlLink":"Context refactor (#76)"}},{"before":"837c6924c95b0bfef359b74989029e0a439e9f0a","after":null,"ref":"refs/heads/xor_component","pushedAt":"2023-03-30T13:42:14.365Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"}},{"before":"a10093261b00edc1253a02648c50423a0ef2cda4","after":"69ccd6fe58c56e73e16fdb76c1b72ef8477520c8","ref":"refs/heads/generate_constraints_in_black_box_functions","pushedAt":"2023-03-30T13:42:12.113Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"`Xor` component (#73)\n\n* Add first implementation of gadget\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Add function to get the one wire's index\r\n\r\n* Fix function signature\r\n\r\n* Improve documentation\r\n\r\n* Add secret variables instead of internal ones for the intermediate variables\r\n\r\n* Return the mutated secret variables\r\n\r\n* Refactor a function (abstract it from the ACIR)\r\n\r\n* Add tests for `assertIsBoolean` component\r\n\r\n* Add tests for bit and component\r\n\r\n* Add bit and component\r\n\r\n* Add multiple-bit and component\r\n\r\n* Update result's secret variable name\r\n\r\n* Add xor component implementation\r\n\r\nBoth for bit-to-bit and multiple bits\r\n\r\n* Fix append\r\n\r\n* Add tests for single bit xor\r\n\r\n* Fix `assertIsBoolean` constraint component\r\n\r\n* Remove useless function\r\n\r\n* Update naming\r\n\r\n* Fix\r\n\r\n* Add `assertIsEqual` component\r\n\r\n* Refactor repeated code in tests\r\n\r\n* Add `assertIsEqual` component tests\r\n\r\n* Implement `add` `mul` & `assertIsEqual` components\r\n\r\n* Fix `toBinaryConversion` component\r\n\r\n* Update secret variables naming\r\n\r\n* Add `toBinaryConversion` tests\r\n\r\n* Remove print\r\n\r\n* Add missing boolean assertion when converting to binary\r\n\r\n* Improve variable labels\r\n\r\n* Fix `toBinaryConversion`\r\n\r\n* Flag to generate constraint over `and` inputs\r\n\r\n* Update `And`\r\n\r\n* Shift coefficient after every iteration\r\n\r\n* Implement `fromBinaryConversion` component\r\n\r\n* Update tests naming\r\n\r\n* Finish `And` implementation\r\n\r\n* Update `accumulator` label name\r\n\r\n* Remove needless boolean assertion\r\n\r\nIt is asserted above\r\n\r\n* Document components\r\n\r\n* Cleanup components\r\n\r\n* Rename module\r\n\r\n* Doc `assertIsEqual`\r\n\r\n* Finish `Xor` & `xor` components implementations\r\n\r\n* Update doc","shortMessageHtmlLink":"Xor component (#73)"}},{"before":"9e5d9eb6080836c1e6b630b9f80f7ceaf949b9b8","after":"837c6924c95b0bfef359b74989029e0a439e9f0a","ref":"refs/heads/xor_component","pushedAt":"2023-03-30T13:40:24.383Z","pushType":"push","commitsCount":2,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"Merge branch 'generate_constraints_in_black_box_functions' of github.com:lambdaclass/noir_backend_using_gnark into xor_component","shortMessageHtmlLink":"Merge branch 'generate_constraints_in_black_box_functions' of github.…"}},{"before":"b878bdf5004327a6e669fca846bd07ebc9803dc2","after":null,"ref":"refs/heads/and_component","pushedAt":"2023-03-30T13:39:02.766Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"}},{"before":"56f8e9326c95a454d1758196f07813e8ee91c109","after":"a10093261b00edc1253a02648c50423a0ef2cda4","ref":"refs/heads/generate_constraints_in_black_box_functions","pushedAt":"2023-03-30T13:38:59.867Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ilitteri","name":"Ivan Litteri","path":"/ilitteri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67517699?s=80&v=4"},"commit":{"message":"`And` component (#72)\n\n* Add first implementation of gadget\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Update gnark_backend_ffi/backend/plonk/components.go\r\n\r\n* Add function to get the one wire's index\r\n\r\n* Fix function signature\r\n\r\n* Improve documentation\r\n\r\n* Add secret variables instead of internal ones for the intermediate variables\r\n\r\n* Return the mutated secret variables\r\n\r\n* Refactor a function (abstract it from the ACIR)\r\n\r\n* Add tests for `assertIsBoolean` component\r\n\r\n* Add tests for bit and component\r\n\r\n* Add bit and component\r\n\r\n* Add multiple-bit and component\r\n\r\n* Update result's secret variable name\r\n\r\n* Fix `assertIsBoolean` constraint component\r\n\r\n* Remove useless function\r\n\r\n* Update naming\r\n\r\n* Fix\r\n\r\n* Add `assertIsEqual` component\r\n\r\n* Refactor repeated code in tests\r\n\r\n* Add `assertIsEqual` component tests\r\n\r\n* Implement `add` `mul` & `assertIsEqual` components\r\n\r\n* Fix `toBinaryConversion` component\r\n\r\n* Update secret variables naming\r\n\r\n* Add `toBinaryConversion` tests\r\n\r\n* Remove print\r\n\r\n* Add missing boolean assertion when converting to binary\r\n\r\n* Improve variable labels\r\n\r\n* Fix `toBinaryConversion`\r\n\r\n* Flag to generate constraint over `and` inputs\r\n\r\n* Update `And`\r\n\r\n* Shift coefficient after every iteration\r\n\r\n* Implement `fromBinaryConversion` component\r\n\r\n* Update tests naming\r\n\r\n* Finish `And` implementation\r\n\r\n* Update `accumulator` label name\r\n\r\n* Remove needless boolean assertion\r\n\r\nIt is asserted above\r\n\r\n* Document components\r\n\r\n* Cleanup components\r\n\r\n* Rename module\r\n\r\n* Doc `assertIsEqual`","shortMessageHtmlLink":"And component (#72)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMy0wOFQyMTo1MjoxMC4wMDAwMDBazwAAAAQQlZOx","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wMy0zMFQxMzozODo1OS44Njc3MDVazwAAAAMOr8eR"}},"title":"Activity · lambdaclass/noir_backend_using_gnark"}