# SmartContractService

| RPC                       | Request                                     | Response                                                    | Comments                                                                              |
| ------------------------- | ------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `createContract`          | [Transaction](../miscellaneous/transaction) | [TransactionResponse](../miscellaneous/transactionresponse) | Creates a contract                                                                    |
| `updateContract`          | [Transaction](../miscellaneous/transaction) | [TransactionResponse](../miscellaneous/transactionresponse) | Updates a contract with the content                                                   |
| `contractCallMethod`      | [Transaction](../miscellaneous/transaction) | [TransactionResponse](../miscellaneous/transactionresponse) | Calls a contract                                                                      |
| `getContractInfo`         | [Query](../miscellaneous/query)             | [Response](../miscellaneous/response)                       | Retrieves the contract information                                                    |
| `contractCallLocalMethod` | [Query](../miscellaneous/query)             | [Response](../miscellaneous/response)                       | Calls a smart contract to be run on a single node                                     |
| `ContractGetBytecode`     | [Query](../miscellaneous/query)             | [Response](../miscellaneous/response)                       | Retrieves the byte code of a contract                                                 |
| `getBySolidityID`         | [Query](../miscellaneous/query)             | [Response](../miscellaneous/response)                       | Retrieves a contract by its Solidity address                                          |
| `getTxRecordByContractID` | [Query](../miscellaneous/query)             | [Response](../miscellaneous/response)                       | Retrieves the 25-hour records stored for a contract                                   |
| `deleteContract`          | [Transaction](../miscellaneous/transaction) | [TransactionResponse](../miscellaneous/transactionresponse) | Deletes a contract instance and transfers any remaining hbars to a specified receiver |
| `systemDelete`            | [Transaction](../miscellaneous/transaction) | [TransactionResponse](../miscellaneous/transactionresponse) | Deletes a contract if the submitting account has network admin privileges             |
| `systemUndelete`          | [Transaction](../miscellaneous/transaction) | [TransactionResponse](../miscellaneous/transactionresponse) | Undeletes a contract if the submitting account has network admin privileges           |
