{
    "contractName": "EventEmitterRegistry",
    "abi": [
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "dolomiteMargin",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "borrower",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "borrowAccountNumber",
                    "type": "uint256"
                }
            ],
            "name": "BorrowPositionOpen",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "accountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "inputToken",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "outputToken",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "withdrawalToken",
                    "type": "address"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "inputBalanceUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "outputBalanceUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "marginWithdrawalUpdate",
                    "type": "tuple"
                }
            ],
            "name": "MarginPositionClose",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "accountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "inputToken",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "outputToken",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "depositToken",
                    "type": "address"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "inputBalanceUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "outputBalanceUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "marginDepositUpdate",
                    "type": "tuple"
                }
            ],
            "name": "MarginPositionOpen",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "accountOwner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "accountNumber",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256[]",
                    "name": "marketIdsPath",
                    "type": "uint256[]"
                },
                {
                    "components": [
                        {
                            "internalType": "enum IGenericTraderProxyBase.TraderType",
                            "name": "traderType",
                            "type": "uint8"
                        },
                        {
                            "internalType": "uint256",
                            "name": "makerAccountIndex",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "trader",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes",
                            "name": "tradeData",
                            "type": "bytes"
                        }
                    ],
                    "indexed": false,
                    "internalType": "struct IGenericTraderProxyBase.TraderParam[]",
                    "name": "tradersPath",
                    "type": "tuple[]"
                }
            ],
            "name": "ZapExecuted",
            "type": "event"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "DOLOMITE_MARGIN",
            "outputs": [
                {
                    "internalType": "contract IDolomiteMargin",
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_accountOwner",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_accountNumber",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_marketIdsPath",
                    "type": "uint256[]"
                },
                {
                    "components": [
                        {
                            "internalType": "enum IGenericTraderProxyBase.TraderType",
                            "name": "traderType",
                            "type": "uint8"
                        },
                        {
                            "internalType": "uint256",
                            "name": "makerAccountIndex",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "trader",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes",
                            "name": "tradeData",
                            "type": "bytes"
                        }
                    ],
                    "internalType": "struct IGenericTraderProxyBase.TraderParam[]",
                    "name": "_tradersPath",
                    "type": "tuple[]"
                }
            ],
            "name": "emitZapExecuted",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_accountOwner",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_accountNumber",
                    "type": "uint256"
                }
            ],
            "name": "emitBorrowPositionOpen",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_accountOwner",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_accountNumber",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_inputToken",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_outputToken",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_depositToken",
                    "type": "address"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "_inputBalanceUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "_outputBalanceUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "_marginDepositUpdate",
                    "type": "tuple"
                }
            ],
            "name": "emitMarginPositionOpen",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_accountOwner",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_accountNumber",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_inputToken",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_outputToken",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_withdrawalToken",
                    "type": "address"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "_inputBalanceUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "_outputBalanceUpdate",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint256",
                                    "name": "value",
                                    "type": "uint256"
                                }
                            ],
                            "internalType": "struct Types.Wei",
                            "name": "deltaWei",
                            "type": "tuple"
                        },
                        {
                            "components": [
                                {
                                    "internalType": "bool",
                                    "name": "sign",
                                    "type": "bool"
                                },
                                {
                                    "internalType": "uint128",
                                    "name": "value",
                                    "type": "uint128"
                                }
                            ],
                            "internalType": "struct Types.Par",
                            "name": "newPar",
                            "type": "tuple"
                        }
                    ],
                    "internalType": "struct Events.BalanceUpdate",
                    "name": "_marginWithdrawalUpdate",
                    "type": "tuple"
                }
            ],
            "name": "emitMarginPositionClose",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "networks": {
        "1": {
            "links": {},
            "address": "0x12d6dB1F1834658F01FC69a506F49BEE424B38cc",
            "transactionHash": "0xa8309ccd2b49fc5db5acf19c77f485cb608564cba2ce6b1ca1aabcddd01acd06"
        },
        "196": {
            "links": {},
            "address": "0x0A512510438bD340C59a000e997709EedC0B7589",
            "transactionHash": "0x94b65661adbe61d8552a45befdc55b20aed6f17bf4e3b9160d77157e2b2e3dff"
        },
        "1101": {
            "links": {},
            "address": "0xB4F0eB9c8fb5FBabEF339f8738173dB645c4147d",
            "transactionHash": "0x4253c795262fcd96ec1a0a69eb0474bca5d6ea01aba92efc857880a0ad9c3638"
        },
        "3637": {
            "links": {},
            "address": "0x12d6dB1F1834658F01FC69a506F49BEE424B38cc",
            "transactionHash": "0x946b5abe14467d02b6b2a878a612dc12304ccc9bdb2a0dbacd8efc1d348e5a16"
        },
        "5000": {
            "links": {},
            "address": "0x2fdb2bfB1F5926e9996fd86Fe5E0782b126f8785",
            "transactionHash": "0x03b468e90a5e66aa69caec5859bc64074c3e303ee75c589612374811b9632aa6"
        },
        "5330": {
            "links": {},
            "address": "0x12d6dB1F1834658F01FC69a506F49BEE424B38cc",
            "transactionHash": "0x868854b55e4dfc7769062b21e9454bdced937f6afe0e7d2cdb3ee8771307100b"
        },
        "8453": {
            "links": {},
            "address": "0x12d6dB1F1834658F01FC69a506F49BEE424B38cc",
            "transactionHash": "0x1e5b2b85e101668446733a097deb38708c92bd20c07d8f25e92510d689e25103"
        },
        "57073": {
            "links": {},
            "address": "0x12d6dB1F1834658F01FC69a506F49BEE424B38cc",
            "transactionHash": "0x6db72c4892a1277480f5df1492194608885f879feb4ea3e4b2a36a04cbf7ed5e"
        },
        "80094": {
            "links": {},
            "address": "0x12d6dB1F1834658F01FC69a506F49BEE424B38cc",
            "transactionHash": "0x1bd24d0547ada6c08817b2d44179df18ea7b56f6822645971ff42eff400d6816"
        }
    }
}
