mojtaba-eshghie / HighGuard

The runtime monitoring tool for smart contracts high-level properties.
https://arxiv.org/abs/2305.08254
MIT License
5 stars 2 forks source link

Plugin-based model conventions system #58

Open mojtaba-eshghie opened 6 months ago

mojtaba-eshghie commented 6 months ago

Let's create a plugin-based model convention system where we allow users to not only use general-purpose monitoring conventions defined under /CI/conventions/generic, but also, let them define their own conventions under /CI/conventions/plugins

mojtaba-eshghie commented 2 months ago

The file monitor/monitor.test.js runs successfully performing a monitoring job with the new monitor class. (added with the commit https://github.com/mojtaba-eshghie/HighGuard/commit/e5a8df59a234ee072c0fa6baa0e97e1a20e71fe0)

{
  accounts: [
    '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
    '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
    '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
    '0x90F79bf6EB2c4f870365E785982E1f101E93b906',
    '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65',
    '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',
    '0x976EA74026E726554dB657fA54763abd0C3a0aa9',
    '0x14dC79964da2C08b23698B3D3cc7Ca32193d9955',
    '0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f',
    '0xa0Ee7A142d267C1f36714E4a8F75612F20a79720'
  ],
  privateKeys: [
    '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
    '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d',
    '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a',
    '0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6',
    '0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a',
    '0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba',
    '0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e',
    '0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356',
    '0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97',
    '0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6'
  ],
  rpcAddress: '127.0.0.1:3050',
  pid: 47020
}
Monitoring the contract: 0x5FbDB2315678afecb367f032d93F642f64180aa3

The retrieved activity using the translator is:  [ { activityId: 'getGreeted', dcrValue: null, dcrType: null } ]
Trying to execute the following DCR activity
requestBody: {}
nextEventAddress: https://repository.dcrgraphs.net/api/graphs/1702173/sims/1946477/events/getGreeted
DCR Activity executed: {
  name: 'getGreeted',
  time: 'Thu, 07 Mar 2024 13:54:35 GMT',
  violation: true
}
The retrieved activity using the translator is:  [ { activityId: 'getGreeted', dcrValue: null, dcrType: null } ]
Trying to execute the following DCR activity
requestBody: {}
nextEventAddress: https://repository.dcrgraphs.net/api/graphs/1702173/sims/1946477/events/getGreeted
DCR Activity executed: {
  name: 'getGreeted',
  time: 'Thu, 07 Mar 2024 13:54:50 GMT',
  violation: true
}

The retrieved activity using the translator is:  [ { activityId: 'setGreet', dcrValue: null, dcrType: null } ]
Trying to execute the following DCR activity
requestBody: {}
nextEventAddress: https://repository.dcrgraphs.net/api/graphs/1702173/sims/1946477/events/setGreet
DCR Activity executed: {
  name: 'setGreet',
  time: 'Thu, 07 Mar 2024 13:55:23 GMT',
  violation: false
}