2024-01-22 21:48:51 +00:00
|
|
|
// SPDX-License-Identifier: UNLICENSED
|
|
|
|
pragma solidity ^0.8.23;
|
|
|
|
|
|
|
|
import {Script, console2} from "forge-std/Script.sol";
|
|
|
|
import { DappIndexer} from "src/DappIndexer.sol";
|
2024-05-09 01:18:09 +00:00
|
|
|
import { CIDStorage } from "src/CIDStorage.sol";
|
2024-01-22 21:48:51 +00:00
|
|
|
|
|
|
|
contract DappIndexerScript is Script {
|
|
|
|
DappIndexer public dappIdxr;
|
|
|
|
string[] public dappsURI;
|
2024-02-24 20:49:07 +00:00
|
|
|
address public owner;
|
2024-01-22 21:48:51 +00:00
|
|
|
|
|
|
|
function setUp() public {
|
|
|
|
dappsURI = vm.envString("dapps", ' ');
|
2024-02-24 20:49:07 +00:00
|
|
|
owner = vm.envAddress("ACC0");
|
2024-01-22 21:48:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// run is the entry point
|
|
|
|
function run() public {
|
2024-02-24 20:49:07 +00:00
|
|
|
uint256 deployerPrivateKey = vm.envUint("PK0");
|
2024-01-22 21:48:51 +00:00
|
|
|
// startBroadcast and stopBraodcast will let us execute transactions anything between them
|
2024-02-24 20:49:07 +00:00
|
|
|
vm.startBroadcast(deployerPrivateKey);
|
2024-05-09 01:18:09 +00:00
|
|
|
// here we just need to deploy a new contract
|
2024-02-24 20:49:07 +00:00
|
|
|
dappIdxr = new DappIndexer(owner, owner);
|
|
|
|
console2.log("The Dapps Indexer contract address is: ", address(dappIdxr));
|
2024-01-22 21:48:51 +00:00
|
|
|
|
2024-05-09 01:18:09 +00:00
|
|
|
// Define a Dapp name
|
|
|
|
bytes32 dapp_name = bytes32("Dapp01");
|
|
|
|
|
|
|
|
// Define DappURI splited into two bytes32 CIDs
|
2024-01-22 21:48:51 +00:00
|
|
|
bytes32 CID1;
|
|
|
|
bytes32 CID2;
|
|
|
|
|
2024-05-09 01:18:09 +00:00
|
|
|
(CID1, CID2) = CIDStorage.stringToBytes32Pair(dappsURI[0]);
|
2024-01-22 21:48:51 +00:00
|
|
|
|
|
|
|
// Add Dapp
|
|
|
|
console2.log("-----Adding Dapp-----");
|
2024-02-24 20:49:07 +00:00
|
|
|
console2.log("Dapp Name is:");
|
2024-05-09 01:18:09 +00:00
|
|
|
console2.logBytes32(dapp_name);
|
2024-01-22 21:48:51 +00:00
|
|
|
console2.log("Bytes32 first:");
|
|
|
|
console2.logBytes32(CID1);
|
|
|
|
console2.log("Bytes32 second:");
|
|
|
|
console2.logBytes32(CID2);
|
2024-05-09 01:18:09 +00:00
|
|
|
console2.log(CIDStorage.bytes32PairToString(CID1, CID2));
|
|
|
|
dappIdxr.addDapp(dapp_name, DappIndexer.PackedCID(CID1, CID2));
|
2024-01-22 21:48:51 +00:00
|
|
|
|
|
|
|
// retrive Dapp
|
|
|
|
console2.log("-----retriving Dapp-----");
|
2024-05-09 01:18:09 +00:00
|
|
|
DappIndexer.PackedCID memory dapp1 = dappIdxr.getDapp(dapp_name);
|
2024-01-22 21:48:51 +00:00
|
|
|
console2.log("Bytes32 first:");
|
|
|
|
console2.logBytes32(dapp1.CID1);
|
|
|
|
console2.log("Bytes32 second:");
|
|
|
|
console2.logBytes32(dapp1.CID2);
|
|
|
|
|
2024-05-09 01:18:09 +00:00
|
|
|
// reconstruct the CID and verify
|
|
|
|
console2.log(CIDStorage.bytes32PairToString(dapp1.CID1, dapp1.CID2));
|
2024-01-22 23:28:25 +00:00
|
|
|
|
2024-05-09 01:18:09 +00:00
|
|
|
vm.stopBroadcast();
|
2024-01-22 21:48:51 +00:00
|
|
|
}
|
|
|
|
}
|