diff --git a/substrate/frame/contracts/benchmarks/README.md b/substrate/frame/contracts/benchmarks/README.md
deleted file mode 100644
index e4441d6bab2c425a37639830f12ca303db30d1fa..0000000000000000000000000000000000000000
--- a/substrate/frame/contracts/benchmarks/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Benchmarks
-
-This directory contains real world ([ink!](https://use.ink), [solang](https://github.com/hyperledger/solang)) contracts
-which are used in macro benchmarks. Those benchmarks are not used to determine weights but rather to compare different
-contract languages and execution engines with larger wasm modules.
-
-Files in this directory are used by `#[extra]` benchmarks in `src/benchmarking`. The json files are for informational
-purposes only and are not consumed by the benchmarks.
diff --git a/substrate/frame/contracts/benchmarks/ink_erc20.json b/substrate/frame/contracts/benchmarks/ink_erc20.json
deleted file mode 100644
index 390dd9b06cd4cd3ee57f83f64c9089508c68464d..0000000000000000000000000000000000000000
--- a/substrate/frame/contracts/benchmarks/ink_erc20.json
+++ /dev/null
@@ -1,819 +0,0 @@
-{
-  "metadataVersion": "0.1.0",
-  "source": {
-    "hash": "0x6be8492017fe96b7a92bb39b4ede04b96effb8fcaf9237bfdccef7d9e732c760",
-    "language": "ink! 3.0.0-rc4",
-    "compiler": "rustc 1.56.0-nightly"
-  },
-  "contract": {
-    "name": "erc20",
-    "version": "3.0.0-rc4",
-    "authors": [
-      "Parity Technologies <admin@parity.io>"
-    ]
-  },
-  "spec": {
-    "constructors": [
-      {
-        "args": [
-          {
-            "name": "initial_supply",
-            "type": {
-              "displayName": [
-                "Balance"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          "Creates a new ERC-20 contract with the specified initial supply."
-        ],
-        "name": [
-          "new"
-        ],
-        "selector": "0x9bae9d5e"
-      }
-    ],
-    "docs": [],
-    "events": [
-      {
-        "args": [
-          {
-            "docs": [],
-            "indexed": true,
-            "name": "from",
-            "type": {
-              "displayName": [
-                "Option"
-              ],
-              "type": 15
-            }
-          },
-          {
-            "docs": [],
-            "indexed": true,
-            "name": "to",
-            "type": {
-              "displayName": [
-                "Option"
-              ],
-              "type": 15
-            }
-          },
-          {
-            "docs": [],
-            "indexed": false,
-            "name": "value",
-            "type": {
-              "displayName": [
-                "Balance"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          " Event emitted when a token transfer occurs."
-        ],
-        "name": "Transfer"
-      },
-      {
-        "args": [
-          {
-            "docs": [],
-            "indexed": true,
-            "name": "owner",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "docs": [],
-            "indexed": true,
-            "name": "spender",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "docs": [],
-            "indexed": false,
-            "name": "value",
-            "type": {
-              "displayName": [
-                "Balance"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          " Event emitted when an approval occurs that `spender` is allowed to withdraw",
-          " up to the amount of `value` tokens from `owner`."
-        ],
-        "name": "Approval"
-      }
-    ],
-    "messages": [
-      {
-        "args": [],
-        "docs": [
-          " Returns the total token supply."
-        ],
-        "mutates": false,
-        "name": [
-          "total_supply"
-        ],
-        "payable": false,
-        "returnType": {
-          "displayName": [
-            "Balance"
-          ],
-          "type": 1
-        },
-        "selector": "0xdb6375a8"
-      },
-      {
-        "args": [
-          {
-            "name": "owner",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          }
-        ],
-        "docs": [
-          " Returns the account balance for the specified `owner`.",
-          "",
-          " Returns `0` if the account is non-existent."
-        ],
-        "mutates": false,
-        "name": [
-          "balance_of"
-        ],
-        "payable": false,
-        "returnType": {
-          "displayName": [
-            "Balance"
-          ],
-          "type": 1
-        },
-        "selector": "0x0f755a56"
-      },
-      {
-        "args": [
-          {
-            "name": "owner",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "spender",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          }
-        ],
-        "docs": [
-          " Returns the amount which `spender` is still allowed to withdraw from `owner`.",
-          "",
-          " Returns `0` if no allowance has been set `0`."
-        ],
-        "mutates": false,
-        "name": [
-          "allowance"
-        ],
-        "payable": false,
-        "returnType": {
-          "displayName": [
-            "Balance"
-          ],
-          "type": 1
-        },
-        "selector": "0x6a00165e"
-      },
-      {
-        "args": [
-          {
-            "name": "to",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "value",
-            "type": {
-              "displayName": [
-                "Balance"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          " Transfers `value` amount of tokens from the caller's account to account `to`.",
-          "",
-          " On success a `Transfer` event is emitted.",
-          "",
-          " # Errors",
-          "",
-          " Returns `InsufficientBalance` error if there are not enough tokens on",
-          " the caller's account balance."
-        ],
-        "mutates": true,
-        "name": [
-          "transfer"
-        ],
-        "payable": false,
-        "returnType": {
-          "displayName": [
-            "Result"
-          ],
-          "type": 12
-        },
-        "selector": "0x84a15da1"
-      },
-      {
-        "args": [
-          {
-            "name": "spender",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "value",
-            "type": {
-              "displayName": [
-                "Balance"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          " Allows `spender` to withdraw from the caller's account multiple times, up to",
-          " the `value` amount.",
-          "",
-          " If this function is called again it overwrites the current allowance with `value`.",
-          "",
-          " An `Approval` event is emitted."
-        ],
-        "mutates": true,
-        "name": [
-          "approve"
-        ],
-        "payable": false,
-        "returnType": {
-          "displayName": [
-            "Result"
-          ],
-          "type": 12
-        },
-        "selector": "0x681266a0"
-      },
-      {
-        "args": [
-          {
-            "name": "from",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "to",
-            "type": {
-              "displayName": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "value",
-            "type": {
-              "displayName": [
-                "Balance"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          " Transfers `value` tokens on the behalf of `from` to the account `to`.",
-          "",
-          " This can be used to allow a contract to transfer tokens on ones behalf and/or",
-          " to charge fees in sub-currencies, for example.",
-          "",
-          " On success a `Transfer` event is emitted.",
-          "",
-          " # Errors",
-          "",
-          " Returns `InsufficientAllowance` error if there are not enough tokens allowed",
-          " for the caller to withdraw from `from`.",
-          "",
-          " Returns `InsufficientBalance` error if there are not enough tokens on",
-          " the account balance of `from`."
-        ],
-        "mutates": true,
-        "name": [
-          "transfer_from"
-        ],
-        "payable": false,
-        "returnType": {
-          "displayName": [
-            "Result"
-          ],
-          "type": 12
-        },
-        "selector": "0x0b396f18"
-      }
-    ]
-  },
-  "storage": {
-    "struct": {
-      "fields": [
-        {
-          "layout": {
-            "cell": {
-              "key": "0x0000000000000000000000000000000000000000000000000000000000000000",
-              "ty": 1
-            }
-          },
-          "name": "total_supply"
-        },
-        {
-          "layout": {
-            "struct": {
-              "fields": [
-                {
-                  "layout": {
-                    "struct": {
-                      "fields": [
-                        {
-                          "layout": {
-                            "cell": {
-                              "key": "0x0100000000000000000000000000000000000000000000000000000000000000",
-                              "ty": 2
-                            }
-                          },
-                          "name": "header"
-                        },
-                        {
-                          "layout": {
-                            "struct": {
-                              "fields": [
-                                {
-                                  "layout": {
-                                    "cell": {
-                                      "key": "0x0200000000000000000000000000000000000000000000000000000000000000",
-                                      "ty": 3
-                                    }
-                                  },
-                                  "name": "len"
-                                },
-                                {
-                                  "layout": {
-                                    "array": {
-                                      "cellsPerElem": 1,
-                                      "layout": {
-                                        "cell": {
-                                          "key": "0x0200000001000000000000000000000000000000000000000000000000000000",
-                                          "ty": 4
-                                        }
-                                      },
-                                      "len": 4294967295,
-                                      "offset": "0x0300000000000000000000000000000000000000000000000000000000000000"
-                                    }
-                                  },
-                                  "name": "elems"
-                                }
-                              ]
-                            }
-                          },
-                          "name": "entries"
-                        }
-                      ]
-                    }
-                  },
-                  "name": "keys"
-                },
-                {
-                  "layout": {
-                    "hash": {
-                      "layout": {
-                        "cell": {
-                          "key": "0x0300000001000000000000000000000000000000000000000000000000000000",
-                          "ty": 9
-                        }
-                      },
-                      "offset": "0x0200000001000000000000000000000000000000000000000000000000000000",
-                      "strategy": {
-                        "hasher": "Blake2x256",
-                        "postfix": "",
-                        "prefix": "0x696e6b20686173686d6170"
-                      }
-                    }
-                  },
-                  "name": "values"
-                }
-              ]
-            }
-          },
-          "name": "balances"
-        },
-        {
-          "layout": {
-            "struct": {
-              "fields": [
-                {
-                  "layout": {
-                    "struct": {
-                      "fields": [
-                        {
-                          "layout": {
-                            "cell": {
-                              "key": "0x0300000001000000000000000000000000000000000000000000000000000000",
-                              "ty": 2
-                            }
-                          },
-                          "name": "header"
-                        },
-                        {
-                          "layout": {
-                            "struct": {
-                              "fields": [
-                                {
-                                  "layout": {
-                                    "cell": {
-                                      "key": "0x0400000001000000000000000000000000000000000000000000000000000000",
-                                      "ty": 3
-                                    }
-                                  },
-                                  "name": "len"
-                                },
-                                {
-                                  "layout": {
-                                    "array": {
-                                      "cellsPerElem": 1,
-                                      "layout": {
-                                        "cell": {
-                                          "key": "0x0400000002000000000000000000000000000000000000000000000000000000",
-                                          "ty": 10
-                                        }
-                                      },
-                                      "len": 4294967295,
-                                      "offset": "0x0500000001000000000000000000000000000000000000000000000000000000"
-                                    }
-                                  },
-                                  "name": "elems"
-                                }
-                              ]
-                            }
-                          },
-                          "name": "entries"
-                        }
-                      ]
-                    }
-                  },
-                  "name": "keys"
-                },
-                {
-                  "layout": {
-                    "hash": {
-                      "layout": {
-                        "cell": {
-                          "key": "0x0500000002000000000000000000000000000000000000000000000000000000",
-                          "ty": 9
-                        }
-                      },
-                      "offset": "0x0400000002000000000000000000000000000000000000000000000000000000",
-                      "strategy": {
-                        "hasher": "Blake2x256",
-                        "postfix": "",
-                        "prefix": "0x696e6b20686173686d6170"
-                      }
-                    }
-                  },
-                  "name": "values"
-                }
-              ]
-            }
-          },
-          "name": "allowances"
-        }
-      ]
-    }
-  },
-  "types": [
-    {
-      "def": {
-        "primitive": "u128"
-      }
-    },
-    {
-      "def": {
-        "composite": {
-          "fields": [
-            {
-              "name": "last_vacant",
-              "type": 3,
-              "typeName": "Index"
-            },
-            {
-              "name": "len",
-              "type": 3,
-              "typeName": "u32"
-            },
-            {
-              "name": "len_entries",
-              "type": 3,
-              "typeName": "u32"
-            }
-          ]
-        }
-      },
-      "path": [
-        "ink_storage",
-        "collections",
-        "stash",
-        "Header"
-      ]
-    },
-    {
-      "def": {
-        "primitive": "u32"
-      }
-    },
-    {
-      "def": {
-        "variant": {
-          "variants": [
-            {
-              "fields": [
-                {
-                  "type": 8,
-                  "typeName": "VacantEntry"
-                }
-              ],
-              "name": "Vacant"
-            },
-            {
-              "fields": [
-                {
-                  "type": 5,
-                  "typeName": "T"
-                }
-              ],
-              "name": "Occupied"
-            }
-          ]
-        }
-      },
-      "params": [
-        5
-      ],
-      "path": [
-        "ink_storage",
-        "collections",
-        "stash",
-        "Entry"
-      ]
-    },
-    {
-      "def": {
-        "composite": {
-          "fields": [
-            {
-              "type": 6,
-              "typeName": "[u8; 32]"
-            }
-          ]
-        }
-      },
-      "path": [
-        "ink_env",
-        "types",
-        "AccountId"
-      ]
-    },
-    {
-      "def": {
-        "array": {
-          "len": 32,
-          "type": 7
-        }
-      }
-    },
-    {
-      "def": {
-        "primitive": "u8"
-      }
-    },
-    {
-      "def": {
-        "composite": {
-          "fields": [
-            {
-              "name": "next",
-              "type": 3,
-              "typeName": "Index"
-            },
-            {
-              "name": "prev",
-              "type": 3,
-              "typeName": "Index"
-            }
-          ]
-        }
-      },
-      "path": [
-        "ink_storage",
-        "collections",
-        "stash",
-        "VacantEntry"
-      ]
-    },
-    {
-      "def": {
-        "composite": {
-          "fields": [
-            {
-              "name": "value",
-              "type": 1,
-              "typeName": "V"
-            },
-            {
-              "name": "key_index",
-              "type": 3,
-              "typeName": "KeyIndex"
-            }
-          ]
-        }
-      },
-      "params": [
-        1
-      ],
-      "path": [
-        "ink_storage",
-        "collections",
-        "hashmap",
-        "ValueEntry"
-      ]
-    },
-    {
-      "def": {
-        "variant": {
-          "variants": [
-            {
-              "fields": [
-                {
-                  "type": 8,
-                  "typeName": "VacantEntry"
-                }
-              ],
-              "name": "Vacant"
-            },
-            {
-              "fields": [
-                {
-                  "type": 11,
-                  "typeName": "T"
-                }
-              ],
-              "name": "Occupied"
-            }
-          ]
-        }
-      },
-      "params": [
-        11
-      ],
-      "path": [
-        "ink_storage",
-        "collections",
-        "stash",
-        "Entry"
-      ]
-    },
-    {
-      "def": {
-        "tuple": [
-          5,
-          5
-        ]
-      }
-    },
-    {
-      "def": {
-        "variant": {
-          "variants": [
-            {
-              "fields": [
-                {
-                  "type": 13,
-                  "typeName": "T"
-                }
-              ],
-              "name": "Ok"
-            },
-            {
-              "fields": [
-                {
-                  "type": 14,
-                  "typeName": "E"
-                }
-              ],
-              "name": "Err"
-            }
-          ]
-        }
-      },
-      "params": [
-        13,
-        14
-      ],
-      "path": [
-        "Result"
-      ]
-    },
-    {
-      "def": {
-        "tuple": []
-      }
-    },
-    {
-      "def": {
-        "variant": {
-          "variants": [
-            {
-              "discriminant": 0,
-              "name": "InsufficientBalance"
-            },
-            {
-              "discriminant": 1,
-              "name": "InsufficientAllowance"
-            }
-          ]
-        }
-      },
-      "path": [
-        "erc20",
-        "erc20",
-        "Error"
-      ]
-    },
-    {
-      "def": {
-        "variant": {
-          "variants": [
-            {
-              "name": "None"
-            },
-            {
-              "fields": [
-                {
-                  "type": 5,
-                  "typeName": "T"
-                }
-              ],
-              "name": "Some"
-            }
-          ]
-        }
-      },
-      "params": [
-        5
-      ],
-      "path": [
-        "Option"
-      ]
-    }
-  ]
-}
\ No newline at end of file
diff --git a/substrate/frame/contracts/benchmarks/ink_erc20.wasm b/substrate/frame/contracts/benchmarks/ink_erc20.wasm
deleted file mode 100644
index ffd522760a02dd8416f8ee04db02c32e2172b8ff..0000000000000000000000000000000000000000
Binary files a/substrate/frame/contracts/benchmarks/ink_erc20.wasm and /dev/null differ
diff --git a/substrate/frame/contracts/benchmarks/ink_erc20_test.wasm b/substrate/frame/contracts/benchmarks/ink_erc20_test.wasm
deleted file mode 100644
index f5d84552960a348db3935e457adc4b6fba249d17..0000000000000000000000000000000000000000
Binary files a/substrate/frame/contracts/benchmarks/ink_erc20_test.wasm and /dev/null differ
diff --git a/substrate/frame/contracts/benchmarks/solang_erc20.json b/substrate/frame/contracts/benchmarks/solang_erc20.json
deleted file mode 100644
index 9d8fd5ce70e70edb0fdb96439be847369e6ae7e0..0000000000000000000000000000000000000000
--- a/substrate/frame/contracts/benchmarks/solang_erc20.json
+++ /dev/null
@@ -1,581 +0,0 @@
-{
-  "contract": {
-    "authors": [
-      "unknown"
-    ],
-    "name": "ERC20PresetFixedSupply",
-    "version": "0.0.1"
-  },
-  "metadataVersion": "0.1.0",
-  "source": {
-    "compiler": "solang 0.1.7",
-    "hash": "0x9c55e342566e89c741eb641eec3af796836da750fc930c55bccc0604a47ef700",
-    "language": "Solidity 0.1.7"
-  },
-  "spec": {
-    "constructors": [
-      {
-        "args": [
-          {
-            "name": "name",
-            "type": {
-              "display_name": [
-                "String"
-              ],
-              "type": 2
-            }
-          },
-          {
-            "name": "symbol",
-            "type": {
-              "display_name": [
-                "String"
-              ],
-              "type": 2
-            }
-          },
-          {
-            "name": "initialSupply",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          },
-          {
-            "name": "owner",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "name": "new",
-        "selector": "0xa6f1f5e1"
-      }
-    ],
-    "events": [
-      {
-        "args": [
-          {
-            "indexed": true,
-            "name": "owner",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "indexed": true,
-            "name": "spender",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "indexed": false,
-            "name": "value",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "name": "Approval"
-      },
-      {
-        "args": [
-          {
-            "indexed": true,
-            "name": "from",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "indexed": true,
-            "name": "to",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "indexed": false,
-            "name": "value",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "name": "Transfer"
-      }
-    ],
-    "messages": [
-      {
-        "args": [
-          {
-            "name": "account",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "amount",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": true,
-        "name": "burnFrom",
-        "payable": false,
-        "return_type": null,
-        "selector": "0x0f1354f3"
-      },
-      {
-        "args": [
-          {
-            "name": "account",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": false,
-        "name": "balanceOf",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "u256"
-          ],
-          "type": 1
-        },
-        "selector": "0x6c7f1542"
-      },
-      {
-        "args": [],
-        "docs": [
-          ""
-        ],
-        "mutates": false,
-        "name": "totalSupply",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "u256"
-          ],
-          "type": 1
-        },
-        "selector": "0x18160ddd"
-      },
-      {
-        "args": [],
-        "docs": [
-          ""
-        ],
-        "mutates": false,
-        "name": "decimals",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "u8"
-          ],
-          "type": 3
-        },
-        "selector": "0x313ce567"
-      },
-      {
-        "args": [
-          {
-            "name": "owner",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "spender",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": false,
-        "name": "allowance",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "u256"
-          ],
-          "type": 1
-        },
-        "selector": "0xf2a9a8c7"
-      },
-      {
-        "args": [],
-        "docs": [
-          ""
-        ],
-        "mutates": false,
-        "name": "name",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "String"
-          ],
-          "type": 2
-        },
-        "selector": "0x06fdde03"
-      },
-      {
-        "args": [
-          {
-            "name": "spender",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "subtractedValue",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": true,
-        "name": "decreaseAllowance",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "bool"
-          ],
-          "type": 6
-        },
-        "selector": "0x4b76697b"
-      },
-      {
-        "args": [
-          {
-            "name": "sender",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "recipient",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "amount",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": true,
-        "name": "transferFrom",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "bool"
-          ],
-          "type": 6
-        },
-        "selector": "0x2fb840f5"
-      },
-      {
-        "args": [],
-        "docs": [
-          ""
-        ],
-        "mutates": false,
-        "name": "symbol",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "String"
-          ],
-          "type": 2
-        },
-        "selector": "0x95d89b41"
-      },
-      {
-        "args": [
-          {
-            "name": "spender",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "addedValue",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": true,
-        "name": "increaseAllowance",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "bool"
-          ],
-          "type": 6
-        },
-        "selector": "0xb936c899"
-      },
-      {
-        "args": [
-          {
-            "name": "recipient",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "amount",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": true,
-        "name": "transfer",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "bool"
-          ],
-          "type": 6
-        },
-        "selector": "0x6a467394"
-      },
-      {
-        "args": [
-          {
-            "name": "spender",
-            "type": {
-              "display_name": [
-                "AccountId"
-              ],
-              "type": 5
-            }
-          },
-          {
-            "name": "amount",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": true,
-        "name": "approve",
-        "payable": false,
-        "return_type": {
-          "display_name": [
-            "bool"
-          ],
-          "type": 6
-        },
-        "selector": "0x47144421"
-      },
-      {
-        "args": [
-          {
-            "name": "amount",
-            "type": {
-              "display_name": [
-                "u256"
-              ],
-              "type": 1
-            }
-          }
-        ],
-        "docs": [
-          ""
-        ],
-        "mutates": true,
-        "name": "burn",
-        "payable": false,
-        "return_type": null,
-        "selector": "0x42966c68"
-      }
-    ]
-  },
-  "storage": {
-    "struct": {
-      "fields": [
-        {
-          "layout": {
-            "cell": {
-              "key": "0x0000000000000000000000000000000000000000000000000000000000000002",
-              "ty": 1
-            }
-          },
-          "name": "_totalSupply"
-        },
-        {
-          "layout": {
-            "cell": {
-              "key": "0x0000000000000000000000000000000000000000000000000000000000000003",
-              "ty": 2
-            }
-          },
-          "name": "_name"
-        },
-        {
-          "layout": {
-            "cell": {
-              "key": "0x0000000000000000000000000000000000000000000000000000000000000004",
-              "ty": 2
-            }
-          },
-          "name": "_symbol"
-        }
-      ]
-    }
-  },
-  "types": [
-    {
-      "def": {
-        "primitive": "u256"
-      }
-    },
-    {
-      "def": {
-        "primitive": "str"
-      }
-    },
-    {
-      "def": {
-        "primitive": "u8"
-      }
-    },
-    {
-      "def": {
-        "array": {
-          "len": 32,
-          "type": 3
-        }
-      }
-    },
-    {
-      "def": {
-        "composite": {
-          "fields": [
-            {
-              "type": 4
-            }
-          ]
-        }
-      },
-      "path": [
-        "AccountId"
-      ]
-    },
-    {
-      "def": {
-        "primitive": "bool"
-      }
-    }
-  ]
-}
diff --git a/substrate/frame/contracts/benchmarks/solang_erc20.wasm b/substrate/frame/contracts/benchmarks/solang_erc20.wasm
deleted file mode 100644
index 0796085d33249b78871f4a336623444a0ef94e85..0000000000000000000000000000000000000000
Binary files a/substrate/frame/contracts/benchmarks/solang_erc20.wasm and /dev/null differ
diff --git a/substrate/frame/contracts/src/benchmarking/code.rs b/substrate/frame/contracts/src/benchmarking/code.rs
index 0b6ab6b3c0e1b99b2dfb34642568d29cc9dfdd91..644c2abf0a8d5a49443f26e38b8869c134a7805f 100644
--- a/substrate/frame/contracts/src/benchmarking/code.rs
+++ b/substrate/frame/contracts/src/benchmarking/code.rs
@@ -31,8 +31,8 @@ use sp_std::{borrow::ToOwned, prelude::*};
 use wasm_instrument::parity_wasm::{
 	builder,
 	elements::{
-		self, BlockType, CustomSection, External, FuncBody, Instruction, Instructions, Local,
-		Module, Section, ValueType,
+		self, BlockType, CustomSection, FuncBody, Instruction, Instructions, Local, Section,
+		ValueType,
 	},
 };
 
@@ -238,24 +238,6 @@ impl<T: Config> From<ModuleDefinition> for WasmModule<T> {
 }
 
 impl<T: Config> WasmModule<T> {
-	/// Uses the supplied wasm module.
-	pub fn from_code(code: &[u8]) -> Self {
-		let module = Module::from_bytes(code).unwrap();
-		let limits = *module
-			.import_section()
-			.unwrap()
-			.entries()
-			.iter()
-			.find_map(|e| if let External::Memory(mem) = e.external() { Some(mem) } else { None })
-			.unwrap()
-			.limits();
-		let code = module.into_bytes().unwrap();
-		let hash = T::Hashing::hash(&code);
-		let memory =
-			ImportedMemory { min_pages: limits.initial(), max_pages: limits.maximum().unwrap() };
-		Self { code: code.into(), hash, memory: Some(memory) }
-	}
-
 	/// Creates a wasm module with an empty `call` and `deploy` function and nothing else.
 	pub fn dummy() -> Self {
 		ModuleDefinition::default().into()
diff --git a/substrate/frame/contracts/src/benchmarking/mod.rs b/substrate/frame/contracts/src/benchmarking/mod.rs
index e387c28b6714c02d5ee5831cf5b5030bf90660d5..d6c24daa7c4da6222bad784f3140ac1188df3900 100644
--- a/substrate/frame/contracts/src/benchmarking/mod.rs
+++ b/substrate/frame/contracts/src/benchmarking/mod.rs
@@ -29,7 +29,7 @@ use self::{
 	sandbox::Sandbox,
 };
 use crate::{
-	exec::{AccountIdOf, Key},
+	exec::Key,
 	migration::{
 		codegen::LATEST_MIGRATION_VERSION, v09, v10, v11, v12, v13, v14, v15, MigrationStep,
 	},
@@ -184,24 +184,6 @@ fn caller_funding<T: Config>() -> BalanceOf<T> {
 	BalanceOf::<T>::max_value() / 10_000u32.into()
 }
 
-/// Load the specified contract file from disk by including it into the runtime.
-///
-/// We need to load a different version of ink! contracts when the benchmark is run as
-/// a test. This is because ink! contracts depend on the sizes of types that are defined
-/// differently in the test environment. Solang is more lax in that regard.
-macro_rules! load_benchmark {
-	($name:expr) => {{
-		#[cfg(not(test))]
-		{
-			include_bytes!(concat!("../../benchmarks/", $name, ".wasm"))
-		}
-		#[cfg(test)]
-		{
-			include_bytes!(concat!("../../benchmarks/", $name, "_test.wasm"))
-		}
-	}};
-}
-
 benchmarks! {
 	where_clause { where
 		<BalanceOf<T> as codec::HasCompact>::Type: Clone + Eq + PartialEq + sp_std::fmt::Debug + scale_info::TypeInfo + codec::Encode,
@@ -2643,86 +2625,6 @@ benchmarks! {
 		");
 	}: {}
 
-	// Execute one erc20 transfer using the ink! erc20 example contract.
-	#[extra]
-	#[pov_mode = Measured]
-	ink_erc20_transfer {
-		let code = load_benchmark!("ink_erc20");
-		let data = {
-			let new: ([u8; 4], BalanceOf<T>) = ([0x9b, 0xae, 0x9d, 0x5e], 1000u32.into());
-			new.encode()
-		};
-		let instance = Contract::<T>::new(
-			WasmModule::from_code(code), data,
-		)?;
-		let data = {
-			let transfer: ([u8; 4], AccountIdOf<T>, BalanceOf<T>) = (
-				[0x84, 0xa1, 0x5d, 0xa1],
-				account::<T::AccountId>("receiver", 0, 0),
-				1u32.into(),
-			);
-			transfer.encode()
-		};
-	}: {
-		<Contracts<T>>::bare_call(
-			instance.caller,
-			instance.account_id,
-			0u32.into(),
-			Weight::MAX,
-			None,
-			data,
-			DebugInfo::Skip,
-			CollectEvents::Skip,
-			Determinism::Enforced,
-		)
-		.result?;
-	}
-
-	// Execute one erc20 transfer using the open zeppelin erc20 contract compiled with solang.
-	#[extra]
-	#[pov_mode = Measured]
-	solang_erc20_transfer {
-		let code = include_bytes!("../../benchmarks/solang_erc20.wasm");
-		let caller = account::<T::AccountId>("instantiator", 0, 0);
-		let mut balance = [0u8; 32];
-		balance[0] = 100;
-		let data = {
-			let new: ([u8; 4], &str, &str, [u8; 32], AccountIdOf<T>) = (
-				[0xa6, 0xf1, 0xf5, 0xe1],
-				"KSM",
-				"K",
-				balance,
-				caller.clone(),
-			);
-			new.encode()
-		};
-		let instance = Contract::<T>::with_caller(
-			caller, WasmModule::from_code(code), data,
-		)?;
-		balance[0] = 1;
-		let data = {
-			let transfer: ([u8; 4], AccountIdOf<T>, [u8; 32]) = (
-				[0x6a, 0x46, 0x73, 0x94],
-				account::<T::AccountId>("receiver", 0, 0),
-				balance,
-			);
-			transfer.encode()
-		};
-	}: {
-		<Contracts<T>>::bare_call(
-			instance.caller,
-			instance.account_id,
-			0u32.into(),
-			Weight::MAX,
-			None,
-			data,
-			DebugInfo::Skip,
-			CollectEvents::Skip,
-			Determinism::Enforced,
-		)
-		.result?;
-	}
-
 	impl_benchmark_test_suite!(
 		Contracts,
 		crate::tests::ExtBuilder::default().build(),