1 tx
6.4k calls
constructor
constructor(address resolver_, string tokenUri_)
functions
badgeTokenURI
viewfunction badgeTokenURI(bytes32) view returns (string)
getAndValidateBadge
viewfunction getAndValidateBadge(bytes32 uid) view returns (tuple)
hasBadge
viewfunction hasBadge(address user) view returns (bool)
isAttester
viewfunction isAttester(address) view returns (bool)
owner
viewfunction owner() view returns (address)
resolver
viewfunction resolver() view returns (address)
sharedTokenURI
viewfunction sharedTokenURI() view returns (string)
issueBadge
nonpayablefunction issueBadge(tuple attestation) returns (bool)
renounceOwnership
nonpayablefunction renounceOwnership()
revokeBadge
nonpayablefunction revokeBadge(tuple attestation) returns (bool)
toggleAttester
nonpayablefunction toggleAttester(address attester, bool enable)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
IssueBadge
event IssueBadge(bytes32 indexed uid)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RevokeBadge
event RevokeBadge(bytes32 indexed uid)
errors
AttestationBadgeMismatch
error AttestationBadgeMismatch(bytes32 uid)
SingletonBadge
error SingletonBadge()
Unauthorized
error Unauthorized()
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620010a9380380620010a98339810160408190526200003491620000c9565b81620000403362000063565b6001600160a01b031660805260036200005a82826200024e565b5050506200031a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215620000dd57600080fd5b82516001600160a01b0381168114620000f557600080fd5b602084810151919350906001600160401b03808211156200011557600080fd5b818601915086601f8301126200012a57600080fd5b8151818111156200013f576200013f620000b3565b604051601f8201601f19908116603f011681019083821181831017156200016a576200016a620000b3565b8160405282815289868487010111156200018357600080fd5b600093505b82841015620001a7578484018601518185018701529285019262000188565b60008684830101528096505050505050509250929050565b600181811c90821680620001d457607f821691505b602082108103620001f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024957600081815260208120601f850160051c81016020861015620002245750805b601f850160051c820191505b81811015620002455782815560010162000230565b5050505b505050565b81516001600160401b038111156200026a576200026a620000b3565b62000282816200027b8454620001bf565b84620001fb565b602080601f831160018114620002ba5760008415620002a15750858301515b600019600386901b1c1916600185901b17855562000245565b600085815260208120601f198616915b82811015620002eb57888601518255948401946001909101908401620002ca565b50858210156200030a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051610d5f6200034a6000396000818160be01528181610380015281816104be01526105870152610d5f6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638298b030116100715780638298b0301461017d5780638c6f12f0146101905780638da5cb5b146101b0578063b6ebe539146101c1578063d753a63d146101e4578063f2fde38b146101f757600080fd5b806304f3bcec146100b95780630ee48948146100fd5780632483056314610112578063412a05c3146101325780635e50864f1461013a578063715018a614610175575b600080fd5b6100e07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61011061010b366004610884565b61020a565b005b6101256101203660046108bd565b61023d565b6040516100f49190610926565b6101256102d1565b610165610148366004610940565b6001600160a01b0316600090815260016020526040902054151590565b60405190151581526020016100f4565b61011061035f565b61016561018b36600461095d565b610373565b6101a361019e3660046108bd565b61044f565b6040516100f49190610999565b6000546001600160a01b03166100e0565b6101656101cf366004610940565b60026020526000908152604090205460ff1681565b6101656101f236600461095d565b61057a565b610110610205366004610940565b610656565b6102126106cf565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b60606003805461024c90610a70565b80601f016020809104026020016040519081016040528092919081815260200182805461027890610a70565b80156102c55780601f1061029a576101008083540402835291602001916102c5565b820191906000526020600020905b8154815290600101906020018083116102a857829003601f168201915b50505050509050919050565b600380546102de90610a70565b80601f016020809104026020016040519081016040528092919081815260200182805461030a90610a70565b80156103575780601f1061032c57610100808354040283529160200191610357565b820191906000526020600020905b81548152906001019060200180831161033a57829003601f168201915b505050505081565b6103676106cf565b6103716000610729565b565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103bd576040516282b42960e81b815260040160405180910390fd5b6103c682610779565b6103d257506000919050565b60018060006103e760e0860160c08701610940565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546104169190610ac0565b90915550506040518235907f504e4727721de18c6bf7f66448a6ff6da00aa4b1f00b6034e71723ae7ce6373a90600090a2506001919050565b604080516101408101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c0830182905260e08301829052610100830182905261012083015291516308c6f12f60e41b8152600481018490529091906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638c6f12f090602401600060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261052d9190810190610bce565b9050600061053f82610120015161078a565b5090506001600160a01b03811630146105735760405163b923d26160e01b8152600481018590526024015b60405180910390fd5b5092915050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105c4576040516282b42960e81b815260040160405180910390fd5b6105cd826107ab565b6105d957506000919050565b60018060006105ee60e0860160c08701610940565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461061d9190610cc5565b90915550506040518235907fa0785ec0b9bf31a5475d33c716fb9f500f0ea0bb9e4bc10ec39d5db763c1da1590600090a2506001919050565b61065e6106cf565b6001600160a01b0381166106c35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161056a565b6106cc81610729565b50565b6000546001600160a01b031633146103715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161056a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610784826107b6565b92915050565b60006060828060200190518101906107a29190610cd8565b91509150915091565b6000610784826107c1565b600061078482610811565b60006107cc82610811565b6107d857506000919050565b6107eb61014860e0840160c08501610940565b1561080957604051630c59311960e11b815260040160405180910390fd5b506001919050565b600060026000610828610100850160e08601610940565b6001600160a01b0316815260208101919091526040016000205460ff16610809576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03811681146106cc57600080fd5b80151581146106cc57600080fd5b6000806040838503121561089757600080fd5b82356108a281610861565b915060208301356108b281610876565b809150509250929050565b6000602082840312156108cf57600080fd5b5035919050565b60005b838110156108f15781810151838201526020016108d9565b50506000910152565b600081518084526109128160208601602086016108d6565b601f01601f19169290920160200192915050565b60208152600061093960208301846108fa565b9392505050565b60006020828403121561095257600080fd5b813561093981610861565b60006020828403121561096f57600080fd5b813567ffffffffffffffff81111561098657600080fd5b8201610140818503121561093957600080fd5b602081528151602082015260208201516040820152600060408301516109cb606084018267ffffffffffffffff169052565b50606083015167ffffffffffffffff8116608084015250608083015167ffffffffffffffff811660a08401525060a083015160c083015260c0830151610a1c60e08401826001600160a01b03169052565b5060e0830151610100610a39818501836001600160a01b03169052565b8401519050610120610a4e8482018315159052565b840151610140848101529050610a686101608401826108fa565b949350505050565b600181811c90821680610a8457607f821691505b602082108103610aa457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561078457610784610aaa565b634e487b7160e01b600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715610b0d57610b0d610ad3565b60405290565b805167ffffffffffffffff81168114610b2b57600080fd5b919050565b8051610b2b81610861565b8051610b2b81610876565b600082601f830112610b5757600080fd5b815167ffffffffffffffff80821115610b7257610b72610ad3565b604051601f8301601f19908116603f01168101908282118183101715610b9a57610b9a610ad3565b81604052838152866020858801011115610bb357600080fd5b610bc48460208301602089016108d6565b9695505050505050565b600060208284031215610be057600080fd5b815167ffffffffffffffff80821115610bf857600080fd5b908301906101408286031215610c0d57600080fd5b610c15610ae9565b8251815260208301516020820152610c2f60408401610b13565b6040820152610c4060608401610b13565b6060820152610c5160808401610b13565b608082015260a083015160a0820152610c6c60c08401610b30565b60c0820152610c7d60e08401610b30565b60e0820152610100610c90818501610b3b565b908201526101208381015183811115610ca857600080fd5b610cb488828701610b46565b918301919091525095945050505050565b8082018082111561078457610784610aaa565b60008060408385031215610ceb57600080fd5b8251610cf681610861565b602084015190925067ffffffffffffffff811115610d1357600080fd5b610d1f85828601610b46565b915050925092905056fea2646970667358221220725aaf9f113a676f23b91d06cb0ac2994e79a57e0714982f7f5cd2a3a1ab0cb364736f6c634300081300330000000000000000000000004560fecd62b14a463be44d40fe5cfd595eec01130000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004268747470733a2f2f6f6d6e696875622e6e7963332e6469676974616c6f6365616e7370616365732e636f6d2f7363726f6c6c2f62616467655f676f6c642e6a736f6e000000000000000000000000000000000000000000000000000000000000