From 24068ccec0d66073d61cfcc61f2947a7d80d6e3d Mon Sep 17 00:00:00 2001 From: Jan-Felix Date: Wed, 20 Dec 2023 13:08:28 +0100 Subject: [PATCH] add audit report --- README.md | 4 ++++ audits/MechDec2023.pdf | Bin 0 -> 28733 bytes 2 files changed, 4 insertions(+) create mode 100644 audits/MechDec2023.pdf diff --git a/README.md b/README.md index 169069e..05b802d 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,10 @@ Allows the operator to make the Mech execute a transaction. Allows the operator to make the Mech execute a transaction restricting the gas amount made available to the direct execution of the internal meta transaction. Any remaining transaction gas must only be spent for surrounding checks of the operator criteria. +## Audits + +All mech contracts have been audited by [G0 Group](https://github.com/g0-group). Audit reports can be found in the [audits](audits/) directory. + ## Contribute The repo is structured as a monorepo with `mech-contracts` as the container package exporting the contract sources and artifacts. diff --git a/audits/MechDec2023.pdf b/audits/MechDec2023.pdf new file mode 100644 index 0000000000000000000000000000000000000000..39101142f2bdf2fd6f277c434a222211d4a5478a GIT binary patch literal 28733 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 literal 0 HcmV?d00001