maroo-contracts
v0.0.1
Published
A collection of smart contracts used in the development of the Maroo blockchain.
Downloads
193
Maintainers
Readme
maroo-contracts
A library of smart contracts for Maroo blockchain development.
Installation
npm install maroo-contractspnpm add maroo-contractsIncluded Contracts
| Contract | Path | Description |
|----------|------|-------------|
| IOkrw | solidity/precompiles/okrw/IOkrw.sol | OKRW token minting interface |
| IPcl | solidity/precompiles/pcl/IPcl.sol | Policy Control Layer interface |
Usage
Import in Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.22;
import "maroo-contracts/solidity/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-contracts/artifacts/solidity/precompiles/pcl/IPcl.sol/IPcl.json";
const provider = new ethers.JsonRpcProvider("https://rpc.maroo.network");
const pclContract = new ethers.Contract(
"0x1000000000000000000000000000000000000005",
IPclAbi.abi,
provider
);
const admin = await pclContract.policyAdmin();
console.log("Policy Admin:", admin);// viem example
import { createPublicClient, http, getContract } from "viem";
import IPclAbi from "maroo-contracts/artifacts/solidity/precompiles/pcl/IPcl.sol/IPcl.json";
const client = createPublicClient({
transport: http("https://rpc.maroo.network"),
});
const pclContract = getContract({
address: "0x1000000000000000000000000000000000000005",
abi: IPclAbi.abi,
client,
});
const admin = await pclContract.read.policyAdmin();
console.log("Policy Admin:", admin);Foundry Setup
Add the following to remappings.txt:
maroo-contracts/=node_modules/maroo-contracts/License
MIT
