<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();
});
--- /dev/null
+{
+ "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