]> git.ardis.lu - erc-165-calculator/commitdiff
Normalize and move interfaces into separate JSON
authorArdis Lu <ardisglu@gmail.com>
Sun, 5 Nov 2023 04:17:23 +0000 (21:17 -0700)
committerArdis Lu <ardisglu@gmail.com>
Sun, 5 Nov 2023 04:17:23 +0000 (21:17 -0700)
index.html
interfaces.json [new file with mode: 0644]

index 23297545ef3b062aa66137b16939cb06cb13ff01..ad77b65a07541da98e9fb746d77edeabe603dc4b 100644 (file)
   <script type="module">
     // From noble-hashes v1.3.2
     import { keccak256 } from '/keccak256.js';
+    const interfaces = await fetch('/interfaces.json').then(r => r.json());
 
     let lastSelection = 'Custom';
     let customFunctions = '';
       }
 
       lastSelection = selection;
-      switch (selection) {
-        case 'Custom':
-          textarea.value = customFunctions;
-          textarea.readOnly = false;
-          break;
-        case 'ERC-20':
-          textarea.value = `totalSupply()
-balanceOf(address)
-transfer(address,uint256)
-transferFrom(address,address,uint256)
-approve(address,uint256)
-allowance(address,address)`
-          break;
-        case 'ERC-165':
-          textarea.value = 'supportsInterface(bytes4 interfaceID)';
-          break;
-        case 'ERC-20-Optional':
-          textarea.value = `name()
-symbol()
-decimals()
-totalSupply()
-balanceOf(address)
-transfer(address,uint256)
-transferFrom(address,address,uint256)
-approve(address,uint256)
-allowance(address,address)`
-          break;
-        case 'ERC-721':
-          textarea.value = `balanceOf(address)
-ownerOf(uint256)
-safeTransferFrom(address,address,uint256,bytes)
-safeTransferFrom(address,address,uint256)
-transferFrom(address,address,uint256)
-approve(address,uint256)
-setApprovalForAll(address,bool)
-getApproved(uint256)
-isApprovedForAll(address,address)`
-          break;
-        case 'ERC-1155':
-          textarea.value = `safeTransferFrom(address,address,uint256,uint256,bytes)
-safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)
-balanceOf(address,uint256)
-balanceOfBatch(address[],uint256[])
-setApprovalForAll(address,bool)
-isApprovedForAll(address,address)`
-          break;
-        case 'ERC-6551-Account':
-          textarea.value = `token()
-state()
-isValidSigner(address,bytes)`
-          break;
-        case 'ERC-6551-Executor':
-          textarea.value = 'execute(address,uint256,bytes,uint256)';
-          break;
+      if (selection === 'Custom') {
+        textarea.value = customFunctions;
+        textarea.readOnly = false;
+      }
+      else {
+        textarea.value = interfaces[selection].join('\n');
       }
       document.querySelector('form').requestSubmit();
     });
diff --git a/interfaces.json b/interfaces.json
new file mode 100644 (file)
index 0000000..2707076
--- /dev/null
@@ -0,0 +1,51 @@
+{
+  "ERC-20": [
+    "totalSupply()",
+    "balanceOf(address _owner)",
+    "transfer(address _to, uint256 _value)",
+    "transferFrom(address _from, address _to, uint256 _value)",
+    "approve(address _spender, uint256 _value)",
+    "allowance(address _owner, address _spender)"
+  ],
+  "ERC-20-Optional": [
+    "name()",
+    "symbol()",
+    "decimals()",
+    "totalSupply()",
+    "balanceOf(address _owner)",
+    "transfer(address _to, uint256 _value)",
+    "transferFrom(address _from, address _to, uint256 _value)",
+    "approve(address _spender, uint256 _value)",
+    "allowance(address _owner, address _spender)"
+  ],
+  "ERC-165": [
+    "supportsInterface(bytes4 interfaceID)"
+  ],
+  "ERC-721": [
+    "balanceOf(address _owner)",
+    "ownerOf(uint256 _tokenId)",
+    "safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data)",
+    "safeTransferFrom(address _from, address _to, uint256 _tokenId)",
+    "transferFrom(address _from, address _to, uint256 _tokenId)",
+    "approve(address _approved, uint256 _tokenId)",
+    "setApprovalForAll(address _operator, bool _approved)",
+    "getApproved(uint256 _tokenId)",
+    "isApprovedForAll(address _owner, address _operator)"
+  ],
+  "ERC-1155": [
+    "safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data)",
+    "safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data)",
+    "balanceOf(address _owner, uint256 _id)",
+    "balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids)",
+    "setApprovalForAll(address _operator, bool _approved)",
+    "isApprovedForAll(address _owner, address _operator)"
+  ],
+  "ERC-6551-Account": [
+    "token()",
+    "state()",
+    "isValidSigner(address signer, bytes calldata context)"
+  ],
+  "ERC-6551-Executor": [
+    "execute(address to, uint256 value, bytes calldata data, uint8 operation)"
+  ]
+}
\ No newline at end of file
This page took 0.038614 seconds and 4 git commands to generate.