Use 32-byte words

This commit is contained in:
William Entriken 2018-02-19 16:54:19 -05:00 committed by GitHub
parent 881f577abb
commit 734d68b643
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -86,9 +86,9 @@ Implementation note, there are several logical ways to implement this function.
### How to Detect if a Contract Implements ERC-165 ### How to Detect if a Contract Implements ERC-165
1. The source contact makes a `STATICCALL` to the destination address with input data: `0x01ffc9a701ffc9a7` and gas 30,000. This corresponds to `contract.supportsInterface("0x01ffc9a7")`. 1. The source contact makes a `STATICCALL` to the destination address with input data: `0x01ffc9a700000000000000000000000001ffc9a7` and gas 30,000. This corresponds to `contract.supportsInterface("0x01ffc9a7")`.
2. If the call fails or return false, the destination contract does not implement ERC-165. 2. If the call fails or return false, the destination contract does not implement ERC-165.
3. If the call returns true, a second call is made with input data `0x01ffc9a7ffffffff`. 3. If the call returns true, a second call is made with input data `0x01ffc9a7000000000000000000000000ffffffff`.
4. If the second call fails or returns true, the destination contract does not implement ERC-165. 4. If the second call fails or returns true, the destination contract does not implement ERC-165.
5. Otherwise it implements ERC-165. 5. Otherwise it implements ERC-165.
@ -171,7 +171,7 @@ contract ERC165Cache {
30000, // 30k gas 30000, // 30k gas
_contract, // To addr _contract, // To addr
x, // Inputs are stored at location x x, // Inputs are stored at location x
0x8, // Inputs are 8 bytes long 0x20, // Inputs are 8 byes long
x, // Store output over input (saves space) x, // Store output over input (saves space)
0x20) // Outputs are 32 bytes long 0x20) // Outputs are 32 bytes long