UNPKG

@credenza-web3/contracts

Version:

Credenza Contracts

315 lines (314 loc) 23.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "IPFSMetadataMembershipContract", "sourceName": "contracts/membership/IPFSMetadataMembershipContract.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "target", "type": "address" } ], "name": "MembershipAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "target", "type": "address" } ], "name": "MembershipRemoved", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "customerAddress", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" }, { "internalType": "string", "name": "file", "type": "string" } ], "name": "addMembership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "customerAddress", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "name": "addMembership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "addOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "clearOwners", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "customerAddress", "type": "address" } ], "name": "confirmMembership", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDescription", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "customerAddress", "type": "address" } ], "name": "getMembershipFile", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "customerAddress", "type": "address" } ], "name": "getMembershipMetadata", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": [], "name": "getVersion", "outputs": [ { "internalType": "string", "name": "", "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": "address", "name": "customerAddress", "type": "address" } ], "name": "removeMembership", "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": "0x608060405234801562000010575f80fd5b50620000256200001f62000039565b6200006e565b620000336200001f62000039565b62000185565b5f601436108015906200005657506003546001600160a01b031633145b1562000069575060131936013560601c90565b503390565b6001541580620000a45750620000a46200008762000039565b6001600160a01b03165f9081526020819052604090205460ff1690565b620001005760405162461bcd60e51b815260206004820152602260248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604482015261371760f11b606482015260840160405180910390fd5b6001600160a01b0381165f9081526020819052604090205460ff1662000182576001600160a01b0381165f818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191690911790555b50565b610fd580620001935f395ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063572b6c051161009e578063a0e67e2b1161006e578063a0e67e2b1461021c578063b3d6818114610231578063ce1b815f14610244578063da7422281461025f578063f17fa44e14610272575f80fd5b8063572b6c05146101c15780635b64bed0146101e35780637065cb48146101f657806390c3f38f14610209575f80fd5b80631f45405e116100d95780631f45405e146101585780632f54bf6e1461016b578063502ccb09146101a65780635260f5e6146101b9575f80fd5b80630d8e6e2c1461010a5780630e8ce1c514610128578063173825d91461013b5780631a09254114610150575b5f80fd5b61011261029d565b60405161011f9190610b07565b60405180910390f35b610112610136366004610b6d565b6102bd565b61014e610149366004610b6d565b6103e2565b005b6101126104b0565b61014e610166366004610c2a565b610540565b610196610179366004610b6d565b6001600160a01b03165f9081526020819052604090205460ff1690565b604051901515815260200161011f565b61014e6101b4366004610c99565b61059e565b61014e61063f565b6101966101cf366004610b6d565b6003546001600160a01b0391821691161490565b6101126101f1366004610b6d565b6106e5565b61014e610204366004610b6d565b610787565b61014e610217366004610ce4565b610839565b61022461087a565b60405161011f9190610d1e565b61014e61023f366004610b6d565b6108d9565b6003546040516001600160a01b03909116815260200161011f565b61014e61026d366004610b6d565b610953565b610196610280366004610b6d565b6001600160a01b03165f9081526004602052604090205460ff1690565b6060604051806060016040528060268152602001610f7a60269139905090565b6040516378bfd22760e11b81526001600160a01b0382166004820152606090309063f17fa44e90602401602060405180830381865afa158015610302573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103269190610d6a565b61033d57505060408051602081019091525f815290565b6001600160a01b0382165f908152600660205260409020805461035f90610d89565b80601f016020809104026020016040519081016040528092919081815260200182805461038b90610d89565b80156103d65780601f106103ad576101008083540402835291602001916103d6565b820191905f5260205f20905b8154815290600101906020018083116103b957829003601f168201915b50505050509050919050565b60015415806103f757506103f76101796109a2565b61041c5760405162461bcd60e51b815260040161041390610dc1565b60405180910390fd5b6001600160a01b0381165f9081526020819052604090205460ff166104835760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610413565b6001600160a01b0381165f908152602081905260409020805460ff191690556104ad6001826109d5565b50565b6060600280546104bf90610d89565b80601f01602080910402602001604051908101604052809291908181526020018280546104eb90610d89565b80156105365780601f1061050d57610100808354040283529160200191610536565b820191905f5260205f20905b81548152906001019060200180831161051957829003601f168201915b5050505050905090565b6001600160a01b0383165f908152600460209081526040808320805460ff19166001179055600590915290206105768382610e50565b506001600160a01b0383165f9081526006602052604090206105988282610e50565b50505050565b60015415806105b357506105b36101796109a2565b6105cf5760405162461bcd60e51b815260040161041390610dc1565b6001600160a01b0382165f908152600460209081526040808320805460ff19166001179055600590915290206106058282610e50565b506040516001600160a01b0383169033907fce83807ca74d689869c29adbce77172c8a762f90e26450adebe0a2ec29c80c2b905f90a35050565b600154158061065457506106546101796109a2565b6106705760405162461bcd60e51b815260040161041390610dc1565b5f5b6001548110156106d7575f805f6001848154811061069257610692610f0c565b5f918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055806106cf81610f34565b915050610672565b506106e360015f610ad9565b565b6040516378bfd22760e11b81526001600160a01b0382166004820152606090309063f17fa44e90602401602060405180830381865afa15801561072a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074e9190610d6a565b61076557505060408051602081019091525f815290565b6001600160a01b0382165f908152600560205260409020805461035f90610d89565b600154158061079c575061079c6101796109a2565b6107b85760405162461bcd60e51b815260040161041390610dc1565b6001600160a01b0381165f9081526020819052604090205460ff166104ad576001600160a01b03165f818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b600154158061084e575061084e6101796109a2565b61086a5760405162461bcd60e51b815260040161041390610dc1565b60026108768282610e50565b5050565b6060600180548060200260200160405190810160405280929190818152602001828054801561053657602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108b2575050505050905090565b60015415806108ee57506108ee6101796109a2565b61090a5760405162461bcd60e51b815260040161041390610dc1565b6001600160a01b0381165f81815260046020526040808220805460ff191690555133917f153a07e9ccc07353bbcd9c48710cd8ff1be4828e16589d8aa5f708d24ba1954691a350565b600154158061096857506109686101796109a2565b6109845760405162461bcd60e51b815260040161041390610dc1565b600380546001600160a01b0319166001600160a01b03831617905550565b5f601436108015906109be57506003546001600160a01b031633145b156109d0575060131936013560601c90565b503390565b5f5b8254811015610ad457816001600160a01b03168382815481106109fc576109fc610f0c565b5f918252602090912001546001600160a01b031603610ac25782548390610a2590600190610f4c565b81548110610a3557610a35610f0c565b905f5260205f20015f9054906101000a90046001600160a01b0316838281548110610a6257610a62610f0c565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480610a9d57610a9d610f65565b5f8281526020902081015f1990810180546001600160a01b0319169055019055505050565b80610acc81610f34565b9150506109d7565b505050565b5080545f8255905f5260205f20908101906104ad91905b80821115610b03575f8155600101610af0565b5090565b5f6020808352835180828501525f5b81811015610b3257858101830151858201604001528201610b16565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b68575f80fd5b919050565b5f60208284031215610b7d575f80fd5b610b8682610b52565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610bb0575f80fd5b813567ffffffffffffffff80821115610bcb57610bcb610b8d565b604051601f8301601f19908116603f01168101908282118183101715610bf357610bf3610b8d565b81604052838152866020858801011115610c0b575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f60608486031215610c3c575f80fd5b610c4584610b52565b9250602084013567ffffffffffffffff80821115610c61575f80fd5b610c6d87838801610ba1565b93506040860135915080821115610c82575f80fd5b50610c8f86828701610ba1565b9150509250925092565b5f8060408385031215610caa575f80fd5b610cb383610b52565b9150602083013567ffffffffffffffff811115610cce575f80fd5b610cda85828601610ba1565b9150509250929050565b5f60208284031215610cf4575f80fd5b813567ffffffffffffffff811115610d0a575f80fd5b610d1684828501610ba1565b949350505050565b602080825282518282018190525f9190848201906040850190845b81811015610d5e5783516001600160a01b031683529284019291840191600101610d39565b50909695505050505050565b5f60208284031215610d7a575f80fd5b81518015158114610b86575f80fd5b600181811c90821680610d9d57607f821691505b602082108103610dbb57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b601f821115610ad4575f81815260208120601f850160051c81016020861015610e295750805b601f850160051c820191505b81811015610e4857828155600101610e35565b505050505050565b815167ffffffffffffffff811115610e6a57610e6a610b8d565b610e7e81610e788454610d89565b84610e03565b602080601f831160018114610eb1575f8415610e9a5750858301515b5f19600386901b1c1916600185901b178555610e48565b5f85815260208120601f198616915b82811015610edf57888601518255948401946001909101908401610ec0565b5085821015610efc57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201610f4557610f45610f20565b5060010190565b81810381811115610f5f57610f5f610f20565b92915050565b634e487b7160e01b5f52603160045260245ffdfe495046534d657461646174614d656d62657273686970436f6e7472616374207620302e312e30a2646970667358221220aae4cdeba093ee62ddab1de15c9f263b220a905670b3026b6d8631bf48f75cb264736f6c63430008140033", "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063572b6c051161009e578063a0e67e2b1161006e578063a0e67e2b1461021c578063b3d6818114610231578063ce1b815f14610244578063da7422281461025f578063f17fa44e14610272575f80fd5b8063572b6c05146101c15780635b64bed0146101e35780637065cb48146101f657806390c3f38f14610209575f80fd5b80631f45405e116100d95780631f45405e146101585780632f54bf6e1461016b578063502ccb09146101a65780635260f5e6146101b9575f80fd5b80630d8e6e2c1461010a5780630e8ce1c514610128578063173825d91461013b5780631a09254114610150575b5f80fd5b61011261029d565b60405161011f9190610b07565b60405180910390f35b610112610136366004610b6d565b6102bd565b61014e610149366004610b6d565b6103e2565b005b6101126104b0565b61014e610166366004610c2a565b610540565b610196610179366004610b6d565b6001600160a01b03165f9081526020819052604090205460ff1690565b604051901515815260200161011f565b61014e6101b4366004610c99565b61059e565b61014e61063f565b6101966101cf366004610b6d565b6003546001600160a01b0391821691161490565b6101126101f1366004610b6d565b6106e5565b61014e610204366004610b6d565b610787565b61014e610217366004610ce4565b610839565b61022461087a565b60405161011f9190610d1e565b61014e61023f366004610b6d565b6108d9565b6003546040516001600160a01b03909116815260200161011f565b61014e61026d366004610b6d565b610953565b610196610280366004610b6d565b6001600160a01b03165f9081526004602052604090205460ff1690565b6060604051806060016040528060268152602001610f7a60269139905090565b6040516378bfd22760e11b81526001600160a01b0382166004820152606090309063f17fa44e90602401602060405180830381865afa158015610302573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103269190610d6a565b61033d57505060408051602081019091525f815290565b6001600160a01b0382165f908152600660205260409020805461035f90610d89565b80601f016020809104026020016040519081016040528092919081815260200182805461038b90610d89565b80156103d65780601f106103ad576101008083540402835291602001916103d6565b820191905f5260205f20905b8154815290600101906020018083116103b957829003601f168201915b50505050509050919050565b60015415806103f757506103f76101796109a2565b61041c5760405162461bcd60e51b815260040161041390610dc1565b60405180910390fd5b6001600160a01b0381165f9081526020819052604090205460ff166104835760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610413565b6001600160a01b0381165f908152602081905260409020805460ff191690556104ad6001826109d5565b50565b6060600280546104bf90610d89565b80601f01602080910402602001604051908101604052809291908181526020018280546104eb90610d89565b80156105365780601f1061050d57610100808354040283529160200191610536565b820191905f5260205f20905b81548152906001019060200180831161051957829003601f168201915b5050505050905090565b6001600160a01b0383165f908152600460209081526040808320805460ff19166001179055600590915290206105768382610e50565b506001600160a01b0383165f9081526006602052604090206105988282610e50565b50505050565b60015415806105b357506105b36101796109a2565b6105cf5760405162461bcd60e51b815260040161041390610dc1565b6001600160a01b0382165f908152600460209081526040808320805460ff19166001179055600590915290206106058282610e50565b506040516001600160a01b0383169033907fce83807ca74d689869c29adbce77172c8a762f90e26450adebe0a2ec29c80c2b905f90a35050565b600154158061065457506106546101796109a2565b6106705760405162461bcd60e51b815260040161041390610dc1565b5f5b6001548110156106d7575f805f6001848154811061069257610692610f0c565b5f918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055806106cf81610f34565b915050610672565b506106e360015f610ad9565b565b6040516378bfd22760e11b81526001600160a01b0382166004820152606090309063f17fa44e90602401602060405180830381865afa15801561072a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074e9190610d6a565b61076557505060408051602081019091525f815290565b6001600160a01b0382165f908152600560205260409020805461035f90610d89565b600154158061079c575061079c6101796109a2565b6107b85760405162461bcd60e51b815260040161041390610dc1565b6001600160a01b0381165f9081526020819052604090205460ff166104ad576001600160a01b03165f818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b600154158061084e575061084e6101796109a2565b61086a5760405162461bcd60e51b815260040161041390610dc1565b60026108768282610e50565b5050565b6060600180548060200260200160405190810160405280929190818152602001828054801561053657602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108b2575050505050905090565b60015415806108ee57506108ee6101796109a2565b61090a5760405162461bcd60e51b815260040161041390610dc1565b6001600160a01b0381165f81815260046020526040808220805460ff191690555133917f153a07e9ccc07353bbcd9c48710cd8ff1be4828e16589d8aa5f708d24ba1954691a350565b600154158061096857506109686101796109a2565b6109845760405162461bcd60e51b815260040161041390610dc1565b600380546001600160a01b0319166001600160a01b03831617905550565b5f601436108015906109be57506003546001600160a01b031633145b156109d0575060131936013560601c90565b503390565b5f5b8254811015610ad457816001600160a01b03168382815481106109fc576109fc610f0c565b5f918252602090912001546001600160a01b031603610ac25782548390610a2590600190610f4c565b81548110610a3557610a35610f0c565b905f5260205f20015f9054906101000a90046001600160a01b0316838281548110610a6257610a62610f0c565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480610a9d57610a9d610f65565b5f8281526020902081015f1990810180546001600160a01b0319169055019055505050565b80610acc81610f34565b9150506109d7565b505050565b5080545f8255905f5260205f20908101906104ad91905b80821115610b03575f8155600101610af0565b5090565b5f6020808352835180828501525f5b81811015610b3257858101830151858201604001528201610b16565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b68575f80fd5b919050565b5f60208284031215610b7d575f80fd5b610b8682610b52565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610bb0575f80fd5b813567ffffffffffffffff80821115610bcb57610bcb610b8d565b604051601f8301601f19908116603f01168101908282118183101715610bf357610bf3610b8d565b81604052838152866020858801011115610c0b575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f60608486031215610c3c575f80fd5b610c4584610b52565b9250602084013567ffffffffffffffff80821115610c61575f80fd5b610c6d87838801610ba1565b93506040860135915080821115610c82575f80fd5b50610c8f86828701610ba1565b9150509250925092565b5f8060408385031215610caa575f80fd5b610cb383610b52565b9150602083013567ffffffffffffffff811115610cce575f80fd5b610cda85828601610ba1565b9150509250929050565b5f60208284031215610cf4575f80fd5b813567ffffffffffffffff811115610d0a575f80fd5b610d1684828501610ba1565b949350505050565b602080825282518282018190525f9190848201906040850190845b81811015610d5e5783516001600160a01b031683529284019291840191600101610d39565b50909695505050505050565b5f60208284031215610d7a575f80fd5b81518015158114610b86575f80fd5b600181811c90821680610d9d57607f821691505b602082108103610dbb57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b601f821115610ad4575f81815260208120601f850160051c81016020861015610e295750805b601f850160051c820191505b81811015610e4857828155600101610e35565b505050505050565b815167ffffffffffffffff811115610e6a57610e6a610b8d565b610e7e81610e788454610d89565b84610e03565b602080601f831160018114610eb1575f8415610e9a5750858301515b5f19600386901b1c1916600185901b178555610e48565b5f85815260208120601f198616915b82811015610edf57888601518255948401946001909101908401610ec0565b5085821015610efc57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201610f4557610f45610f20565b5060010190565b81810381811115610f5f57610f5f610f20565b92915050565b634e487b7160e01b5f52603160045260245ffdfe495046534d657461646174614d656d62657273686970436f6e7472616374207620302e312e30a2646970667358221220aae4cdeba093ee62ddab1de15c9f263b220a905670b3026b6d8631bf48f75cb264736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }