UNPKG

@credenza-web3/contracts

Version:

Credenza Contracts

316 lines (315 loc) 25.8 kB
{ "_format": "hh-sol-artifact-1", "contractName": "FirstGoalContract", "sourceName": "contracts/firstgoal/FirstGoalContract.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "addOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "clearOwners", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getActiveGames", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gameId", "type": "uint256" }, { "internalType": "address", "name": "userAddress", "type": "address" } ], "name": "getChoice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDescription", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gameId", "type": "uint256" } ], "name": "getGameChoices", "outputs": [ { "components": [ { "internalType": "uint256", "name": "gameId", "type": "uint256" }, { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "uint256", "name": "choiceId", "type": "uint256" } ], "internalType": "struct FirstGoalContract.GameUserChoice[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwners", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTrustedForwarder", "outputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" } ], "name": "getUserChoices", "outputs": [ { "components": [ { "internalType": "uint256", "name": "gameId", "type": "uint256" }, { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "uint256", "name": "choiceId", "type": "uint256" } ], "internalType": "struct FirstGoalContract.GameUserChoice[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVersion", "outputs": [ { "internalType": "string", "name": "version", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gameId", "type": "uint256" }, { "internalType": "uint256", "name": "choiceId", "type": "uint256" } ], "name": "makeChoice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "uint256", "name": "gameId", "type": "uint256" }, { "internalType": "uint256", "name": "choiceId", "type": "uint256" } ], "name": "makeChoiceAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "removeOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "description", "type": "string" } ], "name": "setDescription", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_forwarder", "type": "address" } ], "name": "setTrustedForwarder", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801562000010575f80fd5b50620000256200001f6200002b565b62000060565b62000177565b5f601436108015906200004857506003546001600160a01b031633145b156200005b575060131936013560601c90565b503390565b600154158062000096575062000096620000796200002b565b6001600160a01b03165f9081526020819052604090205460ff1690565b620000f25760405162461bcd60e51b815260206004820152602260248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604482015261371760f11b606482015260840160405180910390fd5b6001600160a01b0381165f9081526020819052604090205460ff1662000174576001600160a01b0381165f818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191690911790555b50565b6111d980620001855f395ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063572b6c051161009e578063a0e67e2b1161006e578063a0e67e2b14610258578063c8d691721461026d578063ce1b815f14610280578063da7422281461029b578063e1b2c727146102ae575f80fd5b8063572b6c05146101fd5780637065cb481461021f5780637f5e47cb1461023257806390c3f38f14610245575f80fd5b80632f54bf6e116100d95780632f54bf6e14610187578063389d73ed146101c257806340a54a2d146101e25780635260f5e6146101f5575f80fd5b80630d8e6e2c1461010a578063173825d9146101555780631a0925411461016a5780631b76929c14610172575b5f80fd5b60408051808201909152601981527f4669727374476f616c436f6e7472616374207620312e302e300000000000000060208201525b60405161014c9190610cff565b60405180910390f35b610168610163366004610d65565b6102cf565b005b61013f61039d565b61017a61042d565b60405161014c9190610d85565b6101b2610195366004610d65565b6001600160a01b03165f9081526020819052604090205460ff1690565b604051901515815260200161014c565b6101d56101d0366004610dc8565b610482565b60405161014c9190610ddf565b6101686101f0366004610e40565b6105b5565b61016861065d565b6101b261020b366004610d65565b6003546001600160a01b0391821691161490565b61016861022d366004610d65565b610703565b610168610240366004610e60565b6107b5565b610168610253366004610ea4565b610845565b610260610882565b60405161014c9190610f4f565b6101d561027b366004610d65565b6108e1565b6003546040516001600160a01b03909116815260200161014c565b6101686102a9366004610d65565b610a26565b6102c16102bc366004610f8f565b610a75565b60405190815260200161014c565b60015415806102e457506102e4610195610a9f565b6103095760405162461bcd60e51b815260040161030090610fb9565b60405180910390fd5b6001600160a01b0381165f9081526020819052604090205460ff166103705760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610300565b6001600160a01b0381165f908152602081905260409020805460ff1916905561039a600182610ad2565b50565b6060600280546103ac90610ffb565b80601f01602080910402602001604051908101604052809291908181526020018280546103d890610ffb565b80156104235780601f106103fa57610100808354040283529160200191610423565b820191905f5260205f20905b81548152906001019060200180831161040657829003601f168201915b5050505050905090565b6060600780548060200260200160405190810160405280929190818152602001828054801561042357602002820191905f5260205f20905b815481526020019060010190808311610465575050505050905090565b5f818152600560205260408120546060919067ffffffffffffffff8111156104ac576104ac610e90565b60405190808252806020026020018201604052801561050757816020015b6104f460405180606001604052805f81526020015f6001600160a01b031681526020015f81525090565b8152602001906001900390816104ca5790505b5090505f5b5f848152600560205260409020548110156105ae575f84815260056020526040812080548390811061054057610540611033565b5f9182526020918290200154604080516060810182528881526001600160a01b0390921692820183905291925090810161057a8784610a75565b81525083838151811061058f5761058f611033565b60200260200101819052505080806105a69061105b565b91505061050c565b5092915050565b5f81116105f85760405162461bcd60e51b81526020600482015260116024820152701253959053125117d0d213d250d157d251607a1b6044820152606401610300565b610604826102bc610a9f565b156106475760405162461bcd60e51b815260206004820152601360248201527243484f4943455f414c52454144595f4d41444560681b6044820152606401610300565b610659610652610a9f565b8383610bd1565b5050565b60015415806106725750610672610195610a9f565b61068e5760405162461bcd60e51b815260040161030090610fb9565b5f5b6001548110156106f5575f805f600184815481106106b0576106b0611033565b5f918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055806106ed8161105b565b915050610690565b5061070160015f610cd1565b565b60015415806107185750610718610195610a9f565b6107345760405162461bcd60e51b815260040161030090610fb9565b6001600160a01b0381165f9081526020819052604090205460ff1661039a576001600160a01b03165f818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b60015415806107ca57506107ca610195610a9f565b6107e65760405162461bcd60e51b815260040161030090610fb9565b5f81116108355760405162461bcd60e51b815260206004820152601760248201527f43484f4943455f52455345545f50524f484942495445440000000000000000006044820152606401610300565b610840838383610bd1565b505050565b600154158061085a575061085a610195610a9f565b6108765760405162461bcd60e51b815260040161030090610fb9565b600261065982826110c0565b6060600180548060200260200160405190810160405280929190818152602001828054801561042357602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108ba575050505050905090565b6001600160a01b0381165f908152600860205260408120546060919067ffffffffffffffff81111561091557610915610e90565b60405190808252806020026020018201604052801561097057816020015b61095d60405180606001604052805f81526020015f6001600160a01b031681526020015f81525090565b8152602001906001900390816109335790505b5090505f5b6001600160a01b0384165f908152600860205260409020548110156105ae576001600160a01b0384165f9081526008602052604081208054839081106109bd576109bd611033565b905f5260205f20015490506040518060600160405280828152602001866001600160a01b031681526020016109f28388610a75565b815250838381518110610a0757610a07611033565b6020026020010181905250508080610a1e9061105b565b915050610975565b6001541580610a3b5750610a3b610195610a9f565b610a575760405162461bcd60e51b815260040161030090610fb9565b600380546001600160a01b0319166001600160a01b03831617905550565b6001600160a01b0381165f9081526004602090815260408083208584529091529020545b92915050565b5f60143610801590610abb57506003546001600160a01b031633145b15610acd575060131936013560601c90565b503390565b5f5b825481101561084057816001600160a01b0316838281548110610af957610af9611033565b5f918252602090912001546001600160a01b031603610bbf5782548390610b229060019061117c565b81548110610b3257610b32611033565b905f5260205f20015f9054906101000a90046001600160a01b0316838281548110610b5f57610b5f611033565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480610b9a57610b9a61118f565b5f8281526020902081015f1990810180546001600160a01b0319169055019055505050565b80610bc98161105b565b915050610ad4565b6001600160a01b0383165f9081526004602090815260408083208584529091528120549003610c4f575f8281526005602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b0389169081179091558452600883529083208054918201815583529120018290555b6001600160a01b0383165f9081526004602090815260408083208584528252808320849055600690915290205460ff16610840576007805460018181019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018390555f838152600660205260409020805460ff19169091179055505050565b5080545f8255905f5260205f209081019061039a91905b80821115610cfb575f8155600101610ce8565b5090565b5f6020808352835180828501525f5b81811015610d2a57858101830151858201604001528201610d0e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d60575f80fd5b919050565b5f60208284031215610d75575f80fd5b610d7e82610d4a565b9392505050565b602080825282518282018190525f9190848201906040850190845b81811015610dbc57835183529284019291840191600101610da0565b50909695505050505050565b5f60208284031215610dd8575f80fd5b5035919050565b602080825282518282018190525f919060409081850190868401855b82811015610e3357815180518552868101516001600160a01b0316878601528501518585015260609093019290850190600101610dfb565b5091979650505050505050565b5f8060408385031215610e51575f80fd5b50508035926020909101359150565b5f805f60608486031215610e72575f80fd5b610e7b84610d4a565b95602085013595506040909401359392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610eb4575f80fd5b813567ffffffffffffffff80821115610ecb575f80fd5b818401915084601f830112610ede575f80fd5b813581811115610ef057610ef0610e90565b604051601f8201601f19908116603f01168101908382118183101715610f1857610f18610e90565b81604052828152876020848701011115610f30575f80fd5b826020860160208301375f928101602001929092525095945050505050565b602080825282518282018190525f9190848201906040850190845b81811015610dbc5783516001600160a01b031683529284019291840191600101610f6a565b5f8060408385031215610fa0575f80fd5b82359150610fb060208401610d4a565b90509250929050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b600181811c9082168061100f57607f821691505b60208210810361102d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161106c5761106c611047565b5060010190565b601f821115610840575f81815260208120601f850160051c810160208610156110995750805b601f850160051c820191505b818110156110b8578281556001016110a5565b505050505050565b815167ffffffffffffffff8111156110da576110da610e90565b6110ee816110e88454610ffb565b84611073565b602080601f831160018114611121575f841561110a5750858301515b5f19600386901b1c1916600185901b1785556110b8565b5f85815260208120601f198616915b8281101561114f57888601518255948401946001909101908401611130565b508582101561116c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610a9957610a99611047565b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220e11f825a1fdd0a1ea4018ba238e827e58b4447425faf056745ab39b93eee174264736f6c63430008140033", "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063572b6c051161009e578063a0e67e2b1161006e578063a0e67e2b14610258578063c8d691721461026d578063ce1b815f14610280578063da7422281461029b578063e1b2c727146102ae575f80fd5b8063572b6c05146101fd5780637065cb481461021f5780637f5e47cb1461023257806390c3f38f14610245575f80fd5b80632f54bf6e116100d95780632f54bf6e14610187578063389d73ed146101c257806340a54a2d146101e25780635260f5e6146101f5575f80fd5b80630d8e6e2c1461010a578063173825d9146101555780631a0925411461016a5780631b76929c14610172575b5f80fd5b60408051808201909152601981527f4669727374476f616c436f6e7472616374207620312e302e300000000000000060208201525b60405161014c9190610cff565b60405180910390f35b610168610163366004610d65565b6102cf565b005b61013f61039d565b61017a61042d565b60405161014c9190610d85565b6101b2610195366004610d65565b6001600160a01b03165f9081526020819052604090205460ff1690565b604051901515815260200161014c565b6101d56101d0366004610dc8565b610482565b60405161014c9190610ddf565b6101686101f0366004610e40565b6105b5565b61016861065d565b6101b261020b366004610d65565b6003546001600160a01b0391821691161490565b61016861022d366004610d65565b610703565b610168610240366004610e60565b6107b5565b610168610253366004610ea4565b610845565b610260610882565b60405161014c9190610f4f565b6101d561027b366004610d65565b6108e1565b6003546040516001600160a01b03909116815260200161014c565b6101686102a9366004610d65565b610a26565b6102c16102bc366004610f8f565b610a75565b60405190815260200161014c565b60015415806102e457506102e4610195610a9f565b6103095760405162461bcd60e51b815260040161030090610fb9565b60405180910390fd5b6001600160a01b0381165f9081526020819052604090205460ff166103705760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610300565b6001600160a01b0381165f908152602081905260409020805460ff1916905561039a600182610ad2565b50565b6060600280546103ac90610ffb565b80601f01602080910402602001604051908101604052809291908181526020018280546103d890610ffb565b80156104235780601f106103fa57610100808354040283529160200191610423565b820191905f5260205f20905b81548152906001019060200180831161040657829003601f168201915b5050505050905090565b6060600780548060200260200160405190810160405280929190818152602001828054801561042357602002820191905f5260205f20905b815481526020019060010190808311610465575050505050905090565b5f818152600560205260408120546060919067ffffffffffffffff8111156104ac576104ac610e90565b60405190808252806020026020018201604052801561050757816020015b6104f460405180606001604052805f81526020015f6001600160a01b031681526020015f81525090565b8152602001906001900390816104ca5790505b5090505f5b5f848152600560205260409020548110156105ae575f84815260056020526040812080548390811061054057610540611033565b5f9182526020918290200154604080516060810182528881526001600160a01b0390921692820183905291925090810161057a8784610a75565b81525083838151811061058f5761058f611033565b60200260200101819052505080806105a69061105b565b91505061050c565b5092915050565b5f81116105f85760405162461bcd60e51b81526020600482015260116024820152701253959053125117d0d213d250d157d251607a1b6044820152606401610300565b610604826102bc610a9f565b156106475760405162461bcd60e51b815260206004820152601360248201527243484f4943455f414c52454144595f4d41444560681b6044820152606401610300565b610659610652610a9f565b8383610bd1565b5050565b60015415806106725750610672610195610a9f565b61068e5760405162461bcd60e51b815260040161030090610fb9565b5f5b6001548110156106f5575f805f600184815481106106b0576106b0611033565b5f918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055806106ed8161105b565b915050610690565b5061070160015f610cd1565b565b60015415806107185750610718610195610a9f565b6107345760405162461bcd60e51b815260040161030090610fb9565b6001600160a01b0381165f9081526020819052604090205460ff1661039a576001600160a01b03165f818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b60015415806107ca57506107ca610195610a9f565b6107e65760405162461bcd60e51b815260040161030090610fb9565b5f81116108355760405162461bcd60e51b815260206004820152601760248201527f43484f4943455f52455345545f50524f484942495445440000000000000000006044820152606401610300565b610840838383610bd1565b505050565b600154158061085a575061085a610195610a9f565b6108765760405162461bcd60e51b815260040161030090610fb9565b600261065982826110c0565b6060600180548060200260200160405190810160405280929190818152602001828054801561042357602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108ba575050505050905090565b6001600160a01b0381165f908152600860205260408120546060919067ffffffffffffffff81111561091557610915610e90565b60405190808252806020026020018201604052801561097057816020015b61095d60405180606001604052805f81526020015f6001600160a01b031681526020015f81525090565b8152602001906001900390816109335790505b5090505f5b6001600160a01b0384165f908152600860205260409020548110156105ae576001600160a01b0384165f9081526008602052604081208054839081106109bd576109bd611033565b905f5260205f20015490506040518060600160405280828152602001866001600160a01b031681526020016109f28388610a75565b815250838381518110610a0757610a07611033565b6020026020010181905250508080610a1e9061105b565b915050610975565b6001541580610a3b5750610a3b610195610a9f565b610a575760405162461bcd60e51b815260040161030090610fb9565b600380546001600160a01b0319166001600160a01b03831617905550565b6001600160a01b0381165f9081526004602090815260408083208584529091529020545b92915050565b5f60143610801590610abb57506003546001600160a01b031633145b15610acd575060131936013560601c90565b503390565b5f5b825481101561084057816001600160a01b0316838281548110610af957610af9611033565b5f918252602090912001546001600160a01b031603610bbf5782548390610b229060019061117c565b81548110610b3257610b32611033565b905f5260205f20015f9054906101000a90046001600160a01b0316838281548110610b5f57610b5f611033565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480610b9a57610b9a61118f565b5f8281526020902081015f1990810180546001600160a01b0319169055019055505050565b80610bc98161105b565b915050610ad4565b6001600160a01b0383165f9081526004602090815260408083208584529091528120549003610c4f575f8281526005602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b0389169081179091558452600883529083208054918201815583529120018290555b6001600160a01b0383165f9081526004602090815260408083208584528252808320849055600690915290205460ff16610840576007805460018181019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018390555f838152600660205260409020805460ff19169091179055505050565b5080545f8255905f5260205f209081019061039a91905b80821115610cfb575f8155600101610ce8565b5090565b5f6020808352835180828501525f5b81811015610d2a57858101830151858201604001528201610d0e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d60575f80fd5b919050565b5f60208284031215610d75575f80fd5b610d7e82610d4a565b9392505050565b602080825282518282018190525f9190848201906040850190845b81811015610dbc57835183529284019291840191600101610da0565b50909695505050505050565b5f60208284031215610dd8575f80fd5b5035919050565b602080825282518282018190525f919060409081850190868401855b82811015610e3357815180518552868101516001600160a01b0316878601528501518585015260609093019290850190600101610dfb565b5091979650505050505050565b5f8060408385031215610e51575f80fd5b50508035926020909101359150565b5f805f60608486031215610e72575f80fd5b610e7b84610d4a565b95602085013595506040909401359392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610eb4575f80fd5b813567ffffffffffffffff80821115610ecb575f80fd5b818401915084601f830112610ede575f80fd5b813581811115610ef057610ef0610e90565b604051601f8201601f19908116603f01168101908382118183101715610f1857610f18610e90565b81604052828152876020848701011115610f30575f80fd5b826020860160208301375f928101602001929092525095945050505050565b602080825282518282018190525f9190848201906040850190845b81811015610dbc5783516001600160a01b031683529284019291840191600101610f6a565b5f8060408385031215610fa0575f80fd5b82359150610fb060208401610d4a565b90509250929050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b600181811c9082168061100f57607f821691505b60208210810361102d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161106c5761106c611047565b5060010190565b601f821115610840575f81815260208120601f850160051c810160208610156110995750805b601f850160051c820191505b818110156110b8578281556001016110a5565b505050505050565b815167ffffffffffffffff8111156110da576110da610e90565b6110ee816110e88454610ffb565b84611073565b602080601f831160018114611121575f841561110a5750858301515b5f19600386901b1c1916600185901b1785556110b8565b5f85815260208120601f198616915b8281101561114f57888601518255948401946001909101908401611130565b508582101561116c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610a9957610a99611047565b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220e11f825a1fdd0a1ea4018ba238e827e58b4447425faf056745ab39b93eee174264736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }