@pvpbet/pvpbet
Version:
A decentralized PVP betting platform based on the Ethereum Virtual Machine (EVM).
298 lines (292 loc) • 16.2 kB
TypeScript
// This file was autogenerated by hardhat-viem, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable
import type { Address } from "viem";
import type { AbiParameterToPrimitiveType, GetContractReturnType } from "@nomicfoundation/hardhat-viem/types";
import "@nomicfoundation/hardhat-viem/types";
export interface TestBetOption$Type {
"_format": "hh-sol-artifact-1",
"contractName": "TestBetOption",
"sourceName": "contracts/test/TestBetOption.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "bet_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "AddressInsufficientBalance",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "paid",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "Underpayment",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "arbitrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "arbitrated",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "bet",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "chip",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "functionCall",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isBetOption",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "verified",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "verifier",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "verify",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "vote",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "player",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "wager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "wagered",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5060405161094038038061094083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6108ad806100936000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638e36d24a116100715780638e36d24a14610168578063a0b5ffb01461016f578063b61500e414610182578063bbb82d891461018a578063bfa547171461019e578063f4cbf60b146101c357600080fd5b806311610c25146100b957806332e65b39146100e957806354fd4d501461010d578063632a9a52146101375780636704fe9f1461013f578063851c193314610154575b600080fd5b6000546100cc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546100fd90600160b01b900460ff1681565b60405190151581526020016100e0565b6040805180820190915260058152640312e312e360dc1b60208201525b6040516100e0919061072a565b6100cc6101d6565b61015261014d366004610752565b610253565b005b6000546100fd90600160a01b900460ff1681565b60016100fd565b61012a61017d36600461077e565b6102d6565b6100cc610322565b6000546100fd90600160a81b900460ff1681565b6101526101ac366004610752565b50506000805460ff60b01b1916600160b01b179055565b6101526101d1366004610752565b610376565b60008060009054906101000a90046001600160a01b03166001600160a01b031663632a9a526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024e9190610803565b905090565b61025b6101d6565b6040516357a09c4f60e11b81526001600160a01b03848116600483015260248201849052919091169063af41389e90604401600060405180830381600087803b1580156102a757600080fd5b505af11580156102bb573d6000803e3d6000fd5b50506000805460ff60a81b1916600160a81b17905550505050565b60606103188484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506103aa915050565b90505b9392505050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663b61500e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022a573d6000803e3d6000fd5b610392610381610322565b6001600160a01b038416908361044c565b50506000805460ff60a01b1916600160a01b17905550565b6060814710156103d45760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080856001600160a01b031684866040516103f09190610820565b60006040518083038185875af1925050503d806000811461042d576040519150601f19603f3d011682016040523d82523d6000602084013e610432565b606091505b5091509150610442868383610652565b9695505050505050565b60006001600160a01b0383166104a257600019820361047357836001600160a01b03163191505b8134101561049d5760405163d17e444b60e01b8152346004820152602481018390526044016103cb565b610648565b8260018301610518576040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156104f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610515919061083c565b92505b8260000361052a57600091505061031b565b604051636eb1769f60e11b81526001600160a01b0386811660048301523060248301526000919083169063dd62ed3e90604401602060405180830381865afa15801561057a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059e919061083c565b9050838110156105cb5760405163d17e444b60e01b815260048101829052602481018590526044016103cb565b6040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018690528316906323b872dd906064016020604051808303816000875af1158015610620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106449190610855565b5050505b5060019392505050565b60608261066757610662826106ae565b61031b565b815115801561067e57506001600160a01b0384163b155b156106a757604051639996b31560e01b81526001600160a01b03851660048201526024016103cb565b508061031b565b8051156106be5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b60005b838110156106f55781810151838201526020016106dd565b50506000910152565b600081518084526107168160208601602086016106da565b601f01601f19169290920160200192915050565b60208152600061031b60208301846106fe565b6001600160a01b03811681146106d757600080fd5b6000806040838503121561076557600080fd5b82356107708161073d565b946020939093013593505050565b60008060006040848603121561079357600080fd5b833561079e8161073d565b9250602084013567ffffffffffffffff808211156107bb57600080fd5b818601915086601f8301126107cf57600080fd5b8135818111156107de57600080fd5b8760208285010111156107f057600080fd5b6020830194508093505050509250925092565b60006020828403121561081557600080fd5b815161031b8161073d565b600082516108328184602087016106da565b9190910192915050565b60006020828403121561084e57600080fd5b5051919050565b60006020828403121561086757600080fd5b8151801515811461031b57600080fdfea26469706673582212206cd309ecf8745f8c332f21e0cfd15650699d797f1500b301b9538bafca8c3e5b64736f6c63430008140033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80638e36d24a116100715780638e36d24a14610168578063a0b5ffb01461016f578063b61500e414610182578063bbb82d891461018a578063bfa547171461019e578063f4cbf60b146101c357600080fd5b806311610c25146100b957806332e65b39146100e957806354fd4d501461010d578063632a9a52146101375780636704fe9f1461013f578063851c193314610154575b600080fd5b6000546100cc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546100fd90600160b01b900460ff1681565b60405190151581526020016100e0565b6040805180820190915260058152640312e312e360dc1b60208201525b6040516100e0919061072a565b6100cc6101d6565b61015261014d366004610752565b610253565b005b6000546100fd90600160a01b900460ff1681565b60016100fd565b61012a61017d36600461077e565b6102d6565b6100cc610322565b6000546100fd90600160a81b900460ff1681565b6101526101ac366004610752565b50506000805460ff60b01b1916600160b01b179055565b6101526101d1366004610752565b610376565b60008060009054906101000a90046001600160a01b03166001600160a01b031663632a9a526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024e9190610803565b905090565b61025b6101d6565b6040516357a09c4f60e11b81526001600160a01b03848116600483015260248201849052919091169063af41389e90604401600060405180830381600087803b1580156102a757600080fd5b505af11580156102bb573d6000803e3d6000fd5b50506000805460ff60a81b1916600160a81b17905550505050565b60606103188484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506103aa915050565b90505b9392505050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663b61500e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022a573d6000803e3d6000fd5b610392610381610322565b6001600160a01b038416908361044c565b50506000805460ff60a01b1916600160a01b17905550565b6060814710156103d45760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080856001600160a01b031684866040516103f09190610820565b60006040518083038185875af1925050503d806000811461042d576040519150601f19603f3d011682016040523d82523d6000602084013e610432565b606091505b5091509150610442868383610652565b9695505050505050565b60006001600160a01b0383166104a257600019820361047357836001600160a01b03163191505b8134101561049d5760405163d17e444b60e01b8152346004820152602481018390526044016103cb565b610648565b8260018301610518576040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156104f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610515919061083c565b92505b8260000361052a57600091505061031b565b604051636eb1769f60e11b81526001600160a01b0386811660048301523060248301526000919083169063dd62ed3e90604401602060405180830381865afa15801561057a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059e919061083c565b9050838110156105cb5760405163d17e444b60e01b815260048101829052602481018590526044016103cb565b6040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018690528316906323b872dd906064016020604051808303816000875af1158015610620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106449190610855565b5050505b5060019392505050565b60608261066757610662826106ae565b61031b565b815115801561067e57506001600160a01b0384163b155b156106a757604051639996b31560e01b81526001600160a01b03851660048201526024016103cb565b508061031b565b8051156106be5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b60005b838110156106f55781810151838201526020016106dd565b50506000910152565b600081518084526107168160208601602086016106da565b601f01601f19169290920160200192915050565b60208152600061031b60208301846106fe565b6001600160a01b03811681146106d757600080fd5b6000806040838503121561076557600080fd5b82356107708161073d565b946020939093013593505050565b60008060006040848603121561079357600080fd5b833561079e8161073d565b9250602084013567ffffffffffffffff808211156107bb57600080fd5b818601915086601f8301126107cf57600080fd5b8135818111156107de57600080fd5b8760208285010111156107f057600080fd5b6020830194508093505050509250925092565b60006020828403121561081557600080fd5b815161031b8161073d565b600082516108328184602087016106da565b9190910192915050565b60006020828403121561084e57600080fd5b5051919050565b60006020828403121561086757600080fd5b8151801515811461031b57600080fdfea26469706673582212206cd309ecf8745f8c332f21e0cfd15650699d797f1500b301b9538bafca8c3e5b64736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}
declare module "@nomicfoundation/hardhat-viem/types" {
export function deployContract(
contractName: "TestBetOption",
constructorArgs: [bet_: AbiParameterToPrimitiveType<{"name":"bet_","type":"address"}>],
config?: DeployContractConfig
): Promise<GetContractReturnType<TestBetOption$Type["abi"]>>;
export function deployContract(
contractName: "contracts/test/TestBetOption.sol:TestBetOption",
constructorArgs: [bet_: AbiParameterToPrimitiveType<{"name":"bet_","type":"address"}>],
config?: DeployContractConfig
): Promise<GetContractReturnType<TestBetOption$Type["abi"]>>;
export function sendDeploymentTransaction(
contractName: "TestBetOption",
constructorArgs: [bet_: AbiParameterToPrimitiveType<{"name":"bet_","type":"address"}>],
config?: SendDeploymentTransactionConfig
): Promise<{
contract: GetContractReturnType<TestBetOption$Type["abi"]>;
deploymentTransaction: GetTransactionReturnType;
}>;
export function sendDeploymentTransaction(
contractName: "contracts/test/TestBetOption.sol:TestBetOption",
constructorArgs: [bet_: AbiParameterToPrimitiveType<{"name":"bet_","type":"address"}>],
config?: SendDeploymentTransactionConfig
): Promise<{
contract: GetContractReturnType<TestBetOption$Type["abi"]>;
deploymentTransaction: GetTransactionReturnType;
}>;
export function getContractAt(
contractName: "TestBetOption",
address: Address,
config?: GetContractAtConfig
): Promise<GetContractReturnType<TestBetOption$Type["abi"]>>;
export function getContractAt(
contractName: "contracts/test/TestBetOption.sol:TestBetOption",
address: Address,
config?: GetContractAtConfig
): Promise<GetContractReturnType<TestBetOption$Type["abi"]>>;
}