UNPKG

@tokenz/tokens-smartcontract-sdk

Version:
615 lines (614 loc) 255 kB
{ "contractName": "ruleEngine", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "bytes32" } ], "name": "ruleSet", "outputs": [ { "name": "fromcontractCategory", "type": "bytes8" }, { "name": "fromcontractType", "type": "bytes8" }, { "name": "tocontractCategory", "type": "bytes8" }, { "name": "tocontractType", "type": "bytes8" }, { "name": "state", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "macAddr", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "_macAddr", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "constant": false, "inputs": [ { "name": "fromcontractCategory", "type": "bytes8" }, { "name": "fromcontractType", "type": "bytes8" }, { "name": "tocontractCategory", "type": "bytes8" }, { "name": "tocontractType", "type": "bytes8" } ], "name": "addRule", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "ruleHash", "type": "bytes32" } ], "name": "disableRule", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "ruleHash", "type": "bytes32" } ], "name": "enableRule", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_hash", "type": "bytes32" } ], "name": "checkRule", "outputs": [ { "name": "result", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "fromcontractCategory", "type": "bytes8" }, { "name": "fromcontractType", "type": "bytes8" }, { "name": "tocontractCategory", "type": "bytes8" }, { "name": "tocontractType", "type": "bytes8" } ], "name": "fetchHash", "outputs": [ { "name": "hash", "type": "bytes32" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "name": "fromcontractCategory", "type": "bytes8" }, { "name": "fromcontractType", "type": "bytes8" }, { "name": "tocontractCategory", "type": "bytes8" }, { "name": "tocontractType", "type": "bytes8" } ], "name": "ruleCheck", "outputs": [ { "name": "result", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5060405160208061167c8339810180604052810190808051906020019092919050505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506115b8806100c46000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633a0b581c146100935780635e4d25fa146100c457806370307eee1461010d578063743dcf55146101c457806377281f8414610297578063859a54c8146103665780639767d4c2146104a3578063c6edf452146104d4575b600080fd5b34801561009f57600080fd5b506100c2600480360381019080803560001916906020019092919050505061052b565b005b3480156100d057600080fd5b506100f3600480360381019080803560001916906020019092919050505061089f565b604051808215151515815260200191505060405180910390f35b34801561011957600080fd5b506101c2600480360381019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506108ef565b005b3480156101d057600080fd5b50610279600480360381019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f79565b60405180826000191660001916815260200191505060405180910390f35b3480156102a357600080fd5b5061034c600480360381019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506110f7565b604051808215151515815260200191505060405180910390f35b34801561037257600080fd5b50610395600480360381019080803560001916906020019092919050505061111c565b604051808677ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018577ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001821515151581526020019550505050505060405180910390f35b3480156104af57600080fd5b506104d260048036038101908080356000191690602001909291905050506111f3565b005b3480156104e057600080fd5b506104e9611567565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b7f60e4bc6916f055bd8ec78b0fb09acc593683868e7489071f28e97f17a67023c2600102600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663635912d5600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382f6f815336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561064a57600080fd5b505af115801561065e573d6000803e3d6000fd5b505050506040513d602081101561067457600080fd5b8101908080519060200190929190505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ad1456856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b505050506040513d602081101561074857600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200192505050602060405180830381600087803b15801561081e57600080fd5b505af1158015610832573d6000803e3d6000fd5b505050506040513d602081101561084857600080fd5b8101908080519060200190929190505050151561086457600080fd5b600160026000846000191660001916815260200190815260200160002060010160006101000a81548160ff0219169083151502179055505050565b60006001151560026000846000191660001916815260200190815260200160002060010160009054906101000a900460ff16151514156108e257600190506108e7565b600090505b809050919050565b7fdc8c5285248a3c5cb78de74aec47a8235cf224f0eba5534ac0843c08fb94e155600102600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663635912d5600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382f6f815336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a0e57600080fd5b505af1158015610a22573d6000803e3d6000fd5b505050506040513d6020811015610a3857600080fd5b8101908080519060200190929190505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ad1456856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200192505050602060405180830381600087803b158015610be257600080fd5b505af1158015610bf6573d6000803e3d6000fd5b505050506040513d6020811015610c0c57600080fd5b81019080805190602001909291905050501515610c2857600080fd5b60a0604051908101604052808677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018577ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018477ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018377ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600115158152506002600087878787604051602001808577ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515610e085780518252602082019150602081019050602083039250610de3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060208201518160000160086101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060408201518160000160106101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060608201518160000160186101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060808201518160010160006101000a81548160ff0219169083151502179055509050505050505050565b600084848484604051602001808577ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156110c0578051825260208201915060208101905060208303925061109b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b60008061110686868686610f79565b90506111118161089f565b915050949350505050565b60026020528060005260406000206000915090508060000160009054906101000a9004780100000000000000000000000000000000000000000000000002908060000160089054906101000a9004780100000000000000000000000000000000000000000000000002908060000160109054906101000a9004780100000000000000000000000000000000000000000000000002908060000160189054906101000a9004780100000000000000000000000000000000000000000000000002908060010160009054906101000a900460ff16905085565b7fa48594fcd0c5e85901eb04704a60bdec055e99ace219c1bc71cc57071daae99c600102600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663635912d5600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382f6f815336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050506040513d602081101561133c57600080fd5b8101908080519060200190929190505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ad1456856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156113e657600080fd5b505af11580156113fa573d6000803e3d6000fd5b505050506040513d602081101561141057600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200192505050602060405180830381600087803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b505050506040513d602081101561151057600080fd5b8101908080519060200190929190505050151561152c57600080fd5b600060026000846000191660001916815260200190815260200160002060010160006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a723058207293ad6e4b5e083d014f6613c827cdca9dbe6f7959c81c1002c05ff17c5fe2400029", "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633a0b581c146100935780635e4d25fa146100c457806370307eee1461010d578063743dcf55146101c457806377281f8414610297578063859a54c8146103665780639767d4c2146104a3578063c6edf452146104d4575b600080fd5b34801561009f57600080fd5b506100c2600480360381019080803560001916906020019092919050505061052b565b005b3480156100d057600080fd5b506100f3600480360381019080803560001916906020019092919050505061089f565b604051808215151515815260200191505060405180910390f35b34801561011957600080fd5b506101c2600480360381019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506108ef565b005b3480156101d057600080fd5b50610279600480360381019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f79565b60405180826000191660001916815260200191505060405180910390f35b3480156102a357600080fd5b5061034c600480360381019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506110f7565b604051808215151515815260200191505060405180910390f35b34801561037257600080fd5b50610395600480360381019080803560001916906020019092919050505061111c565b604051808677ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018577ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001821515151581526020019550505050505060405180910390f35b3480156104af57600080fd5b506104d260048036038101908080356000191690602001909291905050506111f3565b005b3480156104e057600080fd5b506104e9611567565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b7f60e4bc6916f055bd8ec78b0fb09acc593683868e7489071f28e97f17a67023c2600102600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663635912d5600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382f6f815336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561064a57600080fd5b505af115801561065e573d6000803e3d6000fd5b505050506040513d602081101561067457600080fd5b8101908080519060200190929190505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ad1456856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b505050506040513d602081101561074857600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200192505050602060405180830381600087803b15801561081e57600080fd5b505af1158015610832573d6000803e3d6000fd5b505050506040513d602081101561084857600080fd5b8101908080519060200190929190505050151561086457600080fd5b600160026000846000191660001916815260200190815260200160002060010160006101000a81548160ff0219169083151502179055505050565b60006001151560026000846000191660001916815260200190815260200160002060010160009054906101000a900460ff16151514156108e257600190506108e7565b600090505b809050919050565b7fdc8c5285248a3c5cb78de74aec47a8235cf224f0eba5534ac0843c08fb94e155600102600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663635912d5600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382f6f815336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a0e57600080fd5b505af1158015610a22573d6000803e3d6000fd5b505050506040513d6020811015610a3857600080fd5b8101908080519060200190929190505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ad1456856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200192505050602060405180830381600087803b158015610be257600080fd5b505af1158015610bf6573d6000803e3d6000fd5b505050506040513d6020811015610c0c57600080fd5b81019080805190602001909291905050501515610c2857600080fd5b60a0604051908101604052808677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018577ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018477ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018377ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600115158152506002600087878787604051602001808577ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515610e085780518252602082019150602081019050602083039250610de3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060208201518160000160086101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060408201518160000160106101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060608201518160000160186101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060808201518160010160006101000a81548160ff0219169083151502179055509050505050505050565b600084848484604051602001808577ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526008019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156110c0578051825260208201915060208101905060208303925061109b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b60008061110686868686610f79565b90506111118161089f565b915050949350505050565b60026020528060005260406000206000915090508060000160009054906101000a9004780100000000000000000000000000000000000000000000000002908060000160089054906101000a9004780100000000000000000000000000000000000000000000000002908060000160109054906101000a9004780100000000000000000000000000000000000000000000000002908060000160189054906101000a9004780100000000000000000000000000000000000000000000000002908060010160009054906101000a900460ff16905085565b7fa48594fcd0c5e85901eb04704a60bdec055e99ace219c1bc71cc57071daae99c600102600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663635912d5600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382f6f815336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050506040513d602081101561133c57600080fd5b8101908080519060200190929190505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ad1456856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156113e657600080fd5b505af11580156113fa573d6000803e3d6000fd5b505050506040513d602081101561141057600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200192505050602060405180830381600087803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b505050506040513d602081101561151057600080fd5b8101908080519060200190929190505050151561152c57600080fd5b600060026000846000191660001916815260200190815260200160002060010160006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a723058207293ad6e4b5e083d014f6613c827cdca9dbe6f7959c81c1002c05ff17c5fe2400029", "sourceMap": "55:2370:9:-;;;516:122;8:9:-1;5:2;;;30:1;27;20:12;5:2;516:122:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;594:8;575:4;;:28;;;;;;;;;;;;;;;;;;623:8;613:7;;:18;;;;;;;;;;;;;;;;;;516:122;55:2370;;;;;;", "deployedSourceMap": "55:2370:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1314:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1314:194:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1514:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:254:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:438;;8:9:-1;5:2;;;30:1;27;20:12;5:2;668:438:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1774:308;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1774:308:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2088:335;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2088:335:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;133:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;133:41:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1112:196:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;81:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;81:22:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1314:194;1374:66;368:142;;426:4;;;;;;;;;;;:20;;;447:4;;;;;;;;;;;:12;;;460:10;447:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;447:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;447:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;447:24:9;;;;;;;;;;;;;;;;472:4;;;;;;;;;;;:11;;;484:5;472:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;472:18:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;472:18:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;472:18:9;;;;;;;;;;;;;;;;426:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;426:65:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;426:65:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;426:65:9;;;;;;;;;;;;;;;;418:74;;;;;;;;1497:4;1471:7;:17;1479:8;1471:17;;;;;;;;;;;;;;;;;:23;;;:30;;;;;;;;;;;;;;;;;;1314:194;;:::o;1514:254::-;1594:11;1651:4;1627:28;;:7;:14;1635:5;1627:14;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;:28;;;1622:117;;;1681:4;1672:13;;1622:117;;;1723:5;1714:14;;1622:117;1755:6;1748:13;;1514:254;;;:::o;668:438::-;808:66;368:142;;426:4;;;;;;;;;;;:20;;;447:4;;;;;;;;;;;:12;;;460:10;447:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;447:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;447:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;447:24:9;;;;;;;;;;;;;;;;472:4;;;;;;;;;;;:11;;;484:5;472:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;472:18:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;472:18:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;472:18:9;;;;;;;;;;;;;;;;426:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;426:65:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;426:65:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;426:65:9;;;;;;;;;;;;;;;;418:74;;;;;;;;1017:82;;;;;;;;;1022:20;1017:82;;;;;;;1043:16;1017:82;;;;;;;1060:18;1017:82;;;;;;;1079:14;1017:82;;;;;;;1094:4;1017:82;;;;;905:7;:109;940:20;961:16;978:18;997:14;923:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;923:89:9;;;913:100;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;913:100:9;;;;;;;;;;;;;;;;905:109;;;;;;;;;;;;;;;;;:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:438;;;;;:::o;1774:308::-;1939:12;2002:20;2023:16;2040:18;2059:14;1985:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1985:89:9;;;1975:100;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1975:100:9;;;;;;;;;;;;;;;;1968:107;;1774:308;;;;;;:::o;2088:335::-;2255:11;2283:13;2299:82;2309:20;2330:16;2347:18;2366:14;2299:9;:82::i;:::-;2283:98;;2400:16;2410:5;2400:9;:16::i;:::-;2391:25;;2088:335;;;;;;;:::o;133:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1112:196::-;1173:66;368:142;;426:4;;;;;;;;;;;:20;;;447:4;;;;;;;;;;;:12;;;460:10;447:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;447:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;447:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;447:24:9;;;;;;;;;;;;;;;;472:4;;;;;;;;;;;:11;;;484:5;472:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;472:18:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;472:18:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;472:18:9;;;;;;;;;;;;;;;;426:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;426:65:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;426:65:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;426:65:9;;;;;;;;;;;;;;;;418:74;;;;;;;;1296:5;1270:7;:17;1278:8;1270:17;;;;;;;;;;;;;;;;;:23;;;:31;;;;;;;;;;;;;;;;;;1112:196;;:::o;81:22::-;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.25;\n\nimport \"./macContract.sol\";\n\ncontract ruleEngine{\n\n address public macAddr;\n\n macContract macC;\n\n mapping (bytes32 => rule ) public ruleSet;\n\n struct rule{\n bytes8 fromcontractCategory;\n bytes8 fromcontractType;\n bytes8 tocontractCategory;\n bytes8 tocontractType;\n bool state;\n }\n\n modifier mod_checkPerm( bytes32 objid ) {\n require(macC.permissionCheck(macC.subject(msg.sender),macC.object(objid)));\n _;\n }\n\n constructor(address _macAddr)\n public\n {\n macC = macContract(_macAddr);\n macAddr = _macAddr;\n }\n\n // Governance Rules\n function addRule(bytes8 fromcontractCategory,bytes8 fromcontractType,bytes8 tocontractCategory,bytes8 tocontractType)\n mod_checkPerm(0xdc8c5285248a3c5cb78de74aec47a8235cf224f0eba5534ac0843c08fb94e155)\n public\n {\n ruleSet[keccak256(abi.encodePacked(fromcontractCategory,fromcontractType,tocontractCategory,tocontractType))] = rule(fromcontractCategory,fromcontractType,tocontractCategory,tocontractType,true);\n }\n\n function disableRule(bytes32 ruleHash)\n mod_checkPerm(0xa48594fcd0c5e85901eb04704a60bdec055e99ace219c1bc71cc57071daae99c)\n public\n {\n ruleSet[ruleHash].state = false;\n }\n\n function enableRule(bytes32 ruleHash)\n mod_checkPerm(0x60e4bc6916f055bd8ec78b0fb09acc593683868e7489071f28e97f17a67023c2)\n public\n {\n ruleSet[ruleHash].state = true;\n }\n\n function checkRule(bytes32 _hash)\n public\n view\n returns ( bool result )\n {\n if ( ruleSet[_hash].state == true ){\n result = true;\n }else{\n result = false;\n }\n return result;\n }\n\n function fetchHash(bytes8 fromcontractCategory,bytes8 fromcontractType,bytes8 tocontractCategory,bytes8 tocontractType)\n public\n pure\n returns( bytes32 hash )\n {\n hash = keccak256(abi.encodePacked(fromcontractCategory,fromcontractType,tocontractCategory,tocontractType));\n }\n\n function ruleCheck (bytes8 fromcontractCategory,bytes8 fromcontractType,bytes8 tocontractCategory,bytes8 tocontractType)\n public\n view\n returns ( bool result )\n {\n bytes32 _hash = fetchHash(fromcontractCategory,fromcontractType,tocontractCategory,tocontractType);\n result = checkRule(_hash);\n }\n}", "sourcePath": "/contracts/governance/ruleEngine.sol", "ast": { "absolutePath": "/contracts/governance/ruleEngine.sol", "exportedSymbols": { "ruleEngine": [ 1532 ] }, "id": 1533, "nodeType": "SourceUnit", "nodes": [ { "id": 1325, "literals": [ "solidity", "^", "0.4", ".25" ], "nodeType": "PragmaDirective", "src": "0:24:9" }, { "absolutePath": "/contracts/governance/macContract.sol", "file": "./macContract.sol", "id": 1326, "nodeType": "ImportDirective", "scope": 1533, "sourceUnit": 1324, "src": "26:27:9", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 1532, "linearizedBaseContracts": [ 1532 ], "name": "ruleEngine", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 1328, "name": "macAddr", "nodeType": "VariableDeclaration", "scope": 1532, "src": "81:22:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1327, "name": "address", "nodeType": "ElementaryTypeName", "src": "81:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 1330, "name": "macC", "nodeType": "VariableDeclaration", "scope": 1532, "src": "110:16:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_macContract_$1323", "typeString": "contract macContract" }, "typeName": { "contractScope": null, "id": 1329, "name": "macContract", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1323, "src": "110:11:9", "typeDescriptions": { "typeIdentifier": "t_contract$_macContract_$1323", "typeString": "contract macContract" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1334, "name": "ruleSet", "nodeType": "VariableDeclaration", "scope": 1532, "src": "133:41:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_rule_$1345_storage_$", "typeString": "mapping(bytes32 => struct ruleEngine.rule)" }, "typeName": { "id": 1333, "keyType": { "id": 1331, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "142:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "133:26:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_rule_$1345_storage_$", "typeString": "mapping(bytes32 => struct ruleEngine.rule)" }, "valueType": { "contractScope": null, "id": 1332, "name": "rule", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1345, "src": "153:4:9", "typeDescriptions": { "typeIdentifier": "t_struct$_rule_$1345_storage_ptr", "typeString": "struct ruleEngine.rule" } } }, "value": null, "visibility": "public" }, { "canonicalName": "ruleEngine.rule", "id": 1345, "members": [ { "constant": false, "id": 1336, "name": "fromcontractCategory", "nodeType": "VariableDeclaration", "scope": 1345, "src": "202:28:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" }, "typeName": { "id": 1335, "name": "bytes8", "nodeType": "ElementaryTypeName", "src": "202:6:9", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1338, "name": "fromcontractType", "nodeType": "VariableDeclaration", "scope": 1345, "src": "240:24:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" }, "typeName": { "id": 1337, "name": "bytes8", "nodeType": "ElementaryTypeName", "src": "240:6:9", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1340, "name": "tocontractCategory", "nodeType": "VariableDeclaration", "scope": 1345, "src": "274:26:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" }, "typeName": { "id": 1339, "name": "bytes8", "nodeType": "ElementaryTypeName", "src": "274:6:9", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1342, "name": "tocontractType", "nodeType": "VariableDeclaration", "scope": 1345, "src": "310:22:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" }, "typeName": { "id": 1341, "name": "bytes8", "nodeType": "ElementaryTypeName", "src": "310:6:9", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1344, "name": "state", "nodeType": "VariableDeclaration", "scope": 1345, "src": "342:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1343, "name": "bool", "nodeType": "ElementaryTypeName", "src": "342:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "name": "rule", "nodeType": "StructDefinition", "scope": 1532, "src": "181:181:9", "visibility": "public" }, { "body": { "id": 1365, "nodeType": "Block", "src": "408:102:9", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1354, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2396, "src": "460:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "460:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 1352, "name": "macC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1330, "src": "447:4:9", "typeDescriptions": { "typeIdentifier": "t_contract$_macContract_$1323", "typeString": "contract macContract" } }, "id": 1353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "subject", "nodeType": "MemberAccess", "referencedDeclaration": 1208, "src": "447:12:9", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes8_$", "typeString": "function (address) view external returns (bytes8)" } }, "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "447:24:9", "typeDescriptions": { "typeIdentifier": "t_bytes8", "typeString": "bytes8" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1359, "name": "objid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1347, "src": "484:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "expression": { "argumentTypes": null, "id": 1357, "name": "macC",