mirror of
https://github.com/KeyZox71/knl_meowscendence.git
synced 2025-08-14 04:22:54 +02:00
「🏗️」 wip: seemingly working smart contract
This commit is contained in:
@ -1,11 +1,45 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity ^0.8;
|
||||
pragma solidity 0.8.28;
|
||||
|
||||
struct score {
|
||||
string p1;
|
||||
string p2;
|
||||
uint128 p1Score;
|
||||
uint128 p2Score;
|
||||
}
|
||||
|
||||
contract scoreStore {
|
||||
uint16 test = 0;
|
||||
address public owner;
|
||||
uint public lastId;
|
||||
mapping (uint => score) public scores;
|
||||
|
||||
function up(uint16 plus) public {
|
||||
test += plus;
|
||||
constructor() {
|
||||
owner = msg.sender;
|
||||
lastId = 0;
|
||||
}
|
||||
|
||||
modifier ownerOnly {
|
||||
require(msg.sender == owner, "Need to be contract owner");
|
||||
_;
|
||||
}
|
||||
|
||||
function addScore(string memory p1, string memory p2, uint128 p1Score, uint128 p2Score) external ownerOnly returns (uint id) {
|
||||
score memory s;
|
||||
|
||||
s.p1 = p1;
|
||||
s.p2 = p2;
|
||||
s.p1Score = p1Score;
|
||||
s.p2Score = p2Score;
|
||||
|
||||
scores[lastId] = s;
|
||||
id = lastId;
|
||||
lastId++;
|
||||
|
||||
return (id);
|
||||
}
|
||||
|
||||
function getScore(uint id) external view returns (score memory) {
|
||||
return scores[id];
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,33 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity ^0.8;
|
||||
pragma solidity 0.8.28;
|
||||
|
||||
import "src/contract/main.sol";
|
||||
import "forge-std/Test.sol";
|
||||
|
||||
contract mainTest is Test, scoreStore {
|
||||
function testUp() public {
|
||||
up(2);
|
||||
assertEq(test, 2);
|
||||
contract scoreStoreTest is Test {
|
||||
scoreStore scoreS;
|
||||
address nonOwner = address(1);
|
||||
|
||||
function setUp() public {
|
||||
scoreS = new scoreStore();
|
||||
}
|
||||
|
||||
function testAddScore() public {
|
||||
uint id = scoreS.addScore("omg", "test", 5, 8);
|
||||
|
||||
score memory s = scoreS.getScore(id);
|
||||
assertEq(s.p1, "omg");
|
||||
assertEq(s.p2, "test");
|
||||
assertEq(s.p1Score, 5);
|
||||
assertEq(s.p2Score, 8);
|
||||
|
||||
id = scoreS.addScore("ahhhhh", "test", 5, 8);
|
||||
|
||||
s = scoreS.getScore(id);
|
||||
assertEq(s.p1, "ahhhhh");
|
||||
assertEq(s.p2, "test");
|
||||
assertEq(s.p1Score, 5);
|
||||
assertEq(s.p2Score, 8);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user