Design and implement an API that allows users to store key-value pairs in a smart contract and retrieve values by providing the corresponding keys.
Write a smart contract in Solidity that can store key-value pairs and retrieve values using keys. The smart contract should have functions for setting key-value pairs and getting values by keys. Both key and values are integers.
Set up a project to interact with the smart contract. Include necessary dependencies and configurations in the project.
Deploys the smart contract to a local Ethereum test network (e.g., Ganache, Hardhat, Anvil).
Use the ABI and contract address to create an instance of the smart contract.
Design and implement the API with the following endpoints:
/store
: Stores a key-value pair in the smart contract.{ "key": "<key>", "value": "<value>" }
/retrieve?key=<key>
: Retrieves the value corresponding to the provided key from the smart contract.{ "key": "<key>", "value": "<value>" }
Provide documentation on how to set up and run the project
(Optional) Write unit tests for the API endpoints and smart contract functions.
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing