> For the complete documentation index, see [llms.txt](https://my-organization-23.gitbook.io/solidity-basic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://my-organization-23.gitbook.io/solidity-basic/nato-2.md).

# 特別な変数と関数 2

#### Mathimatical and Cryptographic Functions

| 関数                                                     | 戻り値の型   | 説明                                                                                                                                                                                                       |
| ------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| addmod(uint x, uint y, uint k)                         | uint    | (x + y) % k を任意の精度で計算し、2\*\*256でラップアラウンドしないようにします。バージョン0.5.0以降、k != 0 であることをアサートします。                                                                                                                     |
| mulmod(uint x, uint y, uint k)                         | uint    | (x \* y) % k を任意の精度で計算し、2\*\*256でラップアラウンドしないようにします。バージョン0.5.0以降、k != 0 であることをアサートします。                                                                                                                    |
| keccak256(bytes memory)                                | bytes32 | 入力のKeccak-256ハッシュを計算します。                                                                                                                                                                                 |
| sha256(bytes memory)                                   | bytes32 | 入力のSHA-256ハッシュを計算します。                                                                                                                                                                                    |
| ripemd160(bytes memory)                                | bytes20 | 入力のRIPEMD-160ハッシュを計算します。                                                                                                                                                                                 |
| ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) | address | 楕円曲線署名から関連付けられた公開鍵のアドレスを回復します。エラーの場合はゼロを返します。関数のパラメータは署名のECDSA値に対応します： r = 署名の最初の32バイト s = 署名の次の32バイト v = 署名の最後の1バイト ecrecoverはアドレスを返しますが、address payableではありません。必要に応じて変換する場合は、address payableを参照してください。 |

#### Members of Address Type

| プロパティ/メソッド                                                          | 戻り値の型                | 説明                                                                         |
| ------------------------------------------------------------------- | -------------------- | -------------------------------------------------------------------------- |
| `<address>.balance` (uint256)                                       | uint256              | アドレスの残高（Wei単位）                                                             |
| `<address>.code` (bytes memory)                                     | bytes memory         | アドレスにあるコード（空である可能性があります）                                                   |
| `<address>.codehash` (bytes32)                                      | bytes32              | アドレスのコードハッシュ                                                               |
| `<address payable>.transfer(uint256 amount)`                        | -                    | 指定された量のWeiをアドレスに送信し、失敗した場合はリバートします。2300ガスの手当を転送し、調整不可です。                   |
| `<address payable>.send(uint256 amount) returns (bool)`             | bool                 | 指定された量のWeiをアドレスに送信し、失敗した場合はfalseを返します。2300ガスの手当を転送し、調整不可です。                |
| `<address>.call(bytes memory)` returns (bool, bytes memory)         | (bool, bytes memory) | 指定されたペイロードで低レベルのCALLを実行し、成功条件とリターンデータを返します。利用可能なすべてのガスを転送し、調整可能です。         |
| `<address>.delegatecall(bytes memory)` returns (bool, bytes memory) | (bool, bytes memory) | 指定されたペイロードで低レベルのDELEGATECALLを実行し、成功条件とリターンデータを返します。利用可能なすべてのガスを転送し、調整可能です。 |
| `<address>.staticcall(bytes memory)` returns (bool, bytes memory)   | (bool, bytes memory) | 指定されたペイロードで低レベルのSTATICCALLを実行し、成功条件とリターンデータを返します。利用可能なすべてのガスを転送し、調整可能です。   |
