The SLA Accounting Ticket System is a blockchain-based solution for automating the process of reporting, validating, and resolving Service Level Agreement (SLA) trouble tickets. Built on Ethereum and Solidity, it leverages smart contracts for transparency, efficiency, and SLA compliance.
- Ticket Submission and Validation: Enables buyers to submit trouble tickets and sellers to validate them.
- Automated Credit Payouts: Automatically disburses credits based on SLA compliance.
- Dispute Resolution: Allows for dispute raising and resolution.
- Performance Metrics: Tracks resolution times and other key metrics.
- Upgradeable Contracts: Utilizes a proxy pattern for future upgrades.
SLATicketSystem.sol
: Main contract for SLA ticket handling.SLAAccessControl.sol
: Manages roles and permissions.SLAContractInterface.sol
: Interface for SLA compliance checks.SLAUpgradeableProxy.sol
: Proxy contract for upgradeability.SLACreditsToken.sol
: ERC20 token contract for credit management.
- Clone the Repository:
$ git clone https://github.com/mohammadsalim/SLA-Accounting-Ticket-System
- Install Dependencies:
$ forge install
Use Foundry's forge
and anvil
for local testing and deployment.
- Local Deployment with Anvil:
- Start Anvil:
$ anvil
- In a new terminal, deploy the contracts:
$ forge script Script.s.sol --fork-url http://localhost:8545 --private-key <private-key>
- Testnet Deployment:
- Set up your
foundry.toml
with testnet details. - Run the deployment script:
$ forge script Script.s.sol --rpc-url <testnet-rpc-url> --private-key <private-key>
Interact with the system using Foundry's cast
or through a frontend application.
Run tests with:
$ forge test
Developed with best practices, yet thorough auditing is recommended before mainnet deployment.
Contributions are welcome. Please read the contributing guidelines before submitting pull requests.
Licensed under the MIT License.