{
    "contractName": "OneTxPayment",
    "abi": [
        {
            "anonymous": false,
            "inputs": [],
            "name": "ExtensionInitialised",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "authority",
                    "type": "address"
                }
            ],
            "name": "LogSetAuthority",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "LogSetOwner",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "agent",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "fundamentalId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "nPayouts",
                    "type": "uint256"
                }
            ],
            "name": "OneTxPaymentMade",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "authority",
            "outputs": [
                {
                    "internalType": "contract DSAuthority",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "getColony",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "getDeprecated",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "contract DSAuthority",
                    "name": "authority_",
                    "type": "address"
                }
            ],
            "name": "setAuthority",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "owner_",
                    "type": "address"
                }
            ],
            "name": "setOwner",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "identifier",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "pure",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "version",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "pure",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_colony",
                    "type": "address"
                }
            ],
            "name": "install",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "finishUpgrade",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bool",
                    "name": "_deprecated",
                    "type": "bool"
                }
            ],
            "name": "deprecate",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "uninstall",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes4",
                    "name": "_sig",
                    "type": "bytes4"
                }
            ],
            "name": "getCapabilityRoles",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_permissionDomainId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_childSkillIndex",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_callerPermissionDomainId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_callerChildSkillIndex",
                    "type": "uint256"
                },
                {
                    "internalType": "address payable[]",
                    "name": "_workers",
                    "type": "address[]"
                },
                {
                    "internalType": "address[]",
                    "name": "_tokens",
                    "type": "address[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_amounts",
                    "type": "uint256[]"
                },
                {
                    "internalType": "uint256",
                    "name": "_domainId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_skillId",
                    "type": "uint256"
                }
            ],
            "name": "makePayment",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_permissionDomainId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_childSkillIndex",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_callerPermissionDomainId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_callerChildSkillIndex",
                    "type": "uint256"
                },
                {
                    "internalType": "address payable[]",
                    "name": "_workers",
                    "type": "address[]"
                },
                {
                    "internalType": "address[]",
                    "name": "_tokens",
                    "type": "address[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_amounts",
                    "type": "uint256[]"
                },
                {
                    "internalType": "uint256",
                    "name": "_domainId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_skillId",
                    "type": "uint256"
                }
            ],
            "name": "makePaymentFundedFromDomain",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "devdoc": {
        "kind": "dev",
        "methods": {
            "getCapabilityRoles(bytes4)": {
                "params": {
                    "_sig": "The function signature"
                },
                "returns": {
                    "_0": "The byte32 of permissions required"
                }
            },
            "install(address)": {
                "params": {
                    "_colony": "The colony in which the extension holds permissions"
                }
            },
            "makePayment(uint256,uint256,uint256,uint256,address[],address[],uint256[],uint256,uint256)": {
                "details": "Assumes that each entity holds administration and funding roles in the root domain",
                "params": {
                    "_amounts": "amounts of the tokens being paid out",
                    "_callerChildSkillIndex": "Index of the _callerPermissionDomainId skill.children array to get",
                    "_callerPermissionDomainId": "The domainId in which the _caller_ has the administration permission (must have funding in root)",
                    "_childSkillIndex": "Index of the _permissionDomainId skill.children array to get",
                    "_domainId": "The domainId the payment should be coming from",
                    "_permissionDomainId": "The domainId in which the _contract_ has permissions to add a payment and fund it",
                    "_skillId": "The skillId that the payment should be marked with, possibly awarding reputation in this skill.",
                    "_tokens": "Addresses of the tokens the payments are being made in. 0x00 for Ether.",
                    "_workers": "The addresses of the recipients of the payment"
                }
            },
            "makePaymentFundedFromDomain(uint256,uint256,uint256,uint256,address[],address[],uint256[],uint256,uint256)": {
                "details": "Assumes that each entity holds administration and funding roles in the same domain,   although contract and caller can have the permissions in different domains. Payment is taken from domain funds - if the domain does not have sufficient funds, call will fail.",
                "params": {
                    "_amounts": "The amounts of the tokens being paid out",
                    "_callerChildSkillIndex": "Index of the _callerPermissionDomainId skill.children array to get",
                    "_callerPermissionDomainId": "The domainId in which the _caller_ has permissions to add a payment and fund it",
                    "_childSkillIndex": "Index of the _permissionDomainId skill.children array to get",
                    "_domainId": "The domainId the payment should be coming from",
                    "_permissionDomainId": "The domainId in which the _contract_ has permissions to add a payment and fund it",
                    "_skillId": "The skillId that the payment should be marked with, possibly awarding reputation in this skill.",
                    "_tokens": "The addresses of the token the payments are being made in. 0x00 for Ether.",
                    "_workers": "The addresses of the recipients of the payment"
                }
            }
        },
        "version": 1
    },
    "userdoc": {
        "kind": "user",
        "methods": {
            "deprecate(bool)": {
                "notice": "Called when deprecating (or undeprecating) the extension"
            },
            "finishUpgrade()": {
                "notice": "Called when upgrading the extension"
            },
            "getCapabilityRoles(bytes4)": {
                "notice": "Return the permissions required for each function"
            },
            "identifier()": {
                "notice": "Returns the identifier of the extension"
            },
            "install(address)": {
                "notice": "Configures the extension"
            },
            "makePayment(uint256,uint256,uint256,uint256,address[],address[],uint256[],uint256,uint256)": {
                "notice": "Completes a colony payment in a single transaction"
            },
            "makePaymentFundedFromDomain(uint256,uint256,uint256,uint256,address[],address[],uint256[],uint256,uint256)": {
                "notice": "Completes a colony payment in a single transaction"
            },
            "uninstall()": {
                "notice": "Called when uninstalling the extension"
            },
            "version()": {
                "notice": "Returns the version of the extension"
            }
        },
        "version": 1
    }
}