Files
smom-dbis-138/artifacts/contracts/iso4217w/ComplianceGuard.sol/ComplianceGuard.json
2026-03-02 12:14:09 -08:00

430 lines
18 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "ComplianceGuard",
"sourceName": "contracts/iso4217w/ComplianceGuard.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "string",
"name": "currencyCode",
"type": "string"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "checkType",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "reasonCode",
"type": "bytes32"
}
],
"name": "ComplianceCheckFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "string",
"name": "currencyCode",
"type": "string"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "checkType",
"type": "bytes32"
}
],
"name": "ComplianceCheckPassed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [],
"name": "ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "currencyCode",
"type": "string"
}
],
"name": "isISO4217Compliant",
"outputs": [
{
"internalType": "bool",
"name": "isISO4217",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserve",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "supply",
"type": "uint256"
}
],
"name": "isReserveSufficient",
"outputs": [
{
"internalType": "bool",
"name": "isSufficient",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "currencyCode",
"type": "string"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "currentSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "verifiedReserve",
"type": "uint256"
}
],
"name": "validateMint",
"outputs": [
{
"internalType": "bool",
"name": "isValid",
"type": "bool"
},
{
"internalType": "bytes32",
"name": "reasonCode",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserve",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "supply",
"type": "uint256"
}
],
"name": "validateMoneyMultiplier",
"outputs": [
{
"internalType": "bool",
"name": "isValid",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "currencyCode",
"type": "string"
}
],
"name": "violatesGRUIsolation",
"outputs": [
{
"internalType": "bool",
"name": "violatesIsolation",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x60803461007257601f6109fe38819003918201601f19168301916001600160401b038311848410176100775780849260209460405283398101031261007257516001600160a01b0381168103610072578061005c6100629261008d565b5061010b565b5060405161083290816101ac8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff1661010757818052816020526040822081835260205260408220600160ff1982541617905533916000805160206109de8339815191528180a4600190565b5090565b6001600160a01b031660008181527f7d7ffb7a348e1c6a02869081a26547b49160dd3df72d1d75a570eb9b698292ec60205260408120549091907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217759060ff166101a657808352826020526040832082845260205260408320600160ff198254161790556000805160206109de833981519152339380a4600190565b50509056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146103465750816319a1d92614610320578163248a9ca3146102f25781632f2ff15d146102d457816336568abe1461029957816375b238fc1461025e57816391d1485414610224578163972438f7146101ce578163a217fddf146101b3578163d547741f1461017e578163de9ad0961461011c578163f6caf3eb146100d3575063fe3f8b53146100b457600080fd5b346100cf576020906100c536610399565b9091519110158152f35b5080fd5b8284346101195760203660031901126101195782359067ffffffffffffffff8211610119575061010b602093610110923691016103da565b6106e9565b90519015158152f35b80fd5b8284346101195760203660031901126101195782359067ffffffffffffffff82116101195750602092610151913691016103da565b9061015b8261066f565b918261016b575b50519015158152f35b6101769192506106e9565b159083610162565b5050346100cf5760016101af916101aa610197366103b4565b9390928387528660205286200154610538565b6105fa565b5080f35b5050346100cf57816003193601126100cf5751908152602090f35b905082346101195760803660031901126101195781359067ffffffffffffffff8211610119575061021691610205913691016103da565b606435906044359060243590610453565b825191151582526020820152f35b5050346100cf5760ff8160209361023a366103b4565b9082528186528282206001600160a01b039091168252855220549151911615158152f35b5050346100cf57816003193601126100cf57602090517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b8383346100cf576102a9366103b4565b91336001600160a01b038416036102c55750906101af916105fa565b5163334bd91960e11b81528490fd5b5050346100cf5760016101af916102ed610197366103b4565b61057c565b90503461031c57602036600319011261031c57816020936001923581528085522001549051908152f35b8280fd5b5050346100cf5760209061033c61033636610399565b90610504565b5090519015158152f35b84913461031c57602036600319011261031c573563ffffffff60e01b811680910361031c5760209250637965db0b60e01b8114908115610388575b5015158152f35b6301ffc9a760e01b14905083610381565b60409060031901126103af576004359060243590565b600080fd5b60409060031901126103af57600435906024356001600160a01b03811681036103af5790565b81601f820112156103af5780359067ffffffffffffffff9283831161043d5760405193601f8401601f19908116603f011685019081118582101761043d57604052828452602083830101116103af57816000926020809301838601378301015290565b634e487b7160e01b600052604160045260246000fd5b9392939190916104628161066f565b156104d857610470906106e9565b6104ad5761047e8185610504565b9490156104a4576104909394506107a7565b901561049f5750600190600090565b600091565b50505060009190565b505090506000907fbebc73a4856e1972c0d5622f50235fafd5b8bb9100a532a546df755534770adb90565b50505090506000907f6dac1c3dce5c4ac544f284dddd6e58c64718aafda747ee48fdee1a777e29741b90565b1061051157600190600090565b6000907fb2f66a30991b9d14c9b6417f5ca54f8bda351f5bff52394387b6cac76cd6f66a90565b80600052600060205260406000203360005260205260ff604060002054161561055e5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146105f557808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146105f55780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60039060038151036106e25760005b82811061068d57505050600190565b81518110156106cc576020818301015160f81c604181109081156106c1575b506106b95760010161067e565b505050600090565b605a915011386106ac565b634e487b7160e01b600052603260045260246000fd5b5050600090565b602081519101207f3bce5d33306651a6f825323e347f7dde6e7d478f739d7801dd1a156d1082ef57811490811561077d575b8115610753575b811561072c575090565b7fb12041addd3285c2b6d2a98e6dc83b6f7dc08f5942fa2296e6ce355782d133de91501490565b7f9dd967dd89b196c3d39f30180cbfe6d91b2a16dc0c0a05c39a100e33eea78be781149150610722565b7fd634abdbffb01f6071633c28617c54d198c23dc58ff500f0d76b6ec64ea3e64c8114915061071b565b909182018092116107e657106107bf57600190600090565b6000907f185eb5fa4a3dc24fe9ec8b1b772e3e08c64cc52f170e6adcbc7d652ba3d0d8c690565b634e487b7160e01b600052601160045260246000fdfea26469706673582212204aefda2d2a2f8a4912a849a77ab5fdcfb93bb3bbcff8e148c6b1481d22e1fdec64736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146103465750816319a1d92614610320578163248a9ca3146102f25781632f2ff15d146102d457816336568abe1461029957816375b238fc1461025e57816391d1485414610224578163972438f7146101ce578163a217fddf146101b3578163d547741f1461017e578163de9ad0961461011c578163f6caf3eb146100d3575063fe3f8b53146100b457600080fd5b346100cf576020906100c536610399565b9091519110158152f35b5080fd5b8284346101195760203660031901126101195782359067ffffffffffffffff8211610119575061010b602093610110923691016103da565b6106e9565b90519015158152f35b80fd5b8284346101195760203660031901126101195782359067ffffffffffffffff82116101195750602092610151913691016103da565b9061015b8261066f565b918261016b575b50519015158152f35b6101769192506106e9565b159083610162565b5050346100cf5760016101af916101aa610197366103b4565b9390928387528660205286200154610538565b6105fa565b5080f35b5050346100cf57816003193601126100cf5751908152602090f35b905082346101195760803660031901126101195781359067ffffffffffffffff8211610119575061021691610205913691016103da565b606435906044359060243590610453565b825191151582526020820152f35b5050346100cf5760ff8160209361023a366103b4565b9082528186528282206001600160a01b039091168252855220549151911615158152f35b5050346100cf57816003193601126100cf57602090517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b8383346100cf576102a9366103b4565b91336001600160a01b038416036102c55750906101af916105fa565b5163334bd91960e11b81528490fd5b5050346100cf5760016101af916102ed610197366103b4565b61057c565b90503461031c57602036600319011261031c57816020936001923581528085522001549051908152f35b8280fd5b5050346100cf5760209061033c61033636610399565b90610504565b5090519015158152f35b84913461031c57602036600319011261031c573563ffffffff60e01b811680910361031c5760209250637965db0b60e01b8114908115610388575b5015158152f35b6301ffc9a760e01b14905083610381565b60409060031901126103af576004359060243590565b600080fd5b60409060031901126103af57600435906024356001600160a01b03811681036103af5790565b81601f820112156103af5780359067ffffffffffffffff9283831161043d5760405193601f8401601f19908116603f011685019081118582101761043d57604052828452602083830101116103af57816000926020809301838601378301015290565b634e487b7160e01b600052604160045260246000fd5b9392939190916104628161066f565b156104d857610470906106e9565b6104ad5761047e8185610504565b9490156104a4576104909394506107a7565b901561049f5750600190600090565b600091565b50505060009190565b505090506000907fbebc73a4856e1972c0d5622f50235fafd5b8bb9100a532a546df755534770adb90565b50505090506000907f6dac1c3dce5c4ac544f284dddd6e58c64718aafda747ee48fdee1a777e29741b90565b1061051157600190600090565b6000907fb2f66a30991b9d14c9b6417f5ca54f8bda351f5bff52394387b6cac76cd6f66a90565b80600052600060205260406000203360005260205260ff604060002054161561055e5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146105f557808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146105f55780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60039060038151036106e25760005b82811061068d57505050600190565b81518110156106cc576020818301015160f81c604181109081156106c1575b506106b95760010161067e565b505050600090565b605a915011386106ac565b634e487b7160e01b600052603260045260246000fd5b5050600090565b602081519101207f3bce5d33306651a6f825323e347f7dde6e7d478f739d7801dd1a156d1082ef57811490811561077d575b8115610753575b811561072c575090565b7fb12041addd3285c2b6d2a98e6dc83b6f7dc08f5942fa2296e6ce355782d133de91501490565b7f9dd967dd89b196c3d39f30180cbfe6d91b2a16dc0c0a05c39a100e33eea78be781149150610722565b7fd634abdbffb01f6071633c28617c54d198c23dc58ff500f0d76b6ec64ea3e64c8114915061071b565b909182018092116107e657106107bf57600190600090565b6000907f185eb5fa4a3dc24fe9ec8b1b772e3e08c64cc52f170e6adcbc7d652ba3d0d8c690565b634e487b7160e01b600052601160045260246000fdfea26469706673582212204aefda2d2a2f8a4912a849a77ab5fdcfb93bb3bbcff8e148c6b1481d22e1fdec64736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}