@maroo-chain/contracts
v0.0.4
Published
A collection of smart contracts used in the development of the Maroo blockchain.
Readme
@maroo-chain/contracts
A library of smart contracts for Maroo blockchain development.
Installation
npm install @maroo-chain/contractspnpm add @maroo-chain/contractsIncluded Contracts
| Contract | Path | Description |
|----------|------|-------------|
| IOkrw | precompiles/okrw/IOkrw.sol | OKRW token minting interface |
| IPcl | precompiles/pcl/IPcl.sol | Policy Control Layer interface |
Usage
Import in Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.22;
import "@maroo-chain/contracts/precompiles/pcl/IPcl.sol";
contract PolicyManager {
function getGlobalPolicies() external view returns (GlobalPolicyConfig memory) {
return PCL_CONTRACT.globalPolicies();
}
function getPolicyAdmin() external view returns (address) {
return PCL_CONTRACT.policyAdmin();
}
}Import ABI in TypeScript/JavaScript
// ethers.js example
import { ethers } from "ethers";
import { iPclAbi } from "@maroo-chain/contracts/abi/precompiles/pcl/IPcl";
const provider = new ethers.JsonRpcProvider("https://rpc.maroo.network");
const pclContract = new ethers.Contract(
"0x1000000000000000000000000000000000000005",
iPclAbi,
provider
);
const admin = await pclContract.policyAdmin();
console.log("Policy Admin:", admin);// viem example
import { createPublicClient, http, getContract } from "viem";
import { iPclAbi } from "@maroo-chain/contracts/abi/precompiles/pcl/IPcl";
const client = createPublicClient({
transport: http("https://rpc.maroo.network"),
});
const pclContract = getContract({
address: "0x1000000000000000000000000000000000000005",
abi: iPclAbi,
client,
});
const admin = await pclContract.read.policyAdmin();
console.log("Policy Admin:", admin);Foundry Setup
Add the following to remappings.txt:
@maroo-chain/contracts/=node_modules/@maroo-chain/contracts/License
MIT
