"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
function joinSignature(name, argTypes = []) {
    return `${name}(${argTypes.join(',')})`;
}
function abiEncode(joinedSignature) {
    return web3_eth_abi_1.default.encodeFunctionSignature(joinedSignature);
}
exports.makeOrderSignature = joinSignature('makeOrder', [
    'address',
    'address[6]',
    'uint256[8]',
    'bytes32',
    'bytes',
    'bytes',
    'bytes',
]);
exports.takeOrderSignature = joinSignature('takeOrder', [
    'address',
    'address[6]',
    'uint256[8]',
    'bytes32',
    'bytes',
    'bytes',
    'bytes',
]);
exports.cancelOrderSignature = joinSignature('cancelOrder', [
    'address',
    'address[6]',
    'uint256[8]',
    'bytes32',
    'bytes',
    'bytes',
    'bytes',
]);
exports.withdrawTokensSignature = joinSignature('withdrawTokens', [
    'address',
    'address[6]',
    'uint256[8]',
    'bytes32',
    'bytes',
    'bytes',
    'bytes',
]);
exports.makeOrderSignatureBytes = abiEncode(exports.makeOrderSignature);
exports.takeOrderSignatureBytes = abiEncode(exports.takeOrderSignature);
exports.cancelOrderSignatureBytes = abiEncode(exports.cancelOrderSignature);
exports.withdrawTokensSignatureBytes = abiEncode(exports.withdrawTokensSignature);
