Hướng dẫn tham gia Base Camp, bài khá dài ae thực hiện lần lượt nhé
Yêu cầu:
Faucet mạng base Seplia: https://www.alchemy.com/faucets/base-sepolia
Deploy tools: https://remix.ethereum.org/
Github code: https://github.com/vanthanh1230/BaseCamp (deploy theo lần lượt các thư mục ở github này)
Base Camp Guild - https://guild.xyz/base/base-camp
Link deploy: https://docs.base.org/base-camp/docs/deployment-to-testnet/deployment-to-testnet-exercise/
Truy cập link deploy connect ví
Link deploy: https://docs.base.org/base-camp/docs/deployment-to-testnet/deployment-to-testnet-exercise/
Truy cập Remix: https://remix.ethereum.org/
Chọn vào -create a new workspace
![](https://storage.googleapis.com/papyrus_images/5ee0114fe477522aadb8a6675688ce77.png)
Đặt tên cho Workspace
![](https://storage.googleapis.com/papyrus_images/93ac9c454149ef20a6d40f208aca06e2.png)
Create new folder
![](https://storage.googleapis.com/papyrus_images/f2357381acfc4c6d2540cc8fedb84941.png)
Sau đó ấn vào mục 2. Owner.sol
![](https://storage.googleapis.com/papyrus_images/e2a773493556e6944e326c7a2dea438b.png)
Chọn tab Solidity Compiler => Ấn Compile 2_Owner.sol
![](https://storage.googleapis.com/papyrus_images/89265910751a5ae3c8b180d6d19baa0c.png)
Chuyển sang tab Deploy => Connect ví Metamask => Deploy
![](https://storage.googleapis.com/papyrus_images/27820c8f34c70073bec74eb6b02562cf.png)
BasicMath
Truy cập github vào mục BasicMath: https://github.com/vanthanh1230/BaseCamp/blob/main/BasicMath
Truy cập lại remix => Tab File Explorer => Chọn vào mục contracts => Create new file
![](https://storage.googleapis.com/papyrus_images/664bf911abe13a1c9afdbc3f6780960b.png)
Đặt tên file BasicMath, sau đó qua github copy hết dòng code và paste lại vào bên Remix
![](https://storage.googleapis.com/papyrus_images/db5a186e87e1b71a38e796983d577140.png)
Sang tiếp mục SOLIDITY COMPILER ấn Compile BasicMath.sol
![](https://storage.googleapis.com/papyrus_images/f4a9e25ac288899ed4020c21ce912a45.png)
Sang mục Deploy => ấn deploy => Confirm lệnh trên Metamask
![](https://storage.googleapis.com/papyrus_images/85abfa42b91f47dbd1c2d36f5dd3e44a.png)
Copy contract vừa deploy
![](https://storage.googleapis.com/papyrus_images/9a90cdba4681f1b6f2b8370ae55f6524.png)
Sang website deploy của Base: https://docs.base.org/base-camp/docs/deployment-to-testnet/deployment-to-testnet-exercise/
Kéo xuống dưới cùng paste contract sau đó ấn submit => Confirm lệnh trên Metamask
![](https://storage.googleapis.com/papyrus_images/a730e7f2d3014f7781ed4e7b5e2bfaac.png)
Control Structures
Truy cập lại remix, sang mục tạo thư mục mới có tên Control Structures
![](https://storage.googleapis.com/papyrus_images/221245d49c863996262b46ff0074d78e.png)
Sang github copy code mục Control Structures
![](https://storage.googleapis.com/papyrus_images/444a1f22b00bc29915b75fdf219d1e0f.png)
Thực hiện việc compile và deploy tương tự như với phần guide BaseMath
![](https://storage.googleapis.com/papyrus_images/db52a1e1e3f9afe4eb918432b12da1a1.png)
Copy contract vừa tạo sang đây submit: https://docs.base.org/base-camp/docs/control-structures/control-structures-exercise
![](https://storage.googleapis.com/papyrus_images/a8e046556820783ce76a6d6c22816666.png)
Storage
Truy cập lại remix, tạo thư mục mới tên Storage, sang github mục Storage copy code và tiến hành deploy
Ở mục Deploy điền lần lượt các thông số sau sau đó ấn Transact
![](https://storage.googleapis.com/papyrus_images/abdc9c62d989f8bc11faf1d5404e5403.png)
shares
- 1000name
- Patsalary
- 50000idNumber
- 112358132134Copy contract sang đây submit (kéo xuống dưới cùng của trang): https://docs.base.org/base-camp/docs/storage/storage-exercise
![](https://storage.googleapis.com/papyrus_images/d5f8f402eaba105434b503f40bc714a1.png)
Arrays
Tạo file name Arrays trên remix sau đó copy code ở github
![](https://storage.googleapis.com/papyrus_images/1927de70a52dcea6bcf9e71e250d7b52.png)
Compile + Deploy sau đó coy contract sang đây để submit: https://docs.base.org/base-camp/docs/arrays/arrays-exercise
Mapping
Tiếp tục tạo file vs Mapping
Submit ở đây: https://docs.base.org/base-camp/docs/mappings/mappings-exercise
Structs
Tiếp tục tạo file vs thư mục Structs
Link sumit: https://docs.base.org/base-camp/docs/structs/structs-exercise
![](https://storage.googleapis.com/papyrus_images/7eb2843795e2ccc59e3115dac9b1e169.png)
Inheritance
Làm tương tự đến bước deploy
Ở bước deploy sẽ xuất hiện cảnh báo này:
![](https://storage.googleapis.com/papyrus_images/c07e7b2aa9e0c4d0c520c7f396969797.png)
Ấn OK, sau đó chọn vào mục Saleperson -contract/
![](https://storage.googleapis.com/papyrus_images/9580f68743f429eadaaee8161969cfcb.png)
Điền các thông số sau:
Id number: 55555
Manager ID: 12345
Hourly rate: 20
![](https://storage.googleapis.com/papyrus_images/8687f55461b8a75e3fe3a76a1bbec322.png)
Chọn tiếp ở mục Contract sang mục EngineeringManager
![](https://storage.googleapis.com/papyrus_images/778bb0bdf33b2c9b31a2faac21f96555.png)
Điền tiếp các thông số sau:
Annualsalary: 200000
Id number: 54321
Manager Id: 11111
![](https://storage.googleapis.com/papyrus_images/12a42783fb0af28ffe516389252e3c2a.png)
Chọn tiếp mục sau InheritanceSubmission
![](https://storage.googleapis.com/papyrus_images/d46cfbc1fc9e51b983466bc4b90df4f5.png)
Copy lần lượt contract của _SALESPERSON và _ENGINEERINGMANAGER để điền vào mục bên dưới (copy theo contract vừa tạo ở trên)
![](https://storage.googleapis.com/papyrus_images/8299493f22be92d4f496e72849760227.png)
Submit contract vừa tạo: https://docs.base.org/base-camp/docs/inheritance/inheritance-exercise
![](https://storage.googleapis.com/papyrus_images/8499e14f00d8b66e0d1e75d092e2f929.png)
SillyStringUtils
Tạo file SillyStringUtils
![](https://storage.googleapis.com/papyrus_images/2760bc830f2c36e9e63e35638d804e87.png)
Tạo tiếp file Import và deploy
![](https://storage.googleapis.com/papyrus_images/9b5311621515390b31d2237b29761972.png)
Copy contract Import vừa tạo và submit ở đây: https://docs.base.org/base-camp/docs/imports/imports-exercise
![](https://storage.googleapis.com/papyrus_images/04ddf08215354db70fcab8f0c38ed5e9.png)
Errors
Tạo file Errors và Deploy
Copy contract và submit: https://docs.base.org/base-camp/docs/error-triage/error-triage-exercise
![](https://storage.googleapis.com/papyrus_images/6941cbf24fe324fce83fd8248f2728a0.png)
AddressBook and Other Contracts
Tạo file AddressBook (ko deploy chỉ tạo)
![](https://storage.googleapis.com/papyrus_images/0328b59f30d256394686342943d0d08e.png)
Tạo file OtherContracts, bước Compile nếu lỗi thì chọn vào ver 0.8.20
![](https://storage.googleapis.com/papyrus_images/cd48d9baa6f9bb452419d2323df6aad5.png)
Compile OK => Sang deploy và copy contract
![](https://storage.googleapis.com/papyrus_images/270d9184df300824b405e87d314341ee.png)
![](https://storage.googleapis.com/papyrus_images/fac673a5ee302286f2f109aa9f49291e.png)
Minimal Token
Tạo file name Minimal Token ở remix và copy code ở github, đổi giá trị value thành 123456
![](https://storage.googleapis.com/papyrus_images/a0295ea150239685ee276aef9f2387f8.png)
![](https://storage.googleapis.com/papyrus_images/0f2611c2ff41b86dd77960cc2d1b3a11.png)
Deploy token:
ERC20
Tạo contract name ERC20 ở remix, copy code ở Github thư mục ERC20, sau đó ở dòng code kéo lên trên cùng thay đổi giá trị "value" thành "cthe" (cái này ae có thể tự đặt tên theo ý muốn được nhé)
![](https://storage.googleapis.com/papyrus_images/5eed4e0ff8eb37ebf5700a768697e56e.png)
![](https://storage.googleapis.com/papyrus_images/82cf07bf22d87632b28c364e1d6c2b6d.png)
Tiến hành Compile và Deploy, ở mục Deploy điền các thông số sau
![](https://storage.googleapis.com/papyrus_images/eaad4da53eaf302560861c2e41b8c9f0.png)
Submit contract và mint: https://docs.base.org/base-camp/docs/erc-20-token/erc-20-exercise
![](https://storage.googleapis.com/papyrus_images/017aca00fe02cc81358fb20f8e830d94.png)
ERC721
Tạo tên file contract ERC721 và copy code ở github
Compile và deploy
![](https://storage.googleapis.com/papyrus_images/10a5d8ecc559e5c02849c5795c8f8f0d.png)
Submit contract vừa tạo và mint: https://docs.base.org/base-camp/docs/erc-721-token/erc-721-exercise