solhint
Version:
Solidity Code Linter
46 lines (36 loc) • 1.19 kB
JavaScript
const BaseChecker = require('../base-checker')
const ruleId = 'gas-multitoken1155'
const meta = {
type: 'gas-consumption',
docs: {
description: 'ERC1155 is a cheaper non-fungible token than ERC721',
category: 'Gas Consumption Rules',
notes: [
{
note: '[source](https://www.rareskills.io/post/gas-optimization?postId=c9db474a-ff97-4fa3-a51d-fe13ccb8fe3b#viewer-8v8t9) of the rule initiative',
},
],
},
isDefault: false,
recommended: false,
defaultSetup: 'warn',
schema: null,
}
class GasMultitoken1155 extends BaseChecker {
constructor(reporter) {
super(reporter, ruleId, meta)
}
hasERC721String(path) {
// Convert both the input string and the substring to lowercase for case-insensitive comparison
const lowercaseInput = path.toLowerCase()
const lowercaseSubstring = 'erc721'
// Check if the lowercase input string contains the lowercase substring
return lowercaseInput.includes(lowercaseSubstring)
}
ImportDirective(node) {
if (this.hasERC721String(node.path)) {
this.error(node, 'GC: ERC721 import found - Use of ERC1155 recommended')
}
}
}
module.exports = GasMultitoken1155