{ "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": "user", "type": "address" }, { "indexed": false, "internalType": "address payable", "name": "relayerAddress", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "functionSignature", "type": "bytes" } ], "name": "MetaTransactionExecuted", "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": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "internalType": "bytes32", "name": "_sigR", "type": "bytes32" }, { "internalType": "bytes32", "name": "_sigS", "type": "bytes32" }, { "internalType": "uint8", "name": "_sigV", "type": "uint8" } ], "name": "executeMetaTransaction", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "getChainId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_nonce", "type": "uint256" }, { "internalType": "uint256", "name": "_chainId", "type": "uint256" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "internalType": "bytes32", "name": "_sigR", "type": "bytes32" }, { "internalType": "bytes32", "name": "_sigS", "type": "bytes32" }, { "internalType": "uint8", "name": "_sigV", "type": "uint8" } ], "name": "verify", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" } ], "name": "getMetatransactionNonce", "outputs": [ { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "identifier", "outputs": [ { "internalType": "bytes32", "name": "_identifier", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "uint256", "name": "_version", "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": "_roles", "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": { "deprecate(bool)": { "params": { "_deprecated": "Indicates whether the extension should be deprecated or undeprecated" } }, "executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": { "params": { "_payload": "Function call to make via meta transaction", "_sigR": "R part of the signature", "_sigS": "S part of the signature", "_sigV": "V part of the signature", "_user": "Address of user trying to do meta transaction" } }, "getCapabilityRoles(bytes4)": { "params": { "_sig": "The function signature" }, "returns": { "_roles": "The byte32 of permissions required" } }, "getMetatransactionNonce(address)": { "params": { "userAddress": "The user's address" }, "returns": { "nonce": "The nonce" } }, "identifier()": { "returns": { "_identifier": "The extension's identifier" } }, "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()": { "returns": { "_version": "The extension's version number" } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "deprecate(bool)": { "notice": "Called when deprecating (or undeprecating) the extension" }, "executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": { "notice": "Main function to be called when user wants to execute meta transaction. The actual function to be called should be passed as param with name functionSignature Here the basic signature recovery is being used. Signature is expected to be generated using personal_sign method." }, "finishUpgrade()": { "notice": "Called when upgrading the extension" }, "getCapabilityRoles(bytes4)": { "notice": "Return the permissions required for each function" }, "getMetatransactionNonce(address)": { "notice": "Gets the next nonce for a meta-transaction" }, "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 } }