eip712 0.1.0

tool to generate EIP-712 compatible Solidity
Documentation
[
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "sender",
				"type": "address"
			},
			{
				"components": [
					{
						"internalType": "bytes",
						"name": "bye",
						"type": "bytes"
					},
					{
						"components": [
							{
								"internalType": "uint256",
								"name": "hi",
								"type": "uint256"
							}
						],
						"internalType": "struct Foo.Msg1",
						"name": "hi",
						"type": "tuple"
					},
					{
						"components": [
							{
								"internalType": "uint256",
								"name": "hi",
								"type": "uint256"
							}
						],
						"internalType": "struct Foo.Msg1[][]",
						"name": "high",
						"type": "tuple[][]"
					},
					{
						"internalType": "fixed8x1",
						"name": "h",
						"type": "fixed8x1"
					}
				],
				"internalType": "struct Foo.Msg2",
				"name": "foo",
				"type": "tuple"
			}
		],
		"name": "_recover",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"components": [
					{
						"internalType": "bytes",
						"name": "bye",
						"type": "bytes"
					},
					{
						"components": [
							{
								"internalType": "uint256",
								"name": "hi",
								"type": "uint256"
							}
						],
						"internalType": "struct Foo.Msg1",
						"name": "hi",
						"type": "tuple"
					},
					{
						"components": [
							{
								"internalType": "uint256",
								"name": "hi",
								"type": "uint256"
							}
						],
						"internalType": "struct Foo.Msg1[][]",
						"name": "high",
						"type": "tuple[][]"
					},
					{
						"internalType": "fixed8x1",
						"name": "h",
						"type": "fixed8x1"
					}
				],
				"internalType": "struct Foo.Msg2",
				"name": "foo",
				"type": "tuple"
			},
			{
				"internalType": "uint8",
				"name": "v",
				"type": "uint8"
			},
			{
				"internalType": "bytes32",
				"name": "r",
				"type": "bytes32"
			},
			{
				"internalType": "bytes32",
				"name": "s",
				"type": "bytes32"
			}
		],
		"name": "recover",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"components": [
					{
						"internalType": "bytes",
						"name": "bye",
						"type": "bytes"
					},
					{
						"components": [
							{
								"internalType": "uint256",
								"name": "hi",
								"type": "uint256"
							}
						],
						"internalType": "struct Foo.Msg1",
						"name": "hi",
						"type": "tuple"
					},
					{
						"components": [
							{
								"internalType": "uint256",
								"name": "hi",
								"type": "uint256"
							}
						],
						"internalType": "struct Foo.Msg1[][]",
						"name": "high",
						"type": "tuple[][]"
					},
					{
						"internalType": "fixed8x1",
						"name": "h",
						"type": "fixed8x1"
					}
				],
				"internalType": "struct Foo.Msg2",
				"name": "foo",
				"type": "tuple"
			},
			{
				"internalType": "uint8",
				"name": "v",
				"type": "uint8"
			},
			{
				"internalType": "bytes32",
				"name": "r",
				"type": "bytes32"
			},
			{
				"internalType": "bytes32",
				"name": "s",
				"type": "bytes32"
			}
		],
		"name": "recoverPermit",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	}
]