Skip to content

Commit 6076bb9

Browse files
committed
storytelling/cleanup
1 parent 95d4479 commit 6076bb9

File tree

27 files changed

+264
-249
lines changed

27 files changed

+264
-249
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.9;
3+
4+
contract Storage {
5+
uint256 private storedNumber;
6+
7+
function store(uint256 num) public {
8+
storedNumber = num;
9+
}
10+
11+
function retrieve() public view returns (uint256) {
12+
return storedNumber;
13+
}
14+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<div id="termynal" data-termynal>
2+
<span data-ty="input"><span class="file-path"></span>npx hardhat compile</span>
3+
<span data-ty>Downloading solc 0.8.28</span>
4+
<span data-ty>Downloading solc 0.8.28 (WASM build)</span>
5+
<span data-ty>Compiled 1 Solidity file with solc 0.8.28 (evm target: cancun)</span>
6+
<span data-ty="input"><span class="file-path"></span></span>
7+
</div>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import type { HardhatUserConfig } from 'hardhat/config';
2+
3+
import hardhatToolboxViemPlugin from '@nomicfoundation/hardhat-toolbox-viem';
4+
import { configVariable } from 'hardhat/config';
5+
6+
const config: HardhatUserConfig = {
7+
plugins: [hardhatToolboxViemPlugin],
8+
solidity: {
9+
profiles: {
10+
default: {
11+
version: '0.8.28',
12+
},
13+
production: {
14+
version: '0.8.28',
15+
settings: {
16+
optimizer: {
17+
enabled: true,
18+
runs: 200,
19+
},
20+
},
21+
},
22+
},
23+
},
24+
networks: {
25+
hardhatMainnet: {
26+
type: 'edr-simulated',
27+
chainType: 'l1',
28+
},
29+
hardhatOp: {
30+
type: 'edr-simulated',
31+
chainType: 'op',
32+
},
33+
sepolia: {
34+
type: 'http',
35+
chainType: 'l1',
36+
url: configVariable('SEPOLIA_RPC_URL'),
37+
accounts: [configVariable('SEPOLIA_PRIVATE_KEY')],
38+
},
39+
polkadotHubTestnet: {
40+
url: 'https://testnet-passet-hub-eth-rpc.polkadot.io',
41+
chainId: 420420422,
42+
accounts: [configVariable('PRIVATE_KEY')],
43+
},
44+
},
45+
};
46+
47+
export default config;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { buildModule } from '@nomicfoundation/hardhat-ignition/modules';
2+
3+
export default buildModule('StorageModule', (m) => {
4+
const storage = m.contract('Storage');
5+
return { storage };
6+
});
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<div id="termynal" data-termynal markdown>
2+
<span data-ty="input">npx hardhat compile</span>
3+
<span data-ty>Generating typings for: 23 artifacts in dir: typechain-types for target: ethers-v6</span>
4+
<span data-ty>Successfully generated 62 typings!</span>
5+
<span data-ty>Compiled 21 Solidity files successfully (evm target: paris).</span>
6+
</div>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<div id="termynal" data-termynal markdown>
2+
<span data-ty="input">npx hardhat ignition deploy ./ignition/modules/MyToken.ts --network polkadotTestnet</span>
3+
<span data-ty>✔ Confirm deploy to network polkadotTestnet (420420420)? … yes</span>
4+
<span data-ty>&nbsp;</span>
5+
<span data-ty>Hardhat Ignition 🚀</span>
6+
<span data-ty>&nbsp;</span>
7+
<span data-ty>Deploying [ TokenModule ]</span>
8+
<span data-ty>&nbsp;</span>
9+
<span data-ty>Batch #1</span>
10+
<span data-ty> Executed TokenModule#MyToken</span>
11+
<span data-ty>&nbsp;</span>
12+
<span data-ty>Batch #2</span>
13+
<span data-ty> Executed TokenModule#MyToken.mint</span>
14+
<span data-ty>&nbsp;</span>
15+
<span data-ty>[ TokenModule ] successfully deployed 🚀</span>
16+
<span data-ty>&nbsp;</span>
17+
<span data-ty>Deployed Addresses</span>
18+
<span data-ty>&nbsp;</span>
19+
<span data-ty>TokenModule#MyToken - 0xc01Ee7f10EA4aF4673cFff62710E1D7792aBa8f3</span>
20+
</div>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<div id="termynal" data-termynal markdown>
2+
<span data-ty="input">npx hardhat test --network polkadotTestnet</span>
3+
<span data-ty></span>
4+
<span data-ty>&nbsp;&nbsp;MyToken</span>
5+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;Deployment</span>
6+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;✔ Should have correct name and symbol</span>
7+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;✔ Should set the right owner</span>
8+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;✔ Should have zero initial supply</span>
9+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;Minting</span>
10+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;✔ Should allow owner to mint tokens</span>
11+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;✔ Should increase total supply on mint</span>
12+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;Multiple mints</span>
13+
<span data-ty>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;✔ Should correctly track balance after multiple mints</span>
14+
<span data-ty></span>
15+
<span data-ty>&nbsp;&nbsp;6 passing (369ms)</span>
16+
</div>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.20;
3+
4+
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
5+
import "@openzeppelin/contracts/access/Ownable.sol";
6+
7+
contract MyNFT is ERC721, Ownable {
8+
uint256 private _nextTokenId;
9+
10+
constructor(
11+
address initialOwner
12+
) ERC721("MyToken", "MTK") Ownable(initialOwner) {}
13+
14+
function safeMint(address to) public onlyOwner {
15+
uint256 tokenId = _nextTokenId++;
16+
_safeMint(to, tokenId);
17+
}
18+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { buildModule } from '@nomicfoundation/hardhat-ignition/modules';
2+
3+
export default buildModule('MyNFTModule', (m) => {
4+
const initialOwner = m.getParameter('initialOwner', 'INSERT_OWNER_ADDRESS');
5+
const myNFT = m.contract('MyNFT', [initialOwner]);
6+
return { myNFT };
7+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<div id="termynal" data-termynal>
2+
<span data-ty="input"><span class="file-path"></span>npx hardhat compile</span>
3+
<span data-ty>Downloading solc 0.8.28</span>
4+
<span data-ty>Downloading solc 0.8.28 (WASM build)</span>
5+
<span data-ty>Compiled 1 Solidity file with solc 0.8.28 (evm target: cancun)</span>
6+
<span data-ty="input"><span class="file-path"></span></span>
7+
</div>

0 commit comments

Comments
 (0)