diff --git a/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-1700810717.json b/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-1700810717.json new file mode 100644 index 00000000..7e36266b --- /dev/null +++ b/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-1700810717.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0xfdf8be4e153c8f6ccf606eff0f8e617e5e6aa17095907d6048f0f1ece6ef6f2b", + "transactionType": "CREATE", + "contractName": "RNSAuction", + "contractAddress": "0xA38C0e64c79BBF5Ba4406794943f8F3012Be5618", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "gas": "0x2da63d", + "value": "0x0", + "data": "0x608060405261000c610011565b6100d0565b600054610100900460ff161561007d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100ce576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61283180620000e06000396000f3fe6080604052600436106101cd5760003560e01c806381bec1b3116100f7578063a282d4ae11610095578063db5e1ec611610064578063db5e1ec6146105ec578063ec14cf371461060c578063f0f442601461062c578063f5b541a61461064c57600080fd5b8063a282d4ae1461057c578063b967169014610591578063ca15c873146105ac578063d547741f146105cc57600080fd5b806391a3823f116100d157806391a3823f1461050757806391d14854146105345780639979ef4514610554578063a217fddf1461056757600080fd5b806381bec1b3146104a95780638c843314146104c95780639010d07c146104e757600080fd5b80633b19e84a1161016f5780636e7d60f21161013e5780636e7d60f2146103cc578063777b0a18146103f957806378bd793514610419578063791a26b41461048957600080fd5b80633b19e84a146103445780634c255c971461037657806353f9195e1461038c57806360223b44146103ac57600080fd5b806319a3ee40116101ab57806319a3ee40146102ab578063248a9ca3146102c35780632f2ff15d1461030257806336568abe1461032457600080fd5b806301ffc9a7146101d25780630afe1bb31461020757806315a2916214610237575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612022565b61066e565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5061021f6305a39a8081565b6040516001600160401b0390911681526020016101fe565b34801561024357600080fd5b5061029061025236600461204c565b604080518082019091526000808252602082015250600090815260366020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016101fe565b3480156102b757600080fd5b5061021f6301e1338081565b3480156102cf57600080fd5b506102f46102de36600461204c565b6000908152600160208190526040909120015490565b6040519081526020016101fe565b34801561030e57600080fd5b5061032261031d36600461207a565b610699565b005b34801561033057600080fd5b5061032261033f36600461207a565b6106c4565b34801561035057600080fd5b506038546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b34801561038257600080fd5b506102f461271081565b34801561039857600080fd5b506101f26103a736600461204c565b610747565b3480156103b857600080fd5b506103226103c736600461204c565b61076a565b3480156103d857600080fd5b506103ec6103e73660046120f5565b61077e565b6040516101fe9190612136565b34801561040557600080fd5b5061032261041436600461217a565b610a6d565b34801561042557600080fd5b5061043961043436600461204c565b610bd3565b6040805183518152602080850151818301529382015180516001600160a01b0316828401529384015160608083019190915291840151608082015292015160a083015260c082015260e0016101fe565b34801561049557600080fd5b506103ec6104a43660046120f5565b610c88565b3480156104b557600080fd5b506103226104c436600461220b565b610e43565b3480156104d557600080fd5b506035546001600160a01b031661035e565b3480156104f357600080fd5b5061035e610502366004612238565b610ec0565b34801561051357600080fd5b5061052761052236600461225a565b610edf565b6040516101fe91906122e2565b34801561054057600080fd5b506101f261054f36600461207a565b6111d0565b61032261056236600461204c565b6111fb565b34801561057357600080fd5b506102f4600081565b34801561058857600080fd5b506039546102f4565b34801561059d57600080fd5b5061021f6001600160401b0381565b3480156105b857600080fd5b506102f46105c736600461204c565b6113ad565b3480156105d857600080fd5b506103226105e736600461207a565b6113c4565b3480156105f857600080fd5b506102f461060736600461231c565b6113ea565b34801561061857600080fd5b50610322610627366004612338565b611487565b34801561063857600080fd5b506103226106473660046123bc565b611624565b34801561065857600080fd5b506102f46000805160206127dc83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610693575061069382611638565b92915050565b600082815260016020819052604090912001546106b58161166d565b6106bf838361167a565b505050565b6001600160a01b03811633146107395760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610743828261169c565b5050565b600881901c6000908152603a6020526040812054600160ff84161b161515610693565b60006107758161166d565b610743826116be565b60606000806107a0604051806040016040528060008152602001600081525090565b6107a8611fcd565b85806001600160401b038111156107c1576107c16123d9565b6040519080825280602002602001820160405280156107ea578160200160208202803683370190505b506035549096506001600160a01b03166000610812426301e133806001600160401b0361171c565b905060005b83811015610a49578a8a82818110610831576108316123ef565b60209081029290920135600081815260378452604080822081516060808201845282548252600180840154838a0152845160808101865260028501546001600160a01b031681526003850154818b0152600485015481870152600590940154848301528285019384528251865260368952848620855180870190965280548652015497840197909752905190950151929c5099509297509091039050610a415760208601514210156108f6576040516372d1250d60e01b815260040160405180910390fd5b84604001516040015160000361091f576040516323bbcc0160e01b815260040160405180910390fd5b604085015160200151610932908861241b565b60405163fc284d1160e01b8152600481018a90526001600160401b03841660248201529097506001600160a01b0384169063fc284d1190604401600060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040858101515190516323b872dd60e01b81523060048201526001600160a01b039182166024820152604481018a9052908416906323b872dd90606401600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b5050505042898281518110610a2057610a206123ef565b602090810291909101810182905260008a8152603790915260409020600501555b600101610817565b50603854610a60906001600160a01b031687611752565b5050505050505092915050565b6000805160206127dc833981519152610a858161166d565b85610a8f816117b7565b84801580610a9d5750808414155b15610abb57604051634ec4810560e11b815260040160405180910390fd5b6000806000805b84811015610b87578a8a82818110610adc57610adc6123ef565b905060200201359350610aee84610747565b610b0b57604051637d6fe8d760e11b815260040160405180910390fd5b6000848152603760205260409020805493509150821580610b2b57508b83145b80610b3857506004820154155b610b5857604051631480ec2760e31b815260048101859052602401610730565b8b8255888882818110610b6d57610b6d6123ef565b905060200201358260010181905550806001019050610ac2565b508a7f9a845a1c4235343a450f5e39d4179b7e2a6c9586c02bff45d956717f4a19dd948b8b8b8b604051610bbe9493929190612460565b60405180910390a25050505050505050505050565b610bdb611fcd565b5060008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518351808501855286815285018690528552603684528285208351808501909452805484529091015492820192909252909190610c808382611804565b915050915091565b60606000805160206127dc833981519152610ca28161166d565b826000819003610cc557604051634ec4810560e11b815260040160405180910390fd5b806001600160401b03811115610cdd57610cdd6123d9565b604051908082528060200260200182016040528015610d06578160200160208202803683370190505b506035549093506001600160a01b03167fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6886301e1338060005b84811015610e3757836001600160a01b0316630570891f848b8b85818110610d6957610d696123ef565b9050602002810190610d7b9190612492565b600030886040518763ffffffff1660e01b8152600401610da0969594939291906124d8565b60408051808303816000875af1158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de29190612534565b9050878281518110610df657610df66123ef565b602002602001018181525050610e2f878281518110610e1757610e176123ef565b6020026020010151603a61185c90919063ffffffff16565b600101610d3f565b50505050505092915050565b6000610e4e8161166d565b81610e5881611885565b83610e62816117b7565b60008581526036602090815260409091208535815590850135600182015550847fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051610eb1919061256e565b60405180910390a25050505050565b6000828152600260205260408120610ed890836118ca565b9392505050565b60606000805160206127dc833981519152610ef98161166d565b858414610f1957604051634ec4810560e11b815260040160405180910390fd5b6000610f31426301e133806001600160401b0361171c565b9050846001600160401b03811115610f4b57610f4b6123d9565b604051908082528060200260200182016040528015610f74578160200160208202803683370190505b506035549093506001600160a01b0316610f8c611fcd565b6000805b888110156111c157898982818110610faa57610faa6123ef565b6020908102929092013560008181526037845260409081902081516060808201845282548252600183015482880152835160808101855260028401546001600160a01b0390811682526003850154988201989098526004840154818601526005909301549083015291820181905251909650909450909116905061119857600082815260376020526040808220828155600181018390556002810180546001600160a01b03191690556003810183905560048082018490556005909101929092555163fc284d1160e01b81529081018390526001600160401b03861660248201526001600160a01b0385169063fc284d1190604401600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b50505050836001600160a01b03166323b872dd308e8e858181106110f3576110f36123ef565b905060200201602081019061110891906123bc565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101859052606401600060405180830381600087803b15801561115757600080fd5b505af115801561116b573d6000803e3d6000fd5b505050506001878281518110611183576111836123ef565b911515602092830291909101909101526111b9565b876111b957604051631480ec2760e31b815260048101839052602401610730565b600101610f90565b50505050505095945050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518552603684528285208351808501909452805484529091015492820192909252909161128f8383611804565b905061129a826118d6565b6112b7576040516348c6117b60e11b815260040160405180910390fd5b803410156112d857604051632ca2f52b60e11b815260040160405180910390fd5b333281146112f8576040516259ca3d60e61b815260040160405180910390fd5b604084810151805160209182015160008981526037845284902034600382018190556002820180546001600160a01b0319166001600160a01b038981169182178355426004909501949094558b5188519384529683015295810183905290831660608201529193909290918991907f5934294f4724ea4bb71fee8511b9ccb8dd6d2249ac4d120a81ccfcbbd0ad905f9060800160405180910390a381156113a3576113a38383611752565b5050505050505050565b6000818152600260205260408120610693906118f1565b600082815260016020819052604090912001546113e08161166d565b6106bf838361169c565b6000806113f68161166d565b8261140081611885565b3384604051602001611413929190612585565b60408051808303601f1901815291815281516020928301206000818152603684529190912086358155918601356001830155935050827fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051611478919061256e565b60405180910390a25050919050565b600054610100900460ff16158080156114a75750600054600160ff909116105b806114c15750303b1580156114c1575060005460ff166001145b6115245760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610730565b6000805460ff191660011790558015611547576000805461ff0019166101001790555b611550836118fb565b611559826116be565b61156460008861196c565b846000805160206127dc83398151915260005b828110156115b7576115af828a8a84818110611595576115956123ef565b90506020020160208101906115aa91906123bc565b61196c565b600101611577565b5050603580546001600160a01b0319166001600160a01b03871617905550801561161b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061162f8161166d565b610743826118fb565b60006001600160e01b03198216637965db0b60e01b148061069357506301ffc9a760e01b6001600160e01b0319831614610693565b6116778133611976565b50565b61168482826119a9565b60008281526002602052604090206106bf9082611a14565b6116a68282611a29565b60008281526002602052604090206106bf9082611a90565b6127108111156116e15760405163220f1a1560e01b815260040160405180910390fd5b60398190556040518181527f846b33625d74f443855144a5f2aef4dda303cda3dfb1c704cb58ab70671823429060200160405180910390a150565b60008184118061172b57508183115b15611737575080610ed8565b6117418484611aa5565b905081811115610ed8575092915050565b600061175e8383611ab9565b9050806106bf57611777836001600160a01b0316611b2f565b61178083611b45565b6040516020016117919291906125d0565b60408051601f198184030181529082905262461bcd60e51b82526107309160040161264e565b60008181526036602090815260409182902082518084019093528054835260010154908201526117e79051421090565b6116775760405163028e4e9760e51b815260040160405180910390fd5b600061181c8360200151846040015160200151611b5c565b905082604001516020015160001415801561183a5750602082015142105b15610693576118528360200151603954612710611b72565b610ed8908261241b565b600881901c600090815260209290925260409091208054600160ff9093169290921b9091179055565b60208101358135111580156118ad57506118ad6118a736839003830183612681565b51421090565b611677576040516302ef0c7360e21b815260040160405180910390fd5b6000610ed88383611c5c565b60004282600001511115801561069357505060200151421090565b6000610693825490565b6001600160a01b038116611922576040516362daafb160e11b815260040160405180910390fd5b603880546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b610743828261167a565b61198082826111d0565b6107435761198d81611b2f565b611998836020611c86565b6040516020016117919291906126dd565b6119b382826111d0565b6107435760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610ed8836001600160a01b038416611e21565b611a3382826111d0565b156107435760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ed8836001600160a01b038416611e70565b818101828110156106935750600019610693565b604080516000808252602082019092526001600160a01b038416908390604051611ae39190612752565b60006040518083038185875af1925050503d8060008114611b20576040519150601f19603f3d011682016040523d82523d6000602084013e611b25565b606091505b5090949350505050565b60606106936001600160a01b0383166014611c86565b606061069382611b5484611f63565b600101611c86565b6000818311611b6b5781610ed8565b5090919050565b6000808060001985870985870292508281108382030391505080600003611bac57838281611ba257611ba261276e565b0492505050610ed8565b808411611bf35760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610730565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000826000018281548110611c7357611c736123ef565b9060005260206000200154905092915050565b60606000611c95836002612784565b611ca090600261241b565b6001600160401b03811115611cb757611cb76123d9565b6040519080825280601f01601f191660200182016040528015611ce1576020820181803683370190505b509050600360fc1b81600081518110611cfc57611cfc6123ef565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611d2b57611d2b6123ef565b60200101906001600160f81b031916908160001a9053506000611d4f846002612784565b611d5a90600161241b565b90505b6001811115611dd2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d8e57611d8e6123ef565b1a60f81b828281518110611da457611da46123ef565b60200101906001600160f81b031916908160001a90535060049490941c93611dcb8161279b565b9050611d5d565b508315610ed85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610730565b6000818152600183016020526040812054611e6857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610693565b506000610693565b60008181526001830160205260408120548015611f59576000611e946001836127b2565b8554909150600090611ea8906001906127b2565b9050818114611f0d576000866000018281548110611ec857611ec86123ef565b9060005260206000200154905080876000018481548110611eeb57611eeb6123ef565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611f1e57611f1e6127c5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610693565b6000915050610693565b600080608083901c15611f7b5760809290921c916010015b604083901c15611f905760409290921c916008015b602083901c15611fa55760209290921c916004015b601083901c15611fba5760109290921c916002015b600883901c156106935760010192915050565b6040518060600160405280600080191681526020016000815260200161201d604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b905290565b60006020828403121561203457600080fd5b81356001600160e01b031981168114610ed857600080fd5b60006020828403121561205e57600080fd5b5035919050565b6001600160a01b038116811461167757600080fd5b6000806040838503121561208d57600080fd5b82359150602083013561209f81612065565b809150509250929050565b60008083601f8401126120bc57600080fd5b5081356001600160401b038111156120d357600080fd5b6020830191508360208260051b85010111156120ee57600080fd5b9250929050565b6000806020838503121561210857600080fd5b82356001600160401b0381111561211e57600080fd5b61212a858286016120aa565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561216e57835183529284019291840191600101612152565b50909695505050505050565b60008060008060006060868803121561219257600080fd5b8535945060208601356001600160401b03808211156121b057600080fd5b6121bc89838a016120aa565b909650945060408801359150808211156121d557600080fd5b506121e2888289016120aa565b969995985093965092949392505050565b60006040828403121561220557600080fd5b50919050565b6000806060838503121561221e57600080fd5b8235915061222f84602085016121f3565b90509250929050565b6000806040838503121561224b57600080fd5b50508035926020909101359150565b60008060008060006060868803121561227257600080fd5b85356001600160401b038082111561228957600080fd5b61229589838a016120aa565b909750955060208801359150808211156122ae57600080fd5b506122bb888289016120aa565b909450925050604086013580151581146122d457600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b8181101561216e5783511515835292840192918401916001016122fe565b60006040828403121561232e57600080fd5b610ed883836121f3565b60008060008060008060a0878903121561235157600080fd5b863561235c81612065565b955060208701356001600160401b0381111561237757600080fd5b61238389828a016120aa565b909650945050604087013561239781612065565b925060608701356123a781612065565b80925050608087013590509295509295509295565b6000602082840312156123ce57600080fd5b8135610ed881612065565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561069357610693612405565b81835260006001600160fb1b0383111561244757600080fd5b8260051b80836020870137939093016020019392505050565b60408152600061247460408301868861242e565b828103602084015261248781858761242e565b979650505050505050565b6000808335601e198436030181126124a957600080fd5b8301803591506001600160401b038211156124c357600080fd5b6020019150368190038213156120ee57600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b0394851660408301529290931660608401526001600160401b03166080830152601f909201601f1916010192915050565b6000806040838503121561254757600080fd5b82516001600160401b038116811461255e57600080fd5b6020939093015192949293505050565b813581526020808301359082015260408101610693565b6001600160a01b038316815260608101610ed8602083018480358252602090810135910152565b60005b838110156125c75781810151838201526020016125af565b50506000910152565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b60208201526000835161261b81602a8501602088016125ac565b660103b30b63ab2960cd1b602a9184019182015283516126428160318401602088016125ac565b01603101949350505050565b602081526000825180602084015261266d8160408501602087016125ac565b601f01601f19169190910160400192915050565b60006040828403121561269357600080fd5b604051604081018181106001600160401b03821117156126c357634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516127158160178501602088016125ac565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516127468160288401602088016125ac565b01602801949350505050565b600082516127648184602087016125ac565b9190910192915050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761069357610693612405565b6000816127aa576127aa612405565b506000190190565b8181038181111561069357610693612405565b634e487b7160e01b600052603160045260246000fdfe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a2646970667358221220885ebec3d0dabb62ac47daf2f9d99eaeb14286e2e2cd36f2870522b082386b5b64736f6c63430008150033", + "nonce": "0x2d3c7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x0d4a11919be669ea7896667606bffeeaeb8960f94663ae41fb883c6fc1e8354e", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x505d91E8fd2091794b45b27f86C045529fa92CD7", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0x505d91e8fd2091794b45b27f86c045529fa92cd7", + "gas": "0xc291", + "value": "0x0", + "data": "0x99a88ec4000000000000000000000000b962edded164f55d136e491a3022246815e1b5a8000000000000000000000000a38c0e64c79bbf5ba4406794943f8f3012be5618", + "nonce": "0x2d3c8" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0xfdf8be4e153c8f6ccf606eff0f8e617e5e6aa17095907d6048f0f1ece6ef6f2b", + "0x0d4a11919be669ea7896667606bffeeaeb8960f94663ae41fb883c6fc1e8354e" + ], + "returns": {}, + "timestamp": 1700810717, + "chain": 2021, + "multi": false, + "commit": "3ff1d46" +} \ No newline at end of file diff --git a/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-1700810724.json b/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-1700810724.json new file mode 100644 index 00000000..82f83aec --- /dev/null +++ b/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-1700810724.json @@ -0,0 +1,111 @@ +{ + "transactions": [ + { + "hash": "0xfdf8be4e153c8f6ccf606eff0f8e617e5e6aa17095907d6048f0f1ece6ef6f2b", + "transactionType": "CREATE", + "contractName": "RNSAuction", + "contractAddress": "0xA38C0e64c79BBF5Ba4406794943f8F3012Be5618", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "gas": "0x2da63d", + "value": "0x0", + "data": "0x608060405261000c610011565b6100d0565b600054610100900460ff161561007d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100ce576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61283180620000e06000396000f3fe6080604052600436106101cd5760003560e01c806381bec1b3116100f7578063a282d4ae11610095578063db5e1ec611610064578063db5e1ec6146105ec578063ec14cf371461060c578063f0f442601461062c578063f5b541a61461064c57600080fd5b8063a282d4ae1461057c578063b967169014610591578063ca15c873146105ac578063d547741f146105cc57600080fd5b806391a3823f116100d157806391a3823f1461050757806391d14854146105345780639979ef4514610554578063a217fddf1461056757600080fd5b806381bec1b3146104a95780638c843314146104c95780639010d07c146104e757600080fd5b80633b19e84a1161016f5780636e7d60f21161013e5780636e7d60f2146103cc578063777b0a18146103f957806378bd793514610419578063791a26b41461048957600080fd5b80633b19e84a146103445780634c255c971461037657806353f9195e1461038c57806360223b44146103ac57600080fd5b806319a3ee40116101ab57806319a3ee40146102ab578063248a9ca3146102c35780632f2ff15d1461030257806336568abe1461032457600080fd5b806301ffc9a7146101d25780630afe1bb31461020757806315a2916214610237575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612022565b61066e565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5061021f6305a39a8081565b6040516001600160401b0390911681526020016101fe565b34801561024357600080fd5b5061029061025236600461204c565b604080518082019091526000808252602082015250600090815260366020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016101fe565b3480156102b757600080fd5b5061021f6301e1338081565b3480156102cf57600080fd5b506102f46102de36600461204c565b6000908152600160208190526040909120015490565b6040519081526020016101fe565b34801561030e57600080fd5b5061032261031d36600461207a565b610699565b005b34801561033057600080fd5b5061032261033f36600461207a565b6106c4565b34801561035057600080fd5b506038546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b34801561038257600080fd5b506102f461271081565b34801561039857600080fd5b506101f26103a736600461204c565b610747565b3480156103b857600080fd5b506103226103c736600461204c565b61076a565b3480156103d857600080fd5b506103ec6103e73660046120f5565b61077e565b6040516101fe9190612136565b34801561040557600080fd5b5061032261041436600461217a565b610a6d565b34801561042557600080fd5b5061043961043436600461204c565b610bd3565b6040805183518152602080850151818301529382015180516001600160a01b0316828401529384015160608083019190915291840151608082015292015160a083015260c082015260e0016101fe565b34801561049557600080fd5b506103ec6104a43660046120f5565b610c88565b3480156104b557600080fd5b506103226104c436600461220b565b610e43565b3480156104d557600080fd5b506035546001600160a01b031661035e565b3480156104f357600080fd5b5061035e610502366004612238565b610ec0565b34801561051357600080fd5b5061052761052236600461225a565b610edf565b6040516101fe91906122e2565b34801561054057600080fd5b506101f261054f36600461207a565b6111d0565b61032261056236600461204c565b6111fb565b34801561057357600080fd5b506102f4600081565b34801561058857600080fd5b506039546102f4565b34801561059d57600080fd5b5061021f6001600160401b0381565b3480156105b857600080fd5b506102f46105c736600461204c565b6113ad565b3480156105d857600080fd5b506103226105e736600461207a565b6113c4565b3480156105f857600080fd5b506102f461060736600461231c565b6113ea565b34801561061857600080fd5b50610322610627366004612338565b611487565b34801561063857600080fd5b506103226106473660046123bc565b611624565b34801561065857600080fd5b506102f46000805160206127dc83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610693575061069382611638565b92915050565b600082815260016020819052604090912001546106b58161166d565b6106bf838361167a565b505050565b6001600160a01b03811633146107395760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610743828261169c565b5050565b600881901c6000908152603a6020526040812054600160ff84161b161515610693565b60006107758161166d565b610743826116be565b60606000806107a0604051806040016040528060008152602001600081525090565b6107a8611fcd565b85806001600160401b038111156107c1576107c16123d9565b6040519080825280602002602001820160405280156107ea578160200160208202803683370190505b506035549096506001600160a01b03166000610812426301e133806001600160401b0361171c565b905060005b83811015610a49578a8a82818110610831576108316123ef565b60209081029290920135600081815260378452604080822081516060808201845282548252600180840154838a0152845160808101865260028501546001600160a01b031681526003850154818b0152600485015481870152600590940154848301528285019384528251865260368952848620855180870190965280548652015497840197909752905190950151929c5099509297509091039050610a415760208601514210156108f6576040516372d1250d60e01b815260040160405180910390fd5b84604001516040015160000361091f576040516323bbcc0160e01b815260040160405180910390fd5b604085015160200151610932908861241b565b60405163fc284d1160e01b8152600481018a90526001600160401b03841660248201529097506001600160a01b0384169063fc284d1190604401600060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040858101515190516323b872dd60e01b81523060048201526001600160a01b039182166024820152604481018a9052908416906323b872dd90606401600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b5050505042898281518110610a2057610a206123ef565b602090810291909101810182905260008a8152603790915260409020600501555b600101610817565b50603854610a60906001600160a01b031687611752565b5050505050505092915050565b6000805160206127dc833981519152610a858161166d565b85610a8f816117b7565b84801580610a9d5750808414155b15610abb57604051634ec4810560e11b815260040160405180910390fd5b6000806000805b84811015610b87578a8a82818110610adc57610adc6123ef565b905060200201359350610aee84610747565b610b0b57604051637d6fe8d760e11b815260040160405180910390fd5b6000848152603760205260409020805493509150821580610b2b57508b83145b80610b3857506004820154155b610b5857604051631480ec2760e31b815260048101859052602401610730565b8b8255888882818110610b6d57610b6d6123ef565b905060200201358260010181905550806001019050610ac2565b508a7f9a845a1c4235343a450f5e39d4179b7e2a6c9586c02bff45d956717f4a19dd948b8b8b8b604051610bbe9493929190612460565b60405180910390a25050505050505050505050565b610bdb611fcd565b5060008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518351808501855286815285018690528552603684528285208351808501909452805484529091015492820192909252909190610c808382611804565b915050915091565b60606000805160206127dc833981519152610ca28161166d565b826000819003610cc557604051634ec4810560e11b815260040160405180910390fd5b806001600160401b03811115610cdd57610cdd6123d9565b604051908082528060200260200182016040528015610d06578160200160208202803683370190505b506035549093506001600160a01b03167fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6886301e1338060005b84811015610e3757836001600160a01b0316630570891f848b8b85818110610d6957610d696123ef565b9050602002810190610d7b9190612492565b600030886040518763ffffffff1660e01b8152600401610da0969594939291906124d8565b60408051808303816000875af1158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de29190612534565b9050878281518110610df657610df66123ef565b602002602001018181525050610e2f878281518110610e1757610e176123ef565b6020026020010151603a61185c90919063ffffffff16565b600101610d3f565b50505050505092915050565b6000610e4e8161166d565b81610e5881611885565b83610e62816117b7565b60008581526036602090815260409091208535815590850135600182015550847fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051610eb1919061256e565b60405180910390a25050505050565b6000828152600260205260408120610ed890836118ca565b9392505050565b60606000805160206127dc833981519152610ef98161166d565b858414610f1957604051634ec4810560e11b815260040160405180910390fd5b6000610f31426301e133806001600160401b0361171c565b9050846001600160401b03811115610f4b57610f4b6123d9565b604051908082528060200260200182016040528015610f74578160200160208202803683370190505b506035549093506001600160a01b0316610f8c611fcd565b6000805b888110156111c157898982818110610faa57610faa6123ef565b6020908102929092013560008181526037845260409081902081516060808201845282548252600183015482880152835160808101855260028401546001600160a01b0390811682526003850154988201989098526004840154818601526005909301549083015291820181905251909650909450909116905061119857600082815260376020526040808220828155600181018390556002810180546001600160a01b03191690556003810183905560048082018490556005909101929092555163fc284d1160e01b81529081018390526001600160401b03861660248201526001600160a01b0385169063fc284d1190604401600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b50505050836001600160a01b03166323b872dd308e8e858181106110f3576110f36123ef565b905060200201602081019061110891906123bc565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101859052606401600060405180830381600087803b15801561115757600080fd5b505af115801561116b573d6000803e3d6000fd5b505050506001878281518110611183576111836123ef565b911515602092830291909101909101526111b9565b876111b957604051631480ec2760e31b815260048101839052602401610730565b600101610f90565b50505050505095945050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518552603684528285208351808501909452805484529091015492820192909252909161128f8383611804565b905061129a826118d6565b6112b7576040516348c6117b60e11b815260040160405180910390fd5b803410156112d857604051632ca2f52b60e11b815260040160405180910390fd5b333281146112f8576040516259ca3d60e61b815260040160405180910390fd5b604084810151805160209182015160008981526037845284902034600382018190556002820180546001600160a01b0319166001600160a01b038981169182178355426004909501949094558b5188519384529683015295810183905290831660608201529193909290918991907f5934294f4724ea4bb71fee8511b9ccb8dd6d2249ac4d120a81ccfcbbd0ad905f9060800160405180910390a381156113a3576113a38383611752565b5050505050505050565b6000818152600260205260408120610693906118f1565b600082815260016020819052604090912001546113e08161166d565b6106bf838361169c565b6000806113f68161166d565b8261140081611885565b3384604051602001611413929190612585565b60408051808303601f1901815291815281516020928301206000818152603684529190912086358155918601356001830155935050827fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051611478919061256e565b60405180910390a25050919050565b600054610100900460ff16158080156114a75750600054600160ff909116105b806114c15750303b1580156114c1575060005460ff166001145b6115245760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610730565b6000805460ff191660011790558015611547576000805461ff0019166101001790555b611550836118fb565b611559826116be565b61156460008861196c565b846000805160206127dc83398151915260005b828110156115b7576115af828a8a84818110611595576115956123ef565b90506020020160208101906115aa91906123bc565b61196c565b600101611577565b5050603580546001600160a01b0319166001600160a01b03871617905550801561161b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061162f8161166d565b610743826118fb565b60006001600160e01b03198216637965db0b60e01b148061069357506301ffc9a760e01b6001600160e01b0319831614610693565b6116778133611976565b50565b61168482826119a9565b60008281526002602052604090206106bf9082611a14565b6116a68282611a29565b60008281526002602052604090206106bf9082611a90565b6127108111156116e15760405163220f1a1560e01b815260040160405180910390fd5b60398190556040518181527f846b33625d74f443855144a5f2aef4dda303cda3dfb1c704cb58ab70671823429060200160405180910390a150565b60008184118061172b57508183115b15611737575080610ed8565b6117418484611aa5565b905081811115610ed8575092915050565b600061175e8383611ab9565b9050806106bf57611777836001600160a01b0316611b2f565b61178083611b45565b6040516020016117919291906125d0565b60408051601f198184030181529082905262461bcd60e51b82526107309160040161264e565b60008181526036602090815260409182902082518084019093528054835260010154908201526117e79051421090565b6116775760405163028e4e9760e51b815260040160405180910390fd5b600061181c8360200151846040015160200151611b5c565b905082604001516020015160001415801561183a5750602082015142105b15610693576118528360200151603954612710611b72565b610ed8908261241b565b600881901c600090815260209290925260409091208054600160ff9093169290921b9091179055565b60208101358135111580156118ad57506118ad6118a736839003830183612681565b51421090565b611677576040516302ef0c7360e21b815260040160405180910390fd5b6000610ed88383611c5c565b60004282600001511115801561069357505060200151421090565b6000610693825490565b6001600160a01b038116611922576040516362daafb160e11b815260040160405180910390fd5b603880546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b610743828261167a565b61198082826111d0565b6107435761198d81611b2f565b611998836020611c86565b6040516020016117919291906126dd565b6119b382826111d0565b6107435760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610ed8836001600160a01b038416611e21565b611a3382826111d0565b156107435760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ed8836001600160a01b038416611e70565b818101828110156106935750600019610693565b604080516000808252602082019092526001600160a01b038416908390604051611ae39190612752565b60006040518083038185875af1925050503d8060008114611b20576040519150601f19603f3d011682016040523d82523d6000602084013e611b25565b606091505b5090949350505050565b60606106936001600160a01b0383166014611c86565b606061069382611b5484611f63565b600101611c86565b6000818311611b6b5781610ed8565b5090919050565b6000808060001985870985870292508281108382030391505080600003611bac57838281611ba257611ba261276e565b0492505050610ed8565b808411611bf35760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610730565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000826000018281548110611c7357611c736123ef565b9060005260206000200154905092915050565b60606000611c95836002612784565b611ca090600261241b565b6001600160401b03811115611cb757611cb76123d9565b6040519080825280601f01601f191660200182016040528015611ce1576020820181803683370190505b509050600360fc1b81600081518110611cfc57611cfc6123ef565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611d2b57611d2b6123ef565b60200101906001600160f81b031916908160001a9053506000611d4f846002612784565b611d5a90600161241b565b90505b6001811115611dd2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d8e57611d8e6123ef565b1a60f81b828281518110611da457611da46123ef565b60200101906001600160f81b031916908160001a90535060049490941c93611dcb8161279b565b9050611d5d565b508315610ed85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610730565b6000818152600183016020526040812054611e6857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610693565b506000610693565b60008181526001830160205260408120548015611f59576000611e946001836127b2565b8554909150600090611ea8906001906127b2565b9050818114611f0d576000866000018281548110611ec857611ec86123ef565b9060005260206000200154905080876000018481548110611eeb57611eeb6123ef565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611f1e57611f1e6127c5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610693565b6000915050610693565b600080608083901c15611f7b5760809290921c916010015b604083901c15611f905760409290921c916008015b602083901c15611fa55760209290921c916004015b601083901c15611fba5760109290921c916002015b600883901c156106935760010192915050565b6040518060600160405280600080191681526020016000815260200161201d604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b905290565b60006020828403121561203457600080fd5b81356001600160e01b031981168114610ed857600080fd5b60006020828403121561205e57600080fd5b5035919050565b6001600160a01b038116811461167757600080fd5b6000806040838503121561208d57600080fd5b82359150602083013561209f81612065565b809150509250929050565b60008083601f8401126120bc57600080fd5b5081356001600160401b038111156120d357600080fd5b6020830191508360208260051b85010111156120ee57600080fd5b9250929050565b6000806020838503121561210857600080fd5b82356001600160401b0381111561211e57600080fd5b61212a858286016120aa565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561216e57835183529284019291840191600101612152565b50909695505050505050565b60008060008060006060868803121561219257600080fd5b8535945060208601356001600160401b03808211156121b057600080fd5b6121bc89838a016120aa565b909650945060408801359150808211156121d557600080fd5b506121e2888289016120aa565b969995985093965092949392505050565b60006040828403121561220557600080fd5b50919050565b6000806060838503121561221e57600080fd5b8235915061222f84602085016121f3565b90509250929050565b6000806040838503121561224b57600080fd5b50508035926020909101359150565b60008060008060006060868803121561227257600080fd5b85356001600160401b038082111561228957600080fd5b61229589838a016120aa565b909750955060208801359150808211156122ae57600080fd5b506122bb888289016120aa565b909450925050604086013580151581146122d457600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b8181101561216e5783511515835292840192918401916001016122fe565b60006040828403121561232e57600080fd5b610ed883836121f3565b60008060008060008060a0878903121561235157600080fd5b863561235c81612065565b955060208701356001600160401b0381111561237757600080fd5b61238389828a016120aa565b909650945050604087013561239781612065565b925060608701356123a781612065565b80925050608087013590509295509295509295565b6000602082840312156123ce57600080fd5b8135610ed881612065565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561069357610693612405565b81835260006001600160fb1b0383111561244757600080fd5b8260051b80836020870137939093016020019392505050565b60408152600061247460408301868861242e565b828103602084015261248781858761242e565b979650505050505050565b6000808335601e198436030181126124a957600080fd5b8301803591506001600160401b038211156124c357600080fd5b6020019150368190038213156120ee57600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b0394851660408301529290931660608401526001600160401b03166080830152601f909201601f1916010192915050565b6000806040838503121561254757600080fd5b82516001600160401b038116811461255e57600080fd5b6020939093015192949293505050565b813581526020808301359082015260408101610693565b6001600160a01b038316815260608101610ed8602083018480358252602090810135910152565b60005b838110156125c75781810151838201526020016125af565b50506000910152565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b60208201526000835161261b81602a8501602088016125ac565b660103b30b63ab2960cd1b602a9184019182015283516126428160318401602088016125ac565b01603101949350505050565b602081526000825180602084015261266d8160408501602087016125ac565b601f01601f19169190910160400192915050565b60006040828403121561269357600080fd5b604051604081018181106001600160401b03821117156126c357634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516127158160178501602088016125ac565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516127468160288401602088016125ac565b01602801949350505050565b600082516127648184602087016125ac565b9190910192915050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761069357610693612405565b6000816127aa576127aa612405565b506000190190565b8181038181111561069357610693612405565b634e487b7160e01b600052603160045260246000fdfe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a2646970667358221220885ebec3d0dabb62ac47daf2f9d99eaeb14286e2e2cd36f2870522b082386b5b64736f6c63430008150033", + "nonce": "0x2d3c7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x0d4a11919be669ea7896667606bffeeaeb8960f94663ae41fb883c6fc1e8354e", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x505d91E8fd2091794b45b27f86C045529fa92CD7", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0x505d91e8fd2091794b45b27f86c045529fa92cd7", + "gas": "0xc291", + "value": "0x0", + "data": "0x99a88ec4000000000000000000000000b962edded164f55d136e491a3022246815e1b5a8000000000000000000000000a38c0e64c79bbf5ba4406794943f8f3012be5618", + "nonce": "0x2d3c8" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xfdf8be4e153c8f6ccf606eff0f8e617e5e6aa17095907d6048f0f1ece6ef6f2b", + "transactionIndex": "0x0", + "blockHash": "0xd32e9fc1f7047c90d93ab38f642ef9c767ba3612d155fd7c09c5aad4ff38a5de", + "blockNumber": "0x15557a2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": null, + "cumulativeGasUsed": "0x231d6a", + "gasUsed": "0x231d6a", + "contractAddress": "0xA38C0e64c79BBF5Ba4406794943f8F3012Be5618", + "logs": [ + { + "address": "0xA38C0e64c79BBF5Ba4406794943f8F3012Be5618", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xd32e9fc1f7047c90d93ab38f642ef9c767ba3612d155fd7c09c5aad4ff38a5de", + "blockNumber": "0x15557a2", + "transactionHash": "0xfdf8be4e153c8f6ccf606eff0f8e617e5e6aa17095907d6048f0f1ece6ef6f2b", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0x0d4a11919be669ea7896667606bffeeaeb8960f94663ae41fb883c6fc1e8354e", + "transactionIndex": "0x1", + "blockHash": "0xd32e9fc1f7047c90d93ab38f642ef9c767ba3612d155fd7c09c5aad4ff38a5de", + "blockNumber": "0x15557a2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0x505d91E8fd2091794b45b27f86C045529fa92CD7", + "cumulativeGasUsed": "0x23a274", + "gasUsed": "0x850a", + "contractAddress": null, + "logs": [ + { + "address": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000a38c0e64c79bbf5ba4406794943f8f3012be5618" + ], + "data": "0x", + "blockHash": "0xd32e9fc1f7047c90d93ab38f642ef9c767ba3612d155fd7c09c5aad4ff38a5de", + "blockNumber": "0x15557a2", + "transactionHash": "0x0d4a11919be669ea7896667606bffeeaeb8960f94663ae41fb883c6fc1e8354e", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000040000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000020000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1700810724, + "chain": 2021, + "multi": false, + "commit": "3ff1d46" +} \ No newline at end of file diff --git a/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-latest.json b/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-latest.json new file mode 100644 index 00000000..82f83aec --- /dev/null +++ b/broadcast/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol/2021/run-latest.json @@ -0,0 +1,111 @@ +{ + "transactions": [ + { + "hash": "0xfdf8be4e153c8f6ccf606eff0f8e617e5e6aa17095907d6048f0f1ece6ef6f2b", + "transactionType": "CREATE", + "contractName": "RNSAuction", + "contractAddress": "0xA38C0e64c79BBF5Ba4406794943f8F3012Be5618", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "gas": "0x2da63d", + "value": "0x0", + "data": "0x608060405261000c610011565b6100d0565b600054610100900460ff161561007d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100ce576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61283180620000e06000396000f3fe6080604052600436106101cd5760003560e01c806381bec1b3116100f7578063a282d4ae11610095578063db5e1ec611610064578063db5e1ec6146105ec578063ec14cf371461060c578063f0f442601461062c578063f5b541a61461064c57600080fd5b8063a282d4ae1461057c578063b967169014610591578063ca15c873146105ac578063d547741f146105cc57600080fd5b806391a3823f116100d157806391a3823f1461050757806391d14854146105345780639979ef4514610554578063a217fddf1461056757600080fd5b806381bec1b3146104a95780638c843314146104c95780639010d07c146104e757600080fd5b80633b19e84a1161016f5780636e7d60f21161013e5780636e7d60f2146103cc578063777b0a18146103f957806378bd793514610419578063791a26b41461048957600080fd5b80633b19e84a146103445780634c255c971461037657806353f9195e1461038c57806360223b44146103ac57600080fd5b806319a3ee40116101ab57806319a3ee40146102ab578063248a9ca3146102c35780632f2ff15d1461030257806336568abe1461032457600080fd5b806301ffc9a7146101d25780630afe1bb31461020757806315a2916214610237575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612022565b61066e565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5061021f6305a39a8081565b6040516001600160401b0390911681526020016101fe565b34801561024357600080fd5b5061029061025236600461204c565b604080518082019091526000808252602082015250600090815260366020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016101fe565b3480156102b757600080fd5b5061021f6301e1338081565b3480156102cf57600080fd5b506102f46102de36600461204c565b6000908152600160208190526040909120015490565b6040519081526020016101fe565b34801561030e57600080fd5b5061032261031d36600461207a565b610699565b005b34801561033057600080fd5b5061032261033f36600461207a565b6106c4565b34801561035057600080fd5b506038546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b34801561038257600080fd5b506102f461271081565b34801561039857600080fd5b506101f26103a736600461204c565b610747565b3480156103b857600080fd5b506103226103c736600461204c565b61076a565b3480156103d857600080fd5b506103ec6103e73660046120f5565b61077e565b6040516101fe9190612136565b34801561040557600080fd5b5061032261041436600461217a565b610a6d565b34801561042557600080fd5b5061043961043436600461204c565b610bd3565b6040805183518152602080850151818301529382015180516001600160a01b0316828401529384015160608083019190915291840151608082015292015160a083015260c082015260e0016101fe565b34801561049557600080fd5b506103ec6104a43660046120f5565b610c88565b3480156104b557600080fd5b506103226104c436600461220b565b610e43565b3480156104d557600080fd5b506035546001600160a01b031661035e565b3480156104f357600080fd5b5061035e610502366004612238565b610ec0565b34801561051357600080fd5b5061052761052236600461225a565b610edf565b6040516101fe91906122e2565b34801561054057600080fd5b506101f261054f36600461207a565b6111d0565b61032261056236600461204c565b6111fb565b34801561057357600080fd5b506102f4600081565b34801561058857600080fd5b506039546102f4565b34801561059d57600080fd5b5061021f6001600160401b0381565b3480156105b857600080fd5b506102f46105c736600461204c565b6113ad565b3480156105d857600080fd5b506103226105e736600461207a565b6113c4565b3480156105f857600080fd5b506102f461060736600461231c565b6113ea565b34801561061857600080fd5b50610322610627366004612338565b611487565b34801561063857600080fd5b506103226106473660046123bc565b611624565b34801561065857600080fd5b506102f46000805160206127dc83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610693575061069382611638565b92915050565b600082815260016020819052604090912001546106b58161166d565b6106bf838361167a565b505050565b6001600160a01b03811633146107395760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610743828261169c565b5050565b600881901c6000908152603a6020526040812054600160ff84161b161515610693565b60006107758161166d565b610743826116be565b60606000806107a0604051806040016040528060008152602001600081525090565b6107a8611fcd565b85806001600160401b038111156107c1576107c16123d9565b6040519080825280602002602001820160405280156107ea578160200160208202803683370190505b506035549096506001600160a01b03166000610812426301e133806001600160401b0361171c565b905060005b83811015610a49578a8a82818110610831576108316123ef565b60209081029290920135600081815260378452604080822081516060808201845282548252600180840154838a0152845160808101865260028501546001600160a01b031681526003850154818b0152600485015481870152600590940154848301528285019384528251865260368952848620855180870190965280548652015497840197909752905190950151929c5099509297509091039050610a415760208601514210156108f6576040516372d1250d60e01b815260040160405180910390fd5b84604001516040015160000361091f576040516323bbcc0160e01b815260040160405180910390fd5b604085015160200151610932908861241b565b60405163fc284d1160e01b8152600481018a90526001600160401b03841660248201529097506001600160a01b0384169063fc284d1190604401600060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040858101515190516323b872dd60e01b81523060048201526001600160a01b039182166024820152604481018a9052908416906323b872dd90606401600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b5050505042898281518110610a2057610a206123ef565b602090810291909101810182905260008a8152603790915260409020600501555b600101610817565b50603854610a60906001600160a01b031687611752565b5050505050505092915050565b6000805160206127dc833981519152610a858161166d565b85610a8f816117b7565b84801580610a9d5750808414155b15610abb57604051634ec4810560e11b815260040160405180910390fd5b6000806000805b84811015610b87578a8a82818110610adc57610adc6123ef565b905060200201359350610aee84610747565b610b0b57604051637d6fe8d760e11b815260040160405180910390fd5b6000848152603760205260409020805493509150821580610b2b57508b83145b80610b3857506004820154155b610b5857604051631480ec2760e31b815260048101859052602401610730565b8b8255888882818110610b6d57610b6d6123ef565b905060200201358260010181905550806001019050610ac2565b508a7f9a845a1c4235343a450f5e39d4179b7e2a6c9586c02bff45d956717f4a19dd948b8b8b8b604051610bbe9493929190612460565b60405180910390a25050505050505050505050565b610bdb611fcd565b5060008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518351808501855286815285018690528552603684528285208351808501909452805484529091015492820192909252909190610c808382611804565b915050915091565b60606000805160206127dc833981519152610ca28161166d565b826000819003610cc557604051634ec4810560e11b815260040160405180910390fd5b806001600160401b03811115610cdd57610cdd6123d9565b604051908082528060200260200182016040528015610d06578160200160208202803683370190505b506035549093506001600160a01b03167fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6886301e1338060005b84811015610e3757836001600160a01b0316630570891f848b8b85818110610d6957610d696123ef565b9050602002810190610d7b9190612492565b600030886040518763ffffffff1660e01b8152600401610da0969594939291906124d8565b60408051808303816000875af1158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de29190612534565b9050878281518110610df657610df66123ef565b602002602001018181525050610e2f878281518110610e1757610e176123ef565b6020026020010151603a61185c90919063ffffffff16565b600101610d3f565b50505050505092915050565b6000610e4e8161166d565b81610e5881611885565b83610e62816117b7565b60008581526036602090815260409091208535815590850135600182015550847fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051610eb1919061256e565b60405180910390a25050505050565b6000828152600260205260408120610ed890836118ca565b9392505050565b60606000805160206127dc833981519152610ef98161166d565b858414610f1957604051634ec4810560e11b815260040160405180910390fd5b6000610f31426301e133806001600160401b0361171c565b9050846001600160401b03811115610f4b57610f4b6123d9565b604051908082528060200260200182016040528015610f74578160200160208202803683370190505b506035549093506001600160a01b0316610f8c611fcd565b6000805b888110156111c157898982818110610faa57610faa6123ef565b6020908102929092013560008181526037845260409081902081516060808201845282548252600183015482880152835160808101855260028401546001600160a01b0390811682526003850154988201989098526004840154818601526005909301549083015291820181905251909650909450909116905061119857600082815260376020526040808220828155600181018390556002810180546001600160a01b03191690556003810183905560048082018490556005909101929092555163fc284d1160e01b81529081018390526001600160401b03861660248201526001600160a01b0385169063fc284d1190604401600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b50505050836001600160a01b03166323b872dd308e8e858181106110f3576110f36123ef565b905060200201602081019061110891906123bc565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101859052606401600060405180830381600087803b15801561115757600080fd5b505af115801561116b573d6000803e3d6000fd5b505050506001878281518110611183576111836123ef565b911515602092830291909101909101526111b9565b876111b957604051631480ec2760e31b815260048101839052602401610730565b600101610f90565b50505050505095945050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518552603684528285208351808501909452805484529091015492820192909252909161128f8383611804565b905061129a826118d6565b6112b7576040516348c6117b60e11b815260040160405180910390fd5b803410156112d857604051632ca2f52b60e11b815260040160405180910390fd5b333281146112f8576040516259ca3d60e61b815260040160405180910390fd5b604084810151805160209182015160008981526037845284902034600382018190556002820180546001600160a01b0319166001600160a01b038981169182178355426004909501949094558b5188519384529683015295810183905290831660608201529193909290918991907f5934294f4724ea4bb71fee8511b9ccb8dd6d2249ac4d120a81ccfcbbd0ad905f9060800160405180910390a381156113a3576113a38383611752565b5050505050505050565b6000818152600260205260408120610693906118f1565b600082815260016020819052604090912001546113e08161166d565b6106bf838361169c565b6000806113f68161166d565b8261140081611885565b3384604051602001611413929190612585565b60408051808303601f1901815291815281516020928301206000818152603684529190912086358155918601356001830155935050827fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051611478919061256e565b60405180910390a25050919050565b600054610100900460ff16158080156114a75750600054600160ff909116105b806114c15750303b1580156114c1575060005460ff166001145b6115245760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610730565b6000805460ff191660011790558015611547576000805461ff0019166101001790555b611550836118fb565b611559826116be565b61156460008861196c565b846000805160206127dc83398151915260005b828110156115b7576115af828a8a84818110611595576115956123ef565b90506020020160208101906115aa91906123bc565b61196c565b600101611577565b5050603580546001600160a01b0319166001600160a01b03871617905550801561161b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061162f8161166d565b610743826118fb565b60006001600160e01b03198216637965db0b60e01b148061069357506301ffc9a760e01b6001600160e01b0319831614610693565b6116778133611976565b50565b61168482826119a9565b60008281526002602052604090206106bf9082611a14565b6116a68282611a29565b60008281526002602052604090206106bf9082611a90565b6127108111156116e15760405163220f1a1560e01b815260040160405180910390fd5b60398190556040518181527f846b33625d74f443855144a5f2aef4dda303cda3dfb1c704cb58ab70671823429060200160405180910390a150565b60008184118061172b57508183115b15611737575080610ed8565b6117418484611aa5565b905081811115610ed8575092915050565b600061175e8383611ab9565b9050806106bf57611777836001600160a01b0316611b2f565b61178083611b45565b6040516020016117919291906125d0565b60408051601f198184030181529082905262461bcd60e51b82526107309160040161264e565b60008181526036602090815260409182902082518084019093528054835260010154908201526117e79051421090565b6116775760405163028e4e9760e51b815260040160405180910390fd5b600061181c8360200151846040015160200151611b5c565b905082604001516020015160001415801561183a5750602082015142105b15610693576118528360200151603954612710611b72565b610ed8908261241b565b600881901c600090815260209290925260409091208054600160ff9093169290921b9091179055565b60208101358135111580156118ad57506118ad6118a736839003830183612681565b51421090565b611677576040516302ef0c7360e21b815260040160405180910390fd5b6000610ed88383611c5c565b60004282600001511115801561069357505060200151421090565b6000610693825490565b6001600160a01b038116611922576040516362daafb160e11b815260040160405180910390fd5b603880546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b610743828261167a565b61198082826111d0565b6107435761198d81611b2f565b611998836020611c86565b6040516020016117919291906126dd565b6119b382826111d0565b6107435760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610ed8836001600160a01b038416611e21565b611a3382826111d0565b156107435760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ed8836001600160a01b038416611e70565b818101828110156106935750600019610693565b604080516000808252602082019092526001600160a01b038416908390604051611ae39190612752565b60006040518083038185875af1925050503d8060008114611b20576040519150601f19603f3d011682016040523d82523d6000602084013e611b25565b606091505b5090949350505050565b60606106936001600160a01b0383166014611c86565b606061069382611b5484611f63565b600101611c86565b6000818311611b6b5781610ed8565b5090919050565b6000808060001985870985870292508281108382030391505080600003611bac57838281611ba257611ba261276e565b0492505050610ed8565b808411611bf35760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610730565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000826000018281548110611c7357611c736123ef565b9060005260206000200154905092915050565b60606000611c95836002612784565b611ca090600261241b565b6001600160401b03811115611cb757611cb76123d9565b6040519080825280601f01601f191660200182016040528015611ce1576020820181803683370190505b509050600360fc1b81600081518110611cfc57611cfc6123ef565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611d2b57611d2b6123ef565b60200101906001600160f81b031916908160001a9053506000611d4f846002612784565b611d5a90600161241b565b90505b6001811115611dd2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d8e57611d8e6123ef565b1a60f81b828281518110611da457611da46123ef565b60200101906001600160f81b031916908160001a90535060049490941c93611dcb8161279b565b9050611d5d565b508315610ed85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610730565b6000818152600183016020526040812054611e6857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610693565b506000610693565b60008181526001830160205260408120548015611f59576000611e946001836127b2565b8554909150600090611ea8906001906127b2565b9050818114611f0d576000866000018281548110611ec857611ec86123ef565b9060005260206000200154905080876000018481548110611eeb57611eeb6123ef565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611f1e57611f1e6127c5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610693565b6000915050610693565b600080608083901c15611f7b5760809290921c916010015b604083901c15611f905760409290921c916008015b602083901c15611fa55760209290921c916004015b601083901c15611fba5760109290921c916002015b600883901c156106935760010192915050565b6040518060600160405280600080191681526020016000815260200161201d604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b905290565b60006020828403121561203457600080fd5b81356001600160e01b031981168114610ed857600080fd5b60006020828403121561205e57600080fd5b5035919050565b6001600160a01b038116811461167757600080fd5b6000806040838503121561208d57600080fd5b82359150602083013561209f81612065565b809150509250929050565b60008083601f8401126120bc57600080fd5b5081356001600160401b038111156120d357600080fd5b6020830191508360208260051b85010111156120ee57600080fd5b9250929050565b6000806020838503121561210857600080fd5b82356001600160401b0381111561211e57600080fd5b61212a858286016120aa565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561216e57835183529284019291840191600101612152565b50909695505050505050565b60008060008060006060868803121561219257600080fd5b8535945060208601356001600160401b03808211156121b057600080fd5b6121bc89838a016120aa565b909650945060408801359150808211156121d557600080fd5b506121e2888289016120aa565b969995985093965092949392505050565b60006040828403121561220557600080fd5b50919050565b6000806060838503121561221e57600080fd5b8235915061222f84602085016121f3565b90509250929050565b6000806040838503121561224b57600080fd5b50508035926020909101359150565b60008060008060006060868803121561227257600080fd5b85356001600160401b038082111561228957600080fd5b61229589838a016120aa565b909750955060208801359150808211156122ae57600080fd5b506122bb888289016120aa565b909450925050604086013580151581146122d457600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b8181101561216e5783511515835292840192918401916001016122fe565b60006040828403121561232e57600080fd5b610ed883836121f3565b60008060008060008060a0878903121561235157600080fd5b863561235c81612065565b955060208701356001600160401b0381111561237757600080fd5b61238389828a016120aa565b909650945050604087013561239781612065565b925060608701356123a781612065565b80925050608087013590509295509295509295565b6000602082840312156123ce57600080fd5b8135610ed881612065565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561069357610693612405565b81835260006001600160fb1b0383111561244757600080fd5b8260051b80836020870137939093016020019392505050565b60408152600061247460408301868861242e565b828103602084015261248781858761242e565b979650505050505050565b6000808335601e198436030181126124a957600080fd5b8301803591506001600160401b038211156124c357600080fd5b6020019150368190038213156120ee57600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b0394851660408301529290931660608401526001600160401b03166080830152601f909201601f1916010192915050565b6000806040838503121561254757600080fd5b82516001600160401b038116811461255e57600080fd5b6020939093015192949293505050565b813581526020808301359082015260408101610693565b6001600160a01b038316815260608101610ed8602083018480358252602090810135910152565b60005b838110156125c75781810151838201526020016125af565b50506000910152565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b60208201526000835161261b81602a8501602088016125ac565b660103b30b63ab2960cd1b602a9184019182015283516126428160318401602088016125ac565b01603101949350505050565b602081526000825180602084015261266d8160408501602087016125ac565b601f01601f19169190910160400192915050565b60006040828403121561269357600080fd5b604051604081018181106001600160401b03821117156126c357634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516127158160178501602088016125ac565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516127468160288401602088016125ac565b01602801949350505050565b600082516127648184602087016125ac565b9190910192915050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761069357610693612405565b6000816127aa576127aa612405565b506000190190565b8181038181111561069357610693612405565b634e487b7160e01b600052603160045260246000fdfe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a2646970667358221220885ebec3d0dabb62ac47daf2f9d99eaeb14286e2e2cd36f2870522b082386b5b64736f6c63430008150033", + "nonce": "0x2d3c7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x0d4a11919be669ea7896667606bffeeaeb8960f94663ae41fb883c6fc1e8354e", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x505d91E8fd2091794b45b27f86C045529fa92CD7", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0x505d91e8fd2091794b45b27f86c045529fa92cd7", + "gas": "0xc291", + "value": "0x0", + "data": "0x99a88ec4000000000000000000000000b962edded164f55d136e491a3022246815e1b5a8000000000000000000000000a38c0e64c79bbf5ba4406794943f8f3012be5618", + "nonce": "0x2d3c8" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xfdf8be4e153c8f6ccf606eff0f8e617e5e6aa17095907d6048f0f1ece6ef6f2b", + "transactionIndex": "0x0", + "blockHash": "0xd32e9fc1f7047c90d93ab38f642ef9c767ba3612d155fd7c09c5aad4ff38a5de", + "blockNumber": "0x15557a2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": null, + "cumulativeGasUsed": "0x231d6a", + "gasUsed": "0x231d6a", + "contractAddress": "0xA38C0e64c79BBF5Ba4406794943f8F3012Be5618", + "logs": [ + { + "address": "0xA38C0e64c79BBF5Ba4406794943f8F3012Be5618", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xd32e9fc1f7047c90d93ab38f642ef9c767ba3612d155fd7c09c5aad4ff38a5de", + "blockNumber": "0x15557a2", + "transactionHash": "0xfdf8be4e153c8f6ccf606eff0f8e617e5e6aa17095907d6048f0f1ece6ef6f2b", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0x0d4a11919be669ea7896667606bffeeaeb8960f94663ae41fb883c6fc1e8354e", + "transactionIndex": "0x1", + "blockHash": "0xd32e9fc1f7047c90d93ab38f642ef9c767ba3612d155fd7c09c5aad4ff38a5de", + "blockNumber": "0x15557a2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0x505d91E8fd2091794b45b27f86C045529fa92CD7", + "cumulativeGasUsed": "0x23a274", + "gasUsed": "0x850a", + "contractAddress": null, + "logs": [ + { + "address": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000a38c0e64c79bbf5ba4406794943f8f3012be5618" + ], + "data": "0x", + "blockHash": "0xd32e9fc1f7047c90d93ab38f642ef9c767ba3612d155fd7c09c5aad4ff38a5de", + "blockNumber": "0x15557a2", + "transactionHash": "0x0d4a11919be669ea7896667606bffeeaeb8960f94663ae41fb883c6fc1e8354e", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000400000000000040000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000020000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1700810724, + "chain": 2021, + "multi": false, + "commit": "3ff1d46" +} \ No newline at end of file diff --git a/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-1700813839.json b/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-1700813839.json new file mode 100644 index 00000000..8e50c0a7 --- /dev/null +++ b/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-1700813839.json @@ -0,0 +1,118 @@ +{ + "transactions": [ + { + "hash": "0x4707d6b011412097bb9ba87962b2c9753954fbb164fe5c79b3cc66824d9a06f1", + "transactionType": "CREATE", + "contractName": "RNSOperation", + "contractAddress": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "function": null, + "arguments": [ + "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "0x803c459dCB8771e5354D1fC567Ecc6885A9fd5E6", + "0xb962eddeD164f55D136E491a3022246815e1B5A8" + ], + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "gas": "0xefa77", + "value": "0x0", + "data": "0x60e060405234801561001057600080fd5b50604051610d8d380380610d8d83398101604081905261002f916100bc565b61003833610054565b6001600160a01b03928316608052821660c0521660a052610109565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146100b957600080fd5b50565b6000806000606084860312156100d157600080fd5b83516100dc816100a4565b60208501519093506100ed816100a4565b60408501519092506100fe816100a4565b809150509250925092565b60805160a05160c051610c3a6101536000396000818161017601526101c601526000818160a8015261034b015260008181610127015281816102d701526104120152610c3a6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a61461014957806371e8704d146101515780637d9f6db5146101715780638da5cb5b14610198578063f2fde38b146101a957600080fd5b806304f3bcec146100a357806319edebf2146100e757806338d73f63146100fc5780635ca032941461010f578063663b44c514610122575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100fa6100f536600461074d565b6101bc565b005b6100fa61010a3660046107e7565b61026e565b6100fa61011d36600461085d565b610408565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6100fa61049e565b61016461015f3660046108b4565b6104b2565b6040516100de9190610931565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03166100ca565b6100fa6101b7366004610967565b6105ba565b6101c4610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391a3823f86866101ff87876104b2565b856040518563ffffffff1660e01b815260040161021f9493929190610982565b6000604051808303816000875af115801561023e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102669190810190610a0c565b505050505050565b610276610633565b8184146102ca5760405162461bcd60e51b815260206004820152601d60248201527f524e534f7065726174696f6e3a206c656e677468206d69736d6174636800000060448201526064015b60405180910390fd5b60005b82811015610266577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68886868581811061033757610337610ad1565b90506020028101906103499190610ae7565b7f00000000000000000000000000000000000000000000000000000000000000008b8b8881811061037c5761037c610ad1565b90506020020160208101906103919190610967565b886040518763ffffffff1660e01b81526004016103b396959493929190610b2e565b60408051808303816000875af11580156103d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190610b8b565b50508061040190610bb9565b90506102cd565b610410610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec63b01f61044985856104b2565b836040518363ffffffff1660e01b8152600401610467929190610be0565b600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b50505050505050565b6104a6610633565b6104b0600061068d565b565b60608167ffffffffffffffff8111156104cd576104cd6109eb565b6040519080825280602002602001820160405280156104f6578160200160208202803683370190505b50905060005b828110156105b3576105867fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68885858481811061053a5761053a610ad1565b905060200281019061054c9190610ae7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106dd92505050565b82828151811061059857610598610ad1565b60209081029190910101526105ac81610bb9565b90506104fc565b5092915050565b6105c2610633565b6001600160a01b0381166106275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c1565b6106308161068d565b50565b6000546001600160a01b031633146104b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000918252805160209182012090526040902090565b60008083601f84011261070557600080fd5b50813567ffffffffffffffff81111561071d57600080fd5b6020830191508360208260051b850101111561073857600080fd5b9250929050565b801515811461063057600080fd5b60008060008060006060868803121561076557600080fd5b853567ffffffffffffffff8082111561077d57600080fd5b61078989838a016106f3565b909750955060208801359150808211156107a257600080fd5b506107af888289016106f3565b90945092505060408601356107c38161073f565b809150509295509295909350565b67ffffffffffffffff8116811461063057600080fd5b6000806000806000606086880312156107ff57600080fd5b853567ffffffffffffffff8082111561081757600080fd5b61082389838a016106f3565b9097509550602088013591508082111561083c57600080fd5b50610849888289016106f3565b90945092505060408601356107c3816107d1565b60008060006040848603121561087257600080fd5b833567ffffffffffffffff81111561088957600080fd5b610895868287016106f3565b90945092505060208401356108a98161073f565b809150509250925092565b600080602083850312156108c757600080fd5b823567ffffffffffffffff8111156108de57600080fd5b6108ea858286016106f3565b90969095509350505050565b600081518084526020808501945080840160005b838110156109265781518752958201959082019060010161090a565b509495945050505050565b60208152600061094460208301846108f6565b9392505050565b80356001600160a01b038116811461096257600080fd5b919050565b60006020828403121561097957600080fd5b6109448261094b565b6060808252810184905260008560808301825b878110156109c3576001600160a01b036109ae8461094b565b16825260209283019290910190600101610995565b5083810360208501526109d681876108f6565b92505050821515604083015295945050505050565b634e487b7160e01b600052604160045260246000fd5b80516109628161073f565b60006020808385031215610a1f57600080fd5b825167ffffffffffffffff80821115610a3757600080fd5b818501915085601f830112610a4b57600080fd5b815181811115610a5d57610a5d6109eb565b8060051b604051601f19603f83011681018181108582111715610a8257610a826109eb565b604052918252848201925083810185019188831115610aa057600080fd5b938501935b82851015610ac557610ab685610a01565b84529385019392850192610aa5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610afe57600080fd5b83018035915067ffffffffffffffff821115610b1957600080fd5b60200191503681900382131561073857600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b03948516604083015292909316606084015267ffffffffffffffff166080830152601f909201601f1916010192915050565b60008060408385031215610b9e57600080fd5b8251610ba9816107d1565b6020939093015192949293505050565b600060018201610bd957634e487b7160e01b600052601160045260246000fd5b5060010190565b604081526000610bf360408301856108f6565b90508215156020830152939250505056fea2646970667358221220740b9574a3a60d51c9153c3c1fc4d37b014870c53a5b57950a6a050a94f9d1ba64736f6c63430008150033000000000000000000000000f0c99c9677eda0d13291c093b27e6512e4acdf83000000000000000000000000803c459dcb8771e5354d1fc567ecc6885a9fd5e6000000000000000000000000b962edded164f55d136e491a3022246815e1b5a8", + "nonce": "0x2d3c9" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xcf04bc25f9de13eda4c74f0c7076c89146603aa206678723966cbbd968cdce69", + "transactionType": "CALL", + "contractName": "RNSOperation", + "contractAddress": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "function": "transferOwnership(address)", + "arguments": [ + "0x968D0Cd7343f711216817E617d3f92a23dC91c07" + ], + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0x64cc51f89d337c7327e1351d7568b733517eb851", + "gas": "0x9444", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07", + "nonce": "0x2d3ca" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4eddf665b0bc4c705dfcd33570857e4496678aaf30427504bedc5555404d1040", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xf0c99c9677eda0d13291c093b27e6512e4acdf83", + "gas": "0x11021", + "value": "0x0", + "data": "0xa22cb46500000000000000000000000064cc51f89d337c7327e1351d7568b733517eb8510000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x2d3cb" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x489c7245a90016c5a67e653454c67685c419b8261b2a5e176b6b25f726327c6c", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xb962edded164f55d136e491a3022246815e1b5a8", + "gas": "0x23467", + "value": "0x0", + "data": "0x2f2ff15d97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92900000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "nonce": "0x2d3cc" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x666b8957362eb68b0cd8ed8154d9d99fde202120b21027a35810ebc211d728db", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xf0c99c9677eda0d13291c093b27e6512e4acdf83", + "gas": "0x2154a", + "value": "0x0", + "data": "0x2f2ff15d9e4a939112df4627ab5078e49dd57d2c45b4cffd9ae0b912f9fc355e5b10803800000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "nonce": "0x2d3cd" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0x4707d6b011412097bb9ba87962b2c9753954fbb164fe5c79b3cc66824d9a06f1", + "0xcf04bc25f9de13eda4c74f0c7076c89146603aa206678723966cbbd968cdce69", + "0x4eddf665b0bc4c705dfcd33570857e4496678aaf30427504bedc5555404d1040", + "0x489c7245a90016c5a67e653454c67685c419b8261b2a5e176b6b25f726327c6c", + "0x666b8957362eb68b0cd8ed8154d9d99fde202120b21027a35810ebc211d728db" + ], + "returns": {}, + "timestamp": 1700813839, + "chain": 2021, + "multi": false, + "commit": "3ff1d46" +} \ No newline at end of file diff --git a/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-1700813847.json b/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-1700813847.json new file mode 100644 index 00000000..1ec56fe8 --- /dev/null +++ b/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-1700813847.json @@ -0,0 +1,275 @@ +{ + "transactions": [ + { + "hash": "0x4707d6b011412097bb9ba87962b2c9753954fbb164fe5c79b3cc66824d9a06f1", + "transactionType": "CREATE", + "contractName": "RNSOperation", + "contractAddress": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "function": null, + "arguments": [ + "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "0x803c459dCB8771e5354D1fC567Ecc6885A9fd5E6", + "0xb962eddeD164f55D136E491a3022246815e1B5A8" + ], + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "gas": "0xefa77", + "value": "0x0", + "data": "0x60e060405234801561001057600080fd5b50604051610d8d380380610d8d83398101604081905261002f916100bc565b61003833610054565b6001600160a01b03928316608052821660c0521660a052610109565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146100b957600080fd5b50565b6000806000606084860312156100d157600080fd5b83516100dc816100a4565b60208501519093506100ed816100a4565b60408501519092506100fe816100a4565b809150509250925092565b60805160a05160c051610c3a6101536000396000818161017601526101c601526000818160a8015261034b015260008181610127015281816102d701526104120152610c3a6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a61461014957806371e8704d146101515780637d9f6db5146101715780638da5cb5b14610198578063f2fde38b146101a957600080fd5b806304f3bcec146100a357806319edebf2146100e757806338d73f63146100fc5780635ca032941461010f578063663b44c514610122575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100fa6100f536600461074d565b6101bc565b005b6100fa61010a3660046107e7565b61026e565b6100fa61011d36600461085d565b610408565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6100fa61049e565b61016461015f3660046108b4565b6104b2565b6040516100de9190610931565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03166100ca565b6100fa6101b7366004610967565b6105ba565b6101c4610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391a3823f86866101ff87876104b2565b856040518563ffffffff1660e01b815260040161021f9493929190610982565b6000604051808303816000875af115801561023e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102669190810190610a0c565b505050505050565b610276610633565b8184146102ca5760405162461bcd60e51b815260206004820152601d60248201527f524e534f7065726174696f6e3a206c656e677468206d69736d6174636800000060448201526064015b60405180910390fd5b60005b82811015610266577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68886868581811061033757610337610ad1565b90506020028101906103499190610ae7565b7f00000000000000000000000000000000000000000000000000000000000000008b8b8881811061037c5761037c610ad1565b90506020020160208101906103919190610967565b886040518763ffffffff1660e01b81526004016103b396959493929190610b2e565b60408051808303816000875af11580156103d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190610b8b565b50508061040190610bb9565b90506102cd565b610410610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec63b01f61044985856104b2565b836040518363ffffffff1660e01b8152600401610467929190610be0565b600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b50505050505050565b6104a6610633565b6104b0600061068d565b565b60608167ffffffffffffffff8111156104cd576104cd6109eb565b6040519080825280602002602001820160405280156104f6578160200160208202803683370190505b50905060005b828110156105b3576105867fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68885858481811061053a5761053a610ad1565b905060200281019061054c9190610ae7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106dd92505050565b82828151811061059857610598610ad1565b60209081029190910101526105ac81610bb9565b90506104fc565b5092915050565b6105c2610633565b6001600160a01b0381166106275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c1565b6106308161068d565b50565b6000546001600160a01b031633146104b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000918252805160209182012090526040902090565b60008083601f84011261070557600080fd5b50813567ffffffffffffffff81111561071d57600080fd5b6020830191508360208260051b850101111561073857600080fd5b9250929050565b801515811461063057600080fd5b60008060008060006060868803121561076557600080fd5b853567ffffffffffffffff8082111561077d57600080fd5b61078989838a016106f3565b909750955060208801359150808211156107a257600080fd5b506107af888289016106f3565b90945092505060408601356107c38161073f565b809150509295509295909350565b67ffffffffffffffff8116811461063057600080fd5b6000806000806000606086880312156107ff57600080fd5b853567ffffffffffffffff8082111561081757600080fd5b61082389838a016106f3565b9097509550602088013591508082111561083c57600080fd5b50610849888289016106f3565b90945092505060408601356107c3816107d1565b60008060006040848603121561087257600080fd5b833567ffffffffffffffff81111561088957600080fd5b610895868287016106f3565b90945092505060208401356108a98161073f565b809150509250925092565b600080602083850312156108c757600080fd5b823567ffffffffffffffff8111156108de57600080fd5b6108ea858286016106f3565b90969095509350505050565b600081518084526020808501945080840160005b838110156109265781518752958201959082019060010161090a565b509495945050505050565b60208152600061094460208301846108f6565b9392505050565b80356001600160a01b038116811461096257600080fd5b919050565b60006020828403121561097957600080fd5b6109448261094b565b6060808252810184905260008560808301825b878110156109c3576001600160a01b036109ae8461094b565b16825260209283019290910190600101610995565b5083810360208501526109d681876108f6565b92505050821515604083015295945050505050565b634e487b7160e01b600052604160045260246000fd5b80516109628161073f565b60006020808385031215610a1f57600080fd5b825167ffffffffffffffff80821115610a3757600080fd5b818501915085601f830112610a4b57600080fd5b815181811115610a5d57610a5d6109eb565b8060051b604051601f19603f83011681018181108582111715610a8257610a826109eb565b604052918252848201925083810185019188831115610aa057600080fd5b938501935b82851015610ac557610ab685610a01565b84529385019392850192610aa5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610afe57600080fd5b83018035915067ffffffffffffffff821115610b1957600080fd5b60200191503681900382131561073857600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b03948516604083015292909316606084015267ffffffffffffffff166080830152601f909201601f1916010192915050565b60008060408385031215610b9e57600080fd5b8251610ba9816107d1565b6020939093015192949293505050565b600060018201610bd957634e487b7160e01b600052601160045260246000fd5b5060010190565b604081526000610bf360408301856108f6565b90508215156020830152939250505056fea2646970667358221220740b9574a3a60d51c9153c3c1fc4d37b014870c53a5b57950a6a050a94f9d1ba64736f6c63430008150033000000000000000000000000f0c99c9677eda0d13291c093b27e6512e4acdf83000000000000000000000000803c459dcb8771e5354d1fc567ecc6885a9fd5e6000000000000000000000000b962edded164f55d136e491a3022246815e1b5a8", + "nonce": "0x2d3c9" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xcf04bc25f9de13eda4c74f0c7076c89146603aa206678723966cbbd968cdce69", + "transactionType": "CALL", + "contractName": "RNSOperation", + "contractAddress": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "function": "transferOwnership(address)", + "arguments": [ + "0x968D0Cd7343f711216817E617d3f92a23dC91c07" + ], + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0x64cc51f89d337c7327e1351d7568b733517eb851", + "gas": "0x9444", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07", + "nonce": "0x2d3ca" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4eddf665b0bc4c705dfcd33570857e4496678aaf30427504bedc5555404d1040", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xf0c99c9677eda0d13291c093b27e6512e4acdf83", + "gas": "0x11021", + "value": "0x0", + "data": "0xa22cb46500000000000000000000000064cc51f89d337c7327e1351d7568b733517eb8510000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x2d3cb" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x489c7245a90016c5a67e653454c67685c419b8261b2a5e176b6b25f726327c6c", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xb962edded164f55d136e491a3022246815e1b5a8", + "gas": "0x23467", + "value": "0x0", + "data": "0x2f2ff15d97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92900000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "nonce": "0x2d3cc" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x666b8957362eb68b0cd8ed8154d9d99fde202120b21027a35810ebc211d728db", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xf0c99c9677eda0d13291c093b27e6512e4acdf83", + "gas": "0x2154a", + "value": "0x0", + "data": "0x2f2ff15d9e4a939112df4627ab5078e49dd57d2c45b4cffd9ae0b912f9fc355e5b10803800000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "nonce": "0x2d3cd" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x4707d6b011412097bb9ba87962b2c9753954fbb164fe5c79b3cc66824d9a06f1", + "transactionIndex": "0x0", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": null, + "cumulativeGasUsed": "0xb8597", + "gasUsed": "0xb8597", + "contractAddress": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "logs": [ + { + "address": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07" + ], + "data": "0x", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0x4707d6b011412097bb9ba87962b2c9753954fbb164fe5c79b3cc66824d9a06f1", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000001000000080000000100000000000000000000020000000000000000000800000000000000000008000000000000400000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0xcf04bc25f9de13eda4c74f0c7076c89146603aa206678723966cbbd968cdce69", + "transactionIndex": "0x1", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "cumulativeGasUsed": "0xbeaf8", + "gasUsed": "0x6561", + "contractAddress": null, + "logs": [ + { + "address": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07" + ], + "data": "0x", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0xcf04bc25f9de13eda4c74f0c7076c89146603aa206678723966cbbd968cdce69", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000001000000080000000100000000000000000000000000000000000000000000000000000000000008000000000000400000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0x4eddf665b0bc4c705dfcd33570857e4496678aaf30427504bedc5555404d1040", + "transactionIndex": "0x2", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "cumulativeGasUsed": "0xca50b", + "gasUsed": "0xba13", + "contractAddress": null, + "logs": [ + { + "address": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "topics": [ + "0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07", + "0x00000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0x4eddf665b0bc4c705dfcd33570857e4496678aaf30427504bedc5555404d1040", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000800000000000000000000000400000000000000000000000000000000008000000000000000000000002000000000000000000000000000000000000000000000000000000000000001000000000000000000080000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200800000000000000000020000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0x489c7245a90016c5a67e653454c67685c419b8261b2a5e176b6b25f726327c6c", + "transactionIndex": "0x3", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "cumulativeGasUsed": "0xe26f6", + "gasUsed": "0x181eb", + "contractAddress": null, + "logs": [ + { + "address": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929", + "0x00000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07" + ], + "data": "0x", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0x489c7245a90016c5a67e653454c67685c419b8261b2a5e176b6b25f726327c6c", + "transactionIndex": "0x3", + "logIndex": "0x3", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000008200000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000200080000000000008000001400000000000000000000000000000000000000000000000000000000000100000000000000000000000000000200000000000020000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0x666b8957362eb68b0cd8ed8154d9d99fde202120b21027a35810ebc211d728db", + "transactionIndex": "0x4", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "cumulativeGasUsed": "0xfa90e", + "gasUsed": "0x18218", + "contractAddress": null, + "logs": [ + { + "address": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x9e4a939112df4627ab5078e49dd57d2c45b4cffd9ae0b912f9fc355e5b108038", + "0x00000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07" + ], + "data": "0x", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0x666b8957362eb68b0cd8ed8154d9d99fde202120b21027a35810ebc211d728db", + "transactionIndex": "0x4", + "logIndex": "0x4", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000804000000000000000000000400000000000000000000000000000000008000000000000000000000002000000000000008000000000000000000000000000000000000000000000001000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200080000000000000000001000000020000000000000000000000000000000000000040000000000000100000000000000000000000000000000000000000020000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1700813847, + "chain": 2021, + "multi": false, + "commit": "3ff1d46" +} \ No newline at end of file diff --git a/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-latest.json b/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-latest.json new file mode 100644 index 00000000..1ec56fe8 --- /dev/null +++ b/broadcast/20231124_DeployRNSOperation.s.sol/2021/run-latest.json @@ -0,0 +1,275 @@ +{ + "transactions": [ + { + "hash": "0x4707d6b011412097bb9ba87962b2c9753954fbb164fe5c79b3cc66824d9a06f1", + "transactionType": "CREATE", + "contractName": "RNSOperation", + "contractAddress": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "function": null, + "arguments": [ + "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "0x803c459dCB8771e5354D1fC567Ecc6885A9fd5E6", + "0xb962eddeD164f55D136E491a3022246815e1B5A8" + ], + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "gas": "0xefa77", + "value": "0x0", + "data": "0x60e060405234801561001057600080fd5b50604051610d8d380380610d8d83398101604081905261002f916100bc565b61003833610054565b6001600160a01b03928316608052821660c0521660a052610109565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146100b957600080fd5b50565b6000806000606084860312156100d157600080fd5b83516100dc816100a4565b60208501519093506100ed816100a4565b60408501519092506100fe816100a4565b809150509250925092565b60805160a05160c051610c3a6101536000396000818161017601526101c601526000818160a8015261034b015260008181610127015281816102d701526104120152610c3a6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a61461014957806371e8704d146101515780637d9f6db5146101715780638da5cb5b14610198578063f2fde38b146101a957600080fd5b806304f3bcec146100a357806319edebf2146100e757806338d73f63146100fc5780635ca032941461010f578063663b44c514610122575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100fa6100f536600461074d565b6101bc565b005b6100fa61010a3660046107e7565b61026e565b6100fa61011d36600461085d565b610408565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6100fa61049e565b61016461015f3660046108b4565b6104b2565b6040516100de9190610931565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03166100ca565b6100fa6101b7366004610967565b6105ba565b6101c4610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391a3823f86866101ff87876104b2565b856040518563ffffffff1660e01b815260040161021f9493929190610982565b6000604051808303816000875af115801561023e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102669190810190610a0c565b505050505050565b610276610633565b8184146102ca5760405162461bcd60e51b815260206004820152601d60248201527f524e534f7065726174696f6e3a206c656e677468206d69736d6174636800000060448201526064015b60405180910390fd5b60005b82811015610266577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68886868581811061033757610337610ad1565b90506020028101906103499190610ae7565b7f00000000000000000000000000000000000000000000000000000000000000008b8b8881811061037c5761037c610ad1565b90506020020160208101906103919190610967565b886040518763ffffffff1660e01b81526004016103b396959493929190610b2e565b60408051808303816000875af11580156103d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190610b8b565b50508061040190610bb9565b90506102cd565b610410610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec63b01f61044985856104b2565b836040518363ffffffff1660e01b8152600401610467929190610be0565b600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b50505050505050565b6104a6610633565b6104b0600061068d565b565b60608167ffffffffffffffff8111156104cd576104cd6109eb565b6040519080825280602002602001820160405280156104f6578160200160208202803683370190505b50905060005b828110156105b3576105867fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68885858481811061053a5761053a610ad1565b905060200281019061054c9190610ae7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106dd92505050565b82828151811061059857610598610ad1565b60209081029190910101526105ac81610bb9565b90506104fc565b5092915050565b6105c2610633565b6001600160a01b0381166106275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c1565b6106308161068d565b50565b6000546001600160a01b031633146104b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000918252805160209182012090526040902090565b60008083601f84011261070557600080fd5b50813567ffffffffffffffff81111561071d57600080fd5b6020830191508360208260051b850101111561073857600080fd5b9250929050565b801515811461063057600080fd5b60008060008060006060868803121561076557600080fd5b853567ffffffffffffffff8082111561077d57600080fd5b61078989838a016106f3565b909750955060208801359150808211156107a257600080fd5b506107af888289016106f3565b90945092505060408601356107c38161073f565b809150509295509295909350565b67ffffffffffffffff8116811461063057600080fd5b6000806000806000606086880312156107ff57600080fd5b853567ffffffffffffffff8082111561081757600080fd5b61082389838a016106f3565b9097509550602088013591508082111561083c57600080fd5b50610849888289016106f3565b90945092505060408601356107c3816107d1565b60008060006040848603121561087257600080fd5b833567ffffffffffffffff81111561088957600080fd5b610895868287016106f3565b90945092505060208401356108a98161073f565b809150509250925092565b600080602083850312156108c757600080fd5b823567ffffffffffffffff8111156108de57600080fd5b6108ea858286016106f3565b90969095509350505050565b600081518084526020808501945080840160005b838110156109265781518752958201959082019060010161090a565b509495945050505050565b60208152600061094460208301846108f6565b9392505050565b80356001600160a01b038116811461096257600080fd5b919050565b60006020828403121561097957600080fd5b6109448261094b565b6060808252810184905260008560808301825b878110156109c3576001600160a01b036109ae8461094b565b16825260209283019290910190600101610995565b5083810360208501526109d681876108f6565b92505050821515604083015295945050505050565b634e487b7160e01b600052604160045260246000fd5b80516109628161073f565b60006020808385031215610a1f57600080fd5b825167ffffffffffffffff80821115610a3757600080fd5b818501915085601f830112610a4b57600080fd5b815181811115610a5d57610a5d6109eb565b8060051b604051601f19603f83011681018181108582111715610a8257610a826109eb565b604052918252848201925083810185019188831115610aa057600080fd5b938501935b82851015610ac557610ab685610a01565b84529385019392850192610aa5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610afe57600080fd5b83018035915067ffffffffffffffff821115610b1957600080fd5b60200191503681900382131561073857600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b03948516604083015292909316606084015267ffffffffffffffff166080830152601f909201601f1916010192915050565b60008060408385031215610b9e57600080fd5b8251610ba9816107d1565b6020939093015192949293505050565b600060018201610bd957634e487b7160e01b600052601160045260246000fd5b5060010190565b604081526000610bf360408301856108f6565b90508215156020830152939250505056fea2646970667358221220740b9574a3a60d51c9153c3c1fc4d37b014870c53a5b57950a6a050a94f9d1ba64736f6c63430008150033000000000000000000000000f0c99c9677eda0d13291c093b27e6512e4acdf83000000000000000000000000803c459dcb8771e5354d1fc567ecc6885a9fd5e6000000000000000000000000b962edded164f55d136e491a3022246815e1b5a8", + "nonce": "0x2d3c9" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xcf04bc25f9de13eda4c74f0c7076c89146603aa206678723966cbbd968cdce69", + "transactionType": "CALL", + "contractName": "RNSOperation", + "contractAddress": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "function": "transferOwnership(address)", + "arguments": [ + "0x968D0Cd7343f711216817E617d3f92a23dC91c07" + ], + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0x64cc51f89d337c7327e1351d7568b733517eb851", + "gas": "0x9444", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07", + "nonce": "0x2d3ca" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4eddf665b0bc4c705dfcd33570857e4496678aaf30427504bedc5555404d1040", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xf0c99c9677eda0d13291c093b27e6512e4acdf83", + "gas": "0x11021", + "value": "0x0", + "data": "0xa22cb46500000000000000000000000064cc51f89d337c7327e1351d7568b733517eb8510000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x2d3cb" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x489c7245a90016c5a67e653454c67685c419b8261b2a5e176b6b25f726327c6c", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xb962edded164f55d136e491a3022246815e1b5a8", + "gas": "0x23467", + "value": "0x0", + "data": "0x2f2ff15d97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92900000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "nonce": "0x2d3cc" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x666b8957362eb68b0cd8ed8154d9d99fde202120b21027a35810ebc211d728db", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "function": null, + "arguments": null, + "transaction": { + "type": "0x00", + "from": "0x968d0cd7343f711216817e617d3f92a23dc91c07", + "to": "0xf0c99c9677eda0d13291c093b27e6512e4acdf83", + "gas": "0x2154a", + "value": "0x0", + "data": "0x2f2ff15d9e4a939112df4627ab5078e49dd57d2c45b4cffd9ae0b912f9fc355e5b10803800000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "nonce": "0x2d3cd" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x4707d6b011412097bb9ba87962b2c9753954fbb164fe5c79b3cc66824d9a06f1", + "transactionIndex": "0x0", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": null, + "cumulativeGasUsed": "0xb8597", + "gasUsed": "0xb8597", + "contractAddress": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "logs": [ + { + "address": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07" + ], + "data": "0x", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0x4707d6b011412097bb9ba87962b2c9753954fbb164fe5c79b3cc66824d9a06f1", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000001000000080000000100000000000000000000020000000000000000000800000000000000000008000000000000400000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0xcf04bc25f9de13eda4c74f0c7076c89146603aa206678723966cbbd968cdce69", + "transactionIndex": "0x1", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "cumulativeGasUsed": "0xbeaf8", + "gasUsed": "0x6561", + "contractAddress": null, + "logs": [ + { + "address": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07" + ], + "data": "0x", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0xcf04bc25f9de13eda4c74f0c7076c89146603aa206678723966cbbd968cdce69", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000001000000080000000100000000000000000000000000000000000000000000000000000000000008000000000000400000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0x4eddf665b0bc4c705dfcd33570857e4496678aaf30427504bedc5555404d1040", + "transactionIndex": "0x2", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "cumulativeGasUsed": "0xca50b", + "gasUsed": "0xba13", + "contractAddress": null, + "logs": [ + { + "address": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "topics": [ + "0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07", + "0x00000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0x4eddf665b0bc4c705dfcd33570857e4496678aaf30427504bedc5555404d1040", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000800000000000000000000000400000000000000000000000000000000008000000000000000000000002000000000000000000000000000000000000000000000000000000000000001000000000000000000080000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200800000000000000000020000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0x489c7245a90016c5a67e653454c67685c419b8261b2a5e176b6b25f726327c6c", + "transactionIndex": "0x3", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "cumulativeGasUsed": "0xe26f6", + "gasUsed": "0x181eb", + "contractAddress": null, + "logs": [ + { + "address": "0xb962eddeD164f55D136E491a3022246815e1B5A8", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929", + "0x00000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07" + ], + "data": "0x", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0x489c7245a90016c5a67e653454c67685c419b8261b2a5e176b6b25f726327c6c", + "transactionIndex": "0x3", + "logIndex": "0x3", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000008200000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000200080000000000008000001400000000000000000000000000000000000000000000000000000000000100000000000000000000000000000200000000000020000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + }, + { + "transactionHash": "0x666b8957362eb68b0cd8ed8154d9d99fde202120b21027a35810ebc211d728db", + "transactionIndex": "0x4", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "from": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "to": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "cumulativeGasUsed": "0xfa90e", + "gasUsed": "0x18218", + "contractAddress": null, + "logs": [ + { + "address": "0xf0c99c9677EDa0D13291C093b27E6512E4ACdF83", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x9e4a939112df4627ab5078e49dd57d2c45b4cffd9ae0b912f9fc355e5b108038", + "0x00000000000000000000000064cc51f89d337c7327e1351d7568b733517eb851", + "0x000000000000000000000000968d0cd7343f711216817e617d3f92a23dc91c07" + ], + "data": "0x", + "blockHash": "0x96bf69f2b342d05a0b129debb4db47f3222fadfa078144d6f50d5dcc0d1d3e7d", + "blockNumber": "0x1555bb2", + "transactionHash": "0x666b8957362eb68b0cd8ed8154d9d99fde202120b21027a35810ebc211d728db", + "transactionIndex": "0x4", + "logIndex": "0x4", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000804000000000000000000000400000000000000000000000000000000008000000000000000000000002000000000000008000000000000000000000000000000000000000000000001000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200080000000000000000001000000020000000000000000000000000000000000000040000000000000100000000000000000000000000000000000000000020000000000000000000000000000000000000", + "type": "0x0", + "effectiveGasPrice": "0x4a817c800" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1700813847, + "chain": 2021, + "multi": false, + "commit": "3ff1d46" +} \ No newline at end of file diff --git a/deployments/ronin-testnet/RNSAuctionLogic.json b/deployments/ronin-testnet/RNSAuctionLogic.json index 483063a3..bad3ca32 100644 --- a/deployments/ronin-testnet/RNSAuctionLogic.json +++ b/deployments/ronin-testnet/RNSAuctionLogic.json @@ -6,7 +6,13 @@ "type": "constructor" }, { - "inputs": [], + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], "name": "AlreadyBidding", "type": "error" }, @@ -375,6 +381,35 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "tos", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "bool", + "name": "allowFailure", + "type": "bool" + } + ], + "name": "bulkClaimUnbiddedNames", + "outputs": [ + { + "internalType": "bool[]", + "name": "claimeds", + "type": "bool[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -862,56 +897,56 @@ "type": "function" } ], - "address": "0xc1A64532aB6e3EC0E01f2064A9075311B483Acb9", + "address": "0xA38C0e64c79BBF5Ba4406794943f8F3012Be5618", "args": "0x", "ast": { "absolutePath": "src/RNSAuction.sol", - "id": 59648, + "id": 63233, "exportedSymbols": { "AccessControlEnumerable": [ - 48591 + 48983 ], "BitMaps": [ - 53728 + 54120 ], "EventRange": [ - 65968 + 69638 ], "INSAuction": [ - 64411 + 68072 ], "INSUnified": [ - 65048 + 68718 ], "Initializable": [ - 49864 + 50256 ], "LibEventRange": [ - 66039 + 69709 ], "LibRNSDomain": [ - 66115 + 69785 ], "LibSafeRange": [ - 66659 + 70329 ], "Math": [ - 53173 + 53565 ], "RNSAuction": [ - 59647 + 63232 ], "RONTransferHelper": [ - 67517 + 71187 ] }, "nodeType": "SourceUnit", - "src": "32:9957:85", + "src": "32:10946:100", "nodes": [ { - "id": 58651, + "id": 62100, "nodeType": "PragmaDirective", - "src": "32:24:85", + "src": "32:24:100", "nodes": [], "literals": [ "solidity", @@ -921,24 +956,24 @@ ] }, { - "id": 58653, + "id": 62102, "nodeType": "ImportDirective", - "src": "58:86:85", + "src": "58:86:100", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol", "file": "@openzeppelin/contracts/proxy/utils/Initializable.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 49865, + "scope": 63233, + "sourceUnit": 50257, "symbolAliases": [ { "foreign": { - "id": 58652, + "id": 62101, "name": "Initializable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49864, - "src": "67:13:85", + "referencedDeclaration": 50256, + "src": "67:13:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -947,24 +982,24 @@ "unitAlias": "" }, { - "id": 58655, + "id": 62104, "nodeType": "ImportDirective", - "src": "145:101:85", + "src": "145:101:100", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol", "file": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 48592, + "scope": 63233, + "sourceUnit": 48984, "symbolAliases": [ { "foreign": { - "id": 58654, + "id": 62103, "name": "AccessControlEnumerable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48591, - "src": "154:23:85", + "referencedDeclaration": 48983, + "src": "154:23:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -973,24 +1008,24 @@ "unitAlias": "" }, { - "id": 58657, + "id": 62106, "nodeType": "ImportDirective", - "src": "247:67:85", + "src": "247:67:100", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", "file": "@openzeppelin/contracts/utils/math/Math.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 53174, + "scope": 63233, + "sourceUnit": 53566, "symbolAliases": [ { "foreign": { - "id": 58656, + "id": 62105, "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53173, - "src": "256:4:85", + "referencedDeclaration": 53565, + "src": "256:4:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -999,24 +1034,24 @@ "unitAlias": "" }, { - "id": 58659, + "id": 62108, "nodeType": "ImportDirective", - "src": "315:76:85", + "src": "315:76:100", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol", "file": "@openzeppelin/contracts/utils/structs/BitMaps.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 53729, + "scope": 63233, + "sourceUnit": 54121, "symbolAliases": [ { "foreign": { - "id": 58658, + "id": 62107, "name": "BitMaps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53728, - "src": "324:7:85", + "referencedDeclaration": 54120, + "src": "324:7:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1025,36 +1060,36 @@ "unitAlias": "" }, { - "id": 58662, + "id": 62111, "nodeType": "ImportDirective", - "src": "392:69:85", + "src": "392:69:100", "nodes": [], "absolutePath": "src/interfaces/INSAuction.sol", "file": "./interfaces/INSAuction.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 64412, + "scope": 63233, + "sourceUnit": 68073, "symbolAliases": [ { "foreign": { - "id": 58660, + "id": 62109, "name": "INSUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65048, - "src": "401:10:85", + "referencedDeclaration": 68718, + "src": "401:10:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 58661, + "id": 62110, "name": "INSAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64411, - "src": "413:10:85", + "referencedDeclaration": 68072, + "src": "413:10:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1063,24 +1098,24 @@ "unitAlias": "" }, { - "id": 58664, + "id": 62113, "nodeType": "ImportDirective", - "src": "462:65:85", + "src": "462:65:100", "nodes": [], "absolutePath": "src/libraries/math/LibSafeRange.sol", "file": "./libraries/math/LibSafeRange.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 66660, + "scope": 63233, + "sourceUnit": 70330, "symbolAliases": [ { "foreign": { - "id": 58663, + "id": 62112, "name": "LibSafeRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66659, - "src": "471:12:85", + "referencedDeclaration": 70329, + "src": "471:12:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1089,24 +1124,24 @@ "unitAlias": "" }, { - "id": 58666, + "id": 62115, "nodeType": "ImportDirective", - "src": "528:60:85", + "src": "528:60:100", "nodes": [], "absolutePath": "src/libraries/LibRNSDomain.sol", "file": "./libraries/LibRNSDomain.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 66116, + "scope": 63233, + "sourceUnit": 69786, "symbolAliases": [ { "foreign": { - "id": 58665, + "id": 62114, "name": "LibRNSDomain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66115, - "src": "537:12:85", + "referencedDeclaration": 69785, + "src": "537:12:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1115,36 +1150,36 @@ "unitAlias": "" }, { - "id": 58669, + "id": 62118, "nodeType": "ImportDirective", - "src": "589:74:85", + "src": "589:74:100", "nodes": [], "absolutePath": "src/libraries/LibEventRange.sol", "file": "./libraries/LibEventRange.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 66040, + "scope": 63233, + "sourceUnit": 69710, "symbolAliases": [ { "foreign": { - "id": 58667, + "id": 62116, "name": "LibEventRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66039, - "src": "598:13:85", + "referencedDeclaration": 69709, + "src": "598:13:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 58668, + "id": 62117, "name": "EventRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65968, - "src": "613:10:85", + "referencedDeclaration": 69638, + "src": "613:10:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1153,24 +1188,24 @@ "unitAlias": "" }, { - "id": 58671, + "id": 62120, "nodeType": "ImportDirective", - "src": "664:80:85", + "src": "664:80:100", "nodes": [], "absolutePath": "src/libraries/transfers/RONTransferHelper.sol", "file": "./libraries/transfers/RONTransferHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 59648, - "sourceUnit": 67518, + "scope": 63233, + "sourceUnit": 71188, "symbolAliases": [ { "foreign": { - "id": 58670, + "id": 62119, "name": "RONTransferHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67517, - "src": "673:17:85", + "referencedDeclaration": 71187, + "src": "673:17:100", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1179,31 +1214,31 @@ "unitAlias": "" }, { - "id": 59647, + "id": 63232, "nodeType": "ContractDefinition", - "src": "746:9242:85", + "src": "746:10231:100", "nodes": [ { - "id": 58680, + "id": 62129, "nodeType": "UsingForDirective", - "src": "824:31:85", + "src": "824:31:100", "nodes": [], "global": false, "libraryName": { - "id": 58678, + "id": 62127, "name": "LibSafeRange", "nameLocations": [ - "830:12:85" + "830:12:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 66659, - "src": "830:12:85" + "referencedDeclaration": 70329, + "src": "830:12:100" }, "typeName": { - "id": 58679, + "id": 62128, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "847:7:85", + "src": "847:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1211,100 +1246,100 @@ } }, { - "id": 58684, + "id": 62133, "nodeType": "UsingForDirective", - "src": "858:33:85", + "src": "858:33:100", "nodes": [], "global": false, "libraryName": { - "id": 58681, + "id": 62130, "name": "BitMaps", "nameLocations": [ - "864:7:85" + "864:7:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53728, - "src": "864:7:85" + "referencedDeclaration": 54120, + "src": "864:7:100" }, "typeName": { - "id": 58683, + "id": 62132, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58682, + "id": 62131, "name": "BitMaps.BitMap", "nameLocations": [ - "876:7:85", - "884:6:85" + "876:7:100", + "884:6:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53598, - "src": "876:14:85" + "referencedDeclaration": 53990, + "src": "876:14:100" }, - "referencedDeclaration": 53598, - "src": "876:14:85", + "referencedDeclaration": 53990, + "src": "876:14:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_BitMap_$53598_storage_ptr", + "typeIdentifier": "t_struct$_BitMap_$53990_storage_ptr", "typeString": "struct BitMaps.BitMap" } } }, { - "id": 58688, + "id": 62137, "nodeType": "UsingForDirective", - "src": "894:35:85", + "src": "894:35:100", "nodes": [], "global": false, "libraryName": { - "id": 58685, + "id": 62134, "name": "LibEventRange", "nameLocations": [ - "900:13:85" + "900:13:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 66039, - "src": "900:13:85" + "referencedDeclaration": 69709, + "src": "900:13:100" }, "typeName": { - "id": 58687, + "id": 62136, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58686, + "id": 62135, "name": "EventRange", "nameLocations": [ - "918:10:85" + "918:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "918:10:85" + "referencedDeclaration": 69638, + "src": "918:10:100" }, - "referencedDeclaration": 65968, - "src": "918:10:85", + "referencedDeclaration": 69638, + "src": "918:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } } }, { - "id": 58696, + "id": 62145, "nodeType": "VariableDeclaration", - "src": "962:52:85", + "src": "962:52:100", "nodes": [], "baseFunctions": [ - 64271 + 67917 ], "constant": true, "documentation": { - "id": 58689, + "id": 62138, "nodeType": "StructuredDocumentation", - "src": "933:26:85", + "src": "933:26:100", "text": "@inheritdoc INSAuction" }, "functionSelector": "b9671690", "mutability": "constant", "name": "MAX_EXPIRY", - "nameLocation": "985:10:85", - "scope": 59647, + "nameLocation": "985:10:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1312,10 +1347,10 @@ "typeString": "uint64" }, "typeName": { - "id": 58690, + "id": 62139, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "962:6:85", + "src": "962:6:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -1325,22 +1360,22 @@ "expression": { "arguments": [ { - "id": 58693, + "id": 62142, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1003:6:85", + "src": "1003:6:100", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { - "id": 58692, + "id": 62141, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1003:6:85", + "src": "1003:6:100", "typeDescriptions": {} } } @@ -1352,18 +1387,18 @@ "typeString": "type(uint64)" } ], - "id": 58691, + "id": 62140, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "998:4:85", + "src": "998:4:100", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 58694, + "id": 62143, "isConstant": false, "isLValue": false, "isPure": true, @@ -1372,22 +1407,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "998:12:85", + "src": "998:12:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint64", "typeString": "type(uint64)" } }, - "id": 58695, + "id": 62144, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1011:3:85", + "memberLocation": "1011:3:100", "memberName": "max", "nodeType": "MemberAccess", - "src": "998:16:85", + "src": "998:16:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -1396,25 +1431,25 @@ "visibility": "public" }, { - "id": 58700, + "id": 62149, "nodeType": "VariableDeclaration", - "src": "1047:47:85", + "src": "1047:47:100", "nodes": [], "baseFunctions": [ - 64289 + 67935 ], "constant": true, "documentation": { - "id": 58697, + "id": 62146, "nodeType": "StructuredDocumentation", - "src": "1018:26:85", + "src": "1018:26:100", "text": "@inheritdoc INSAuction" }, "functionSelector": "4c255c97", "mutability": "constant", "name": "MAX_PERCENTAGE", - "nameLocation": "1071:14:85", - "scope": 59647, + "nameLocation": "1071:14:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1422,10 +1457,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58698, + "id": 62147, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1047:7:85", + "src": "1047:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1433,14 +1468,14 @@ }, "value": { "hexValue": "3130305f3030", - "id": 58699, + "id": 62148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1088:6:85", + "src": "1088:6:100", "typeDescriptions": { "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" @@ -1450,25 +1485,25 @@ "visibility": "public" }, { - "id": 58704, + "id": 62153, "nodeType": "VariableDeclaration", - "src": "1127:56:85", + "src": "1127:56:100", "nodes": [], "baseFunctions": [ - 64295 + 67941 ], "constant": true, "documentation": { - "id": 58701, + "id": 62150, "nodeType": "StructuredDocumentation", - "src": "1098:26:85", + "src": "1098:26:100", "text": "@inheritdoc INSAuction" }, "functionSelector": "19a3ee40", "mutability": "constant", "name": "DOMAIN_EXPIRY_DURATION", - "nameLocation": "1150:22:85", - "scope": 59647, + "nameLocation": "1150:22:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1476,10 +1511,10 @@ "typeString": "uint64" }, "typeName": { - "id": 58702, + "id": 62151, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1127:6:85", + "src": "1127:6:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -1487,14 +1522,14 @@ }, "value": { "hexValue": "333635", - "id": 58703, + "id": 62152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1175:8:85", + "src": "1175:8:100", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_31536000_by_1", @@ -1505,25 +1540,25 @@ "visibility": "public" }, { - "id": 58710, + "id": 62159, "nodeType": "VariableDeclaration", - "src": "1216:63:85", + "src": "1216:63:100", "nodes": [], "baseFunctions": [ - 64277 + 67923 ], "constant": true, "documentation": { - "id": 58705, + "id": 62154, "nodeType": "StructuredDocumentation", - "src": "1187:26:85", + "src": "1187:26:100", "text": "@inheritdoc INSAuction" }, "functionSelector": "0afe1bb3", "mutability": "constant", "name": "MAX_AUCTION_DOMAIN_EXPIRY", - "nameLocation": "1239:25:85", - "scope": 59647, + "nameLocation": "1239:25:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1531,10 +1566,10 @@ "typeString": "uint64" }, "typeName": { - "id": 58706, + "id": 62155, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1216:6:85", + "src": "1216:6:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -1545,21 +1580,21 @@ "typeIdentifier": "t_rational_94608000_by_1", "typeString": "int_const 94608000" }, - "id": 58709, + "id": 62158, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "333635", - "id": 58707, + "id": 62156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1267:8:85", + "src": "1267:8:100", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_31536000_by_1", @@ -1571,21 +1606,21 @@ "operator": "*", "rightExpression": { "hexValue": "33", - "id": 58708, + "id": 62157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1278:1:85", + "src": "1278:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "1267:12:85", + "src": "1267:12:100", "typeDescriptions": { "typeIdentifier": "t_rational_94608000_by_1", "typeString": "int_const 94608000" @@ -1594,25 +1629,25 @@ "visibility": "public" }, { - "id": 58716, + "id": 62165, "nodeType": "VariableDeclaration", - "src": "1312:66:85", + "src": "1312:66:100", "nodes": [], "baseFunctions": [ - 64283 + 67929 ], "constant": true, "documentation": { - "id": 58711, + "id": 62160, "nodeType": "StructuredDocumentation", - "src": "1283:26:85", + "src": "1283:26:100", "text": "@inheritdoc INSAuction" }, "functionSelector": "f5b541a6", "mutability": "constant", "name": "OPERATOR_ROLE", - "nameLocation": "1336:13:85", - "scope": 59647, + "nameLocation": "1336:13:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1620,10 +1655,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 58712, + "id": 62161, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1312:7:85", + "src": "1312:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1633,14 +1668,14 @@ "arguments": [ { "hexValue": "4f50455241544f525f524f4c45", - "id": 58714, + "id": 62163, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1362:15:85", + "src": "1362:15:100", "typeDescriptions": { "typeIdentifier": "t_stringliteral_97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929", "typeString": "literal_string \"OPERATOR_ROLE\"" @@ -1655,18 +1690,18 @@ "typeString": "literal_string \"OPERATOR_ROLE\"" } ], - "id": 58713, + "id": 62162, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "1352:9:85", + "src": "1352:9:100", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 58715, + "id": 62164, "isConstant": false, "isLValue": false, "isPure": true, @@ -1675,7 +1710,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1352:26:85", + "src": "1352:26:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1685,21 +1720,21 @@ "visibility": "public" }, { - "id": 58721, + "id": 62170, "nodeType": "VariableDeclaration", - "src": "1418:27:85", + "src": "1418:27:100", "nodes": [], "constant": false, "documentation": { - "id": 58717, + "id": 62166, "nodeType": "StructuredDocumentation", - "src": "1383:32:85", + "src": "1383:32:100", "text": "@dev Gap for upgradeability." }, "mutability": "mutable", "name": "____gap", - "nameLocation": "1438:7:85", - "scope": 59647, + "nameLocation": "1438:7:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1708,26 +1743,26 @@ }, "typeName": { "baseType": { - "id": 58718, + "id": 62167, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1418:7:85", + "src": "1418:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 58720, + "id": 62169, "length": { "hexValue": "3530", - "id": 58719, + "id": 62168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1426:2:85", + "src": "1426:2:100", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -1735,7 +1770,7 @@ "value": "50" }, "nodeType": "ArrayTypeName", - "src": "1418:11:85", + "src": "1418:11:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", "typeString": "uint256[50]" @@ -1744,110 +1779,110 @@ "visibility": "private" }, { - "id": 58725, + "id": 62174, "nodeType": "VariableDeclaration", - "src": "1485:31:85", + "src": "1485:31:100", "nodes": [], "constant": false, "documentation": { - "id": 58722, + "id": 62171, "nodeType": "StructuredDocumentation", - "src": "1449:33:85", + "src": "1449:33:100", "text": "@dev The RNSUnified contract." }, "mutability": "mutable", "name": "_rnsUnified", - "nameLocation": "1505:11:85", - "scope": 59647, + "nameLocation": "1505:11:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" }, "typeName": { - "id": 58724, + "id": 62173, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58723, + "id": 62172, "name": "INSUnified", "nameLocations": [ - "1485:10:85" + "1485:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65048, - "src": "1485:10:85" + "referencedDeclaration": 68718, + "src": "1485:10:100" }, - "referencedDeclaration": 65048, - "src": "1485:10:85", + "referencedDeclaration": 68718, + "src": "1485:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, "visibility": "internal" }, { - "id": 58731, + "id": 62180, "nodeType": "VariableDeclaration", - "src": "1570:63:85", + "src": "1570:63:100", "nodes": [], "constant": false, "documentation": { - "id": 58726, + "id": 62175, "nodeType": "StructuredDocumentation", - "src": "1520:47:85", + "src": "1520:47:100", "text": "@dev Mapping from auction Id => event range" }, "mutability": "mutable", "name": "_auctionRange", - "nameLocation": "1620:13:85", - "scope": 59647, + "nameLocation": "1620:13:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$65968_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$69638_storage_$", "typeString": "mapping(bytes32 => struct EventRange)" }, "typeName": { - "id": 58730, + "id": 62179, "keyName": "auctionId", - "keyNameLocation": "1586:9:85", + "keyNameLocation": "1586:9:100", "keyType": { - "id": 58727, + "id": 62176, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1578:7:85", + "src": "1578:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1570:40:85", + "src": "1570:40:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$65968_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$69638_storage_$", "typeString": "mapping(bytes32 => struct EventRange)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 58729, + "id": 62178, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58728, + "id": 62177, "name": "EventRange", "nameLocations": [ - "1599:10:85" + "1599:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "1599:10:85" + "referencedDeclaration": 69638, + "src": "1599:10:100" }, - "referencedDeclaration": 65968, - "src": "1599:10:85", + "referencedDeclaration": 69638, + "src": "1599:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } } @@ -1855,66 +1890,66 @@ "visibility": "internal" }, { - "id": 58737, + "id": 62186, "nodeType": "VariableDeclaration", - "src": "1699:60:85", + "src": "1699:60:100", "nodes": [], "constant": false, "documentation": { - "id": 58732, + "id": 62181, "nodeType": "StructuredDocumentation", - "src": "1637:59:85", + "src": "1637:59:100", "text": "@dev Mapping from id of domain names => auction detail." }, "mutability": "mutable", "name": "_domainAuction", - "nameLocation": "1745:14:85", - "scope": 59647, + "nameLocation": "1745:14:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$64221_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", "typeString": "mapping(uint256 => struct INSAuction.DomainAuction)" }, "typeName": { - "id": 58736, + "id": 62185, "keyName": "id", - "keyNameLocation": "1715:2:85", + "keyNameLocation": "1715:2:100", "keyType": { - "id": 58733, + "id": 62182, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1707:7:85", + "src": "1707:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "1699:36:85", + "src": "1699:36:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$64221_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", "typeString": "mapping(uint256 => struct INSAuction.DomainAuction)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 58735, + "id": 62184, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58734, + "id": 62183, "name": "DomainAuction", "nameLocations": [ - "1721:13:85" + "1721:13:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 64221, - "src": "1721:13:85" + "referencedDeclaration": 67867, + "src": "1721:13:100" }, - "referencedDeclaration": 64221, - "src": "1721:13:85", + "referencedDeclaration": 67867, + "src": "1721:13:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction" } } @@ -1922,21 +1957,21 @@ "visibility": "internal" }, { - "id": 58740, + "id": 62189, "nodeType": "VariableDeclaration", - "src": "1789:34:85", + "src": "1789:34:100", "nodes": [], "constant": false, "documentation": { - "id": 58738, + "id": 62187, "nodeType": "StructuredDocumentation", - "src": "1764:22:85", + "src": "1764:22:100", "text": "@dev The treasury." }, "mutability": "mutable", "name": "_treasury", - "nameLocation": "1814:9:85", - "scope": 59647, + "nameLocation": "1814:9:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1944,10 +1979,10 @@ "typeString": "address payable" }, "typeName": { - "id": 58739, + "id": 62188, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1789:15:85", + "src": "1789:15:100", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1957,21 +1992,21 @@ "visibility": "internal" }, { - "id": 58743, + "id": 62192, "nodeType": "VariableDeclaration", - "src": "1892:29:85", + "src": "1892:29:100", "nodes": [], "constant": false, "documentation": { - "id": 58741, + "id": 62190, "nodeType": "StructuredDocumentation", - "src": "1827:62:85", + "src": "1827:62:100", "text": "@dev The gap ratio between 2 bids with the starting price." }, "mutability": "mutable", "name": "_bidGapRatio", - "nameLocation": "1909:12:85", - "scope": 59647, + "nameLocation": "1909:12:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1979,10 +2014,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58742, + "id": 62191, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1892:7:85", + "src": "1892:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1991,71 +2026,71 @@ "visibility": "internal" }, { - "id": 58747, + "id": 62196, "nodeType": "VariableDeclaration", - "src": "1976:33:85", + "src": "1976:33:100", "nodes": [], "constant": false, "documentation": { - "id": 58744, + "id": 62193, "nodeType": "StructuredDocumentation", - "src": "1925:48:85", + "src": "1925:48:100", "text": "@dev Mapping from id => bool reserved status" }, "mutability": "mutable", "name": "_reserved", - "nameLocation": "2000:9:85", - "scope": 59647, + "nameLocation": "2000:9:100", + "scope": 63232, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_BitMap_$53598_storage", + "typeIdentifier": "t_struct$_BitMap_$53990_storage", "typeString": "struct BitMaps.BitMap" }, "typeName": { - "id": 58746, + "id": 62195, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58745, + "id": 62194, "name": "BitMaps.BitMap", "nameLocations": [ - "1976:7:85", - "1984:6:85" + "1976:7:100", + "1984:6:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53598, - "src": "1976:14:85" + "referencedDeclaration": 53990, + "src": "1976:14:100" }, - "referencedDeclaration": 53598, - "src": "1976:14:85", + "referencedDeclaration": 53990, + "src": "1976:14:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_BitMap_$53598_storage_ptr", + "typeIdentifier": "t_struct$_BitMap_$53990_storage_ptr", "typeString": "struct BitMaps.BitMap" } }, "visibility": "internal" }, { - "id": 58757, + "id": 62206, "nodeType": "ModifierDefinition", - "src": "2014:90:85", + "src": "2014:90:100", "nodes": [], "body": { - "id": 58756, + "id": 62205, "nodeType": "Block", - "src": "2057:47:85", + "src": "2057:47:100", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 58752, + "id": 62201, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58749, - "src": "2082:9:85", + "referencedDeclaration": 62198, + "src": "2082:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2069,18 +2104,18 @@ "typeString": "bytes32" } ], - "id": 58751, + "id": 62200, "name": "_requireNotStarted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59646, - "src": "2063:18:85", + "referencedDeclaration": 63231, + "src": "2063:18:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", "typeString": "function (bytes32) view" } }, - "id": 58753, + "id": 62202, "isConstant": false, "isLValue": false, "isPure": false, @@ -2089,39 +2124,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2063:29:85", + "src": "2063:29:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58754, + "id": 62203, "nodeType": "ExpressionStatement", - "src": "2063:29:85" + "src": "2063:29:100" }, { - "id": 58755, + "id": 62204, "nodeType": "PlaceholderStatement", - "src": "2098:1:85" + "src": "2098:1:100" } ] }, "name": "whenNotStarted", - "nameLocation": "2023:14:85", + "nameLocation": "2023:14:100", "parameters": { - "id": 58750, + "id": 62199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58749, + "id": 62198, "mutability": "mutable", "name": "auctionId", - "nameLocation": "2046:9:85", + "nameLocation": "2046:9:100", "nodeType": "VariableDeclaration", - "scope": 58757, - "src": "2038:17:85", + "scope": 62206, + "src": "2038:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2129,10 +2164,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 58748, + "id": 62197, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2038:7:85", + "src": "2038:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2141,34 +2176,34 @@ "visibility": "internal" } ], - "src": "2037:19:85" + "src": "2037:19:100" }, "virtual": false, "visibility": "internal" }, { - "id": 58768, + "id": 62217, "nodeType": "ModifierDefinition", - "src": "2108:104:85", + "src": "2108:104:100", "nodes": [], "body": { - "id": 58767, + "id": 62216, "nodeType": "Block", - "src": "2164:48:85", + "src": "2164:48:100", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 58763, + "id": 62212, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58760, - "src": "2194:5:85", + "referencedDeclaration": 62209, + "src": "2194:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } } @@ -2176,22 +2211,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } ], - "id": 58762, + "id": 62211, "name": "_requireValidEventRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59629, - "src": "2170:23:85", + "referencedDeclaration": 63214, + "src": "2170:23:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$65968_calldata_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$69638_calldata_ptr_$returns$__$", "typeString": "function (struct EventRange calldata) view" } }, - "id": 58764, + "id": 62213, "isConstant": false, "isLValue": false, "isPure": false, @@ -2200,82 +2235,82 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2170:30:85", + "src": "2170:30:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58765, + "id": 62214, "nodeType": "ExpressionStatement", - "src": "2170:30:85" + "src": "2170:30:100" }, { - "id": 58766, + "id": 62215, "nodeType": "PlaceholderStatement", - "src": "2206:1:85" + "src": "2206:1:100" } ] }, "name": "onlyValidEventRange", - "nameLocation": "2117:19:85", + "nameLocation": "2117:19:100", "parameters": { - "id": 58761, + "id": 62210, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58760, + "id": 62209, "mutability": "mutable", "name": "range", - "nameLocation": "2157:5:85", + "nameLocation": "2157:5:100", "nodeType": "VariableDeclaration", - "scope": 58768, - "src": "2137:25:85", + "scope": 62217, + "src": "2137:25:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange" }, "typeName": { - "id": 58759, + "id": 62208, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58758, + "id": 62207, "name": "EventRange", "nameLocations": [ - "2137:10:85" + "2137:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "2137:10:85" + "referencedDeclaration": 69638, + "src": "2137:10:100" }, - "referencedDeclaration": 65968, - "src": "2137:10:85", + "referencedDeclaration": 69638, + "src": "2137:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } }, "visibility": "internal" } ], - "src": "2136:27:85" + "src": "2136:27:100" }, "virtual": false, "visibility": "internal" }, { - "id": 58775, + "id": 62224, "nodeType": "FunctionDefinition", - "src": "2216:55:85", + "src": "2216:55:100", "nodes": [], "body": { - "id": 58774, + "id": 62223, "nodeType": "Block", - "src": "2238:33:85", + "src": "2238:33:100", "nodes": [], "statements": [ { @@ -2283,18 +2318,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 58771, + "id": 62220, "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49845, - "src": "2244:20:85", + "referencedDeclaration": 50237, + "src": "2244:20:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 58772, + "id": 62221, "isConstant": false, "isLValue": false, "isPure": false, @@ -2303,16 +2338,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2244:22:85", + "src": "2244:22:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58773, + "id": 62222, "nodeType": "ExpressionStatement", - "src": "2244:22:85" + "src": "2244:22:100" } ] }, @@ -2322,43 +2357,43 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 58769, + "id": 62218, "nodeType": "ParameterList", "parameters": [], - "src": "2227:2:85" + "src": "2227:2:100" }, "returnParameters": { - "id": 58770, + "id": 62219, "nodeType": "ParameterList", "parameters": [], - "src": "2238:0:85" + "src": "2238:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "payable", "virtual": false, "visibility": "public" }, { - "id": 58838, + "id": 62287, "nodeType": "FunctionDefinition", - "src": "2275:531:85", + "src": "2275:531:100", "nodes": [], "body": { - "id": 58837, + "id": 62286, "nodeType": "Block", - "src": "2455:351:85", + "src": "2455:351:100", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 58793, + "id": 62242, "name": "treasury", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58785, - "src": "2474:8:85", + "referencedDeclaration": 62234, + "src": "2474:8:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2372,18 +2407,18 @@ "typeString": "address payable" } ], - "id": 58792, + "id": 62241, "name": "_setTreasury", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59540, - "src": "2461:12:85", + "referencedDeclaration": 63125, + "src": "2461:12:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 58794, + "id": 62243, "isConstant": false, "isLValue": false, "isPure": false, @@ -2392,27 +2427,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2461:22:85", + "src": "2461:22:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58795, + "id": 62244, "nodeType": "ExpressionStatement", - "src": "2461:22:85" + "src": "2461:22:100" }, { "expression": { "arguments": [ { - "id": 58797, + "id": 62246, "name": "bidGapRatio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58787, - "src": "2505:11:85", + "referencedDeclaration": 62236, + "src": "2505:11:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2426,18 +2461,18 @@ "typeString": "uint256" } ], - "id": 58796, + "id": 62245, "name": "_setBidGapRatio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59562, - "src": "2489:15:85", + "referencedDeclaration": 63147, + "src": "2489:15:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 58798, + "id": 62247, "isConstant": false, "isLValue": false, "isPure": false, @@ -2446,39 +2481,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2489:28:85", + "src": "2489:28:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58799, + "id": 62248, "nodeType": "ExpressionStatement", - "src": "2489:28:85" + "src": "2489:28:100" }, { "expression": { "arguments": [ { - "id": 58801, + "id": 62250, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48178, - "src": "2534:18:85", + "referencedDeclaration": 48570, + "src": "2534:18:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 58802, + "id": 62251, "name": "admin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58777, - "src": "2554:5:85", + "referencedDeclaration": 62226, + "src": "2554:5:100", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2496,18 +2531,18 @@ "typeString": "address" } ], - "id": 58800, + "id": 62249, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48374, - "src": "2523:10:85", + "referencedDeclaration": 48766, + "src": "2523:10:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 58803, + "id": 62252, "isConstant": false, "isLValue": false, "isPure": false, @@ -2516,31 +2551,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2523:37:85", + "src": "2523:37:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58804, + "id": 62253, "nodeType": "ExpressionStatement", - "src": "2523:37:85" + "src": "2523:37:100" }, { "assignments": [ - 58806 + 62255 ], "declarations": [ { "constant": false, - "id": 58806, + "id": 62255, "mutability": "mutable", "name": "length", - "nameLocation": "2575:6:85", + "nameLocation": "2575:6:100", "nodeType": "VariableDeclaration", - "scope": 58837, - "src": "2567:14:85", + "scope": 62286, + "src": "2567:14:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2548,10 +2583,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58805, + "id": 62254, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2567:7:85", + "src": "2567:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2560,51 +2595,51 @@ "visibility": "internal" } ], - "id": 58809, + "id": 62258, "initialValue": { "expression": { - "id": 58807, + "id": 62256, "name": "operators", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58780, - "src": "2584:9:85", + "referencedDeclaration": 62229, + "src": "2584:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 58808, + "id": 62257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2594:6:85", + "memberLocation": "2594:6:100", "memberName": "length", "nodeType": "MemberAccess", - "src": "2584:16:85", + "src": "2584:16:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2567:33:85" + "src": "2567:33:100" }, { "assignments": [ - 58811 + 62260 ], "declarations": [ { "constant": false, - "id": 58811, + "id": 62260, "mutability": "mutable", "name": "operatorRole", - "nameLocation": "2614:12:85", + "nameLocation": "2614:12:100", "nodeType": "VariableDeclaration", - "scope": 58837, - "src": "2606:20:85", + "scope": 62286, + "src": "2606:20:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2612,10 +2647,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 58810, + "id": 62259, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2606:7:85", + "src": "2606:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2624,38 +2659,38 @@ "visibility": "internal" } ], - "id": 58813, + "id": 62262, "initialValue": { - "id": 58812, + "id": 62261, "name": "OPERATOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58716, - "src": "2629:13:85", + "referencedDeclaration": 62165, + "src": "2629:13:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2606:36:85" + "src": "2606:36:100" }, { "body": { - "id": 58831, + "id": 62280, "nodeType": "Block", - "src": "2678:93:85", + "src": "2678:93:100", "statements": [ { "expression": { "arguments": [ { - "id": 58821, + "id": 62270, "name": "operatorRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58811, - "src": "2697:12:85", + "referencedDeclaration": 62260, + "src": "2697:12:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2663,25 +2698,25 @@ }, { "baseExpression": { - "id": 58822, + "id": 62271, "name": "operators", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58780, - "src": "2711:9:85", + "referencedDeclaration": 62229, + "src": "2711:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 58824, + "id": 62273, "indexExpression": { - "id": 58823, + "id": 62272, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58815, - "src": "2721:1:85", + "referencedDeclaration": 62264, + "src": "2721:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2692,7 +2727,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2711:12:85", + "src": "2711:12:100", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2710,18 +2745,18 @@ "typeString": "address" } ], - "id": 58820, + "id": 62269, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48374, - "src": "2686:10:85", + "referencedDeclaration": 48766, + "src": "2686:10:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 58825, + "id": 62274, "isConstant": false, "isLValue": false, "isPure": false, @@ -2730,25 +2765,25 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2686:38:85", + "src": "2686:38:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58826, + "id": 62275, "nodeType": "ExpressionStatement", - "src": "2686:38:85" + "src": "2686:38:100" }, { - "id": 58830, + "id": 62279, "nodeType": "UncheckedBlock", - "src": "2733:32:85", + "src": "2733:32:100", "statements": [ { "expression": { - "id": 58828, + "id": 62277, "isConstant": false, "isLValue": false, "isPure": false, @@ -2756,14 +2791,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "2753:3:85", + "src": "2753:3:100", "subExpression": { - "id": 58827, + "id": 62276, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58815, - "src": "2755:1:85", + "referencedDeclaration": 62264, + "src": "2755:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2774,9 +2809,9 @@ "typeString": "uint256" } }, - "id": 58829, + "id": 62278, "nodeType": "ExpressionStatement", - "src": "2753:3:85" + "src": "2753:3:100" } ] } @@ -2787,18 +2822,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 58819, + "id": 62268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 58817, + "id": 62266, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58815, - "src": "2665:1:85", + "referencedDeclaration": 62264, + "src": "2665:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2807,38 +2842,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 58818, + "id": 62267, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58806, - "src": "2669:6:85", + "referencedDeclaration": 62255, + "src": "2669:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2665:10:85", + "src": "2665:10:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 58832, + "id": 62281, "initializationExpression": { "assignments": [ - 58815 + 62264 ], "declarations": [ { "constant": false, - "id": 58815, + "id": 62264, "mutability": "mutable", "name": "i", - "nameLocation": "2662:1:85", + "nameLocation": "2662:1:100", "nodeType": "VariableDeclaration", - "scope": 58832, - "src": "2654:9:85", + "scope": 62281, + "src": "2654:9:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2846,10 +2881,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58814, + "id": 62263, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2654:7:85", + "src": "2654:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2858,55 +2893,55 @@ "visibility": "internal" } ], - "id": 58816, + "id": 62265, "nodeType": "VariableDeclarationStatement", - "src": "2654:9:85" + "src": "2654:9:100" }, "nodeType": "ForStatement", - "src": "2649:122:85" + "src": "2649:122:100" }, { "expression": { - "id": 58835, + "id": 62284, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 58833, + "id": 62282, "name": "_rnsUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58725, - "src": "2777:11:85", + "referencedDeclaration": 62174, + "src": "2777:11:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 58834, + "id": 62283, "name": "rnsUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58783, - "src": "2791:10:85", + "referencedDeclaration": 62232, + "src": "2791:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, - "src": "2777:24:85", + "src": "2777:24:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, - "id": 58836, + "id": 62285, "nodeType": "ExpressionStatement", - "src": "2777:24:85" + "src": "2777:24:100" } ] }, @@ -2915,37 +2950,37 @@ "kind": "function", "modifiers": [ { - "id": 58790, + "id": 62239, "kind": "modifierInvocation", "modifierName": { - "id": 58789, + "id": 62238, "name": "initializer", "nameLocations": [ - "2443:11:85" + "2443:11:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49766, - "src": "2443:11:85" + "referencedDeclaration": 50158, + "src": "2443:11:100" }, "nodeType": "ModifierInvocation", - "src": "2443:11:85" + "src": "2443:11:100" } ], "name": "initialize", - "nameLocation": "2284:10:85", + "nameLocation": "2284:10:100", "parameters": { - "id": 58788, + "id": 62237, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58777, + "id": 62226, "mutability": "mutable", "name": "admin", - "nameLocation": "2308:5:85", + "nameLocation": "2308:5:100", "nodeType": "VariableDeclaration", - "scope": 58838, - "src": "2300:13:85", + "scope": 62287, + "src": "2300:13:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2953,10 +2988,10 @@ "typeString": "address" }, "typeName": { - "id": 58776, + "id": 62225, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2300:7:85", + "src": "2300:7:100", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2967,13 +3002,13 @@ }, { "constant": false, - "id": 58780, + "id": 62229, "mutability": "mutable", "name": "operators", - "nameLocation": "2338:9:85", + "nameLocation": "2338:9:100", "nodeType": "VariableDeclaration", - "scope": 58838, - "src": "2319:28:85", + "scope": 62287, + "src": "2319:28:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2982,19 +3017,19 @@ }, "typeName": { "baseType": { - "id": 58778, + "id": 62227, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2319:7:85", + "src": "2319:7:100", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 58779, + "id": 62228, "nodeType": "ArrayTypeName", - "src": "2319:9:85", + "src": "2319:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3004,36 +3039,36 @@ }, { "constant": false, - "id": 58783, + "id": 62232, "mutability": "mutable", "name": "rnsUnified", - "nameLocation": "2364:10:85", + "nameLocation": "2364:10:100", "nodeType": "VariableDeclaration", - "scope": 58838, - "src": "2353:21:85", + "scope": 62287, + "src": "2353:21:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" }, "typeName": { - "id": 58782, + "id": 62231, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58781, + "id": 62230, "name": "INSUnified", "nameLocations": [ - "2353:10:85" + "2353:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65048, - "src": "2353:10:85" + "referencedDeclaration": 68718, + "src": "2353:10:100" }, - "referencedDeclaration": 65048, - "src": "2353:10:85", + "referencedDeclaration": 68718, + "src": "2353:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, @@ -3041,13 +3076,13 @@ }, { "constant": false, - "id": 58785, + "id": 62234, "mutability": "mutable", "name": "treasury", - "nameLocation": "2396:8:85", + "nameLocation": "2396:8:100", "nodeType": "VariableDeclaration", - "scope": 58838, - "src": "2380:24:85", + "scope": 62287, + "src": "2380:24:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3055,10 +3090,10 @@ "typeString": "address payable" }, "typeName": { - "id": 58784, + "id": 62233, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2380:15:85", + "src": "2380:15:100", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3069,13 +3104,13 @@ }, { "constant": false, - "id": 58787, + "id": 62236, "mutability": "mutable", "name": "bidGapRatio", - "nameLocation": "2418:11:85", + "nameLocation": "2418:11:100", "nodeType": "VariableDeclaration", - "scope": 58838, - "src": "2410:19:85", + "scope": 62287, + "src": "2410:19:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3083,10 +3118,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58786, + "id": 62235, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2410:7:85", + "src": "2410:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3095,44 +3130,44 @@ "visibility": "internal" } ], - "src": "2294:139:85" + "src": "2294:139:100" }, "returnParameters": { - "id": 58791, + "id": 62240, "nodeType": "ParameterList", "parameters": [], - "src": "2455:0:85" + "src": "2455:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 58928, + "id": 62377, "nodeType": "FunctionDefinition", - "src": "2850:598:85", + "src": "2850:598:100", "nodes": [], "body": { - "id": 58927, + "id": 62376, "nodeType": "Block", - "src": "2962:486:85", + "src": "2962:486:100", "nodes": [], "statements": [ { "assignments": [ - 58852 + 62301 ], "declarations": [ { "constant": false, - "id": 58852, + "id": 62301, "mutability": "mutable", "name": "length", - "nameLocation": "2976:6:85", + "nameLocation": "2976:6:100", "nodeType": "VariableDeclaration", - "scope": 58927, - "src": "2968:14:85", + "scope": 62376, + "src": "2968:14:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3140,10 +3175,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58851, + "id": 62300, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2968:7:85", + "src": "2968:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3152,36 +3187,36 @@ "visibility": "internal" } ], - "id": 58855, + "id": 62304, "initialValue": { "expression": { - "id": 58853, + "id": 62302, "name": "labels", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58842, - "src": "2985:6:85", + "referencedDeclaration": 62291, + "src": "2985:6:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", "typeString": "string calldata[] calldata" } }, - "id": 58854, + "id": 62303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2992:6:85", + "memberLocation": "2992:6:100", "memberName": "length", "nodeType": "MemberAccess", - "src": "2985:13:85", + "src": "2985:13:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2968:30:85" + "src": "2968:30:100" }, { "condition": { @@ -3189,18 +3224,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 58858, + "id": 62307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 58856, + "id": 62305, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58852, - "src": "3008:6:85", + "referencedDeclaration": 62301, + "src": "3008:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3210,46 +3245,46 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 58857, + "id": 62306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3018:1:85", + "src": "3018:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3008:11:85", + "src": "3008:11:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 58862, + "id": 62311, "nodeType": "IfStatement", - "src": "3004:44:85", + "src": "3004:44:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 58859, + "id": 62308, "name": "InvalidArrayLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64200, - "src": "3028:18:85", + "referencedDeclaration": 67846, + "src": "3028:18:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 58860, + "id": 62309, "isConstant": false, "isLValue": false, "isPure": false, @@ -3258,32 +3293,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3028:20:85", + "src": "3028:20:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58861, + "id": 62310, "nodeType": "RevertStatement", - "src": "3021:27:85" + "src": "3021:27:100" } }, { "expression": { - "id": 58869, + "id": 62318, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 58863, + "id": 62312, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58849, - "src": "3054:3:85", + "referencedDeclaration": 62298, + "src": "3054:3:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -3294,12 +3329,12 @@ "rightHandSide": { "arguments": [ { - "id": 58867, + "id": 62316, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58852, - "src": "3074:6:85", + "referencedDeclaration": 62301, + "src": "3074:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3313,38 +3348,38 @@ "typeString": "uint256" } ], - "id": 58866, + "id": 62315, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3060:13:85", + "src": "3060:13:100", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint256[] memory)" }, "typeName": { "baseType": { - "id": 58864, + "id": 62313, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3064:7:85", + "src": "3064:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 58865, + "id": 62314, "nodeType": "ArrayTypeName", - "src": "3064:9:85", + "src": "3064:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 58868, + "id": 62317, "isConstant": false, "isLValue": false, "isPure": false, @@ -3353,96 +3388,96 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3060:21:85", + "src": "3060:21:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "src": "3054:27:85", + "src": "3054:27:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 58870, + "id": 62319, "nodeType": "ExpressionStatement", - "src": "3054:27:85" + "src": "3054:27:100" }, { "assignments": [ - 58873 + 62322 ], "declarations": [ { "constant": false, - "id": 58873, + "id": 62322, "mutability": "mutable", "name": "rnsUnified", - "nameLocation": "3098:10:85", + "nameLocation": "3098:10:100", "nodeType": "VariableDeclaration", - "scope": 58927, - "src": "3087:21:85", + "scope": 62376, + "src": "3087:21:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" }, "typeName": { - "id": 58872, + "id": 62321, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58871, + "id": 62320, "name": "INSUnified", "nameLocations": [ - "3087:10:85" + "3087:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65048, - "src": "3087:10:85" + "referencedDeclaration": 68718, + "src": "3087:10:100" }, - "referencedDeclaration": 65048, - "src": "3087:10:85", + "referencedDeclaration": 68718, + "src": "3087:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, "visibility": "internal" } ], - "id": 58875, + "id": 62324, "initialValue": { - "id": 58874, + "id": 62323, "name": "_rnsUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58725, - "src": "3111:11:85", + "referencedDeclaration": 62174, + "src": "3111:11:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, "nodeType": "VariableDeclarationStatement", - "src": "3087:35:85" + "src": "3087:35:100" }, { "assignments": [ - 58877 + 62326 ], "declarations": [ { "constant": false, - "id": 58877, + "id": 62326, "mutability": "mutable", "name": "parentId", - "nameLocation": "3136:8:85", + "nameLocation": "3136:8:100", "nodeType": "VariableDeclaration", - "scope": 58927, - "src": "3128:16:85", + "scope": 62376, + "src": "3128:16:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3450,10 +3485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58876, + "id": 62325, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3128:7:85", + "src": "3128:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3462,52 +3497,52 @@ "visibility": "internal" } ], - "id": 58880, + "id": 62329, "initialValue": { "expression": { - "id": 58878, + "id": 62327, "name": "LibRNSDomain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66115, - "src": "3147:12:85", + "referencedDeclaration": 69785, + "src": "3147:12:100", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibRNSDomain_$66115_$", + "typeIdentifier": "t_type$_t_contract$_LibRNSDomain_$69785_$", "typeString": "type(library LibRNSDomain)" } }, - "id": 58879, + "id": 62328, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3160:6:85", + "memberLocation": "3160:6:100", "memberName": "RON_ID", "nodeType": "MemberAccess", - "referencedDeclaration": 66078, - "src": "3147:19:85", + "referencedDeclaration": 69748, + "src": "3147:19:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3128:38:85" + "src": "3128:38:100" }, { "assignments": [ - 58882 + 62331 ], "declarations": [ { "constant": false, - "id": 58882, + "id": 62331, "mutability": "mutable", "name": "domainExpiryDuration", - "nameLocation": "3179:20:85", + "nameLocation": "3179:20:100", "nodeType": "VariableDeclaration", - "scope": 58927, - "src": "3172:27:85", + "scope": 62376, + "src": "3172:27:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3515,10 +3550,10 @@ "typeString": "uint64" }, "typeName": { - "id": 58881, + "id": 62330, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "3172:6:85", + "src": "3172:6:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -3527,31 +3562,31 @@ "visibility": "internal" } ], - "id": 58884, + "id": 62333, "initialValue": { - "id": 58883, + "id": 62332, "name": "DOMAIN_EXPIRY_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58704, - "src": "3202:22:85", + "referencedDeclaration": 62153, + "src": "3202:22:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "VariableDeclarationStatement", - "src": "3172:52:85" + "src": "3172:52:100" }, { "body": { - "id": 58925, + "id": 62374, "nodeType": "Block", - "src": "3260:184:85", + "src": "3260:184:100", "statements": [ { "expression": { - "id": 58911, + "id": 62360, "isConstant": false, "isLValue": false, "isPure": false, @@ -3561,25 +3596,25 @@ null, { "baseExpression": { - "id": 58891, + "id": 62340, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58849, - "src": "3271:3:85", + "referencedDeclaration": 62298, + "src": "3271:3:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 58893, + "id": 62342, "indexExpression": { - "id": 58892, + "id": 62341, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58886, - "src": "3275:1:85", + "referencedDeclaration": 62335, + "src": "3275:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3590,21 +3625,21 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3271:6:85", + "src": "3271:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 58894, + "id": 62343, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "3268:10:85", + "src": "3268:10:100", "typeDescriptions": { "typeIdentifier": "t_tuple$__$_t_uint256_$", "typeString": "tuple(,uint256)" @@ -3615,12 +3650,12 @@ "rightHandSide": { "arguments": [ { - "id": 58897, + "id": 62346, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58877, - "src": "3297:8:85", + "referencedDeclaration": 62326, + "src": "3297:8:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3628,25 +3663,25 @@ }, { "baseExpression": { - "id": 58898, + "id": 62347, "name": "labels", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58842, - "src": "3307:6:85", + "referencedDeclaration": 62291, + "src": "3307:6:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", "typeString": "string calldata[] calldata" } }, - "id": 58900, + "id": 62349, "indexExpression": { - "id": 58899, + "id": 62348, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58886, - "src": "3314:1:85", + "referencedDeclaration": 62335, + "src": "3314:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3657,7 +3692,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3307:9:85", + "src": "3307:9:100", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -3667,14 +3702,14 @@ "arguments": [ { "hexValue": "307830", - "id": 58903, + "id": 62352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3326:3:85", + "src": "3326:3:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3689,26 +3724,26 @@ "typeString": "int_const 0" } ], - "id": 58902, + "id": 62351, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3318:7:85", + "src": "3318:7:100", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 58901, + "id": 62350, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3318:7:85", + "src": "3318:7:100", "typeDescriptions": {} } }, - "id": 58904, + "id": 62353, "isConstant": false, "isLValue": false, "isPure": true, @@ -3717,7 +3752,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3318:12:85", + "src": "3318:12:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3727,14 +3762,14 @@ { "arguments": [ { - "id": 58907, + "id": 62356, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "3340:4:85", + "src": "3340:4:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_RNSAuction_$59647", + "typeIdentifier": "t_contract$_RNSAuction_$63232", "typeString": "contract RNSAuction" } } @@ -3742,30 +3777,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_RNSAuction_$59647", + "typeIdentifier": "t_contract$_RNSAuction_$63232", "typeString": "contract RNSAuction" } ], - "id": 58906, + "id": 62355, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3332:7:85", + "src": "3332:7:100", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 58905, + "id": 62354, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3332:7:85", + "src": "3332:7:100", "typeDescriptions": {} } }, - "id": 58908, + "id": 62357, "isConstant": false, "isLValue": false, "isPure": false, @@ -3774,7 +3809,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3332:13:85", + "src": "3332:13:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3782,12 +3817,12 @@ } }, { - "id": 58909, + "id": 62358, "name": "domainExpiryDuration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58882, - "src": "3347:20:85", + "referencedDeclaration": 62331, + "src": "3347:20:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -3818,33 +3853,33 @@ } ], "expression": { - "id": 58895, + "id": 62344, "name": "rnsUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58873, - "src": "3281:10:85", + "referencedDeclaration": 62322, + "src": "3281:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, - "id": 58896, + "id": 62345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3292:4:85", + "memberLocation": "3292:4:100", "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 64968, - "src": "3281:15:85", + "referencedDeclaration": 68638, + "src": "3281:15:100", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_address_$_t_uint64_$returns$_t_uint64_$_t_uint256_$", "typeString": "function (uint256,string memory,address,address,uint64) external returns (uint64,uint256)" } }, - "id": 58910, + "id": 62359, "isConstant": false, "isLValue": false, "isPure": false, @@ -3853,47 +3888,47 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3281:87:85", + "src": "3281:87:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", "typeString": "tuple(uint64,uint256)" } }, - "src": "3268:100:85", + "src": "3268:100:100", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58912, + "id": 62361, "nodeType": "ExpressionStatement", - "src": "3268:100:85" + "src": "3268:100:100" }, { "expression": { "arguments": [ { "baseExpression": { - "id": 58916, + "id": 62365, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58849, - "src": "3390:3:85", + "referencedDeclaration": 62298, + "src": "3390:3:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 58918, + "id": 62367, "indexExpression": { - "id": 58917, + "id": 62366, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58886, - "src": "3394:1:85", + "referencedDeclaration": 62335, + "src": "3394:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3904,7 +3939,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3390:6:85", + "src": "3390:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3919,33 +3954,33 @@ } ], "expression": { - "id": 58913, + "id": 62362, "name": "_reserved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58747, - "src": "3376:9:85", + "referencedDeclaration": 62196, + "src": "3376:9:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_BitMap_$53598_storage", + "typeIdentifier": "t_struct$_BitMap_$53990_storage", "typeString": "struct BitMaps.BitMap storage ref" } }, - "id": 58915, + "id": 62364, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3386:3:85", + "memberLocation": "3386:3:100", "memberName": "set", "nodeType": "MemberAccess", - "referencedDeclaration": 53693, - "src": "3376:13:85", + "referencedDeclaration": 54085, + "src": "3376:13:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_BitMap_$53598_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_BitMap_$53598_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_BitMap_$53990_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_BitMap_$53990_storage_ptr_$", "typeString": "function (struct BitMaps.BitMap storage pointer,uint256)" } }, - "id": 58919, + "id": 62368, "isConstant": false, "isLValue": false, "isPure": false, @@ -3954,25 +3989,25 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3376:21:85", + "src": "3376:21:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58920, + "id": 62369, "nodeType": "ExpressionStatement", - "src": "3376:21:85" + "src": "3376:21:100" }, { - "id": 58924, + "id": 62373, "nodeType": "UncheckedBlock", - "src": "3406:32:85", + "src": "3406:32:100", "statements": [ { "expression": { - "id": 58922, + "id": 62371, "isConstant": false, "isLValue": false, "isPure": false, @@ -3980,14 +4015,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "3426:3:85", + "src": "3426:3:100", "subExpression": { - "id": 58921, + "id": 62370, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58886, - "src": "3428:1:85", + "referencedDeclaration": 62335, + "src": "3428:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3998,9 +4033,9 @@ "typeString": "uint256" } }, - "id": 58923, + "id": 62372, "nodeType": "ExpressionStatement", - "src": "3426:3:85" + "src": "3426:3:100" } ] } @@ -4011,18 +4046,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 58890, + "id": 62339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 58888, + "id": 62337, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58886, - "src": "3247:1:85", + "referencedDeclaration": 62335, + "src": "3247:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4031,38 +4066,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 58889, + "id": 62338, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58852, - "src": "3251:6:85", + "referencedDeclaration": 62301, + "src": "3251:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3247:10:85", + "src": "3247:10:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 58926, + "id": 62375, "initializationExpression": { "assignments": [ - 58886 + 62335 ], "declarations": [ { "constant": false, - "id": 58886, + "id": 62335, "mutability": "mutable", "name": "i", - "nameLocation": "3244:1:85", + "nameLocation": "3244:1:100", "nodeType": "VariableDeclaration", - "scope": 58926, - "src": "3236:9:85", + "scope": 62375, + "src": "3236:9:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4070,10 +4105,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58885, + "id": 62334, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3236:7:85", + "src": "3236:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4082,22 +4117,22 @@ "visibility": "internal" } ], - "id": 58887, + "id": 62336, "nodeType": "VariableDeclarationStatement", - "src": "3236:9:85" + "src": "3236:9:100" }, "nodeType": "ForStatement", - "src": "3231:213:85" + "src": "3231:213:100" } ] }, "baseFunctions": [ - 64305 + 67951 ], "documentation": { - "id": 58839, + "id": 62288, "nodeType": "StructuredDocumentation", - "src": "2810:37:85", + "src": "2810:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "791a26b4", @@ -4107,49 +4142,49 @@ { "arguments": [ { - "id": 58845, + "id": 62294, "name": "OPERATOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58716, - "src": "2916:13:85", + "referencedDeclaration": 62165, + "src": "2916:13:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 58846, + "id": 62295, "kind": "modifierInvocation", "modifierName": { - "id": 58844, + "id": 62293, "name": "onlyRole", "nameLocations": [ - "2907:8:85" + "2907:8:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48189, - "src": "2907:8:85" + "referencedDeclaration": 48581, + "src": "2907:8:100" }, "nodeType": "ModifierInvocation", - "src": "2907:23:85" + "src": "2907:23:100" } ], "name": "bulkRegister", - "nameLocation": "2859:12:85", + "nameLocation": "2859:12:100", "parameters": { - "id": 58843, + "id": 62292, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58842, + "id": 62291, "mutability": "mutable", "name": "labels", - "nameLocation": "2890:6:85", + "nameLocation": "2890:6:100", "nodeType": "VariableDeclaration", - "scope": 58928, - "src": "2872:24:85", + "scope": 62377, + "src": "2872:24:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4158,18 +4193,18 @@ }, "typeName": { "baseType": { - "id": 58840, + "id": 62289, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2872:6:85", + "src": "2872:6:100", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 58841, + "id": 62290, "nodeType": "ArrayTypeName", - "src": "2872:8:85", + "src": "2872:8:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" @@ -4178,21 +4213,21 @@ "visibility": "internal" } ], - "src": "2871:26:85" + "src": "2871:26:100" }, "returnParameters": { - "id": 58850, + "id": 62299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58849, + "id": 62298, "mutability": "mutable", "name": "ids", - "nameLocation": "2957:3:85", + "nameLocation": "2957:3:100", "nodeType": "VariableDeclaration", - "scope": 58928, - "src": "2940:20:85", + "scope": 62377, + "src": "2940:20:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4201,18 +4236,18 @@ }, "typeName": { "baseType": { - "id": 58847, + "id": 62296, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2940:7:85", + "src": "2940:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 58848, + "id": 62297, "nodeType": "ArrayTypeName", - "src": "2940:9:85", + "src": "2940:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4221,34 +4256,34 @@ "visibility": "internal" } ], - "src": "2939:22:85" + "src": "2939:22:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 58942, + "id": 62391, "nodeType": "FunctionDefinition", - "src": "3492:92:85", + "src": "3492:92:100", "nodes": [], "body": { - "id": 58941, + "id": 62390, "nodeType": "Block", - "src": "3549:35:85", + "src": "3549:35:100", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 58938, + "id": 62387, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58931, - "src": "3576:2:85", + "referencedDeclaration": 62380, + "src": "3576:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4263,33 +4298,33 @@ } ], "expression": { - "id": 58936, + "id": 62385, "name": "_reserved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58747, - "src": "3562:9:85", + "referencedDeclaration": 62196, + "src": "3562:9:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_BitMap_$53598_storage", + "typeIdentifier": "t_struct$_BitMap_$53990_storage", "typeString": "struct BitMaps.BitMap storage ref" } }, - "id": 58937, + "id": 62386, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3572:3:85", + "memberLocation": "3572:3:100", "memberName": "get", "nodeType": "MemberAccess", - "referencedDeclaration": 53634, - "src": "3562:13:85", + "referencedDeclaration": 54026, + "src": "3562:13:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_BitMap_$53598_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_BitMap_$53598_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_BitMap_$53990_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_BitMap_$53990_storage_ptr_$", "typeString": "function (struct BitMaps.BitMap storage pointer,uint256) view returns (bool)" } }, - "id": 58939, + "id": 62388, "isConstant": false, "isLValue": false, "isPure": false, @@ -4298,27 +4333,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3562:17:85", + "src": "3562:17:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 58935, - "id": 58940, + "functionReturnParameters": 62384, + "id": 62389, "nodeType": "Return", - "src": "3555:24:85" + "src": "3555:24:100" } ] }, "baseFunctions": [ - 64313 + 67959 ], "documentation": { - "id": 58929, + "id": 62378, "nodeType": "StructuredDocumentation", - "src": "3452:37:85", + "src": "3452:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "53f9195e", @@ -4326,20 +4361,20 @@ "kind": "function", "modifiers": [], "name": "reserved", - "nameLocation": "3501:8:85", + "nameLocation": "3501:8:100", "parameters": { - "id": 58932, + "id": 62381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58931, + "id": 62380, "mutability": "mutable", "name": "id", - "nameLocation": "3518:2:85", + "nameLocation": "3518:2:100", "nodeType": "VariableDeclaration", - "scope": 58942, - "src": "3510:10:85", + "scope": 62391, + "src": "3510:10:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4347,10 +4382,10 @@ "typeString": "uint256" }, "typeName": { - "id": 58930, + "id": 62379, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3510:7:85", + "src": "3510:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4359,21 +4394,21 @@ "visibility": "internal" } ], - "src": "3509:12:85" + "src": "3509:12:100" }, "returnParameters": { - "id": 58935, + "id": 62384, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58934, + "id": 62383, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 58942, - "src": "3543:4:85", + "scope": 62391, + "src": "3543:4:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4381,10 +4416,10 @@ "typeString": "bool" }, "typeName": { - "id": 58933, + "id": 62382, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3543:4:85", + "src": "3543:4:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4393,38 +4428,38 @@ "visibility": "internal" } ], - "src": "3542:6:85" + "src": "3542:6:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 58980, + "id": 62429, "nodeType": "FunctionDefinition", - "src": "3628:313:85", + "src": "3628:313:100", "nodes": [], "body": { - "id": 58979, + "id": 62428, "nodeType": "Block", - "src": "3794:147:85", + "src": "3794:147:100", "nodes": [], "statements": [ { "expression": { - "id": 58966, + "id": 62415, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 58957, + "id": 62406, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58955, - "src": "3800:9:85", + "referencedDeclaration": 62404, + "src": "3800:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4440,18 +4475,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 58961, + "id": 62410, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 51922, - "src": "3833:10:85", + "referencedDeclaration": 52314, + "src": "3833:10:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 58962, + "id": 62411, "isConstant": false, "isLValue": false, "isPure": false, @@ -4460,7 +4495,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3833:12:85", + "src": "3833:12:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4468,14 +4503,14 @@ } }, { - "id": 58963, + "id": 62412, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58946, - "src": "3847:5:85", + "referencedDeclaration": 62395, + "src": "3847:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } } @@ -4487,37 +4522,37 @@ "typeString": "address" }, { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } ], "expression": { - "id": 58959, + "id": 62408, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "3822:3:85", + "src": "3822:3:100", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 58960, + "id": 62409, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3826:6:85", + "memberLocation": "3826:6:100", "memberName": "encode", "nodeType": "MemberAccess", - "src": "3822:10:85", + "src": "3822:10:100", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 58964, + "id": 62413, "isConstant": false, "isLValue": false, "isPure": false, @@ -4526,7 +4561,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3822:31:85", + "src": "3822:31:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4541,18 +4576,18 @@ "typeString": "bytes memory" } ], - "id": 58958, + "id": 62407, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "3812:9:85", + "src": "3812:9:100", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 58965, + "id": 62414, "isConstant": false, "isLValue": false, "isPure": false, @@ -4561,51 +4596,51 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3812:42:85", + "src": "3812:42:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "3800:54:85", + "src": "3800:54:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 58967, + "id": 62416, "nodeType": "ExpressionStatement", - "src": "3800:54:85" + "src": "3800:54:100" }, { "expression": { - "id": 58972, + "id": 62421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 58968, + "id": 62417, "name": "_auctionRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58731, - "src": "3860:13:85", + "referencedDeclaration": 62180, + "src": "3860:13:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$65968_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$69638_storage_$", "typeString": "mapping(bytes32 => struct EventRange storage ref)" } }, - "id": 58970, + "id": 62419, "indexExpression": { - "id": 58969, + "id": 62418, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58955, - "src": "3874:9:85", + "referencedDeclaration": 62404, + "src": "3874:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4616,60 +4651,60 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3860:24:85", + "src": "3860:24:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage", + "typeIdentifier": "t_struct$_EventRange_$69638_storage", "typeString": "struct EventRange storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 58971, + "id": 62420, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58946, - "src": "3887:5:85", + "referencedDeclaration": 62395, + "src": "3887:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } }, - "src": "3860:32:85", + "src": "3860:32:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage", + "typeIdentifier": "t_struct$_EventRange_$69638_storage", "typeString": "struct EventRange storage ref" } }, - "id": 58973, + "id": 62422, "nodeType": "ExpressionStatement", - "src": "3860:32:85" + "src": "3860:32:100" }, { "eventCall": { "arguments": [ { - "id": 58975, + "id": 62424, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58955, - "src": "3919:9:85", + "referencedDeclaration": 62404, + "src": "3919:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 58976, + "id": 62425, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58946, - "src": "3930:5:85", + "referencedDeclaration": 62395, + "src": "3930:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } } @@ -4681,22 +4716,22 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } ], - "id": 58974, + "id": 62423, "name": "AuctionEventSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64229, - "src": "3903:15:85", + "referencedDeclaration": 67875, + "src": "3903:15:100", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_struct$_EventRange_$65968_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_struct$_EventRange_$69638_memory_ptr_$returns$__$", "typeString": "function (bytes32,struct EventRange memory)" } }, - "id": 58977, + "id": 62426, "isConstant": false, "isLValue": false, "isPure": false, @@ -4705,26 +4740,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3903:33:85", + "src": "3903:33:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 58978, + "id": 62427, "nodeType": "EmitStatement", - "src": "3898:38:85" + "src": "3898:38:100" } ] }, "baseFunctions": [ - 64322 + 67983 ], "documentation": { - "id": 58943, + "id": 62392, "nodeType": "StructuredDocumentation", - "src": "3588:37:85", + "src": "3588:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "db5e1ec6", @@ -4734,123 +4769,123 @@ { "arguments": [ { - "id": 58949, + "id": 62398, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48178, - "src": "3709:18:85", + "referencedDeclaration": 48570, + "src": "3709:18:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 58950, + "id": 62399, "kind": "modifierInvocation", "modifierName": { - "id": 58948, + "id": 62397, "name": "onlyRole", "nameLocations": [ - "3700:8:85" + "3700:8:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48189, - "src": "3700:8:85" + "referencedDeclaration": 48581, + "src": "3700:8:100" }, "nodeType": "ModifierInvocation", - "src": "3700:28:85" + "src": "3700:28:100" }, { "arguments": [ { - "id": 58952, + "id": 62401, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58946, - "src": "3753:5:85", + "referencedDeclaration": 62395, + "src": "3753:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } } ], - "id": 58953, + "id": 62402, "kind": "modifierInvocation", "modifierName": { - "id": 58951, + "id": 62400, "name": "onlyValidEventRange", "nameLocations": [ - "3733:19:85" + "3733:19:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 58768, - "src": "3733:19:85" + "referencedDeclaration": 62217, + "src": "3733:19:100" }, "nodeType": "ModifierInvocation", - "src": "3733:26:85" + "src": "3733:26:100" } ], "name": "createAuctionEvent", - "nameLocation": "3637:18:85", + "nameLocation": "3637:18:100", "parameters": { - "id": 58947, + "id": 62396, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58946, + "id": 62395, "mutability": "mutable", "name": "range", - "nameLocation": "3676:5:85", + "nameLocation": "3676:5:100", "nodeType": "VariableDeclaration", - "scope": 58980, - "src": "3656:25:85", + "scope": 62429, + "src": "3656:25:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange" }, "typeName": { - "id": 58945, + "id": 62394, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58944, + "id": 62393, "name": "EventRange", "nameLocations": [ - "3656:10:85" + "3656:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "3656:10:85" + "referencedDeclaration": 69638, + "src": "3656:10:100" }, - "referencedDeclaration": 65968, - "src": "3656:10:85", + "referencedDeclaration": 69638, + "src": "3656:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } }, "visibility": "internal" } ], - "src": "3655:27:85" + "src": "3655:27:100" }, "returnParameters": { - "id": 58956, + "id": 62405, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58955, + "id": 62404, "mutability": "mutable", "name": "auctionId", - "nameLocation": "3781:9:85", + "nameLocation": "3781:9:100", "nodeType": "VariableDeclaration", - "scope": 58980, - "src": "3773:17:85", + "scope": 62429, + "src": "3773:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4858,10 +4893,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 58954, + "id": 62403, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3773:7:85", + "src": "3773:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4870,52 +4905,52 @@ "visibility": "internal" } ], - "src": "3772:19:85" + "src": "3772:19:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 59010, + "id": 62459, "nodeType": "FunctionDefinition", - "src": "3985:267:85", + "src": "3985:267:100", "nodes": [], "body": { - "id": 59009, + "id": 62458, "nodeType": "Block", - "src": "4165:87:85", + "src": "4165:87:100", "nodes": [], "statements": [ { "expression": { - "id": 59002, + "id": 62451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 58998, + "id": 62447, "name": "_auctionRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58731, - "src": "4171:13:85", + "referencedDeclaration": 62180, + "src": "4171:13:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$65968_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$69638_storage_$", "typeString": "mapping(bytes32 => struct EventRange storage ref)" } }, - "id": 59000, + "id": 62449, "indexExpression": { - "id": 58999, + "id": 62448, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58983, - "src": "4185:9:85", + "referencedDeclaration": 62432, + "src": "4185:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4926,60 +4961,60 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4171:24:85", + "src": "4171:24:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage", + "typeIdentifier": "t_struct$_EventRange_$69638_storage", "typeString": "struct EventRange storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 59001, + "id": 62450, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58986, - "src": "4198:5:85", + "referencedDeclaration": 62435, + "src": "4198:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } }, - "src": "4171:32:85", + "src": "4171:32:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage", + "typeIdentifier": "t_struct$_EventRange_$69638_storage", "typeString": "struct EventRange storage ref" } }, - "id": 59003, + "id": 62452, "nodeType": "ExpressionStatement", - "src": "4171:32:85" + "src": "4171:32:100" }, { "eventCall": { "arguments": [ { - "id": 59005, + "id": 62454, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58983, - "src": "4230:9:85", + "referencedDeclaration": 62432, + "src": "4230:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 59006, + "id": 62455, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58986, - "src": "4241:5:85", + "referencedDeclaration": 62435, + "src": "4241:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } } @@ -4991,22 +5026,22 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } ], - "id": 59004, + "id": 62453, "name": "AuctionEventSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64229, - "src": "4214:15:85", + "referencedDeclaration": 67875, + "src": "4214:15:100", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_struct$_EventRange_$65968_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_struct$_EventRange_$69638_memory_ptr_$returns$__$", "typeString": "function (bytes32,struct EventRange memory)" } }, - "id": 59007, + "id": 62456, "isConstant": false, "isLValue": false, "isPure": false, @@ -5015,26 +5050,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4214:33:85", + "src": "4214:33:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59008, + "id": 62457, "nodeType": "EmitStatement", - "src": "4209:38:85" + "src": "4209:38:100" } ] }, "baseFunctions": [ - 64331 + 67992 ], "documentation": { - "id": 58981, + "id": 62430, "nodeType": "StructuredDocumentation", - "src": "3945:37:85", + "src": "3945:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "81bec1b3", @@ -5044,109 +5079,109 @@ { "arguments": [ { - "id": 58989, + "id": 62438, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48178, - "src": "4082:18:85", + "referencedDeclaration": 48570, + "src": "4082:18:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 58990, + "id": 62439, "kind": "modifierInvocation", "modifierName": { - "id": 58988, + "id": 62437, "name": "onlyRole", "nameLocations": [ - "4073:8:85" + "4073:8:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48189, - "src": "4073:8:85" + "referencedDeclaration": 48581, + "src": "4073:8:100" }, "nodeType": "ModifierInvocation", - "src": "4073:28:85" + "src": "4073:28:100" }, { "arguments": [ { - "id": 58992, + "id": 62441, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58986, - "src": "4126:5:85", + "referencedDeclaration": 62435, + "src": "4126:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } } ], - "id": 58993, + "id": 62442, "kind": "modifierInvocation", "modifierName": { - "id": 58991, + "id": 62440, "name": "onlyValidEventRange", "nameLocations": [ - "4106:19:85" + "4106:19:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 58768, - "src": "4106:19:85" + "referencedDeclaration": 62217, + "src": "4106:19:100" }, "nodeType": "ModifierInvocation", - "src": "4106:26:85" + "src": "4106:26:100" }, { "arguments": [ { - "id": 58995, + "id": 62444, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58983, - "src": "4152:9:85", + "referencedDeclaration": 62432, + "src": "4152:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 58996, + "id": 62445, "kind": "modifierInvocation", "modifierName": { - "id": 58994, + "id": 62443, "name": "whenNotStarted", "nameLocations": [ - "4137:14:85" + "4137:14:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 58757, - "src": "4137:14:85" + "referencedDeclaration": 62206, + "src": "4137:14:100" }, "nodeType": "ModifierInvocation", - "src": "4137:25:85" + "src": "4137:25:100" } ], "name": "setAuctionEvent", - "nameLocation": "3994:15:85", + "nameLocation": "3994:15:100", "parameters": { - "id": 58987, + "id": 62436, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 58983, + "id": 62432, "mutability": "mutable", "name": "auctionId", - "nameLocation": "4018:9:85", + "nameLocation": "4018:9:100", "nodeType": "VariableDeclaration", - "scope": 59010, - "src": "4010:17:85", + "scope": 62459, + "src": "4010:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5154,10 +5189,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 58982, + "id": 62431, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4010:7:85", + "src": "4010:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5167,88 +5202,88 @@ }, { "constant": false, - "id": 58986, + "id": 62435, "mutability": "mutable", "name": "range", - "nameLocation": "4049:5:85", + "nameLocation": "4049:5:100", "nodeType": "VariableDeclaration", - "scope": 59010, - "src": "4029:25:85", + "scope": 62459, + "src": "4029:25:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange" }, "typeName": { - "id": 58985, + "id": 62434, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 58984, + "id": 62433, "name": "EventRange", "nameLocations": [ - "4029:10:85" + "4029:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "4029:10:85" + "referencedDeclaration": 69638, + "src": "4029:10:100" }, - "referencedDeclaration": 65968, - "src": "4029:10:85", + "referencedDeclaration": 69638, + "src": "4029:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } }, "visibility": "internal" } ], - "src": "4009:46:85" + "src": "4009:46:100" }, "returnParameters": { - "id": 58997, + "id": 62446, "nodeType": "ParameterList", "parameters": [], - "src": "4165:0:85" + "src": "4165:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 59024, + "id": 62473, "nodeType": "FunctionDefinition", - "src": "4296:126:85", + "src": "4296:126:100", "nodes": [], "body": { - "id": 59023, + "id": 62472, "nodeType": "Block", - "src": "4380:42:85", + "src": "4380:42:100", "nodes": [], "statements": [ { "expression": { "baseExpression": { - "id": 59019, + "id": 62468, "name": "_auctionRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58731, - "src": "4393:13:85", + "referencedDeclaration": 62180, + "src": "4393:13:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$65968_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$69638_storage_$", "typeString": "mapping(bytes32 => struct EventRange storage ref)" } }, - "id": 59021, + "id": 62470, "indexExpression": { - "id": 59020, + "id": 62469, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59013, - "src": "4407:9:85", + "referencedDeclaration": 62462, + "src": "4407:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5259,26 +5294,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4393:24:85", + "src": "4393:24:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage", + "typeIdentifier": "t_struct$_EventRange_$69638_storage", "typeString": "struct EventRange storage ref" } }, - "functionReturnParameters": 59018, - "id": 59022, + "functionReturnParameters": 62467, + "id": 62471, "nodeType": "Return", - "src": "4386:31:85" + "src": "4386:31:100" } ] }, "baseFunctions": [ - 64340 + 68001 ], "documentation": { - "id": 59011, + "id": 62460, "nodeType": "StructuredDocumentation", - "src": "4256:37:85", + "src": "4256:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "15a29162", @@ -5286,20 +5321,20 @@ "kind": "function", "modifiers": [], "name": "getAuctionEvent", - "nameLocation": "4305:15:85", + "nameLocation": "4305:15:100", "parameters": { - "id": 59014, + "id": 62463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59013, + "id": 62462, "mutability": "mutable", "name": "auctionId", - "nameLocation": "4329:9:85", + "nameLocation": "4329:9:100", "nodeType": "VariableDeclaration", - "scope": 59024, - "src": "4321:17:85", + "scope": 62473, + "src": "4321:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5307,10 +5342,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 59012, + "id": 62461, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4321:7:85", + "src": "4321:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5319,82 +5354,82 @@ "visibility": "internal" } ], - "src": "4320:19:85" + "src": "4320:19:100" }, "returnParameters": { - "id": 59018, + "id": 62467, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59017, + "id": 62466, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 59024, - "src": "4361:17:85", + "scope": 62473, + "src": "4361:17:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange" }, "typeName": { - "id": 59016, + "id": 62465, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59015, + "id": 62464, "name": "EventRange", "nameLocations": [ - "4361:10:85" + "4361:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "4361:10:85" + "referencedDeclaration": 69638, + "src": "4361:10:100" }, - "referencedDeclaration": 65968, - "src": "4361:10:85", + "referencedDeclaration": 69638, + "src": "4361:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } }, "visibility": "internal" } ], - "src": "4360:19:85" + "src": "4360:19:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 59147, + "id": 62597, "nodeType": "FunctionDefinition", - "src": "4466:884:85", + "src": "4466:886:100", "nodes": [], "body": { - "id": 59146, + "id": 62596, "nodeType": "Block", - "src": "4646:704:85", + "src": "4646:706:100", "nodes": [], "statements": [ { "assignments": [ - 59043 + 62492 ], "declarations": [ { "constant": false, - "id": 59043, + "id": 62492, "mutability": "mutable", "name": "length", - "nameLocation": "4660:6:85", + "nameLocation": "4660:6:100", "nodeType": "VariableDeclaration", - "scope": 59146, - "src": "4652:14:85", + "scope": 62596, + "src": "4652:14:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5402,10 +5437,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59042, + "id": 62491, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4652:7:85", + "src": "4652:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5414,36 +5449,36 @@ "visibility": "internal" } ], - "id": 59046, + "id": 62495, "initialValue": { "expression": { - "id": 59044, + "id": 62493, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59030, - "src": "4669:3:85", + "referencedDeclaration": 62479, + "src": "4669:3:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 59045, + "id": 62494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4673:6:85", + "memberLocation": "4673:6:100", "memberName": "length", "nodeType": "MemberAccess", - "src": "4669:10:85", + "src": "4669:10:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4652:27:85" + "src": "4652:27:100" }, { "condition": { @@ -5451,7 +5486,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 59054, + "id": 62503, "isConstant": false, "isLValue": false, "isPure": false, @@ -5461,18 +5496,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59049, + "id": 62498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59047, + "id": 62496, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59043, - "src": "4689:6:85", + "referencedDeclaration": 62492, + "src": "4689:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5482,21 +5517,21 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 59048, + "id": 62497, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4699:1:85", + "src": "4699:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4689:11:85", + "src": "4689:11:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5509,18 +5544,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59053, + "id": 62502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59050, + "id": 62499, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59043, - "src": "4704:6:85", + "referencedDeclaration": 62492, + "src": "4704:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5530,63 +5565,63 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 59051, + "id": 62500, "name": "startingPrices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59033, - "src": "4714:14:85", + "referencedDeclaration": 62482, + "src": "4714:14:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 59052, + "id": 62501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4729:6:85", + "memberLocation": "4729:6:100", "memberName": "length", "nodeType": "MemberAccess", - "src": "4714:21:85", + "src": "4714:21:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4704:31:85", + "src": "4704:31:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4689:46:85", + "src": "4689:46:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59058, + "id": 62507, "nodeType": "IfStatement", - "src": "4685:79:85", + "src": "4685:79:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59055, + "id": 62504, "name": "InvalidArrayLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64200, - "src": "4744:18:85", + "referencedDeclaration": 67846, + "src": "4744:18:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59056, + "id": 62505, "isConstant": false, "isLValue": false, "isPure": false, @@ -5595,32 +5630,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4744:20:85", + "src": "4744:20:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59057, + "id": 62506, "nodeType": "RevertStatement", - "src": "4737:27:85" + "src": "4737:27:100" } }, { "assignments": [ - 59060 + 62509 ], "declarations": [ { "constant": false, - "id": 59060, + "id": 62509, "mutability": "mutable", "name": "id", - "nameLocation": "4778:2:85", + "nameLocation": "4778:2:100", "nodeType": "VariableDeclaration", - "scope": 59146, - "src": "4770:10:85", + "scope": 62596, + "src": "4770:10:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5628,10 +5663,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59059, + "id": 62508, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4770:7:85", + "src": "4770:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5640,24 +5675,24 @@ "visibility": "internal" } ], - "id": 59061, + "id": 62510, "nodeType": "VariableDeclarationStatement", - "src": "4770:10:85" + "src": "4770:10:100" }, { "assignments": [ - 59063 + 62512 ], "declarations": [ { "constant": false, - "id": 59063, + "id": 62512, "mutability": "mutable", "name": "mAuctionId", - "nameLocation": "4794:10:85", + "nameLocation": "4794:10:100", "nodeType": "VariableDeclaration", - "scope": 59146, - "src": "4786:18:85", + "scope": 62596, + "src": "4786:18:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5665,10 +5700,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 59062, + "id": 62511, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4786:7:85", + "src": "4786:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5677,77 +5712,77 @@ "visibility": "internal" } ], - "id": 59064, + "id": 62513, "nodeType": "VariableDeclarationStatement", - "src": "4786:18:85" + "src": "4786:18:100" }, { "assignments": [ - 59067 + 62516 ], "declarations": [ { "constant": false, - "id": 59067, + "id": 62516, "mutability": "mutable", "name": "sAuction", - "nameLocation": "4832:8:85", + "nameLocation": "4832:8:100", "nodeType": "VariableDeclaration", - "scope": 59146, - "src": "4810:30:85", + "scope": 62596, + "src": "4810:30:100", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction" }, "typeName": { - "id": 59066, + "id": 62515, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59065, + "id": 62514, "name": "DomainAuction", "nameLocations": [ - "4810:13:85" + "4810:13:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 64221, - "src": "4810:13:85" + "referencedDeclaration": 67867, + "src": "4810:13:100" }, - "referencedDeclaration": 64221, - "src": "4810:13:85", + "referencedDeclaration": 67867, + "src": "4810:13:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction" } }, "visibility": "internal" } ], - "id": 59068, + "id": 62517, "nodeType": "VariableDeclarationStatement", - "src": "4810:30:85" + "src": "4810:30:100" }, { "body": { - "id": 59138, + "id": 62588, "nodeType": "Block", - "src": "4876:414:85", + "src": "4876:416:100", "statements": [ { "expression": { - "id": 59079, + "id": 62528, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59075, + "id": 62524, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59060, - "src": "4884:2:85", + "referencedDeclaration": 62509, + "src": "4884:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5757,25 +5792,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 59076, + "id": 62525, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59030, - "src": "4889:3:85", + "referencedDeclaration": 62479, + "src": "4889:3:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 59078, + "id": 62527, "indexExpression": { - "id": 59077, + "id": 62526, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59070, - "src": "4893:1:85", + "referencedDeclaration": 62519, + "src": "4893:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5786,25 +5821,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4889:6:85", + "src": "4889:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4884:11:85", + "src": "4884:11:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59080, + "id": 62529, "nodeType": "ExpressionStatement", - "src": "4884:11:85" + "src": "4884:11:100" }, { "condition": { - "id": 59084, + "id": 62533, "isConstant": false, "isLValue": false, "isPure": false, @@ -5812,16 +5847,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4907:13:85", + "src": "4907:13:100", "subExpression": { "arguments": [ { - "id": 59082, + "id": 62531, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59060, - "src": "4917:2:85", + "referencedDeclaration": 62509, + "src": "4917:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5835,18 +5870,18 @@ "typeString": "uint256" } ], - "id": 59081, + "id": 62530, "name": "reserved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58942, - "src": "4908:8:85", + "referencedDeclaration": 62391, + "src": "4908:8:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 59083, + "id": 62532, "isConstant": false, "isLValue": false, "isPure": false, @@ -5855,7 +5890,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4908:12:85", + "src": "4908:12:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5867,26 +5902,26 @@ "typeString": "bool" } }, - "id": 59088, + "id": 62537, "nodeType": "IfStatement", - "src": "4903:43:85", + "src": "4903:43:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59085, + "id": 62534, "name": "NameNotReserved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64192, - "src": "4929:15:85", + "referencedDeclaration": 67838, + "src": "4929:15:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59086, + "id": 62535, "isConstant": false, "isLValue": false, "isPure": false, @@ -5895,34 +5930,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4929:17:85", + "src": "4929:17:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59087, + "id": 62536, "nodeType": "RevertStatement", - "src": "4922:24:85" + "src": "4922:24:100" } }, { "expression": { - "id": 59093, + "id": 62542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59089, + "id": 62538, "name": "sAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59067, - "src": "4955:8:85", + "referencedDeclaration": 62516, + "src": "4955:8:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction storage pointer" } }, @@ -5930,25 +5965,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 59090, + "id": 62539, "name": "_domainAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58737, - "src": "4966:14:85", + "referencedDeclaration": 62186, + "src": "4966:14:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$64221_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", "typeString": "mapping(uint256 => struct INSAuction.DomainAuction storage ref)" } }, - "id": 59092, + "id": 62541, "indexExpression": { - "id": 59091, + "id": 62540, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59060, - "src": "4981:2:85", + "referencedDeclaration": 62509, + "src": "4981:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5959,36 +5994,36 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4966:18:85", + "src": "4966:18:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage", "typeString": "struct INSAuction.DomainAuction storage ref" } }, - "src": "4955:29:85", + "src": "4955:29:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction storage pointer" } }, - "id": 59094, + "id": 62543, "nodeType": "ExpressionStatement", - "src": "4955:29:85" + "src": "4955:29:100" }, { "expression": { - "id": 59098, + "id": 62547, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59095, + "id": 62544, "name": "mAuctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59063, - "src": "4992:10:85", + "referencedDeclaration": 62512, + "src": "4992:10:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5998,45 +6033,45 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 59096, + "id": 62545, "name": "sAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59067, - "src": "5005:8:85", + "referencedDeclaration": 62516, + "src": "5005:8:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction storage pointer" } }, - "id": 59097, + "id": 62546, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5014:9:85", + "memberLocation": "5014:9:100", "memberName": "auctionId", "nodeType": "MemberAccess", - "referencedDeclaration": 64215, - "src": "5005:18:85", + "referencedDeclaration": 67861, + "src": "5005:18:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "4992:31:85", + "src": "4992:31:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 59099, + "id": 62548, "nodeType": "ExpressionStatement", - "src": "4992:31:85" + "src": "4992:31:100" }, { "condition": { - "id": 59114, + "id": 62563, "isConstant": false, "isLValue": false, "isPure": false, @@ -6044,7 +6079,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5035:76:85", + "src": "5035:76:100", "subExpression": { "components": [ { @@ -6052,7 +6087,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 59112, + "id": 62561, "isConstant": false, "isLValue": false, "isPure": false, @@ -6062,7 +6097,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 59106, + "id": 62555, "isConstant": false, "isLValue": false, "isPure": false, @@ -6072,18 +6107,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 59102, + "id": 62551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59100, + "id": 62549, "name": "mAuctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59063, - "src": "5037:10:85", + "referencedDeclaration": 62512, + "src": "5037:10:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6093,21 +6128,21 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 59101, + "id": 62550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5051:1:85", + "src": "5051:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "5037:15:85", + "src": "5037:15:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6120,18 +6155,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 59105, + "id": 62554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59103, + "id": 62552, "name": "mAuctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59063, - "src": "5056:10:85", + "referencedDeclaration": 62512, + "src": "5056:10:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6140,24 +6175,24 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 59104, + "id": 62553, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59027, - "src": "5070:9:85", + "referencedDeclaration": 62476, + "src": "5070:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "5056:23:85", + "src": "5056:23:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "5037:42:85", + "src": "5037:42:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6170,7 +6205,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59111, + "id": 62560, "isConstant": false, "isLValue": false, "isPure": false, @@ -6178,42 +6213,42 @@ "leftExpression": { "expression": { "expression": { - "id": 59107, + "id": 62556, "name": "sAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59067, - "src": "5083:8:85", + "referencedDeclaration": 62516, + "src": "5083:8:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction storage pointer" } }, - "id": 59108, + "id": 62557, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5092:3:85", + "memberLocation": "5092:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "5083:12:85", + "referencedDeclaration": 67866, + "src": "5083:12:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_storage", + "typeIdentifier": "t_struct$_Bid_$67859_storage", "typeString": "struct INSAuction.Bid storage ref" } }, - "id": 59109, + "id": 62558, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5096:9:85", + "memberLocation": "5096:9:100", "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 64210, - "src": "5083:22:85", + "referencedDeclaration": 67856, + "src": "5083:22:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6223,41 +6258,41 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 59110, + "id": 62559, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5109:1:85", + "src": "5109:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "5083:27:85", + "src": "5083:27:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "5037:73:85", + "src": "5037:73:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 59113, + "id": 62562, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5036:75:85", + "src": "5036:75:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6268,31 +6303,49 @@ "typeString": "bool" } }, - "id": 59119, + "id": 62569, "nodeType": "IfStatement", - "src": "5031:124:85", + "src": "5031:126:100", "trueBody": { - "id": 59118, + "id": 62568, "nodeType": "Block", - "src": "5113:42:85", + "src": "5113:44:100", "statements": [ { "errorCall": { - "arguments": [], + "arguments": [ + { + "id": 62565, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62509, + "src": "5145:2:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": [], - "id": 59115, + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 62564, "name": "AlreadyBidding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64188, - "src": "5130:14:85", + "referencedDeclaration": 67834, + "src": "5130:14:100", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" } }, - "id": 59116, + "id": 62566, "isConstant": false, "isLValue": false, "isPure": false, @@ -6301,50 +6354,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5130:16:85", + "src": "5130:18:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59117, + "id": 62567, "nodeType": "RevertStatement", - "src": "5123:23:85" + "src": "5123:25:100" } ] } }, { "expression": { - "id": 59124, + "id": 62574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 59120, + "id": 62570, "name": "sAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59067, - "src": "5163:8:85", + "referencedDeclaration": 62516, + "src": "5165:8:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction storage pointer" } }, - "id": 59122, + "id": 62572, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "5172:9:85", + "memberLocation": "5174:9:100", "memberName": "auctionId", "nodeType": "MemberAccess", - "referencedDeclaration": 64215, - "src": "5163:18:85", + "referencedDeclaration": 67861, + "src": "5165:18:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6353,57 +6406,57 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 59123, + "id": 62573, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59027, - "src": "5184:9:85", + "referencedDeclaration": 62476, + "src": "5186:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "5163:30:85", + "src": "5165:30:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 59125, + "id": 62575, "nodeType": "ExpressionStatement", - "src": "5163:30:85" + "src": "5165:30:100" }, { "expression": { - "id": 59132, + "id": 62582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 59126, + "id": 62576, "name": "sAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59067, - "src": "5201:8:85", + "referencedDeclaration": 62516, + "src": "5203:8:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction storage pointer" } }, - "id": 59128, + "id": 62578, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "5210:13:85", + "memberLocation": "5212:13:100", "memberName": "startingPrice", "nodeType": "MemberAccess", - "referencedDeclaration": 64217, - "src": "5201:22:85", + "referencedDeclaration": 67863, + "src": "5203:22:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6413,25 +6466,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 59129, + "id": 62579, "name": "startingPrices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59033, - "src": "5226:14:85", + "referencedDeclaration": 62482, + "src": "5228:14:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 59131, + "id": 62581, "indexExpression": { - "id": 59130, + "id": 62580, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59070, - "src": "5241:1:85", + "referencedDeclaration": 62519, + "src": "5243:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6442,30 +6495,30 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5226:17:85", + "src": "5228:17:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5201:42:85", + "src": "5203:42:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59133, + "id": 62583, "nodeType": "ExpressionStatement", - "src": "5201:42:85" + "src": "5203:42:100" }, { - "id": 59137, + "id": 62587, "nodeType": "UncheckedBlock", - "src": "5252:32:85", + "src": "5254:32:100", "statements": [ { "expression": { - "id": 59135, + "id": 62585, "isConstant": false, "isLValue": false, "isPure": false, @@ -6473,14 +6526,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "5272:3:85", + "src": "5274:3:100", "subExpression": { - "id": 59134, + "id": 62584, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59070, - "src": "5274:1:85", + "referencedDeclaration": 62519, + "src": "5276:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6491,9 +6544,9 @@ "typeString": "uint256" } }, - "id": 59136, + "id": 62586, "nodeType": "ExpressionStatement", - "src": "5272:3:85" + "src": "5274:3:100" } ] } @@ -6504,18 +6557,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59074, + "id": 62523, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59072, + "id": 62521, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59070, - "src": "4863:1:85", + "referencedDeclaration": 62519, + "src": "4863:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6524,38 +6577,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 59073, + "id": 62522, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59043, - "src": "4867:6:85", + "referencedDeclaration": 62492, + "src": "4867:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4863:10:85", + "src": "4863:10:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59139, + "id": 62589, "initializationExpression": { "assignments": [ - 59070 + 62519 ], "declarations": [ { "constant": false, - "id": 59070, + "id": 62519, "mutability": "mutable", "name": "i", - "nameLocation": "4860:1:85", + "nameLocation": "4860:1:100", "nodeType": "VariableDeclaration", - "scope": 59139, - "src": "4852:9:85", + "scope": 62589, + "src": "4852:9:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6563,10 +6616,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59069, + "id": 62518, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4852:7:85", + "src": "4852:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6575,47 +6628,47 @@ "visibility": "internal" } ], - "id": 59071, + "id": 62520, "nodeType": "VariableDeclarationStatement", - "src": "4852:9:85" + "src": "4852:9:100" }, "nodeType": "ForStatement", - "src": "4847:443:85" + "src": "4847:445:100" }, { "eventCall": { "arguments": [ { - "id": 59141, + "id": 62591, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59027, - "src": "5314:9:85", + "referencedDeclaration": 62476, + "src": "5316:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 59142, + "id": 62592, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59030, - "src": "5325:3:85", + "referencedDeclaration": 62479, + "src": "5327:3:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, { - "id": 59143, + "id": 62593, "name": "startingPrices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59033, - "src": "5330:14:85", + "referencedDeclaration": 62482, + "src": "5332:14:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -6637,18 +6690,18 @@ "typeString": "uint256[] calldata" } ], - "id": 59140, + "id": 62590, "name": "LabelsListed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64240, - "src": "5301:12:85", + "referencedDeclaration": 67886, + "src": "5303:12:100", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,uint256[] memory,uint256[] memory)" } }, - "id": 59144, + "id": 62594, "isConstant": false, "isLValue": false, "isPure": false, @@ -6657,26 +6710,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5301:44:85", + "src": "5303:44:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59145, + "id": 62595, "nodeType": "EmitStatement", - "src": "5296:49:85" + "src": "5298:49:100" } ] }, "baseFunctions": [ - 64352 + 68013 ], "documentation": { - "id": 59025, + "id": 62474, "nodeType": "StructuredDocumentation", - "src": "4426:37:85", + "src": "4426:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "777b0a18", @@ -6686,79 +6739,79 @@ { "arguments": [ { - "id": 59036, + "id": 62485, "name": "OPERATOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58716, - "src": "4599:13:85", + "referencedDeclaration": 62165, + "src": "4599:13:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 59037, + "id": 62486, "kind": "modifierInvocation", "modifierName": { - "id": 59035, + "id": 62484, "name": "onlyRole", "nameLocations": [ - "4590:8:85" + "4590:8:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48189, - "src": "4590:8:85" + "referencedDeclaration": 48581, + "src": "4590:8:100" }, "nodeType": "ModifierInvocation", - "src": "4590:23:85" + "src": "4590:23:100" }, { "arguments": [ { - "id": 59039, + "id": 62488, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59027, - "src": "4633:9:85", + "referencedDeclaration": 62476, + "src": "4633:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 59040, + "id": 62489, "kind": "modifierInvocation", "modifierName": { - "id": 59038, + "id": 62487, "name": "whenNotStarted", "nameLocations": [ - "4618:14:85" + "4618:14:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 58757, - "src": "4618:14:85" + "referencedDeclaration": 62206, + "src": "4618:14:100" }, "nodeType": "ModifierInvocation", - "src": "4618:25:85" + "src": "4618:25:100" } ], "name": "listNamesForAuction", - "nameLocation": "4475:19:85", + "nameLocation": "4475:19:100", "parameters": { - "id": 59034, + "id": 62483, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59027, + "id": 62476, "mutability": "mutable", "name": "auctionId", - "nameLocation": "4503:9:85", + "nameLocation": "4503:9:100", "nodeType": "VariableDeclaration", - "scope": 59147, - "src": "4495:17:85", + "scope": 62597, + "src": "4495:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6766,10 +6819,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 59026, + "id": 62475, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4495:7:85", + "src": "4495:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6779,13 +6832,13 @@ }, { "constant": false, - "id": 59030, + "id": 62479, "mutability": "mutable", "name": "ids", - "nameLocation": "4533:3:85", + "nameLocation": "4533:3:100", "nodeType": "VariableDeclaration", - "scope": 59147, - "src": "4514:22:85", + "scope": 62597, + "src": "4514:22:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -6794,18 +6847,18 @@ }, "typeName": { "baseType": { - "id": 59028, + "id": 62477, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4514:7:85", + "src": "4514:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59029, + "id": 62478, "nodeType": "ArrayTypeName", - "src": "4514:9:85", + "src": "4514:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -6815,13 +6868,13 @@ }, { "constant": false, - "id": 59033, + "id": 62482, "mutability": "mutable", "name": "startingPrices", - "nameLocation": "4557:14:85", + "nameLocation": "4557:14:100", "nodeType": "VariableDeclaration", - "scope": 59147, - "src": "4538:33:85", + "scope": 62597, + "src": "4538:33:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -6830,18 +6883,18 @@ }, "typeName": { "baseType": { - "id": 59031, + "id": 62480, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4538:7:85", + "src": "4538:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59032, + "id": 62481, "nodeType": "ArrayTypeName", - "src": "4538:9:85", + "src": "4538:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -6850,95 +6903,95 @@ "visibility": "internal" } ], - "src": "4494:78:85" + "src": "4494:78:100" }, "returnParameters": { - "id": 59041, + "id": 62490, "nodeType": "ParameterList", "parameters": [], - "src": "4646:0:85" + "src": "4646:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 59270, + "id": 62720, "nodeType": "FunctionDefinition", - "src": "5394:938:85", + "src": "5396:938:100", "nodes": [], "body": { - "id": 59269, + "id": 62719, "nodeType": "Block", - "src": "5441:891:85", + "src": "5443:891:100", "nodes": [], "statements": [ { "assignments": [ - 59155 + 62605 ], "declarations": [ { "constant": false, - "id": 59155, + "id": 62605, "mutability": "mutable", "name": "auction", - "nameLocation": "5468:7:85", + "nameLocation": "5470:7:100", "nodeType": "VariableDeclaration", - "scope": 59269, - "src": "5447:28:85", + "scope": 62719, + "src": "5449:28:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction" }, "typeName": { - "id": 59154, + "id": 62604, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59153, + "id": 62603, "name": "DomainAuction", "nameLocations": [ - "5447:13:85" + "5449:13:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 64221, - "src": "5447:13:85" + "referencedDeclaration": 67867, + "src": "5449:13:100" }, - "referencedDeclaration": 64221, - "src": "5447:13:85", + "referencedDeclaration": 67867, + "src": "5449:13:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction" } }, "visibility": "internal" } ], - "id": 59159, + "id": 62609, "initialValue": { "baseExpression": { - "id": 59156, + "id": 62606, "name": "_domainAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58737, - "src": "5478:14:85", + "referencedDeclaration": 62186, + "src": "5480:14:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$64221_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", "typeString": "mapping(uint256 => struct INSAuction.DomainAuction storage ref)" } }, - "id": 59158, + "id": 62608, "indexExpression": { - "id": 59157, + "id": 62607, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59150, - "src": "5493:2:85", + "referencedDeclaration": 62600, + "src": "5495:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6949,96 +7002,96 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5478:18:85", + "src": "5480:18:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage", "typeString": "struct INSAuction.DomainAuction storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "5447:49:85" + "src": "5449:49:100" }, { "assignments": [ - 59162 + 62612 ], "declarations": [ { "constant": false, - "id": 59162, + "id": 62612, "mutability": "mutable", "name": "range", - "nameLocation": "5520:5:85", + "nameLocation": "5522:5:100", "nodeType": "VariableDeclaration", - "scope": 59269, - "src": "5502:23:85", + "scope": 62719, + "src": "5504:23:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange" }, "typeName": { - "id": 59161, + "id": 62611, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59160, + "id": 62610, "name": "EventRange", "nameLocations": [ - "5502:10:85" + "5504:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "5502:10:85" + "referencedDeclaration": 69638, + "src": "5504:10:100" }, - "referencedDeclaration": 65968, - "src": "5502:10:85", + "referencedDeclaration": 69638, + "src": "5504:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } }, "visibility": "internal" } ], - "id": 59167, + "id": 62617, "initialValue": { "baseExpression": { - "id": 59163, + "id": 62613, "name": "_auctionRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58731, - "src": "5528:13:85", + "referencedDeclaration": 62180, + "src": "5530:13:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$65968_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$69638_storage_$", "typeString": "mapping(bytes32 => struct EventRange storage ref)" } }, - "id": 59166, + "id": 62616, "indexExpression": { "expression": { - "id": 59164, + "id": 62614, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59155, - "src": "5542:7:85", + "referencedDeclaration": 62605, + "src": "5544:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59165, + "id": 62615, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5550:9:85", + "memberLocation": "5552:9:100", "memberName": "auctionId", "nodeType": "MemberAccess", - "referencedDeclaration": 64215, - "src": "5542:17:85", + "referencedDeclaration": 67861, + "src": "5544:17:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7049,29 +7102,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5528:32:85", + "src": "5530:32:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage", + "typeIdentifier": "t_struct$_EventRange_$69638_storage", "typeString": "struct EventRange storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "5502:58:85" + "src": "5504:58:100" }, { "assignments": [ - 59169 + 62619 ], "declarations": [ { "constant": false, - "id": 59169, + "id": 62619, "mutability": "mutable", "name": "beatPrice", - "nameLocation": "5574:9:85", + "nameLocation": "5576:9:100", "nodeType": "VariableDeclaration", - "scope": 59269, - "src": "5566:17:85", + "scope": 62719, + "src": "5568:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7079,10 +7132,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59168, + "id": 62618, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5566:7:85", + "src": "5568:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7091,30 +7144,30 @@ "visibility": "internal" } ], - "id": 59174, + "id": 62624, "initialValue": { "arguments": [ { - "id": 59171, + "id": 62621, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59155, - "src": "5600:7:85", + "referencedDeclaration": 62605, + "src": "5602:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, { - "id": 59172, + "id": 62622, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59162, - "src": "5609:5:85", + "referencedDeclaration": 62612, + "src": "5611:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } } @@ -7122,26 +7175,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" }, { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } ], - "id": 59170, + "id": 62620, "name": "_getBeatPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59608, - "src": "5586:13:85", + "referencedDeclaration": 63193, + "src": "5588:13:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_DomainAuction_$64221_memory_ptr_$_t_struct$_EventRange_$65968_memory_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_DomainAuction_$67867_memory_ptr_$_t_struct$_EventRange_$69638_memory_ptr_$returns$_t_uint256_$", "typeString": "function (struct INSAuction.DomainAuction memory,struct EventRange memory) view returns (uint256)" } }, - "id": 59173, + "id": 62623, "isConstant": false, "isLValue": false, "isPure": false, @@ -7150,7 +7203,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5586:29:85", + "src": "5588:29:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7158,11 +7211,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5566:49:85" + "src": "5568:49:100" }, { "condition": { - "id": 59178, + "id": 62628, "isConstant": false, "isLValue": false, "isPure": false, @@ -7170,39 +7223,39 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5626:19:85", + "src": "5628:19:100", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 59175, + "id": 62625, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59162, - "src": "5627:5:85", + "referencedDeclaration": 62612, + "src": "5629:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } }, - "id": 59176, + "id": 62626, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5633:10:85", + "memberLocation": "5635:10:100", "memberName": "isInPeriod", "nodeType": "MemberAccess", - "referencedDeclaration": 66038, - "src": "5627:16:85", + "referencedDeclaration": 69708, + "src": "5629:16:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$65968_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$65968_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$69638_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$69638_memory_ptr_$", "typeString": "function (struct EventRange memory) view returns (bool)" } }, - "id": 59177, + "id": 62627, "isConstant": false, "isLValue": false, "isPure": false, @@ -7211,7 +7264,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5627:18:85", + "src": "5629:18:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7223,26 +7276,26 @@ "typeString": "bool" } }, - "id": 59182, + "id": 62632, "nodeType": "IfStatement", - "src": "5622:52:85", + "src": "5624:52:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59179, + "id": 62629, "name": "QueryIsNotInPeriod", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64196, - "src": "5654:18:85", + "referencedDeclaration": 67842, + "src": "5656:18:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59180, + "id": 62630, "isConstant": false, "isLValue": false, "isPure": false, @@ -7251,16 +7304,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5654:20:85", + "src": "5656:20:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59181, + "id": 62631, "nodeType": "RevertStatement", - "src": "5647:27:85" + "src": "5649:27:100" } }, { @@ -7269,33 +7322,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59186, + "id": 62636, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 59183, + "id": 62633, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5684:3:85", + "src": "5686:3:100", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 59184, + "id": 62634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5688:5:85", + "memberLocation": "5690:5:100", "memberName": "value", "nodeType": "MemberAccess", - "src": "5684:9:85", + "src": "5686:9:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7304,43 +7357,43 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 59185, + "id": 62635, "name": "beatPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59169, - "src": "5696:9:85", + "referencedDeclaration": 62619, + "src": "5698:9:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5684:21:85", + "src": "5686:21:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59190, + "id": 62640, "nodeType": "IfStatement", - "src": "5680:54:85", + "src": "5682:54:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59187, + "id": 62637, "name": "InsufficientAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64198, - "src": "5714:18:85", + "referencedDeclaration": 67844, + "src": "5716:18:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59188, + "id": 62638, "isConstant": false, "isLValue": false, "isPure": false, @@ -7349,32 +7402,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5714:20:85", + "src": "5716:20:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59189, + "id": 62639, "nodeType": "RevertStatement", - "src": "5707:27:85" + "src": "5709:27:100" } }, { "assignments": [ - 59192 + 62642 ], "declarations": [ { "constant": false, - "id": 59192, + "id": 62642, "mutability": "mutable", "name": "bidder", - "nameLocation": "5756:6:85", + "nameLocation": "5758:6:100", "nodeType": "VariableDeclaration", - "scope": 59269, - "src": "5740:22:85", + "scope": 62719, + "src": "5742:22:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7382,10 +7435,10 @@ "typeString": "address payable" }, "typeName": { - "id": 59191, + "id": 62641, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5740:15:85", + "src": "5742:15:100", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -7395,25 +7448,25 @@ "visibility": "internal" } ], - "id": 59198, + "id": 62648, "initialValue": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], - "id": 59195, + "id": 62645, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 51922, - "src": "5773:10:85", + "referencedDeclaration": 52314, + "src": "5775:10:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 59196, + "id": 62646, "isConstant": false, "isLValue": false, "isPure": false, @@ -7422,7 +7475,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5773:12:85", + "src": "5775:12:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7437,27 +7490,27 @@ "typeString": "address" } ], - "id": 59194, + "id": 62644, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5765:8:85", + "src": "5767:8:100", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 59193, + "id": 62643, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5765:8:85", + "src": "5767:8:100", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 59197, + "id": 62647, "isConstant": false, "isLValue": false, "isPure": false, @@ -7466,7 +7519,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5765:21:85", + "src": "5767:21:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -7474,7 +7527,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5740:46:85" + "src": "5742:46:100" }, { "condition": { @@ -7482,18 +7535,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 59202, + "id": 62652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59199, + "id": 62649, "name": "bidder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59192, - "src": "5844:6:85", + "referencedDeclaration": 62642, + "src": "5846:6:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7503,57 +7556,57 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 59200, + "id": 62650, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -26, - "src": "5854:2:85", + "src": "5856:2:100", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 59201, + "id": 62651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5857:6:85", + "memberLocation": "5859:6:100", "memberName": "origin", "nodeType": "MemberAccess", - "src": "5854:9:85", + "src": "5856:9:100", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5844:19:85", + "src": "5846:19:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59206, + "id": 62656, "nodeType": "IfStatement", - "src": "5840:59:85", + "src": "5842:59:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59203, + "id": 62653, "name": "ContractBidderIsForbidden", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64202, - "src": "5872:25:85", + "referencedDeclaration": 67848, + "src": "5874:25:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59204, + "id": 62654, "isConstant": false, "isLValue": false, "isPure": false, @@ -7562,32 +7615,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5872:27:85", + "src": "5874:27:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59205, + "id": 62655, "nodeType": "RevertStatement", - "src": "5865:34:85" + "src": "5867:34:100" } }, { "assignments": [ - 59208 + 62658 ], "declarations": [ { "constant": false, - "id": 59208, + "id": 62658, "mutability": "mutable", "name": "prvBidder", - "nameLocation": "5921:9:85", + "nameLocation": "5923:9:100", "nodeType": "VariableDeclaration", - "scope": 59269, - "src": "5905:25:85", + "scope": 62719, + "src": "5907:25:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7595,10 +7648,10 @@ "typeString": "address payable" }, "typeName": { - "id": 59207, + "id": 62657, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5905:15:85", + "src": "5907:15:100", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -7608,68 +7661,68 @@ "visibility": "internal" } ], - "id": 59212, + "id": 62662, "initialValue": { "expression": { "expression": { - "id": 59209, + "id": 62659, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59155, - "src": "5933:7:85", + "referencedDeclaration": 62605, + "src": "5935:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59210, + "id": 62660, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5941:3:85", + "memberLocation": "5943:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "5933:11:85", + "referencedDeclaration": 67866, + "src": "5935:11:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_memory_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", "typeString": "struct INSAuction.Bid memory" } }, - "id": 59211, + "id": 62661, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5945:6:85", + "memberLocation": "5947:6:100", "memberName": "bidder", "nodeType": "MemberAccess", - "referencedDeclaration": 64206, - "src": "5933:18:85", + "referencedDeclaration": 67852, + "src": "5935:18:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "VariableDeclarationStatement", - "src": "5905:46:85" + "src": "5907:46:100" }, { "assignments": [ - 59214 + 62664 ], "declarations": [ { "constant": false, - "id": 59214, + "id": 62664, "mutability": "mutable", "name": "prvPrice", - "nameLocation": "5965:8:85", + "nameLocation": "5967:8:100", "nodeType": "VariableDeclaration", - "scope": 59269, - "src": "5957:16:85", + "scope": 62719, + "src": "5959:16:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7677,10 +7730,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59213, + "id": 62663, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5957:7:85", + "src": "5959:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7689,120 +7742,120 @@ "visibility": "internal" } ], - "id": 59218, + "id": 62668, "initialValue": { "expression": { "expression": { - "id": 59215, + "id": 62665, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59155, - "src": "5976:7:85", + "referencedDeclaration": 62605, + "src": "5978:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59216, + "id": 62666, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5984:3:85", + "memberLocation": "5986:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "5976:11:85", + "referencedDeclaration": 67866, + "src": "5978:11:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_memory_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", "typeString": "struct INSAuction.Bid memory" } }, - "id": 59217, + "id": 62667, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5988:5:85", + "memberLocation": "5990:5:100", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 64208, - "src": "5976:17:85", + "referencedDeclaration": 67854, + "src": "5978:17:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5957:36:85" + "src": "5959:36:100" }, { "assignments": [ - 59221 + 62671 ], "declarations": [ { "constant": false, - "id": 59221, + "id": 62671, "mutability": "mutable", "name": "sBid", - "nameLocation": "6012:4:85", + "nameLocation": "6014:4:100", "nodeType": "VariableDeclaration", - "scope": 59269, - "src": "6000:16:85", + "scope": 62719, + "src": "6002:16:100", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_storage_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_storage_ptr", "typeString": "struct INSAuction.Bid" }, "typeName": { - "id": 59220, + "id": 62670, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59219, + "id": 62669, "name": "Bid", "nameLocations": [ - "6000:3:85" + "6002:3:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 64213, - "src": "6000:3:85" + "referencedDeclaration": 67859, + "src": "6002:3:100" }, - "referencedDeclaration": 64213, - "src": "6000:3:85", + "referencedDeclaration": 67859, + "src": "6002:3:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_storage_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_storage_ptr", "typeString": "struct INSAuction.Bid" } }, "visibility": "internal" } ], - "id": 59226, + "id": 62676, "initialValue": { "expression": { "baseExpression": { - "id": 59222, + "id": 62672, "name": "_domainAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58737, - "src": "6019:14:85", + "referencedDeclaration": 62186, + "src": "6021:14:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$64221_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", "typeString": "mapping(uint256 => struct INSAuction.DomainAuction storage ref)" } }, - "id": 59224, + "id": 62674, "indexExpression": { - "id": 59223, + "id": 62673, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59150, - "src": "6034:2:85", + "referencedDeclaration": 62600, + "src": "6036:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7813,60 +7866,60 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6019:18:85", + "src": "6021:18:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage", "typeString": "struct INSAuction.DomainAuction storage ref" } }, - "id": 59225, + "id": 62675, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6038:3:85", + "memberLocation": "6040:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "6019:22:85", + "referencedDeclaration": 67866, + "src": "6021:22:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_storage", + "typeIdentifier": "t_struct$_Bid_$67859_storage", "typeString": "struct INSAuction.Bid storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6000:41:85" + "src": "6002:41:100" }, { "expression": { - "id": 59232, + "id": 62682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 59227, + "id": 62677, "name": "sBid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59221, - "src": "6047:4:85", + "referencedDeclaration": 62671, + "src": "6049:4:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_storage_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_storage_ptr", "typeString": "struct INSAuction.Bid storage pointer" } }, - "id": 59229, + "id": 62679, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6052:5:85", + "memberLocation": "6054:5:100", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 64208, - "src": "6047:10:85", + "referencedDeclaration": 67854, + "src": "6049:10:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7876,71 +7929,71 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 59230, + "id": 62680, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6060:3:85", + "src": "6062:3:100", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 59231, + "id": 62681, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6064:5:85", + "memberLocation": "6066:5:100", "memberName": "value", "nodeType": "MemberAccess", - "src": "6060:9:85", + "src": "6062:9:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6047:22:85", + "src": "6049:22:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59233, + "id": 62683, "nodeType": "ExpressionStatement", - "src": "6047:22:85" + "src": "6049:22:100" }, { "expression": { - "id": 59238, + "id": 62688, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 59234, + "id": 62684, "name": "sBid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59221, - "src": "6075:4:85", + "referencedDeclaration": 62671, + "src": "6077:4:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_storage_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_storage_ptr", "typeString": "struct INSAuction.Bid storage pointer" } }, - "id": 59236, + "id": 62686, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6080:6:85", + "memberLocation": "6082:6:100", "memberName": "bidder", "nodeType": "MemberAccess", - "referencedDeclaration": 64206, - "src": "6075:11:85", + "referencedDeclaration": 67852, + "src": "6077:11:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7949,57 +8002,57 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 59237, + "id": 62687, "name": "bidder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59192, - "src": "6089:6:85", + "referencedDeclaration": 62642, + "src": "6091:6:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "6075:20:85", + "src": "6077:20:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 59239, + "id": 62689, "nodeType": "ExpressionStatement", - "src": "6075:20:85" + "src": "6077:20:100" }, { "expression": { - "id": 59245, + "id": 62695, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 59240, + "id": 62690, "name": "sBid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59221, - "src": "6101:4:85", + "referencedDeclaration": 62671, + "src": "6103:4:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_storage_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_storage_ptr", "typeString": "struct INSAuction.Bid storage pointer" } }, - "id": 59242, + "id": 62692, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "6106:9:85", + "memberLocation": "6108:9:100", "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 64210, - "src": "6101:14:85", + "referencedDeclaration": 67856, + "src": "6103:14:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8009,79 +8062,79 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 59243, + "id": 62693, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "6118:5:85", + "src": "6120:5:100", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 59244, + "id": 62694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6124:9:85", + "memberLocation": "6126:9:100", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "6118:15:85", + "src": "6120:15:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6101:32:85", + "src": "6103:32:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59246, + "id": 62696, "nodeType": "ExpressionStatement", - "src": "6101:32:85" + "src": "6103:32:100" }, { "eventCall": { "arguments": [ { "expression": { - "id": 59248, + "id": 62698, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59155, - "src": "6154:7:85", + "referencedDeclaration": 62605, + "src": "6156:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59249, + "id": 62699, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6162:9:85", + "memberLocation": "6164:9:100", "memberName": "auctionId", "nodeType": "MemberAccess", - "referencedDeclaration": 64215, - "src": "6154:17:85", + "referencedDeclaration": 67861, + "src": "6156:17:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 59250, + "id": 62700, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59150, - "src": "6173:2:85", + "referencedDeclaration": 62600, + "src": "6175:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8089,62 +8142,62 @@ }, { "expression": { - "id": 59251, + "id": 62701, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6177:3:85", + "src": "6179:3:100", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 59252, + "id": 62702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6181:5:85", + "memberLocation": "6183:5:100", "memberName": "value", "nodeType": "MemberAccess", - "src": "6177:9:85", + "src": "6179:9:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 59253, + "id": 62703, "name": "bidder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59192, - "src": "6188:6:85", + "referencedDeclaration": 62642, + "src": "6190:6:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 59254, + "id": 62704, "name": "prvPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59214, - "src": "6196:8:85", + "referencedDeclaration": 62664, + "src": "6198:8:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 59255, + "id": 62705, "name": "prvBidder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59208, - "src": "6206:9:85", + "referencedDeclaration": 62658, + "src": "6208:9:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -8178,18 +8231,18 @@ "typeString": "address payable" } ], - "id": 59247, + "id": 62697, "name": "BidPlaced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64255, - "src": "6144:9:85", + "referencedDeclaration": 67901, + "src": "6146:9:100", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (bytes32,uint256,uint256,address payable,uint256,address)" } }, - "id": 59256, + "id": 62706, "isConstant": false, "isLValue": false, "isPure": false, @@ -8198,16 +8251,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6144:72:85", + "src": "6146:72:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59257, + "id": 62707, "nodeType": "EmitStatement", - "src": "6139:77:85" + "src": "6141:77:100" }, { "condition": { @@ -8215,18 +8268,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59260, + "id": 62710, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59258, + "id": 62708, "name": "prvPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59214, - "src": "6261:8:85", + "referencedDeclaration": 62664, + "src": "6263:8:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8236,51 +8289,51 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 59259, + "id": 62709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6273:1:85", + "src": "6275:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6261:13:85", + "src": "6263:13:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59268, + "id": 62718, "nodeType": "IfStatement", - "src": "6257:70:85", + "src": "6259:70:100", "trueBody": { "expression": { "arguments": [ { - "id": 59264, + "id": 62714, "name": "prvBidder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59208, - "src": "6307:9:85", + "referencedDeclaration": 62658, + "src": "6309:9:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 59265, + "id": 62715, "name": "prvPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59214, - "src": "6318:8:85", + "referencedDeclaration": 62664, + "src": "6320:8:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8299,33 +8352,33 @@ } ], "expression": { - "id": 59261, + "id": 62711, "name": "RONTransferHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67517, - "src": "6276:17:85", + "referencedDeclaration": 71187, + "src": "6278:17:100", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RONTransferHelper_$67517_$", + "typeIdentifier": "t_type$_t_contract$_RONTransferHelper_$71187_$", "typeString": "type(library RONTransferHelper)" } }, - "id": 59263, + "id": 62713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6294:12:85", + "memberLocation": "6296:12:100", "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 67492, - "src": "6276:30:85", + "referencedDeclaration": 71162, + "src": "6278:30:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$", "typeString": "function (address payable,uint256)" } }, - "id": 59266, + "id": 62716, "isConstant": false, "isLValue": false, "isPure": false, @@ -8334,27 +8387,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6276:51:85", + "src": "6278:51:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59267, + "id": 62717, "nodeType": "ExpressionStatement", - "src": "6276:51:85" + "src": "6278:51:100" } } ] }, "baseFunctions": [ - 64358 + 68019 ], "documentation": { - "id": 59148, + "id": 62598, "nodeType": "StructuredDocumentation", - "src": "5354:37:85", + "src": "5356:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "9979ef45", @@ -8362,20 +8415,20 @@ "kind": "function", "modifiers": [], "name": "placeBid", - "nameLocation": "5403:8:85", + "nameLocation": "5405:8:100", "parameters": { - "id": 59151, + "id": 62601, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59150, + "id": 62600, "mutability": "mutable", "name": "id", - "nameLocation": "5420:2:85", + "nameLocation": "5422:2:100", "nodeType": "VariableDeclaration", - "scope": 59270, - "src": "5412:10:85", + "scope": 62720, + "src": "5414:10:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8383,10 +8436,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59149, + "id": 62599, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5412:7:85", + "src": "5414:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8395,276 +8448,1935 @@ "visibility": "internal" } ], - "src": "5411:12:85" + "src": "5413:12:100" }, "returnParameters": { - "id": 59152, + "id": 62602, "nodeType": "ParameterList", "parameters": [], - "src": "5441:0:85" + "src": "5443:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 59426, + "id": 62855, "nodeType": "FunctionDefinition", - "src": "6376:1072:85", + "src": "6378:943:100", "nodes": [], "body": { - "id": 59425, + "id": 62854, "nodeType": "Block", - "src": "6474:974:85", + "src": "6557:764:100", "nodes": [], "statements": [ { - "assignments": [ - 59281 - ], - "declarations": [ - { - "constant": false, - "id": 59281, - "mutability": "mutable", - "name": "id", - "nameLocation": "6488:2:85", - "nodeType": "VariableDeclaration", - "scope": 59425, - "src": "6480:10:85", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 59280, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6480:7:85", + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 62742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 62738, + "name": "tos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62724, + "src": "6567:3:100", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" } }, - "visibility": "internal" - } - ], - "id": 59282, - "nodeType": "VariableDeclarationStatement", - "src": "6480:10:85" - }, - { - "assignments": [ - 59284 - ], - "declarations": [ - { - "constant": false, - "id": 59284, - "mutability": "mutable", - "name": "accumulatedRON", - "nameLocation": "6504:14:85", - "nodeType": "VariableDeclaration", - "scope": 59425, - "src": "6496:22:85", - "stateVariable": false, - "storageLocation": "default", + "id": 62739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6571:6:100", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6567:10:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 59283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6496:7:85", + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 62740, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62727, + "src": "6581:3:100", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" } }, - "visibility": "internal" - } - ], - "id": 59285, - "nodeType": "VariableDeclarationStatement", - "src": "6496:22:85" - }, - { - "assignments": [ - 59288 - ], - "declarations": [ - { - "constant": false, - "id": 59288, - "mutability": "mutable", - "name": "range", - "nameLocation": "6542:5:85", - "nodeType": "VariableDeclaration", - "scope": 59425, - "src": "6524:23:85", - "stateVariable": false, - "storageLocation": "memory", + "id": 62741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6585:6:100", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6581:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", - "typeString": "struct EventRange" - }, - "typeName": { - "id": 59287, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 59286, - "name": "EventRange", - "nameLocations": [ - "6524:10:85" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "6524:10:85" - }, - "referencedDeclaration": 65968, - "src": "6524:10:85", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", - "typeString": "struct EventRange" - } - }, - "visibility": "internal" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6567:24:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 59289, - "nodeType": "VariableDeclarationStatement", - "src": "6524:23:85" - }, - { - "assignments": [ - 59292 - ], - "declarations": [ - { - "constant": false, - "id": 59292, - "mutability": "mutable", - "name": "auction", - "nameLocation": "6574:7:85", - "nodeType": "VariableDeclaration", - "scope": 59425, - "src": "6553:28:85", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", - "typeString": "struct INSAuction.DomainAuction" - }, - "typeName": { - "id": 59291, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 59290, - "name": "DomainAuction", - "nameLocations": [ - "6553:13:85" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 64221, - "src": "6553:13:85" - }, - "referencedDeclaration": 64221, - "src": "6553:13:85", + }, + "id": 62746, + "nodeType": "IfStatement", + "src": "6563:57:100", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 62743, + "name": "InvalidArrayLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67846, + "src": "6600:18:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", - "typeString": "struct INSAuction.DomainAuction" + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" } }, - "visibility": "internal" - } - ], - "id": 59293, - "nodeType": "VariableDeclarationStatement", - "src": "6553:28:85" + "id": 62744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6600:20:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 62745, + "nodeType": "RevertStatement", + "src": "6593:27:100" + } }, { "assignments": [ - 59295 + 62748 ], "declarations": [ { "constant": false, - "id": 59295, + "id": 62748, "mutability": "mutable", - "name": "length", - "nameLocation": "6595:6:85", + "name": "expiry", + "nameLocation": "6634:6:100", "nodeType": "VariableDeclaration", - "scope": 59425, - "src": "6587:14:85", + "scope": 62854, + "src": "6627:13:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint64", + "typeString": "uint64" }, "typeName": { - "id": 59294, - "name": "uint256", + "id": 62747, + "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6587:7:85", + "src": "6627:6:100", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint64", + "typeString": "uint64" } }, "visibility": "internal" } ], - "id": 59298, + "id": 62758, "initialValue": { - "expression": { - "id": 59296, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 59274, - "src": "6604:3:85", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 59297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6608:6:85", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "6604:10:85", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6587:27:85" - }, - { - "expression": { - "id": 59305, - "isConstant": false, + "arguments": [ + { + "arguments": [ + { + "id": 62754, + "name": "DOMAIN_EXPIRY_DURATION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62153, + "src": "6684:22:100", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 62755, + "name": "MAX_EXPIRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62145, + "src": "6708:10:100", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "expression": { + "id": 62751, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6650:5:100", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 62752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6656:9:100", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6650:15:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 62753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6666:17:100", + "memberName": "addWithUpperbound", + "nodeType": "MemberAccess", + "referencedDeclaration": 70328, + "src": "6650:33:100", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 62756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6650:69:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 62750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6643:6:100", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 62749, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6643:6:100", + "typeDescriptions": {} + } + }, + "id": 62757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6643:77:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6627:93:100" + }, + { + "expression": { + "id": 62766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 62759, + "name": "claimeds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62736, + "src": "6726:8:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 62763, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62727, + "src": "6748:3:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 62764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6752:6:100", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6748:10:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 62762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6737:10:100", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (bool[] memory)" + }, + "typeName": { + "baseType": { + "id": 62760, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6741:4:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 62761, + "nodeType": "ArrayTypeName", + "src": "6741:6:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + } + }, + "id": 62765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6737:22:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "src": "6726:33:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 62767, + "nodeType": "ExpressionStatement", + "src": "6726:33:100" + }, + { + "assignments": [ + 62770 + ], + "declarations": [ + { + "constant": false, + "id": 62770, + "mutability": "mutable", + "name": "rnsUnified", + "nameLocation": "6776:10:100", + "nodeType": "VariableDeclaration", + "scope": 62854, + "src": "6765:21:100", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$68718", + "typeString": "contract INSUnified" + }, + "typeName": { + "id": 62769, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 62768, + "name": "INSUnified", + "nameLocations": [ + "6765:10:100" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 68718, + "src": "6765:10:100" + }, + "referencedDeclaration": 68718, + "src": "6765:10:100", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$68718", + "typeString": "contract INSUnified" + } + }, + "visibility": "internal" + } + ], + "id": 62772, + "initialValue": { + "id": 62771, + "name": "_rnsUnified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62174, + "src": "6789:11:100", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$68718", + "typeString": "contract INSUnified" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6765:35:100" + }, + { + "assignments": [ + 62775 + ], + "declarations": [ + { + "constant": false, + "id": 62775, + "mutability": "mutable", + "name": "auction", + "nameLocation": "6827:7:100", + "nodeType": "VariableDeclaration", + "scope": 62854, + "src": "6806:28:100", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", + "typeString": "struct INSAuction.DomainAuction" + }, + "typeName": { + "id": 62774, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 62773, + "name": "DomainAuction", + "nameLocations": [ + "6806:13:100" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 67867, + "src": "6806:13:100" + }, + "referencedDeclaration": 67867, + "src": "6806:13:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", + "typeString": "struct INSAuction.DomainAuction" + } + }, + "visibility": "internal" + } + ], + "id": 62776, + "nodeType": "VariableDeclarationStatement", + "src": "6806:28:100" + }, + { + "assignments": [ + 62778 + ], + "declarations": [ + { + "constant": false, + "id": 62778, + "mutability": "mutable", + "name": "id", + "nameLocation": "6848:2:100", + "nodeType": "VariableDeclaration", + "scope": 62854, + "src": "6840:10:100", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6840:7:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 62779, + "nodeType": "VariableDeclarationStatement", + "src": "6840:10:100" + }, + { + "body": { + "id": 62852, + "nodeType": "Block", + "src": "6890:427:100", + "statements": [ + { + "expression": { + "id": 62791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 62787, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62778, + "src": "6898:2:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 62788, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62727, + "src": "6903:3:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 62790, + "indexExpression": { + "id": 62789, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62781, + "src": "6907:1:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6903:6:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6898:11:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 62792, + "nodeType": "ExpressionStatement", + "src": "6898:11:100" + }, + { + "expression": { + "id": 62797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 62793, + "name": "auction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62775, + "src": "6917:7:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", + "typeString": "struct INSAuction.DomainAuction memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 62794, + "name": "_domainAuction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62186, + "src": "6927:14:100", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", + "typeString": "mapping(uint256 => struct INSAuction.DomainAuction storage ref)" + } + }, + "id": 62796, + "indexExpression": { + "id": 62795, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62778, + "src": "6942:2:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6927:18:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage", + "typeString": "struct INSAuction.DomainAuction storage ref" + } + }, + "src": "6917:28:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", + "typeString": "struct INSAuction.DomainAuction memory" + } + }, + "id": 62798, + "nodeType": "ExpressionStatement", + "src": "6917:28:100" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 62806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 62799, + "name": "auction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62775, + "src": "6958:7:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", + "typeString": "struct INSAuction.DomainAuction memory" + } + }, + "id": 62800, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6966:3:100", + "memberName": "bid", + "nodeType": "MemberAccess", + "referencedDeclaration": 67866, + "src": "6958:11:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", + "typeString": "struct INSAuction.Bid memory" + } + }, + "id": 62801, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6970:6:100", + "memberName": "bidder", + "nodeType": "MemberAccess", + "referencedDeclaration": 67852, + "src": "6958:18:100", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "307830", + "id": 62804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6988:3:100", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 62803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6980:7:100", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 62802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6980:7:100", + "typeDescriptions": {} + } + }, + "id": 62805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6980:12:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6958:34:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "id": 62840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7212:13:100", + "subExpression": { + "id": 62839, + "name": "allowFailure", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62729, + "src": "7213:12:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 62846, + "nodeType": "IfStatement", + "src": "7208:63:100", + "trueBody": { + "id": 62845, + "nodeType": "Block", + "src": "7227:44:100", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 62842, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62778, + "src": "7259:2:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 62841, + "name": "AlreadyBidding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67834, + "src": "7244:14:100", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 62843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7244:18:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 62844, + "nodeType": "RevertStatement", + "src": "7237:25:100" + } + ] + } + }, + "id": 62847, + "nodeType": "IfStatement", + "src": "6954:317:100", + "trueBody": { + "id": 62838, + "nodeType": "Block", + "src": "6994:208:100", + "statements": [ + { + "expression": { + "id": 62810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "7038:25:100", + "subExpression": { + "baseExpression": { + "id": 62807, + "name": "_domainAuction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62186, + "src": "7045:14:100", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", + "typeString": "mapping(uint256 => struct INSAuction.DomainAuction storage ref)" + } + }, + "id": 62809, + "indexExpression": { + "id": 62808, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62778, + "src": "7060:2:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7045:18:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage", + "typeString": "struct INSAuction.DomainAuction storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 62811, + "nodeType": "ExpressionStatement", + "src": "7038:25:100" + }, + { + "expression": { + "arguments": [ + { + "id": 62815, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62778, + "src": "7094:2:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 62816, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62748, + "src": "7098:6:100", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 62812, + "name": "rnsUnified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62770, + "src": "7073:10:100", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$68718", + "typeString": "contract INSUnified" + } + }, + "id": 62814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7084:9:100", + "memberName": "setExpiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 68708, + "src": "7073:20:100", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$returns$__$", + "typeString": "function (uint256,uint64) external" + } + }, + "id": 62817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7073:32:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 62818, + "nodeType": "ExpressionStatement", + "src": "7073:32:100" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 62824, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7147:4:100", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RNSAuction_$63232", + "typeString": "contract RNSAuction" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RNSAuction_$63232", + "typeString": "contract RNSAuction" + } + ], + "id": 62823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7139:7:100", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 62822, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7139:7:100", + "typeDescriptions": {} + } + }, + "id": 62825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7139:13:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 62826, + "name": "tos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62724, + "src": "7154:3:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 62828, + "indexExpression": { + "id": 62827, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62781, + "src": "7158:1:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7154:6:100", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 62829, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62778, + "src": "7162:2:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 62819, + "name": "rnsUnified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62770, + "src": "7115:10:100", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$68718", + "typeString": "contract INSUnified" + } + }, + "id": 62821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7126:12:100", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 51437, + "src": "7115:23:100", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 62830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7115:50:100", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 62831, + "nodeType": "ExpressionStatement", + "src": "7115:50:100" + }, + { + "expression": { + "id": 62836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 62832, + "name": "claimeds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62736, + "src": "7175:8:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 62834, + "indexExpression": { + "id": 62833, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62781, + "src": "7184:1:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7175:11:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 62835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "7175:18:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 62837, + "nodeType": "ExpressionStatement", + "src": "7175:18:100" + } + ] + } + }, + { + "id": 62851, + "nodeType": "UncheckedBlock", + "src": "7279:32:100", + "statements": [ + { + "expression": { + "id": 62849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "7299:3:100", + "subExpression": { + "id": 62848, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62781, + "src": "7301:1:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 62850, + "nodeType": "ExpressionStatement", + "src": "7299:3:100" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 62786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 62783, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62781, + "src": "6873:1:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 62784, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62727, + "src": "6877:3:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 62785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6881:6:100", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6877:10:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6873:14:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 62853, + "initializationExpression": { + "assignments": [ + 62781 + ], + "declarations": [ + { + "constant": false, + "id": 62781, + "mutability": "mutable", + "name": "i", + "nameLocation": "6870:1:100", + "nodeType": "VariableDeclaration", + "scope": 62853, + "src": "6862:9:100", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62780, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6862:7:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 62782, + "nodeType": "VariableDeclarationStatement", + "src": "6862:9:100" + }, + "nodeType": "ForStatement", + "src": "6857:460:100" + } + ] + }, + "baseFunctions": [ + 67974 + ], + "documentation": { + "id": 62721, + "nodeType": "StructuredDocumentation", + "src": "6338:37:100", + "text": " @inheritdoc INSAuction" + }, + "functionSelector": "91a3823f", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 62732, + "name": "OPERATOR_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62165, + "src": "6503:13:100", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 62733, + "kind": "modifierInvocation", + "modifierName": { + "id": 62731, + "name": "onlyRole", + "nameLocations": [ + "6494:8:100" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 48581, + "src": "6494:8:100" + }, + "nodeType": "ModifierInvocation", + "src": "6494:23:100" + } + ], + "name": "bulkClaimUnbiddedNames", + "nameLocation": "6387:22:100", + "parameters": { + "id": 62730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62724, + "mutability": "mutable", + "name": "tos", + "nameLocation": "6429:3:100", + "nodeType": "VariableDeclaration", + "scope": 62855, + "src": "6410:22:100", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 62722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6410:7:100", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 62723, + "nodeType": "ArrayTypeName", + "src": "6410:9:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62727, + "mutability": "mutable", + "name": "ids", + "nameLocation": "6453:3:100", + "nodeType": "VariableDeclaration", + "scope": 62855, + "src": "6434:22:100", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 62725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6434:7:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 62726, + "nodeType": "ArrayTypeName", + "src": "6434:9:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62729, + "mutability": "mutable", + "name": "allowFailure", + "nameLocation": "6463:12:100", + "nodeType": "VariableDeclaration", + "scope": 62855, + "src": "6458:17:100", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 62728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6458:4:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6409:67:100" + }, + "returnParameters": { + "id": 62737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62736, + "mutability": "mutable", + "name": "claimeds", + "nameLocation": "6545:8:100", + "nodeType": "VariableDeclaration", + "scope": 62855, + "src": "6531:22:100", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 62734, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6531:4:100", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 62735, + "nodeType": "ArrayTypeName", + "src": "6531:6:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "src": "6530:24:100" + }, + "scope": 63232, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 63011, + "nodeType": "FunctionDefinition", + "src": "7365:1072:100", + "nodes": [], + "body": { + "id": 63010, + "nodeType": "Block", + "src": "7463:974:100", + "nodes": [], + "statements": [ + { + "assignments": [ + 62866 + ], + "declarations": [ + { + "constant": false, + "id": 62866, + "mutability": "mutable", + "name": "id", + "nameLocation": "7477:2:100", + "nodeType": "VariableDeclaration", + "scope": 63010, + "src": "7469:10:100", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7469:7:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 62867, + "nodeType": "VariableDeclarationStatement", + "src": "7469:10:100" + }, + { + "assignments": [ + 62869 + ], + "declarations": [ + { + "constant": false, + "id": 62869, + "mutability": "mutable", + "name": "accumulatedRON", + "nameLocation": "7493:14:100", + "nodeType": "VariableDeclaration", + "scope": 63010, + "src": "7485:22:100", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62868, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7485:7:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 62870, + "nodeType": "VariableDeclarationStatement", + "src": "7485:22:100" + }, + { + "assignments": [ + 62873 + ], + "declarations": [ + { + "constant": false, + "id": 62873, + "mutability": "mutable", + "name": "range", + "nameLocation": "7531:5:100", + "nodeType": "VariableDeclaration", + "scope": 63010, + "src": "7513:23:100", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", + "typeString": "struct EventRange" + }, + "typeName": { + "id": 62872, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 62871, + "name": "EventRange", + "nameLocations": [ + "7513:10:100" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 69638, + "src": "7513:10:100" + }, + "referencedDeclaration": 69638, + "src": "7513:10:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", + "typeString": "struct EventRange" + } + }, + "visibility": "internal" + } + ], + "id": 62874, + "nodeType": "VariableDeclarationStatement", + "src": "7513:23:100" + }, + { + "assignments": [ + 62877 + ], + "declarations": [ + { + "constant": false, + "id": 62877, + "mutability": "mutable", + "name": "auction", + "nameLocation": "7563:7:100", + "nodeType": "VariableDeclaration", + "scope": 63010, + "src": "7542:28:100", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", + "typeString": "struct INSAuction.DomainAuction" + }, + "typeName": { + "id": 62876, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 62875, + "name": "DomainAuction", + "nameLocations": [ + "7542:13:100" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 67867, + "src": "7542:13:100" + }, + "referencedDeclaration": 67867, + "src": "7542:13:100", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", + "typeString": "struct INSAuction.DomainAuction" + } + }, + "visibility": "internal" + } + ], + "id": 62878, + "nodeType": "VariableDeclarationStatement", + "src": "7542:28:100" + }, + { + "assignments": [ + 62880 + ], + "declarations": [ + { + "constant": false, + "id": 62880, + "mutability": "mutable", + "name": "length", + "nameLocation": "7584:6:100", + "nodeType": "VariableDeclaration", + "scope": 63010, + "src": "7576:14:100", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7576:7:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 62883, + "initialValue": { + "expression": { + "id": 62881, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62859, + "src": "7593:3:100", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 62882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7597:6:100", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7593:10:100", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7576:27:100" + }, + { + "expression": { + "id": 62890, + "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59299, + "id": 62884, "name": "claimedAts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59278, - "src": "6620:10:85", + "referencedDeclaration": 62863, + "src": "7609:10:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -8675,12 +10387,12 @@ "rightHandSide": { "arguments": [ { - "id": 59303, + "id": 62888, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59295, - "src": "6647:6:85", + "referencedDeclaration": 62880, + "src": "7636:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8694,38 +10406,38 @@ "typeString": "uint256" } ], - "id": 59302, + "id": 62887, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6633:13:85", + "src": "7622:13:100", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint256[] memory)" }, "typeName": { "baseType": { - "id": 59300, + "id": 62885, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6637:7:85", + "src": "7626:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59301, + "id": 62886, "nodeType": "ArrayTypeName", - "src": "6637:9:85", + "src": "7626:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 59304, + "id": 62889, "isConstant": false, "isLValue": false, "isPure": false, @@ -8734,96 +10446,96 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6633:21:85", + "src": "7622:21:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "src": "6620:34:85", + "src": "7609:34:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 59306, + "id": 62891, "nodeType": "ExpressionStatement", - "src": "6620:34:85" + "src": "7609:34:100" }, { "assignments": [ - 59309 + 62894 ], "declarations": [ { "constant": false, - "id": 59309, + "id": 62894, "mutability": "mutable", "name": "rnsUnified", - "nameLocation": "6671:10:85", + "nameLocation": "7660:10:100", "nodeType": "VariableDeclaration", - "scope": 59425, - "src": "6660:21:85", + "scope": 63010, + "src": "7649:21:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" }, "typeName": { - "id": 59308, + "id": 62893, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59307, + "id": 62892, "name": "INSUnified", "nameLocations": [ - "6660:10:85" + "7649:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65048, - "src": "6660:10:85" + "referencedDeclaration": 68718, + "src": "7649:10:100" }, - "referencedDeclaration": 65048, - "src": "6660:10:85", + "referencedDeclaration": 68718, + "src": "7649:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, "visibility": "internal" } ], - "id": 59311, + "id": 62896, "initialValue": { - "id": 59310, + "id": 62895, "name": "_rnsUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58725, - "src": "6684:11:85", + "referencedDeclaration": 62174, + "src": "7673:11:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, "nodeType": "VariableDeclarationStatement", - "src": "6660:35:85" + "src": "7649:35:100" }, { "assignments": [ - 59313 + 62898 ], "declarations": [ { "constant": false, - "id": 59313, + "id": 62898, "mutability": "mutable", "name": "expiry", - "nameLocation": "6708:6:85", + "nameLocation": "7697:6:100", "nodeType": "VariableDeclaration", - "scope": 59425, - "src": "6701:13:85", + "scope": 63010, + "src": "7690:13:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8831,10 +10543,10 @@ "typeString": "uint64" }, "typeName": { - "id": 59312, + "id": 62897, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6701:6:85", + "src": "7690:6:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -8843,30 +10555,30 @@ "visibility": "internal" } ], - "id": 59323, + "id": 62908, "initialValue": { "arguments": [ { "arguments": [ { - "id": 59319, + "id": 62904, "name": "DOMAIN_EXPIRY_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58704, - "src": "6758:22:85", + "referencedDeclaration": 62153, + "src": "7747:22:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { - "id": 59320, + "id": 62905, "name": "MAX_EXPIRY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58696, - "src": "6782:10:85", + "referencedDeclaration": 62145, + "src": "7771:10:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -8886,47 +10598,47 @@ ], "expression": { "expression": { - "id": 59316, + "id": 62901, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "6724:5:85", + "src": "7713:5:100", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 59317, + "id": 62902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6730:9:85", + "memberLocation": "7719:9:100", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "6724:15:85", + "src": "7713:15:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59318, + "id": 62903, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6740:17:85", + "memberLocation": "7729:17:100", "memberName": "addWithUpperbound", "nodeType": "MemberAccess", - "referencedDeclaration": 66658, - "src": "6724:33:85", + "referencedDeclaration": 70328, + "src": "7713:33:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 59321, + "id": 62906, "isConstant": false, "isLValue": false, "isPure": false, @@ -8935,7 +10647,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6724:69:85", + "src": "7713:69:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8950,26 +10662,26 @@ "typeString": "uint256" } ], - "id": 59315, + "id": 62900, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6717:6:85", + "src": "7706:6:100", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { - "id": 59314, + "id": 62899, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6717:6:85", + "src": "7706:6:100", "typeDescriptions": {} } }, - "id": 59322, + "id": 62907, "isConstant": false, "isLValue": false, "isPure": false, @@ -8978,7 +10690,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6717:77:85", + "src": "7706:77:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -8986,28 +10698,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6701:93:85" + "src": "7690:93:100" }, { "body": { - "id": 59416, + "id": 63001, "nodeType": "Block", - "src": "6830:550:85", + "src": "7819:550:100", "statements": [ { "expression": { - "id": 59334, + "id": 62919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59330, + "id": 62915, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59281, - "src": "6838:2:85", + "referencedDeclaration": 62866, + "src": "7827:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9017,25 +10729,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 59331, + "id": 62916, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59274, - "src": "6843:3:85", + "referencedDeclaration": 62859, + "src": "7832:3:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 59333, + "id": 62918, "indexExpression": { - "id": 59332, + "id": 62917, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59325, - "src": "6847:1:85", + "referencedDeclaration": 62910, + "src": "7836:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9046,38 +10758,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6843:6:85", + "src": "7832:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6838:11:85", + "src": "7827:11:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59335, + "id": 62920, "nodeType": "ExpressionStatement", - "src": "6838:11:85" + "src": "7827:11:100" }, { "expression": { - "id": 59340, + "id": 62925, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59336, + "id": 62921, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59292, - "src": "6857:7:85", + "referencedDeclaration": 62877, + "src": "7846:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, @@ -9085,25 +10797,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 59337, + "id": 62922, "name": "_domainAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58737, - "src": "6867:14:85", + "referencedDeclaration": 62186, + "src": "7856:14:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$64221_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", "typeString": "mapping(uint256 => struct INSAuction.DomainAuction storage ref)" } }, - "id": 59339, + "id": 62924, "indexExpression": { - "id": 59338, + "id": 62923, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59281, - "src": "6882:2:85", + "referencedDeclaration": 62866, + "src": "7871:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9114,38 +10826,38 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6867:18:85", + "src": "7856:18:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage", "typeString": "struct INSAuction.DomainAuction storage ref" } }, - "src": "6857:28:85", + "src": "7846:28:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59341, + "id": 62926, "nodeType": "ExpressionStatement", - "src": "6857:28:85" + "src": "7846:28:100" }, { "expression": { - "id": 59347, + "id": 62932, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59342, + "id": 62927, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59288, - "src": "6893:5:85", + "referencedDeclaration": 62873, + "src": "7882:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } }, @@ -9153,41 +10865,41 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 59343, + "id": 62928, "name": "_auctionRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58731, - "src": "6901:13:85", + "referencedDeclaration": 62180, + "src": "7890:13:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$65968_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$69638_storage_$", "typeString": "mapping(bytes32 => struct EventRange storage ref)" } }, - "id": 59346, + "id": 62931, "indexExpression": { "expression": { - "id": 59344, + "id": 62929, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59292, - "src": "6915:7:85", + "referencedDeclaration": 62877, + "src": "7904:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59345, + "id": 62930, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6923:9:85", + "memberLocation": "7912:9:100", "memberName": "auctionId", "nodeType": "MemberAccess", - "referencedDeclaration": 64215, - "src": "6915:17:85", + "referencedDeclaration": 67861, + "src": "7904:17:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9198,21 +10910,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6901:32:85", + "src": "7890:32:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage", + "typeIdentifier": "t_struct$_EventRange_$69638_storage", "typeString": "struct EventRange storage ref" } }, - "src": "6893:40:85", + "src": "7882:40:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } }, - "id": 59348, + "id": 62933, "nodeType": "ExpressionStatement", - "src": "6893:40:85" + "src": "7882:40:100" }, { "condition": { @@ -9220,7 +10932,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59353, + "id": 62938, "isConstant": false, "isLValue": false, "isPure": false, @@ -9228,42 +10940,42 @@ "leftExpression": { "expression": { "expression": { - "id": 59349, + "id": 62934, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59292, - "src": "6946:7:85", + "referencedDeclaration": 62877, + "src": "7935:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59350, + "id": 62935, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6954:3:85", + "memberLocation": "7943:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "6946:11:85", + "referencedDeclaration": 67866, + "src": "7935:11:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_memory_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", "typeString": "struct INSAuction.Bid memory" } }, - "id": 59351, + "id": 62936, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6958:9:85", + "memberLocation": "7947:9:100", "memberName": "claimedAt", "nodeType": "MemberAccess", - "referencedDeclaration": 64212, - "src": "6946:21:85", + "referencedDeclaration": 67858, + "src": "7935:21:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9273,37 +10985,37 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 59352, + "id": 62937, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6971:1:85", + "src": "7960:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6946:26:85", + "src": "7935:26:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59411, + "id": 62996, "nodeType": "IfStatement", - "src": "6942:392:85", + "src": "7931:392:100", "trueBody": { - "id": 59410, + "id": 62995, "nodeType": "Block", - "src": "6974:360:85", + "src": "7963:360:100", "statements": [ { "condition": { - "id": 59357, + "id": 62942, "isConstant": false, "isLValue": false, "isPure": false, @@ -9311,39 +11023,39 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6988:16:85", + "src": "7977:16:100", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 59354, + "id": 62939, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59288, - "src": "6989:5:85", + "referencedDeclaration": 62873, + "src": "7978:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } }, - "id": 59355, + "id": 62940, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6995:7:85", + "memberLocation": "7984:7:100", "memberName": "isEnded", "nodeType": "MemberAccess", - "referencedDeclaration": 66016, - "src": "6989:13:85", + "referencedDeclaration": 69686, + "src": "7978:13:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$65968_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$65968_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$69638_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$69638_memory_ptr_$", "typeString": "function (struct EventRange memory) view returns (bool)" } }, - "id": 59356, + "id": 62941, "isConstant": false, "isLValue": false, "isPure": false, @@ -9352,7 +11064,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6989:15:85", + "src": "7978:15:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9364,26 +11076,26 @@ "typeString": "bool" } }, - "id": 59361, + "id": 62946, "nodeType": "IfStatement", - "src": "6984:42:85", + "src": "7973:42:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59358, + "id": 62943, "name": "NotYetEnded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64182, - "src": "7013:11:85", + "referencedDeclaration": 67826, + "src": "8002:11:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59359, + "id": 62944, "isConstant": false, "isLValue": false, "isPure": false, @@ -9392,16 +11104,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7013:13:85", + "src": "8002:13:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59360, + "id": 62945, "nodeType": "RevertStatement", - "src": "7006:20:85" + "src": "7995:20:100" } }, { @@ -9410,7 +11122,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59366, + "id": 62951, "isConstant": false, "isLValue": false, "isPure": false, @@ -9418,42 +11130,42 @@ "leftExpression": { "expression": { "expression": { - "id": 59362, + "id": 62947, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59292, - "src": "7040:7:85", + "referencedDeclaration": 62877, + "src": "8029:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59363, + "id": 62948, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7048:3:85", + "memberLocation": "8037:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "7040:11:85", + "referencedDeclaration": 67866, + "src": "8029:11:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_memory_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", "typeString": "struct INSAuction.Bid memory" } }, - "id": 59364, + "id": 62949, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7052:9:85", + "memberLocation": "8041:9:100", "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 64210, - "src": "7040:21:85", + "referencedDeclaration": 67856, + "src": "8029:21:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9463,46 +11175,46 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 59365, + "id": 62950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7065:1:85", + "src": "8054:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "7040:26:85", + "src": "8029:26:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59370, + "id": 62955, "nodeType": "IfStatement", - "src": "7036:52:85", + "src": "8025:52:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59367, + "id": 62952, "name": "NoOneBidded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64184, - "src": "7075:11:85", + "referencedDeclaration": 67828, + "src": "8064:11:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59368, + "id": 62953, "isConstant": false, "isLValue": false, "isPure": false, @@ -9511,32 +11223,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7075:13:85", + "src": "8064:13:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59369, + "id": 62954, "nodeType": "RevertStatement", - "src": "7068:20:85" + "src": "8057:20:100" } }, { "expression": { - "id": 59375, + "id": 62960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59371, + "id": 62956, "name": "accumulatedRON", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59284, - "src": "7099:14:85", + "referencedDeclaration": 62869, + "src": "8088:14:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9547,79 +11259,79 @@ "rightHandSide": { "expression": { "expression": { - "id": 59372, + "id": 62957, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59292, - "src": "7117:7:85", + "referencedDeclaration": 62877, + "src": "8106:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59373, + "id": 62958, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7125:3:85", + "memberLocation": "8114:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "7117:11:85", + "referencedDeclaration": 67866, + "src": "8106:11:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_memory_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", "typeString": "struct INSAuction.Bid memory" } }, - "id": 59374, + "id": 62959, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7129:5:85", + "memberLocation": "8118:5:100", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 64208, - "src": "7117:17:85", + "referencedDeclaration": 67854, + "src": "8106:17:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7099:35:85", + "src": "8088:35:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59376, + "id": 62961, "nodeType": "ExpressionStatement", - "src": "7099:35:85" + "src": "8088:35:100" }, { "expression": { "arguments": [ { - "id": 59380, + "id": 62965, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59281, - "src": "7165:2:85", + "referencedDeclaration": 62866, + "src": "8154:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 59381, + "id": 62966, "name": "expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59313, - "src": "7169:6:85", + "referencedDeclaration": 62898, + "src": "8158:6:100", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9638,33 +11350,33 @@ } ], "expression": { - "id": 59377, + "id": 62962, "name": "rnsUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59309, - "src": "7144:10:85", + "referencedDeclaration": 62894, + "src": "8133:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, - "id": 59379, + "id": 62964, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7155:9:85", + "memberLocation": "8144:9:100", "memberName": "setExpiry", "nodeType": "MemberAccess", - "referencedDeclaration": 65038, - "src": "7144:20:85", + "referencedDeclaration": 68708, + "src": "8133:20:100", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$returns$__$", "typeString": "function (uint256,uint64) external" } }, - "id": 59382, + "id": 62967, "isConstant": false, "isLValue": false, "isPure": false, @@ -9673,16 +11385,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7144:32:85", + "src": "8133:32:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59383, + "id": 62968, "nodeType": "ExpressionStatement", - "src": "7144:32:85" + "src": "8133:32:100" }, { "expression": { @@ -9690,14 +11402,14 @@ { "arguments": [ { - "id": 59389, + "id": 62974, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "7218:4:85", + "src": "8207:4:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_RNSAuction_$59647", + "typeIdentifier": "t_contract$_RNSAuction_$63232", "typeString": "contract RNSAuction" } } @@ -9705,30 +11417,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_RNSAuction_$59647", + "typeIdentifier": "t_contract$_RNSAuction_$63232", "typeString": "contract RNSAuction" } ], - "id": 59388, + "id": 62973, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7210:7:85", + "src": "8199:7:100", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 59387, + "id": 62972, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7210:7:85", + "src": "8199:7:100", "typeDescriptions": {} } }, - "id": 59390, + "id": 62975, "isConstant": false, "isLValue": false, "isPure": false, @@ -9737,7 +11449,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7210:13:85", + "src": "8199:13:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9747,54 +11459,54 @@ { "expression": { "expression": { - "id": 59391, + "id": 62976, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59292, - "src": "7225:7:85", + "referencedDeclaration": 62877, + "src": "8214:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59392, + "id": 62977, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7233:3:85", + "memberLocation": "8222:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "7225:11:85", + "referencedDeclaration": 67866, + "src": "8214:11:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_memory_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", "typeString": "struct INSAuction.Bid memory" } }, - "id": 59393, + "id": 62978, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7237:6:85", + "memberLocation": "8226:6:100", "memberName": "bidder", "nodeType": "MemberAccess", - "referencedDeclaration": 64206, - "src": "7225:18:85", + "referencedDeclaration": 67852, + "src": "8214:18:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 59394, + "id": 62979, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59281, - "src": "7245:2:85", + "referencedDeclaration": 62866, + "src": "8234:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9817,33 +11529,33 @@ } ], "expression": { - "id": 59384, + "id": 62969, "name": "rnsUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59309, - "src": "7186:10:85", + "referencedDeclaration": 62894, + "src": "8175:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, - "id": 59386, + "id": 62971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7197:12:85", + "memberLocation": "8186:12:100", "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 51045, - "src": "7186:23:85", + "referencedDeclaration": 51437, + "src": "8175:23:100", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256) external" } }, - "id": 59395, + "id": 62980, "isConstant": false, "isLValue": false, "isPure": false, @@ -9852,20 +11564,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7186:62:85", + "src": "8175:62:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59396, + "id": 62981, "nodeType": "ExpressionStatement", - "src": "7186:62:85" + "src": "8175:62:100" }, { "expression": { - "id": 59408, + "id": 62993, "isConstant": false, "isLValue": false, "isPure": false, @@ -9874,25 +11586,25 @@ "expression": { "expression": { "baseExpression": { - "id": 59397, + "id": 62982, "name": "_domainAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58737, - "src": "7259:14:85", + "referencedDeclaration": 62186, + "src": "8248:14:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$64221_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", "typeString": "mapping(uint256 => struct INSAuction.DomainAuction storage ref)" } }, - "id": 59399, + "id": 62984, "indexExpression": { - "id": 59398, + "id": 62983, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59281, - "src": "7274:2:85", + "referencedDeclaration": 62866, + "src": "8263:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9903,37 +11615,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7259:18:85", + "src": "8248:18:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage", "typeString": "struct INSAuction.DomainAuction storage ref" } }, - "id": 59400, + "id": 62985, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7278:3:85", + "memberLocation": "8267:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "7259:22:85", + "referencedDeclaration": 67866, + "src": "8248:22:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_storage", + "typeIdentifier": "t_struct$_Bid_$67859_storage", "typeString": "struct INSAuction.Bid storage ref" } }, - "id": 59401, + "id": 62986, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "7282:9:85", + "memberLocation": "8271:9:100", "memberName": "claimedAt", "nodeType": "MemberAccess", - "referencedDeclaration": 64212, - "src": "7259:32:85", + "referencedDeclaration": 67858, + "src": "8248:32:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9942,32 +11654,32 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 59407, + "id": 62992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 59402, + "id": 62987, "name": "claimedAts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59278, - "src": "7294:10:85", + "referencedDeclaration": 62863, + "src": "8283:10:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 59404, + "id": 62989, "indexExpression": { - "id": 59403, + "id": 62988, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59325, - "src": "7305:1:85", + "referencedDeclaration": 62910, + "src": "8294:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9978,7 +11690,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7294:13:85", + "src": "8283:13:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9988,58 +11700,58 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 59405, + "id": 62990, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "7310:5:85", + "src": "8299:5:100", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 59406, + "id": 62991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7316:9:85", + "memberLocation": "8305:9:100", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "7310:15:85", + "src": "8299:15:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7294:31:85", + "src": "8283:31:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7259:66:85", + "src": "8248:66:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59409, + "id": 62994, "nodeType": "ExpressionStatement", - "src": "7259:66:85" + "src": "8248:66:100" } ] } }, { - "id": 59415, + "id": 63000, "nodeType": "UncheckedBlock", - "src": "7342:32:85", + "src": "8331:32:100", "statements": [ { "expression": { - "id": 59413, + "id": 62998, "isConstant": false, "isLValue": false, "isPure": false, @@ -10047,14 +11759,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "7362:3:85", + "src": "8351:3:100", "subExpression": { - "id": 59412, + "id": 62997, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59325, - "src": "7364:1:85", + "referencedDeclaration": 62910, + "src": "8353:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10065,9 +11777,9 @@ "typeString": "uint256" } }, - "id": 59414, + "id": 62999, "nodeType": "ExpressionStatement", - "src": "7362:3:85" + "src": "8351:3:100" } ] } @@ -10078,18 +11790,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59329, + "id": 62914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59327, + "id": 62912, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59325, - "src": "6817:1:85", + "referencedDeclaration": 62910, + "src": "7806:1:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10098,38 +11810,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 59328, + "id": 62913, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59295, - "src": "6821:6:85", + "referencedDeclaration": 62880, + "src": "7810:6:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6817:10:85", + "src": "7806:10:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59417, + "id": 63002, "initializationExpression": { "assignments": [ - 59325 + 62910 ], "declarations": [ { "constant": false, - "id": 59325, + "id": 62910, "mutability": "mutable", "name": "i", - "nameLocation": "6814:1:85", + "nameLocation": "7803:1:100", "nodeType": "VariableDeclaration", - "scope": 59417, - "src": "6806:9:85", + "scope": 63002, + "src": "7795:9:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10137,10 +11849,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59324, + "id": 62909, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6806:7:85", + "src": "7795:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10149,35 +11861,35 @@ "visibility": "internal" } ], - "id": 59326, + "id": 62911, "nodeType": "VariableDeclarationStatement", - "src": "6806:9:85" + "src": "7795:9:100" }, "nodeType": "ForStatement", - "src": "6801:579:85" + "src": "7790:579:100" }, { "expression": { "arguments": [ { - "id": 59421, + "id": 63006, "name": "_treasury", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58740, - "src": "7417:9:85", + "referencedDeclaration": 62189, + "src": "8406:9:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 59422, + "id": 63007, "name": "accumulatedRON", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59284, - "src": "7428:14:85", + "referencedDeclaration": 62869, + "src": "8417:14:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10196,33 +11908,33 @@ } ], "expression": { - "id": 59418, + "id": 63003, "name": "RONTransferHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67517, - "src": "7386:17:85", + "referencedDeclaration": 71187, + "src": "8375:17:100", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RONTransferHelper_$67517_$", + "typeIdentifier": "t_type$_t_contract$_RONTransferHelper_$71187_$", "typeString": "type(library RONTransferHelper)" } }, - "id": 59420, + "id": 63005, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7404:12:85", + "memberLocation": "8393:12:100", "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 67492, - "src": "7386:30:85", + "referencedDeclaration": 71162, + "src": "8375:30:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$", "typeString": "function (address payable,uint256)" } }, - "id": 59423, + "id": 63008, "isConstant": false, "isLValue": false, "isPure": false, @@ -10231,26 +11943,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7386:57:85", + "src": "8375:57:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59424, + "id": 63009, "nodeType": "ExpressionStatement", - "src": "7386:57:85" + "src": "8375:57:100" } ] }, "baseFunctions": [ - 64379 + 68040 ], "documentation": { - "id": 59271, + "id": 62856, "nodeType": "StructuredDocumentation", - "src": "6336:37:85", + "src": "7325:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "6e7d60f2", @@ -10258,20 +11970,20 @@ "kind": "function", "modifiers": [], "name": "bulkClaimBidNames", - "nameLocation": "6385:17:85", + "nameLocation": "7374:17:100", "parameters": { - "id": 59275, + "id": 62860, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59274, + "id": 62859, "mutability": "mutable", "name": "ids", - "nameLocation": "6422:3:85", + "nameLocation": "7411:3:100", "nodeType": "VariableDeclaration", - "scope": 59426, - "src": "6403:22:85", + "scope": 63011, + "src": "7392:22:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -10280,18 +11992,18 @@ }, "typeName": { "baseType": { - "id": 59272, + "id": 62857, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6403:7:85", + "src": "7392:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59273, + "id": 62858, "nodeType": "ArrayTypeName", - "src": "6403:9:85", + "src": "7392:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -10300,21 +12012,21 @@ "visibility": "internal" } ], - "src": "6402:24:85" + "src": "7391:24:100" }, "returnParameters": { - "id": 59279, + "id": 62864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59278, + "id": 62863, "mutability": "mutable", "name": "claimedAts", - "nameLocation": "6462:10:85", + "nameLocation": "7451:10:100", "nodeType": "VariableDeclaration", - "scope": 59426, - "src": "6445:27:85", + "scope": 63011, + "src": "7434:27:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10323,18 +12035,18 @@ }, "typeName": { "baseType": { - "id": 59276, + "id": 62861, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6445:7:85", + "src": "7434:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59277, + "id": 62862, "nodeType": "ArrayTypeName", - "src": "6445:9:85", + "src": "7434:9:100", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -10343,51 +12055,51 @@ "visibility": "internal" } ], - "src": "6444:29:85" + "src": "7433:29:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 59436, + "id": 63021, "nodeType": "FunctionDefinition", - "src": "7492:89:85", + "src": "8481:89:100", "nodes": [], "body": { - "id": 59435, + "id": 63020, "nodeType": "Block", - "src": "7552:29:85", + "src": "8541:29:100", "nodes": [], "statements": [ { "expression": { - "id": 59433, + "id": 63018, "name": "_rnsUnified", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58725, - "src": "7565:11:85", + "referencedDeclaration": 62174, + "src": "8554:11:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, - "functionReturnParameters": 59432, - "id": 59434, + "functionReturnParameters": 63017, + "id": 63019, "nodeType": "Return", - "src": "7558:18:85" + "src": "8547:18:100" } ] }, "baseFunctions": [ - 64410 + 68071 ], "documentation": { - "id": 59427, + "id": 63012, "nodeType": "StructuredDocumentation", - "src": "7452:37:85", + "src": "8441:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "8c843314", @@ -10395,100 +12107,100 @@ "kind": "function", "modifiers": [], "name": "getRNSUnified", - "nameLocation": "7501:13:85", + "nameLocation": "8490:13:100", "parameters": { - "id": 59428, + "id": 63013, "nodeType": "ParameterList", "parameters": [], - "src": "7514:2:85" + "src": "8503:2:100" }, "returnParameters": { - "id": 59432, + "id": 63017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59431, + "id": 63016, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 59436, - "src": "7540:10:85", + "scope": 63021, + "src": "8529:10:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" }, "typeName": { - "id": 59430, + "id": 63015, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59429, + "id": 63014, "name": "INSUnified", "nameLocations": [ - "7540:10:85" + "8529:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65048, - "src": "7540:10:85" + "referencedDeclaration": 68718, + "src": "8529:10:100" }, - "referencedDeclaration": 65048, - "src": "7540:10:85", + "referencedDeclaration": 68718, + "src": "8529:10:100", "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$65048", + "typeIdentifier": "t_contract$_INSUnified_$68718", "typeString": "contract INSUnified" } }, "visibility": "internal" } ], - "src": "7539:12:85" + "src": "8528:12:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 59445, + "id": 63030, "nodeType": "FunctionDefinition", - "src": "7625:82:85", + "src": "8614:82:100", "nodes": [], "body": { - "id": 59444, + "id": 63029, "nodeType": "Block", - "src": "7680:27:85", + "src": "8669:27:100", "nodes": [], "statements": [ { "expression": { - "id": 59442, + "id": 63027, "name": "_treasury", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58740, - "src": "7693:9:85", + "referencedDeclaration": 62189, + "src": "8682:9:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "functionReturnParameters": 59441, - "id": 59443, + "functionReturnParameters": 63026, + "id": 63028, "nodeType": "Return", - "src": "7686:16:85" + "src": "8675:16:100" } ] }, "baseFunctions": [ - 64385 + 68046 ], "documentation": { - "id": 59437, + "id": 63022, "nodeType": "StructuredDocumentation", - "src": "7585:37:85", + "src": "8574:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "3b19e84a", @@ -10496,26 +12208,26 @@ "kind": "function", "modifiers": [], "name": "getTreasury", - "nameLocation": "7634:11:85", + "nameLocation": "8623:11:100", "parameters": { - "id": 59438, + "id": 63023, "nodeType": "ParameterList", "parameters": [], - "src": "7645:2:85" + "src": "8634:2:100" }, "returnParameters": { - "id": 59441, + "id": 63026, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59440, + "id": 63025, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 59445, - "src": "7671:7:85", + "scope": 63030, + "src": "8660:7:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10523,10 +12235,10 @@ "typeString": "address" }, "typeName": { - "id": 59439, + "id": 63024, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7671:7:85", + "src": "8660:7:100", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10536,51 +12248,51 @@ "visibility": "internal" } ], - "src": "7670:9:85" + "src": "8659:9:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 59454, + "id": 63039, "nodeType": "FunctionDefinition", - "src": "7751:88:85", + "src": "8740:88:100", "nodes": [], "body": { - "id": 59453, + "id": 63038, "nodeType": "Block", - "src": "7809:30:85", + "src": "8798:30:100", "nodes": [], "statements": [ { "expression": { - "id": 59451, + "id": 63036, "name": "_bidGapRatio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58743, - "src": "7822:12:85", + "referencedDeclaration": 62192, + "src": "8811:12:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 59450, - "id": 59452, + "functionReturnParameters": 63035, + "id": 63037, "nodeType": "Return", - "src": "7815:19:85" + "src": "8804:19:100" } ] }, "baseFunctions": [ - 64391 + 68052 ], "documentation": { - "id": 59446, + "id": 63031, "nodeType": "StructuredDocumentation", - "src": "7711:37:85", + "src": "8700:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "a282d4ae", @@ -10588,26 +12300,26 @@ "kind": "function", "modifiers": [], "name": "getBidGapRatio", - "nameLocation": "7760:14:85", + "nameLocation": "8749:14:100", "parameters": { - "id": 59447, + "id": 63032, "nodeType": "ParameterList", "parameters": [], - "src": "7774:2:85" + "src": "8763:2:100" }, "returnParameters": { - "id": 59450, + "id": 63035, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59449, + "id": 63034, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 59454, - "src": "7800:7:85", + "scope": 63039, + "src": "8789:7:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10615,10 +12327,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59448, + "id": 63033, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7800:7:85", + "src": "8789:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10627,34 +12339,34 @@ "visibility": "internal" } ], - "src": "7799:9:85" + "src": "8788:9:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 59468, + "id": 63053, "nodeType": "FunctionDefinition", - "src": "7883:110:85", + "src": "8872:110:100", "nodes": [], "body": { - "id": 59467, + "id": 63052, "nodeType": "Block", - "src": "7964:29:85", + "src": "8953:29:100", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 59464, + "id": 63049, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59457, - "src": "7983:4:85", + "referencedDeclaration": 63042, + "src": "8972:4:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10668,18 +12380,18 @@ "typeString": "address payable" } ], - "id": 59463, + "id": 63048, "name": "_setTreasury", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59540, - "src": "7970:12:85", + "referencedDeclaration": 63125, + "src": "8959:12:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 59465, + "id": 63050, "isConstant": false, "isLValue": false, "isPure": false, @@ -10688,26 +12400,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7970:18:85", + "src": "8959:18:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59466, + "id": 63051, "nodeType": "ExpressionStatement", - "src": "7970:18:85" + "src": "8959:18:100" } ] }, "baseFunctions": [ - 64397 + 68058 ], "documentation": { - "id": 59455, + "id": 63040, "nodeType": "StructuredDocumentation", - "src": "7843:37:85", + "src": "8832:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "f0f44260", @@ -10717,49 +12429,49 @@ { "arguments": [ { - "id": 59460, + "id": 63045, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48178, - "src": "7944:18:85", + "referencedDeclaration": 48570, + "src": "8933:18:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 59461, + "id": 63046, "kind": "modifierInvocation", "modifierName": { - "id": 59459, + "id": 63044, "name": "onlyRole", "nameLocations": [ - "7935:8:85" + "8924:8:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48189, - "src": "7935:8:85" + "referencedDeclaration": 48581, + "src": "8924:8:100" }, "nodeType": "ModifierInvocation", - "src": "7935:28:85" + "src": "8924:28:100" } ], "name": "setTreasury", - "nameLocation": "7892:11:85", + "nameLocation": "8881:11:100", "parameters": { - "id": 59458, + "id": 63043, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59457, + "id": 63042, "mutability": "mutable", "name": "addr", - "nameLocation": "7920:4:85", + "nameLocation": "8909:4:100", "nodeType": "VariableDeclaration", - "scope": 59468, - "src": "7904:20:85", + "scope": 63053, + "src": "8893:20:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10767,10 +12479,10 @@ "typeString": "address payable" }, "typeName": { - "id": 59456, + "id": 63041, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7904:15:85", + "src": "8893:15:100", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -10780,40 +12492,40 @@ "visibility": "internal" } ], - "src": "7903:22:85" + "src": "8892:22:100" }, "returnParameters": { - "id": 59462, + "id": 63047, "nodeType": "ParameterList", "parameters": [], - "src": "7964:0:85" + "src": "8953:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 59482, + "id": 63067, "nodeType": "FunctionDefinition", - "src": "8038:110:85", + "src": "9027:110:100", "nodes": [], "body": { - "id": 59481, + "id": 63066, "nodeType": "Block", - "src": "8115:33:85", + "src": "9104:33:100", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 59478, + "id": 63063, "name": "ratio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59471, - "src": "8137:5:85", + "referencedDeclaration": 63056, + "src": "9126:5:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10827,18 +12539,18 @@ "typeString": "uint256" } ], - "id": 59477, + "id": 63062, "name": "_setBidGapRatio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59562, - "src": "8121:15:85", + "referencedDeclaration": 63147, + "src": "9110:15:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 59479, + "id": 63064, "isConstant": false, "isLValue": false, "isPure": false, @@ -10847,26 +12559,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8121:22:85", + "src": "9110:22:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59480, + "id": 63065, "nodeType": "ExpressionStatement", - "src": "8121:22:85" + "src": "9110:22:100" } ] }, "baseFunctions": [ - 64403 + 68064 ], "documentation": { - "id": 59469, + "id": 63054, "nodeType": "StructuredDocumentation", - "src": "7997:37:85", + "src": "8986:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "60223b44", @@ -10876,49 +12588,49 @@ { "arguments": [ { - "id": 59474, + "id": 63059, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48178, - "src": "8095:18:85", + "referencedDeclaration": 48570, + "src": "9084:18:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 59475, + "id": 63060, "kind": "modifierInvocation", "modifierName": { - "id": 59473, + "id": 63058, "name": "onlyRole", "nameLocations": [ - "8086:8:85" + "9075:8:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48189, - "src": "8086:8:85" + "referencedDeclaration": 48581, + "src": "9075:8:100" }, "nodeType": "ModifierInvocation", - "src": "8086:28:85" + "src": "9075:28:100" } ], "name": "setBidGapRatio", - "nameLocation": "8047:14:85", + "nameLocation": "9036:14:100", "parameters": { - "id": 59472, + "id": 63057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59471, + "id": 63056, "mutability": "mutable", "name": "ratio", - "nameLocation": "8070:5:85", + "nameLocation": "9059:5:100", "nodeType": "VariableDeclaration", - "scope": 59482, - "src": "8062:13:85", + "scope": 63067, + "src": "9051:13:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10926,10 +12638,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59470, + "id": 63055, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8062:7:85", + "src": "9051:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10938,46 +12650,46 @@ "visibility": "internal" } ], - "src": "8061:15:85" + "src": "9050:15:100" }, "returnParameters": { - "id": 59476, + "id": 63061, "nodeType": "ParameterList", "parameters": [], - "src": "8115:0:85" + "src": "9104:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 59515, + "id": 63100, "nodeType": "FunctionDefinition", - "src": "8192:254:85", + "src": "9181:254:100", "nodes": [], "body": { - "id": 59514, + "id": 63099, "nodeType": "Block", - "src": "8294:152:85", + "src": "9283:152:100", "nodes": [], "statements": [ { "expression": { - "id": 59497, + "id": 63082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59493, + "id": 63078, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59489, - "src": "8300:7:85", + "referencedDeclaration": 63074, + "src": "9289:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, @@ -10985,25 +12697,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 59494, + "id": 63079, "name": "_domainAuction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58737, - "src": "8310:14:85", + "referencedDeclaration": 62186, + "src": "9299:14:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$64221_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DomainAuction_$67867_storage_$", "typeString": "mapping(uint256 => struct INSAuction.DomainAuction storage ref)" } }, - "id": 59496, + "id": 63081, "indexExpression": { - "id": 59495, + "id": 63080, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59485, - "src": "8325:2:85", + "referencedDeclaration": 63070, + "src": "9314:2:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11014,91 +12726,91 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8310:18:85", + "src": "9299:18:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage", "typeString": "struct INSAuction.DomainAuction storage ref" } }, - "src": "8300:28:85", + "src": "9289:28:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59498, + "id": 63083, "nodeType": "ExpressionStatement", - "src": "8300:28:85" + "src": "9289:28:100" }, { "assignments": [ - 59501 + 63086 ], "declarations": [ { "constant": false, - "id": 59501, + "id": 63086, "mutability": "mutable", "name": "range", - "nameLocation": "8352:5:85", + "nameLocation": "9341:5:100", "nodeType": "VariableDeclaration", - "scope": 59514, - "src": "8334:23:85", + "scope": 63099, + "src": "9323:23:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange" }, "typeName": { - "id": 59500, + "id": 63085, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59499, + "id": 63084, "name": "EventRange", "nameLocations": [ - "8334:10:85" + "9323:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "8334:10:85" + "referencedDeclaration": 69638, + "src": "9323:10:100" }, - "referencedDeclaration": 65968, - "src": "8334:10:85", + "referencedDeclaration": 69638, + "src": "9323:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } }, "visibility": "internal" } ], - "id": 59506, + "id": 63091, "initialValue": { "arguments": [ { "expression": { - "id": 59503, + "id": 63088, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59489, - "src": "8376:7:85", + "referencedDeclaration": 63074, + "src": "9365:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59504, + "id": 63089, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8384:9:85", + "memberLocation": "9373:9:100", "memberName": "auctionId", "nodeType": "MemberAccess", - "referencedDeclaration": 64215, - "src": "8376:17:85", + "referencedDeclaration": 67861, + "src": "9365:17:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11112,18 +12824,18 @@ "typeString": "bytes32" } ], - "id": 59502, + "id": 63087, "name": "getAuctionEvent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59024, - "src": "8360:15:85", + "referencedDeclaration": 62473, + "src": "9349:15:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_EventRange_$65968_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_EventRange_$69638_memory_ptr_$", "typeString": "function (bytes32) view returns (struct EventRange memory)" } }, - "id": 59505, + "id": 63090, "isConstant": false, "isLValue": false, "isPure": false, @@ -11132,30 +12844,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8360:34:85", + "src": "9349:34:100", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8334:60:85" + "src": "9323:60:100" }, { "expression": { - "id": 59512, + "id": 63097, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59507, + "id": 63092, "name": "beatPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59491, - "src": "8400:9:85", + "referencedDeclaration": 63076, + "src": "9389:9:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11166,26 +12878,26 @@ "rightHandSide": { "arguments": [ { - "id": 59509, + "id": 63094, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59489, - "src": "8426:7:85", + "referencedDeclaration": 63074, + "src": "9415:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, { - "id": 59510, + "id": 63095, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59501, - "src": "8435:5:85", + "referencedDeclaration": 63086, + "src": "9424:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } } @@ -11193,26 +12905,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" }, { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } ], - "id": 59508, + "id": 63093, "name": "_getBeatPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59608, - "src": "8412:13:85", + "referencedDeclaration": 63193, + "src": "9401:13:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_DomainAuction_$64221_memory_ptr_$_t_struct$_EventRange_$65968_memory_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_DomainAuction_$67867_memory_ptr_$_t_struct$_EventRange_$69638_memory_ptr_$returns$_t_uint256_$", "typeString": "function (struct INSAuction.DomainAuction memory,struct EventRange memory) view returns (uint256)" } }, - "id": 59511, + "id": 63096, "isConstant": false, "isLValue": false, "isPure": false, @@ -11221,32 +12933,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8412:29:85", + "src": "9401:29:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8400:41:85", + "src": "9389:41:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59513, + "id": 63098, "nodeType": "ExpressionStatement", - "src": "8400:41:85" + "src": "9389:41:100" } ] }, "baseFunctions": [ - 64369 + 68030 ], "documentation": { - "id": 59483, + "id": 63068, "nodeType": "StructuredDocumentation", - "src": "8152:37:85", + "src": "9141:37:100", "text": " @inheritdoc INSAuction" }, "functionSelector": "78bd7935", @@ -11254,20 +12966,20 @@ "kind": "function", "modifiers": [], "name": "getAuction", - "nameLocation": "8201:10:85", + "nameLocation": "9190:10:100", "parameters": { - "id": 59486, + "id": 63071, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59485, + "id": 63070, "mutability": "mutable", "name": "id", - "nameLocation": "8220:2:85", + "nameLocation": "9209:2:100", "nodeType": "VariableDeclaration", - "scope": 59515, - "src": "8212:10:85", + "scope": 63100, + "src": "9201:10:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11275,10 +12987,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59484, + "id": 63069, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8212:7:85", + "src": "9201:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11287,44 +12999,44 @@ "visibility": "internal" } ], - "src": "8211:12:85" + "src": "9200:12:100" }, "returnParameters": { - "id": 59492, + "id": 63077, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59489, + "id": 63074, "mutability": "mutable", "name": "auction", - "nameLocation": "8266:7:85", + "nameLocation": "9255:7:100", "nodeType": "VariableDeclaration", - "scope": 59515, - "src": "8245:28:85", + "scope": 63100, + "src": "9234:28:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction" }, "typeName": { - "id": 59488, + "id": 63073, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59487, + "id": 63072, "name": "DomainAuction", "nameLocations": [ - "8245:13:85" + "9234:13:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 64221, - "src": "8245:13:85" + "referencedDeclaration": 67867, + "src": "9234:13:100" }, - "referencedDeclaration": 64221, - "src": "8245:13:85", + "referencedDeclaration": 67867, + "src": "9234:13:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction" } }, @@ -11332,13 +13044,13 @@ }, { "constant": false, - "id": 59491, + "id": 63076, "mutability": "mutable", "name": "beatPrice", - "nameLocation": "8283:9:85", + "nameLocation": "9272:9:100", "nodeType": "VariableDeclaration", - "scope": 59515, - "src": "8275:17:85", + "scope": 63100, + "src": "9264:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11346,10 +13058,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59490, + "id": 63075, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8275:7:85", + "src": "9264:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11358,22 +13070,22 @@ "visibility": "internal" } ], - "src": "8244:49:85" + "src": "9233:49:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 59540, + "id": 63125, "nodeType": "FunctionDefinition", - "src": "8547:165:85", + "src": "9536:165:100", "nodes": [], "body": { - "id": 59539, + "id": 63124, "nodeType": "Block", - "src": "8600:112:85", + "src": "9589:112:100", "nodes": [], "statements": [ { @@ -11382,18 +13094,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 59526, + "id": 63111, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59521, + "id": 63106, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59518, - "src": "8610:4:85", + "referencedDeclaration": 63103, + "src": "9599:4:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11405,14 +13117,14 @@ "arguments": [ { "hexValue": "30", - "id": 59524, + "id": 63109, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8626:1:85", + "src": "9615:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11427,26 +13139,26 @@ "typeString": "int_const 0" } ], - "id": 59523, + "id": 63108, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8618:7:85", + "src": "9607:7:100", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 59522, + "id": 63107, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8618:7:85", + "src": "9607:7:100", "typeDescriptions": {} } }, - "id": 59525, + "id": 63110, "isConstant": false, "isLValue": false, "isPure": true, @@ -11455,39 +13167,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8618:10:85", + "src": "9607:10:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8610:18:85", + "src": "9599:18:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59530, + "id": 63115, "nodeType": "IfStatement", - "src": "8606:47:85", + "src": "9595:47:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59527, + "id": 63112, "name": "NullAssignment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64186, - "src": "8637:14:85", + "referencedDeclaration": 67830, + "src": "9626:14:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59528, + "id": 63113, "isConstant": false, "isLValue": false, "isPure": false, @@ -11496,32 +13208,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8637:16:85", + "src": "9626:16:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59529, + "id": 63114, "nodeType": "RevertStatement", - "src": "8630:23:85" + "src": "9619:23:100" } }, { "expression": { - "id": 59533, + "id": 63118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59531, + "id": 63116, "name": "_treasury", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58740, - "src": "8659:9:85", + "referencedDeclaration": 62189, + "src": "9648:9:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11530,37 +13242,37 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 59532, + "id": 63117, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59518, - "src": "8671:4:85", + "referencedDeclaration": 63103, + "src": "9660:4:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "8659:16:85", + "src": "9648:16:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 59534, + "id": 63119, "nodeType": "ExpressionStatement", - "src": "8659:16:85" + "src": "9648:16:100" }, { "eventCall": { "arguments": [ { - "id": 59536, + "id": 63121, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59518, - "src": "8702:4:85", + "referencedDeclaration": 63103, + "src": "9691:4:100", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11574,18 +13286,18 @@ "typeString": "address payable" } ], - "id": 59535, + "id": 63120, "name": "TreasuryUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64260, - "src": "8686:15:85", + "referencedDeclaration": 67906, + "src": "9675:15:100", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 59537, + "id": 63122, "isConstant": false, "isLValue": false, "isPure": false, @@ -11594,43 +13306,43 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8686:21:85", + "src": "9675:21:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59538, + "id": 63123, "nodeType": "EmitStatement", - "src": "8681:26:85" + "src": "9670:26:100" } ] }, "documentation": { - "id": 59516, + "id": 63101, "nodeType": "StructuredDocumentation", - "src": "8450:94:85", + "src": "9439:94:100", "text": " @dev Helper method to set treasury.\n Emits an event {TreasuryUpdated}." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_setTreasury", - "nameLocation": "8556:12:85", + "nameLocation": "9545:12:100", "parameters": { - "id": 59519, + "id": 63104, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59518, + "id": 63103, "mutability": "mutable", "name": "addr", - "nameLocation": "8585:4:85", + "nameLocation": "9574:4:100", "nodeType": "VariableDeclaration", - "scope": 59540, - "src": "8569:20:85", + "scope": 63125, + "src": "9558:20:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11638,10 +13350,10 @@ "typeString": "address payable" }, "typeName": { - "id": 59517, + "id": 63102, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8569:15:85", + "src": "9558:15:100", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -11651,28 +13363,28 @@ "visibility": "internal" } ], - "src": "8568:22:85" + "src": "9557:22:100" }, "returnParameters": { - "id": 59520, + "id": 63105, "nodeType": "ParameterList", "parameters": [], - "src": "8600:0:85" + "src": "9589:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 59562, + "id": 63147, "nodeType": "FunctionDefinition", - "src": "8821:174:85", + "src": "9810:174:100", "nodes": [], "body": { - "id": 59561, + "id": 63146, "nodeType": "Block", - "src": "8870:125:85", + "src": "9859:125:100", "nodes": [], "statements": [ { @@ -11681,18 +13393,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59548, + "id": 63133, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 59546, + "id": 63131, "name": "ratio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59543, - "src": "8880:5:85", + "referencedDeclaration": 63128, + "src": "9869:5:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11701,43 +13413,43 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 59547, + "id": 63132, "name": "MAX_PERCENTAGE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58700, - "src": "8888:14:85", + "referencedDeclaration": 62149, + "src": "9877:14:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8880:22:85", + "src": "9869:22:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59552, + "id": 63137, "nodeType": "IfStatement", - "src": "8876:52:85", + "src": "9865:52:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59549, + "id": 63134, "name": "RatioIsTooLarge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64190, - "src": "8911:15:85", + "referencedDeclaration": 67836, + "src": "9900:15:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59550, + "id": 63135, "isConstant": false, "isLValue": false, "isPure": false, @@ -11746,32 +13458,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8911:17:85", + "src": "9900:17:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59551, + "id": 63136, "nodeType": "RevertStatement", - "src": "8904:24:85" + "src": "9893:24:100" } }, { "expression": { - "id": 59555, + "id": 63140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59553, + "id": 63138, "name": "_bidGapRatio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58743, - "src": "8934:12:85", + "referencedDeclaration": 62192, + "src": "9923:12:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11780,37 +13492,37 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 59554, + "id": 63139, "name": "ratio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59543, - "src": "8949:5:85", + "referencedDeclaration": 63128, + "src": "9938:5:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8934:20:85", + "src": "9923:20:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59556, + "id": 63141, "nodeType": "ExpressionStatement", - "src": "8934:20:85" + "src": "9923:20:100" }, { "eventCall": { "arguments": [ { - "id": 59558, + "id": 63143, "name": "ratio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59543, - "src": "8984:5:85", + "referencedDeclaration": 63128, + "src": "9973:5:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11824,18 +13536,18 @@ "typeString": "uint256" } ], - "id": 59557, + "id": 63142, "name": "BidGapRatioUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64265, - "src": "8965:18:85", + "referencedDeclaration": 67911, + "src": "9954:18:100", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 59559, + "id": 63144, "isConstant": false, "isLValue": false, "isPure": false, @@ -11844,43 +13556,43 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8965:25:85", + "src": "9954:25:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59560, + "id": 63145, "nodeType": "EmitStatement", - "src": "8960:30:85" + "src": "9949:30:100" } ] }, "documentation": { - "id": 59541, + "id": 63126, "nodeType": "StructuredDocumentation", - "src": "8716:102:85", + "src": "9705:102:100", "text": " @dev Helper method to set bid gap ratio.\n Emits an event {BidGapRatioUpdated}." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_setBidGapRatio", - "nameLocation": "8830:15:85", + "nameLocation": "9819:15:100", "parameters": { - "id": 59544, + "id": 63129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59543, + "id": 63128, "mutability": "mutable", "name": "ratio", - "nameLocation": "8854:5:85", + "nameLocation": "9843:5:100", "nodeType": "VariableDeclaration", - "scope": 59562, - "src": "8846:13:85", + "scope": 63147, + "src": "9835:13:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11888,10 +13600,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59542, + "id": 63127, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8846:7:85", + "src": "9835:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11900,44 +13612,44 @@ "visibility": "internal" } ], - "src": "8845:15:85" + "src": "9834:15:100" }, "returnParameters": { - "id": 59545, + "id": 63130, "nodeType": "ParameterList", "parameters": [], - "src": "8870:0:85" + "src": "9859:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 59608, + "id": 63193, "nodeType": "FunctionDefinition", - "src": "9054:440:85", + "src": "10043:440:100", "nodes": [], "body": { - "id": 59607, + "id": 63192, "nodeType": "Block", - "src": "9188:306:85", + "src": "10177:306:100", "nodes": [], "statements": [ { "expression": { - "id": 59583, + "id": 63168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59574, + "id": 63159, "name": "beatPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59572, - "src": "9194:9:85", + "referencedDeclaration": 63157, + "src": "10183:9:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11949,27 +13661,27 @@ "arguments": [ { "expression": { - "id": 59577, + "id": 63162, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59566, - "src": "9215:7:85", + "referencedDeclaration": 63151, + "src": "10204:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59578, + "id": 63163, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9223:13:85", + "memberLocation": "10212:13:100", "memberName": "startingPrice", "nodeType": "MemberAccess", - "referencedDeclaration": 64217, - "src": "9215:21:85", + "referencedDeclaration": 67863, + "src": "10204:21:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11978,42 +13690,42 @@ { "expression": { "expression": { - "id": 59579, + "id": 63164, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59566, - "src": "9238:7:85", + "referencedDeclaration": 63151, + "src": "10227:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59580, + "id": 63165, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9246:3:85", + "memberLocation": "10235:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "9238:11:85", + "referencedDeclaration": 67866, + "src": "10227:11:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_memory_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", "typeString": "struct INSAuction.Bid memory" } }, - "id": 59581, + "id": 63166, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9250:5:85", + "memberLocation": "10239:5:100", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 64208, - "src": "9238:17:85", + "referencedDeclaration": 67854, + "src": "10227:17:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12032,33 +13744,33 @@ } ], "expression": { - "id": 59575, + "id": 63160, "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53173, - "src": "9206:4:85", + "referencedDeclaration": 53565, + "src": "10195:4:100", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$53173_$", + "typeIdentifier": "t_type$_t_contract$_Math_$53565_$", "typeString": "type(library Math)" } }, - "id": 59576, + "id": 63161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9211:3:85", + "memberLocation": "10200:3:100", "memberName": "max", "nodeType": "MemberAccess", - "referencedDeclaration": 52332, - "src": "9206:8:85", + "referencedDeclaration": 52724, + "src": "10195:8:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 59582, + "id": 63167, "isConstant": false, "isLValue": false, "isPure": false, @@ -12067,22 +13779,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9206:50:85", + "src": "10195:50:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9194:62:85", + "src": "10183:62:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59584, + "id": 63169, "nodeType": "ExpressionStatement", - "src": "9194:62:85" + "src": "10183:62:100" }, { "condition": { @@ -12090,7 +13802,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 59594, + "id": 63179, "isConstant": false, "isLValue": false, "isPure": false, @@ -12100,7 +13812,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59589, + "id": 63174, "isConstant": false, "isLValue": false, "isPure": false, @@ -12108,42 +13820,42 @@ "leftExpression": { "expression": { "expression": { - "id": 59585, + "id": 63170, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59566, - "src": "9354:7:85", + "referencedDeclaration": 63151, + "src": "10343:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59586, + "id": 63171, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9362:3:85", + "memberLocation": "10351:3:100", "memberName": "bid", "nodeType": "MemberAccess", - "referencedDeclaration": 64220, - "src": "9354:11:85", + "referencedDeclaration": 67866, + "src": "10343:11:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_Bid_$64213_memory_ptr", + "typeIdentifier": "t_struct$_Bid_$67859_memory_ptr", "typeString": "struct INSAuction.Bid memory" } }, - "id": 59587, + "id": 63172, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9366:5:85", + "memberLocation": "10355:5:100", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 64208, - "src": "9354:17:85", + "referencedDeclaration": 67854, + "src": "10343:17:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12153,21 +13865,21 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 59588, + "id": 63173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9375:1:85", + "src": "10364:1:100", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "9354:22:85", + "src": "10343:22:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12176,7 +13888,7 @@ "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { - "id": 59593, + "id": 63178, "isConstant": false, "isLValue": false, "isPure": false, @@ -12184,39 +13896,39 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "9380:16:85", + "src": "10369:16:100", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 59590, + "id": 63175, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59569, - "src": "9381:5:85", + "referencedDeclaration": 63154, + "src": "10370:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange memory" } }, - "id": 59591, + "id": 63176, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9387:7:85", + "memberLocation": "10376:7:100", "memberName": "isEnded", "nodeType": "MemberAccess", - "referencedDeclaration": 66016, - "src": "9381:13:85", + "referencedDeclaration": 69686, + "src": "10370:13:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$65968_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$65968_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$69638_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$69638_memory_ptr_$", "typeString": "function (struct EventRange memory) view returns (bool)" } }, - "id": 59592, + "id": 63177, "isConstant": false, "isLValue": false, "isPure": false, @@ -12225,7 +13937,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9381:15:85", + "src": "10370:15:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12237,34 +13949,34 @@ "typeString": "bool" } }, - "src": "9354:42:85", + "src": "10343:42:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 59606, + "id": 63191, "nodeType": "IfStatement", - "src": "9350:140:85", + "src": "10339:140:100", "trueBody": { - "id": 59605, + "id": 63190, "nodeType": "Block", - "src": "9398:92:85", + "src": "10387:92:100", "statements": [ { "expression": { - "id": 59603, + "id": 63188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 59595, + "id": 63180, "name": "beatPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59572, - "src": "9406:9:85", + "referencedDeclaration": 63157, + "src": "10395:9:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12276,51 +13988,51 @@ "arguments": [ { "expression": { - "id": 59598, + "id": 63183, "name": "auction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59566, - "src": "9431:7:85", + "referencedDeclaration": 63151, + "src": "10420:7:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction memory" } }, - "id": 59599, + "id": 63184, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9439:13:85", + "memberLocation": "10428:13:100", "memberName": "startingPrice", "nodeType": "MemberAccess", - "referencedDeclaration": 64217, - "src": "9431:21:85", + "referencedDeclaration": 67863, + "src": "10420:21:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 59600, + "id": 63185, "name": "_bidGapRatio", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58743, - "src": "9454:12:85", + "referencedDeclaration": 62192, + "src": "10443:12:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 59601, + "id": 63186, "name": "MAX_PERCENTAGE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58700, - "src": "9468:14:85", + "referencedDeclaration": 62149, + "src": "10457:14:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12343,33 +14055,33 @@ } ], "expression": { - "id": 59596, + "id": 63181, "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53173, - "src": "9419:4:85", + "referencedDeclaration": 53565, + "src": "10408:4:100", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$53173_$", + "typeIdentifier": "t_type$_t_contract$_Math_$53565_$", "typeString": "type(library Math)" } }, - "id": 59597, + "id": 63182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9424:6:85", + "memberLocation": "10413:6:100", "memberName": "mulDiv", "nodeType": "MemberAccess", - "referencedDeclaration": 52521, - "src": "9419:11:85", + "referencedDeclaration": 52913, + "src": "10408:11:100", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 59602, + "id": 63187, "isConstant": false, "isLValue": false, "isPure": false, @@ -12378,22 +14090,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9419:64:85", + "src": "10408:64:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9406:77:85", + "src": "10395:77:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59604, + "id": 63189, "nodeType": "ExpressionStatement", - "src": "9406:77:85" + "src": "10395:77:100" } ] } @@ -12401,52 +14113,52 @@ ] }, "documentation": { - "id": 59563, + "id": 63148, "nodeType": "StructuredDocumentation", - "src": "8999:52:85", + "src": "9988:52:100", "text": " @dev Helper method to get beat price." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_getBeatPrice", - "nameLocation": "9063:13:85", + "nameLocation": "10052:13:100", "parameters": { - "id": 59570, + "id": 63155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59566, + "id": 63151, "mutability": "mutable", "name": "auction", - "nameLocation": "9098:7:85", + "nameLocation": "10087:7:100", "nodeType": "VariableDeclaration", - "scope": 59608, - "src": "9077:28:85", + "scope": 63193, + "src": "10066:28:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_memory_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_memory_ptr", "typeString": "struct INSAuction.DomainAuction" }, "typeName": { - "id": 59565, + "id": 63150, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59564, + "id": 63149, "name": "DomainAuction", "nameLocations": [ - "9077:13:85" + "10066:13:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 64221, - "src": "9077:13:85" + "referencedDeclaration": 67867, + "src": "10066:13:100" }, - "referencedDeclaration": 64221, - "src": "9077:13:85", + "referencedDeclaration": 67867, + "src": "10066:13:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_DomainAuction_$64221_storage_ptr", + "typeIdentifier": "t_struct$_DomainAuction_$67867_storage_ptr", "typeString": "struct INSAuction.DomainAuction" } }, @@ -12454,57 +14166,57 @@ }, { "constant": false, - "id": 59569, + "id": 63154, "mutability": "mutable", "name": "range", - "nameLocation": "9125:5:85", + "nameLocation": "10114:5:100", "nodeType": "VariableDeclaration", - "scope": 59608, - "src": "9107:23:85", + "scope": 63193, + "src": "10096:23:100", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_memory_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_memory_ptr", "typeString": "struct EventRange" }, "typeName": { - "id": 59568, + "id": 63153, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59567, + "id": 63152, "name": "EventRange", "nameLocations": [ - "9107:10:85" + "10096:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "9107:10:85" + "referencedDeclaration": 69638, + "src": "10096:10:100" }, - "referencedDeclaration": 65968, - "src": "9107:10:85", + "referencedDeclaration": 69638, + "src": "10096:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } }, "visibility": "internal" } ], - "src": "9076:55:85" + "src": "10065:55:100" }, "returnParameters": { - "id": 59573, + "id": 63158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59572, + "id": 63157, "mutability": "mutable", "name": "beatPrice", - "nameLocation": "9175:9:85", + "nameLocation": "10164:9:100", "nodeType": "VariableDeclaration", - "scope": 59608, - "src": "9167:17:85", + "scope": 63193, + "src": "10156:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12512,10 +14224,10 @@ "typeString": "uint256" }, "typeName": { - "id": 59571, + "id": 63156, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9167:7:85", + "src": "10156:7:100", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12524,27 +14236,27 @@ "visibility": "internal" } ], - "src": "9166:19:85" + "src": "10155:19:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { - "id": 59629, + "id": 63214, "nodeType": "FunctionDefinition", - "src": "9566:160:85", + "src": "10555:160:100", "nodes": [], "body": { - "id": 59628, + "id": 63213, "nodeType": "Block", - "src": "9640:86:85", + "src": "10629:86:100", "nodes": [], "statements": [ { "condition": { - "id": 59623, + "id": 63208, "isConstant": false, "isLValue": false, "isPure": false, @@ -12552,7 +14264,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "9650:43:85", + "src": "10639:43:100", "subExpression": { "components": [ { @@ -12560,7 +14272,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 59621, + "id": 63206, "isConstant": false, "isLValue": false, "isPure": false, @@ -12570,33 +14282,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 59615, + "id": 63200, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59612, - "src": "9652:5:85", + "referencedDeclaration": 63197, + "src": "10641:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } }, - "id": 59616, + "id": 63201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9658:5:85", + "memberLocation": "10647:5:100", "memberName": "valid", "nodeType": "MemberAccess", - "referencedDeclaration": 65984, - "src": "9652:11:85", + "referencedDeclaration": 69654, + "src": "10641:11:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_EventRange_$65968_calldata_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$65968_calldata_ptr_$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_EventRange_$69638_calldata_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$69638_calldata_ptr_$", "typeString": "function (struct EventRange calldata) pure returns (bool)" } }, - "id": 59617, + "id": 63202, "isConstant": false, "isLValue": false, "isPure": false, @@ -12605,7 +14317,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9652:13:85", + "src": "10641:13:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12619,33 +14331,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 59618, + "id": 63203, "name": "range", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59612, - "src": "9669:5:85", + "referencedDeclaration": 63197, + "src": "10658:5:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange calldata" } }, - "id": 59619, + "id": 63204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9675:15:85", + "memberLocation": "10664:15:100", "memberName": "isNotYetStarted", "nodeType": "MemberAccess", - "referencedDeclaration": 66000, - "src": "9669:21:85", + "referencedDeclaration": 69670, + "src": "10658:21:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$65968_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$65968_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$69638_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$69638_memory_ptr_$", "typeString": "function (struct EventRange memory) view returns (bool)" } }, - "id": 59620, + "id": 63205, "isConstant": false, "isLValue": false, "isPure": false, @@ -12654,28 +14366,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9669:23:85", + "src": "10658:23:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9652:40:85", + "src": "10641:40:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 59622, + "id": 63207, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9651:42:85", + "src": "10640:42:100", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12686,26 +14398,26 @@ "typeString": "bool" } }, - "id": 59627, + "id": 63212, "nodeType": "IfStatement", - "src": "9646:75:85", + "src": "10635:75:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59624, + "id": 63209, "name": "InvalidEventRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64194, - "src": "9702:17:85", + "referencedDeclaration": 67840, + "src": "10691:17:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59625, + "id": 63210, "isConstant": false, "isLValue": false, "isPure": false, @@ -12714,100 +14426,100 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9702:19:85", + "src": "10691:19:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59626, + "id": 63211, "nodeType": "RevertStatement", - "src": "9695:26:85" + "src": "10684:26:100" } } ] }, "documentation": { - "id": 59609, + "id": 63194, "nodeType": "StructuredDocumentation", - "src": "9498:65:85", + "src": "10487:65:100", "text": " @dev Helper method to ensure event range is valid." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_requireValidEventRange", - "nameLocation": "9575:23:85", + "nameLocation": "10564:23:100", "parameters": { - "id": 59613, + "id": 63198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59612, + "id": 63197, "mutability": "mutable", "name": "range", - "nameLocation": "9619:5:85", + "nameLocation": "10608:5:100", "nodeType": "VariableDeclaration", - "scope": 59629, - "src": "9599:25:85", + "scope": 63214, + "src": "10588:25:100", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_calldata_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_calldata_ptr", "typeString": "struct EventRange" }, "typeName": { - "id": 59611, + "id": 63196, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 59610, + "id": 63195, "name": "EventRange", "nameLocations": [ - "9599:10:85" + "10588:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 65968, - "src": "9599:10:85" + "referencedDeclaration": 69638, + "src": "10588:10:100" }, - "referencedDeclaration": 65968, - "src": "9599:10:85", + "referencedDeclaration": 69638, + "src": "10588:10:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage_ptr", + "typeIdentifier": "t_struct$_EventRange_$69638_storage_ptr", "typeString": "struct EventRange" } }, "visibility": "internal" } ], - "src": "9598:27:85" + "src": "10587:27:100" }, "returnParameters": { - "id": 59614, + "id": 63199, "nodeType": "ParameterList", "parameters": [], - "src": "9640:0:85" + "src": "10629:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { - "id": 59646, + "id": 63231, "nodeType": "FunctionDefinition", - "src": "9823:163:85", + "src": "10812:163:100", "nodes": [], "body": { - "id": 59645, + "id": 63230, "nodeType": "Block", - "src": "9884:102:85", + "src": "10873:102:100", "nodes": [], "statements": [ { "condition": { - "id": 59640, + "id": 63225, "isConstant": false, "isLValue": false, "isPure": false, @@ -12815,32 +14527,32 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "9894:43:85", + "src": "10883:43:100", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "baseExpression": { - "id": 59635, + "id": 63220, "name": "_auctionRange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58731, - "src": "9895:13:85", + "referencedDeclaration": 62180, + "src": "10884:13:100", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$65968_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EventRange_$69638_storage_$", "typeString": "mapping(bytes32 => struct EventRange storage ref)" } }, - "id": 59637, + "id": 63222, "indexExpression": { - "id": 59636, + "id": 63221, "name": "auctionId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59632, - "src": "9909:9:85", + "referencedDeclaration": 63217, + "src": "10898:9:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12851,28 +14563,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9895:24:85", + "src": "10884:24:100", "typeDescriptions": { - "typeIdentifier": "t_struct$_EventRange_$65968_storage", + "typeIdentifier": "t_struct$_EventRange_$69638_storage", "typeString": "struct EventRange storage ref" } }, - "id": 59638, + "id": 63223, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9920:15:85", + "memberLocation": "10909:15:100", "memberName": "isNotYetStarted", "nodeType": "MemberAccess", - "referencedDeclaration": 66000, - "src": "9895:40:85", + "referencedDeclaration": 69670, + "src": "10884:40:100", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$65968_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$65968_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_EventRange_$69638_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_EventRange_$69638_memory_ptr_$", "typeString": "function (struct EventRange memory) view returns (bool)" } }, - "id": 59639, + "id": 63224, "isConstant": false, "isLValue": false, "isPure": false, @@ -12881,7 +14593,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9895:42:85", + "src": "10884:42:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12893,26 +14605,26 @@ "typeString": "bool" } }, - "id": 59644, + "id": 63229, "nodeType": "IfStatement", - "src": "9890:91:85", + "src": "10879:91:100", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 59641, + "id": 63226, "name": "EventIsNotCreatedOrAlreadyStarted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 64204, - "src": "9946:33:85", + "referencedDeclaration": 67850, + "src": "10935:33:100", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 59642, + "id": 63227, "isConstant": false, "isLValue": false, "isPure": false, @@ -12921,44 +14633,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9946:35:85", + "src": "10935:35:100", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59643, + "id": 63228, "nodeType": "RevertStatement", - "src": "9939:42:85" + "src": "10928:42:100" } } ] }, "documentation": { - "id": 59630, + "id": 63215, "nodeType": "StructuredDocumentation", - "src": "9730:90:85", + "src": "10719:90:100", "text": " @dev Helper method to ensure the auction is not yet started or not created." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_requireNotStarted", - "nameLocation": "9832:18:85", + "nameLocation": "10821:18:100", "parameters": { - "id": 59633, + "id": 63218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59632, + "id": 63217, "mutability": "mutable", "name": "auctionId", - "nameLocation": "9859:9:85", + "nameLocation": "10848:9:100", "nodeType": "VariableDeclaration", - "scope": 59646, - "src": "9851:17:85", + "scope": 63231, + "src": "10840:17:100", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12966,10 +14678,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 59631, + "id": 63216, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9851:7:85", + "src": "10840:7:100", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12978,15 +14690,15 @@ "visibility": "internal" } ], - "src": "9850:19:85" + "src": "10839:19:100" }, "returnParameters": { - "id": 59634, + "id": 63219, "nodeType": "ParameterList", "parameters": [], - "src": "9884:0:85" + "src": "10873:0:100" }, - "scope": 59647, + "scope": 63232, "stateMutability": "view", "virtual": false, "visibility": "internal" @@ -12996,48 +14708,48 @@ "baseContracts": [ { "baseName": { - "id": 58672, + "id": 62121, "name": "Initializable", "nameLocations": [ - "769:13:85" + "769:13:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49864, - "src": "769:13:85" + "referencedDeclaration": 50256, + "src": "769:13:100" }, - "id": 58673, + "id": 62122, "nodeType": "InheritanceSpecifier", - "src": "769:13:85" + "src": "769:13:100" }, { "baseName": { - "id": 58674, + "id": 62123, "name": "AccessControlEnumerable", "nameLocations": [ - "784:23:85" + "784:23:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48591, - "src": "784:23:85" + "referencedDeclaration": 48983, + "src": "784:23:100" }, - "id": 58675, + "id": 62124, "nodeType": "InheritanceSpecifier", - "src": "784:23:85" + "src": "784:23:100" }, { "baseName": { - "id": 58676, + "id": 62125, "name": "INSAuction", "nameLocations": [ - "809:10:85" + "809:10:100" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 64411, - "src": "809:10:85" + "referencedDeclaration": 68072, + "src": "809:10:100" }, - "id": 58677, + "id": 62126, "nodeType": "InheritanceSpecifier", - "src": "809:10:85" + "src": "809:10:100" } ], "canonicalName": "RNSAuction", @@ -13045,54 +14757,54 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 59647, - 64411, - 48591, - 48466, - 52295, - 52307, - 48689, - 48664, - 51932, - 49864 + 63232, + 68072, + 48983, + 48858, + 52687, + 52699, + 49081, + 49056, + 52324, + 50256 ], "name": "RNSAuction", - "nameLocation": "755:10:85", - "scope": 59648, + "nameLocation": "755:10:100", + "scope": 63233, "usedErrors": [ - 64182, - 64184, - 64186, - 64188, - 64190, - 64192, - 64194, - 64196, - 64198, - 64200, - 64202, - 64204 + 67826, + 67828, + 67830, + 67834, + 67836, + 67838, + 67840, + 67842, + 67844, + 67846, + 67848, + 67850 ], "usedEvents": [ - 48603, - 48612, - 48621, - 49710, - 64229, - 64240, - 64255, - 64260, - 64265 + 48995, + 49004, + 49013, + 50102, + 67875, + 67886, + 67901, + 67906, + 67911 ] } ], "license": "MIT" }, - "blockNumber": 21474288, - "bytecode": "0x608060405261000c610011565b6100d0565b600054610100900460ff161561007d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100ce576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612443806100df6000396000f3fe6080604052600436106101c25760003560e01c8063791a26b4116100f7578063a282d4ae11610095578063db5e1ec611610064578063db5e1ec6146105b4578063ec14cf37146105d4578063f0f44260146105f4578063f5b541a61461061457600080fd5b8063a282d4ae14610544578063b967169014610559578063ca15c87314610574578063d547741f1461059457600080fd5b80639010d07c116100d15780639010d07c146104dc57806391d14854146104fc5780639979ef451461051c578063a217fddf1461052f57600080fd5b8063791a26b41461047e57806381bec1b31461049e5780638c843314146104be57600080fd5b80633b19e84a1161016457806360223b441161013e57806360223b44146103a15780636e7d60f2146103c1578063777b0a18146103ee57806378bd79351461040e57600080fd5b80633b19e84a146103395780634c255c971461036b57806353f9195e1461038157600080fd5b806319a3ee40116101a057806319a3ee40146102a0578063248a9ca3146102b85780632f2ff15d146102f757806336568abe1461031957600080fd5b806301ffc9a7146101c75780630afe1bb3146101fc57806315a291621461022c575b600080fd5b3480156101d357600080fd5b506101e76101e2366004611cf6565b610636565b60405190151581526020015b60405180910390f35b34801561020857600080fd5b506102146305a39a8081565b6040516001600160401b0390911681526020016101f3565b34801561023857600080fd5b50610285610247366004611d20565b604080518082019091526000808252602082015250600090815260366020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016101f3565b3480156102ac57600080fd5b506102146301e1338081565b3480156102c457600080fd5b506102e96102d3366004611d20565b6000908152600160208190526040909120015490565b6040519081526020016101f3565b34801561030357600080fd5b50610317610312366004611d4e565b610661565b005b34801561032557600080fd5b50610317610334366004611d4e565b61068c565b34801561034557600080fd5b506038546001600160a01b03165b6040516001600160a01b0390911681526020016101f3565b34801561037757600080fd5b506102e961271081565b34801561038d57600080fd5b506101e761039c366004611d20565b61070f565b3480156103ad57600080fd5b506103176103bc366004611d20565b610732565b3480156103cd57600080fd5b506103e16103dc366004611dc9565b610746565b6040516101f39190611e0a565b3480156103fa57600080fd5b50610317610409366004611e4e565b610a35565b34801561041a57600080fd5b5061042e610429366004611d20565b610b98565b6040805183518152602080850151818301529382015180516001600160a01b0316828401529384015160608083019190915291840151608082015292015160a083015260c082015260e0016101f3565b34801561048a57600080fd5b506103e1610499366004611dc9565b610c4d565b3480156104aa57600080fd5b506103176104b9366004611edf565b610e08565b3480156104ca57600080fd5b506035546001600160a01b0316610353565b3480156104e857600080fd5b506103536104f7366004611f0c565b610e85565b34801561050857600080fd5b506101e7610517366004611d4e565b610ea4565b61031761052a366004611d20565b610ecf565b34801561053b57600080fd5b506102e9600081565b34801561055057600080fd5b506039546102e9565b34801561056557600080fd5b506102146001600160401b0381565b34801561058057600080fd5b506102e961058f366004611d20565b611081565b3480156105a057600080fd5b506103176105af366004611d4e565b611098565b3480156105c057600080fd5b506102e96105cf366004611f2e565b6110be565b3480156105e057600080fd5b506103176105ef366004611f4a565b61115b565b34801561060057600080fd5b5061031761060f366004611fce565b6112f8565b34801561062057600080fd5b506102e96000805160206123ee83398151915281565b60006001600160e01b03198216635a05180f60e01b148061065b575061065b8261130c565b92915050565b6000828152600160208190526040909120015461067d81611341565b610687838361134e565b505050565b6001600160a01b03811633146107015760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61070b8282611370565b5050565b600881901c6000908152603a6020526040812054600160ff84161b16151561065b565b600061073d81611341565b61070b82611392565b6060600080610768604051806040016040528060008152602001600081525090565b610770611ca1565b85806001600160401b0381111561078957610789611feb565b6040519080825280602002602001820160405280156107b2578160200160208202803683370190505b506035549096506001600160a01b031660006107da426301e133806001600160401b036113f0565b905060005b83811015610a11578a8a828181106107f9576107f9612001565b60209081029290920135600081815260378452604080822081516060808201845282548252600180840154838a0152845160808101865260028501546001600160a01b031681526003850154818b0152600485015481870152600590940154848301528285019384528251865260368952848620855180870190965280548652015497840197909752905190950151929c5099509297509091039050610a095760208601514210156108be576040516372d1250d60e01b815260040160405180910390fd5b8460400151604001516000036108e7576040516323bbcc0160e01b815260040160405180910390fd5b6040850151602001516108fa908861202d565b60405163fc284d1160e01b8152600481018a90526001600160401b03841660248201529097506001600160a01b0384169063fc284d1190604401600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b505050506040858101515190516323b872dd60e01b81523060048201526001600160a01b039182166024820152604481018a9052908416906323b872dd90606401600060405180830381600087803b1580156109bd57600080fd5b505af11580156109d1573d6000803e3d6000fd5b50505050428982815181106109e8576109e8612001565b602090810291909101810182905260008a8152603790915260409020600501555b6001016107df565b50603854610a28906001600160a01b031687611426565b5050505050505092915050565b6000805160206123ee833981519152610a4d81611341565b85610a578161148b565b84801580610a655750808414155b15610a8357604051634ec4810560e11b815260040160405180910390fd5b6000806000805b84811015610b4c578a8a82818110610aa457610aa4612001565b905060200201359350610ab68461070f565b610ad357604051637d6fe8d760e11b815260040160405180910390fd5b6000848152603760205260409020805493509150821580610af357508b83145b80610b0057506004820154155b610b1d57604051631dc8374160e01b815260040160405180910390fd5b8b8255888882818110610b3257610b32612001565b905060200201358260010181905550806001019050610a8a565b508a7f9a845a1c4235343a450f5e39d4179b7e2a6c9586c02bff45d956717f4a19dd948b8b8b8b604051610b839493929190612072565b60405180910390a25050505050505050505050565b610ba0611ca1565b5060008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518351808501855286815285018690528552603684528285208351808501909452805484529091015492820192909252909190610c4583826114d8565b915050915091565b60606000805160206123ee833981519152610c6781611341565b826000819003610c8a57604051634ec4810560e11b815260040160405180910390fd5b806001600160401b03811115610ca257610ca2611feb565b604051908082528060200260200182016040528015610ccb578160200160208202803683370190505b506035549093506001600160a01b03167fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6886301e1338060005b84811015610dfc57836001600160a01b0316630570891f848b8b85818110610d2e57610d2e612001565b9050602002810190610d4091906120a4565b600030886040518763ffffffff1660e01b8152600401610d65969594939291906120ea565b60408051808303816000875af1158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da79190612146565b9050878281518110610dbb57610dbb612001565b602002602001018181525050610df4878281518110610ddc57610ddc612001565b6020026020010151603a61153090919063ffffffff16565b600101610d04565b50505050505092915050565b6000610e1381611341565b81610e1d81611559565b83610e278161148b565b60008581526036602090815260409091208535815590850135600182015550847fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051610e769190612180565b60405180910390a25050505050565b6000828152600260205260408120610e9d908361159e565b9392505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b031681526003850154818801526004850154818701526005909401549184019190915281840192909252805185526036845282852083518085019094528054845290910154928201929092529091610f6383836114d8565b9050610f6e826115aa565b610f8b576040516348c6117b60e11b815260040160405180910390fd5b80341015610fac57604051632ca2f52b60e11b815260040160405180910390fd5b33328114610fcc576040516259ca3d60e61b815260040160405180910390fd5b604084810151805160209182015160008981526037845284902034600382018190556002820180546001600160a01b0319166001600160a01b038981169182178355426004909501949094558b5188519384529683015295810183905290831660608201529193909290918991907f5934294f4724ea4bb71fee8511b9ccb8dd6d2249ac4d120a81ccfcbbd0ad905f9060800160405180910390a38115611077576110778383611426565b5050505050505050565b600081815260026020526040812061065b906115c5565b600082815260016020819052604090912001546110b481611341565b6106878383611370565b6000806110ca81611341565b826110d481611559565b33846040516020016110e7929190612197565b60408051808303601f1901815291815281516020928301206000818152603684529190912086358155918601356001830155935050827fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b8560405161114c9190612180565b60405180910390a25050919050565b600054610100900460ff161580801561117b5750600054600160ff909116105b806111955750303b158015611195575060005460ff166001145b6111f85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106f8565b6000805460ff19166001179055801561121b576000805461ff0019166101001790555b611224836115cf565b61122d82611392565b611238600088611640565b846000805160206123ee83398151915260005b8281101561128b57611283828a8a8481811061126957611269612001565b905060200201602081019061127e9190611fce565b611640565b60010161124b565b5050603580546001600160a01b0319166001600160a01b0387161790555080156112ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061130381611341565b61070b826115cf565b60006001600160e01b03198216637965db0b60e01b148061065b57506301ffc9a760e01b6001600160e01b031983161461065b565b61134b813361164a565b50565b611358828261167d565b600082815260026020526040902061068790826116e8565b61137a82826116fd565b60008281526002602052604090206106879082611764565b6127108111156113b55760405163220f1a1560e01b815260040160405180910390fd5b60398190556040518181527f846b33625d74f443855144a5f2aef4dda303cda3dfb1c704cb58ab70671823429060200160405180910390a150565b6000818411806113ff57508183115b1561140b575080610e9d565b6114158484611779565b905081811115610e9d575092915050565b6000611432838361178d565b9050806106875761144b836001600160a01b0316611803565b61145483611819565b6040516020016114659291906121e2565b60408051601f198184030181529082905262461bcd60e51b82526106f891600401612260565b60008181526036602090815260409182902082518084019093528054835260010154908201526114bb9051421090565b61134b5760405163028e4e9760e51b815260040160405180910390fd5b60006114f08360200151846040015160200151611830565b905082604001516020015160001415801561150e5750602082015142105b1561065b576115268360200151603954612710611846565b610e9d908261202d565b600881901c600090815260209290925260409091208054600160ff9093169290921b9091179055565b6020810135813511158015611581575061158161157b36839003830183612293565b51421090565b61134b576040516302ef0c7360e21b815260040160405180910390fd5b6000610e9d8383611930565b60004282600001511115801561065b57505060200151421090565b600061065b825490565b6001600160a01b0381166115f6576040516362daafb160e11b815260040160405180910390fd5b603880546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b61070b828261134e565b6116548282610ea4565b61070b5761166181611803565b61166c83602061195a565b6040516020016114659291906122ef565b6116878282610ea4565b61070b5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610e9d836001600160a01b038416611af5565b6117078282610ea4565b1561070b5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e9d836001600160a01b038416611b44565b8181018281101561065b575060001961065b565b604080516000808252602082019092526001600160a01b0384169083906040516117b79190612364565b60006040518083038185875af1925050503d80600081146117f4576040519150601f19603f3d011682016040523d82523d6000602084013e6117f9565b606091505b5090949350505050565b606061065b6001600160a01b038316601461195a565b606061065b8261182884611c37565b60010161195a565b600081831161183f5781610e9d565b5090919050565b60008080600019858709858702925082811083820303915050806000036118805783828161187657611876612380565b0492505050610e9d565b8084116118c75760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016106f8565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b600082600001828154811061194757611947612001565b9060005260206000200154905092915050565b60606000611969836002612396565b61197490600261202d565b6001600160401b0381111561198b5761198b611feb565b6040519080825280601f01601f1916602001820160405280156119b5576020820181803683370190505b509050600360fc1b816000815181106119d0576119d0612001565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106119ff576119ff612001565b60200101906001600160f81b031916908160001a9053506000611a23846002612396565b611a2e90600161202d565b90505b6001811115611aa6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611a6257611a62612001565b1a60f81b828281518110611a7857611a78612001565b60200101906001600160f81b031916908160001a90535060049490941c93611a9f816123ad565b9050611a31565b508315610e9d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106f8565b6000818152600183016020526040812054611b3c5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561065b565b50600061065b565b60008181526001830160205260408120548015611c2d576000611b686001836123c4565b8554909150600090611b7c906001906123c4565b9050818114611be1576000866000018281548110611b9c57611b9c612001565b9060005260206000200154905080876000018481548110611bbf57611bbf612001565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611bf257611bf26123d7565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061065b565b600091505061065b565b600080608083901c15611c4f5760809290921c916010015b604083901c15611c645760409290921c916008015b602083901c15611c795760209290921c916004015b601083901c15611c8e5760109290921c916002015b600883901c1561065b5760010192915050565b60405180606001604052806000801916815260200160008152602001611cf1604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b905290565b600060208284031215611d0857600080fd5b81356001600160e01b031981168114610e9d57600080fd5b600060208284031215611d3257600080fd5b5035919050565b6001600160a01b038116811461134b57600080fd5b60008060408385031215611d6157600080fd5b823591506020830135611d7381611d39565b809150509250929050565b60008083601f840112611d9057600080fd5b5081356001600160401b03811115611da757600080fd5b6020830191508360208260051b8501011115611dc257600080fd5b9250929050565b60008060208385031215611ddc57600080fd5b82356001600160401b03811115611df257600080fd5b611dfe85828601611d7e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015611e4257835183529284019291840191600101611e26565b50909695505050505050565b600080600080600060608688031215611e6657600080fd5b8535945060208601356001600160401b0380821115611e8457600080fd5b611e9089838a01611d7e565b90965094506040880135915080821115611ea957600080fd5b50611eb688828901611d7e565b969995985093965092949392505050565b600060408284031215611ed957600080fd5b50919050565b60008060608385031215611ef257600080fd5b82359150611f038460208501611ec7565b90509250929050565b60008060408385031215611f1f57600080fd5b50508035926020909101359150565b600060408284031215611f4057600080fd5b610e9d8383611ec7565b60008060008060008060a08789031215611f6357600080fd5b8635611f6e81611d39565b955060208701356001600160401b03811115611f8957600080fd5b611f9589828a01611d7e565b9096509450506040870135611fa981611d39565b92506060870135611fb981611d39565b80925050608087013590509295509295509295565b600060208284031215611fe057600080fd5b8135610e9d81611d39565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561065b5761065b612017565b81835260006001600160fb1b0383111561205957600080fd5b8260051b80836020870137939093016020019392505050565b604081526000612086604083018688612040565b8281036020840152612099818587612040565b979650505050505050565b6000808335601e198436030181126120bb57600080fd5b8301803591506001600160401b038211156120d557600080fd5b602001915036819003821315611dc257600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b0394851660408301529290931660608401526001600160401b03166080830152601f909201601f1916010192915050565b6000806040838503121561215957600080fd5b82516001600160401b038116811461217057600080fd5b6020939093015192949293505050565b81358152602080830135908201526040810161065b565b6001600160a01b038316815260608101610e9d602083018480358252602090810135910152565b60005b838110156121d95781810151838201526020016121c1565b50506000910152565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b60208201526000835161222d81602a8501602088016121be565b660103b30b63ab2960cd1b602a9184019182015283516122548160318401602088016121be565b01603101949350505050565b602081526000825180602084015261227f8160408501602087016121be565b601f01601f19169190910160400192915050565b6000604082840312156122a557600080fd5b604051604081018181106001600160401b03821117156122d557634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123278160178501602088016121be565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516123588160288401602088016121be565b01602801949350505050565b600082516123768184602087016121be565b9190910192915050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761065b5761065b612017565b6000816123bc576123bc612017565b506000190190565b8181038181111561065b5761065b612017565b634e487b7160e01b600052603160045260246000fdfe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a2646970667358221220af269df2a00739b1d11f4b9dfe6c9748aae7893d5be6658d7c88083e147efb3764736f6c63430008150033", + "blockNumber": 22370168, + "bytecode": "0x608060405261000c610011565b6100d0565b600054610100900460ff161561007d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100ce576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61283180620000e06000396000f3fe6080604052600436106101cd5760003560e01c806381bec1b3116100f7578063a282d4ae11610095578063db5e1ec611610064578063db5e1ec6146105ec578063ec14cf371461060c578063f0f442601461062c578063f5b541a61461064c57600080fd5b8063a282d4ae1461057c578063b967169014610591578063ca15c873146105ac578063d547741f146105cc57600080fd5b806391a3823f116100d157806391a3823f1461050757806391d14854146105345780639979ef4514610554578063a217fddf1461056757600080fd5b806381bec1b3146104a95780638c843314146104c95780639010d07c146104e757600080fd5b80633b19e84a1161016f5780636e7d60f21161013e5780636e7d60f2146103cc578063777b0a18146103f957806378bd793514610419578063791a26b41461048957600080fd5b80633b19e84a146103445780634c255c971461037657806353f9195e1461038c57806360223b44146103ac57600080fd5b806319a3ee40116101ab57806319a3ee40146102ab578063248a9ca3146102c35780632f2ff15d1461030257806336568abe1461032457600080fd5b806301ffc9a7146101d25780630afe1bb31461020757806315a2916214610237575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612022565b61066e565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5061021f6305a39a8081565b6040516001600160401b0390911681526020016101fe565b34801561024357600080fd5b5061029061025236600461204c565b604080518082019091526000808252602082015250600090815260366020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016101fe565b3480156102b757600080fd5b5061021f6301e1338081565b3480156102cf57600080fd5b506102f46102de36600461204c565b6000908152600160208190526040909120015490565b6040519081526020016101fe565b34801561030e57600080fd5b5061032261031d36600461207a565b610699565b005b34801561033057600080fd5b5061032261033f36600461207a565b6106c4565b34801561035057600080fd5b506038546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b34801561038257600080fd5b506102f461271081565b34801561039857600080fd5b506101f26103a736600461204c565b610747565b3480156103b857600080fd5b506103226103c736600461204c565b61076a565b3480156103d857600080fd5b506103ec6103e73660046120f5565b61077e565b6040516101fe9190612136565b34801561040557600080fd5b5061032261041436600461217a565b610a6d565b34801561042557600080fd5b5061043961043436600461204c565b610bd3565b6040805183518152602080850151818301529382015180516001600160a01b0316828401529384015160608083019190915291840151608082015292015160a083015260c082015260e0016101fe565b34801561049557600080fd5b506103ec6104a43660046120f5565b610c88565b3480156104b557600080fd5b506103226104c436600461220b565b610e43565b3480156104d557600080fd5b506035546001600160a01b031661035e565b3480156104f357600080fd5b5061035e610502366004612238565b610ec0565b34801561051357600080fd5b5061052761052236600461225a565b610edf565b6040516101fe91906122e2565b34801561054057600080fd5b506101f261054f36600461207a565b6111d0565b61032261056236600461204c565b6111fb565b34801561057357600080fd5b506102f4600081565b34801561058857600080fd5b506039546102f4565b34801561059d57600080fd5b5061021f6001600160401b0381565b3480156105b857600080fd5b506102f46105c736600461204c565b6113ad565b3480156105d857600080fd5b506103226105e736600461207a565b6113c4565b3480156105f857600080fd5b506102f461060736600461231c565b6113ea565b34801561061857600080fd5b50610322610627366004612338565b611487565b34801561063857600080fd5b506103226106473660046123bc565b611624565b34801561065857600080fd5b506102f46000805160206127dc83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610693575061069382611638565b92915050565b600082815260016020819052604090912001546106b58161166d565b6106bf838361167a565b505050565b6001600160a01b03811633146107395760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610743828261169c565b5050565b600881901c6000908152603a6020526040812054600160ff84161b161515610693565b60006107758161166d565b610743826116be565b60606000806107a0604051806040016040528060008152602001600081525090565b6107a8611fcd565b85806001600160401b038111156107c1576107c16123d9565b6040519080825280602002602001820160405280156107ea578160200160208202803683370190505b506035549096506001600160a01b03166000610812426301e133806001600160401b0361171c565b905060005b83811015610a49578a8a82818110610831576108316123ef565b60209081029290920135600081815260378452604080822081516060808201845282548252600180840154838a0152845160808101865260028501546001600160a01b031681526003850154818b0152600485015481870152600590940154848301528285019384528251865260368952848620855180870190965280548652015497840197909752905190950151929c5099509297509091039050610a415760208601514210156108f6576040516372d1250d60e01b815260040160405180910390fd5b84604001516040015160000361091f576040516323bbcc0160e01b815260040160405180910390fd5b604085015160200151610932908861241b565b60405163fc284d1160e01b8152600481018a90526001600160401b03841660248201529097506001600160a01b0384169063fc284d1190604401600060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040858101515190516323b872dd60e01b81523060048201526001600160a01b039182166024820152604481018a9052908416906323b872dd90606401600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b5050505042898281518110610a2057610a206123ef565b602090810291909101810182905260008a8152603790915260409020600501555b600101610817565b50603854610a60906001600160a01b031687611752565b5050505050505092915050565b6000805160206127dc833981519152610a858161166d565b85610a8f816117b7565b84801580610a9d5750808414155b15610abb57604051634ec4810560e11b815260040160405180910390fd5b6000806000805b84811015610b87578a8a82818110610adc57610adc6123ef565b905060200201359350610aee84610747565b610b0b57604051637d6fe8d760e11b815260040160405180910390fd5b6000848152603760205260409020805493509150821580610b2b57508b83145b80610b3857506004820154155b610b5857604051631480ec2760e31b815260048101859052602401610730565b8b8255888882818110610b6d57610b6d6123ef565b905060200201358260010181905550806001019050610ac2565b508a7f9a845a1c4235343a450f5e39d4179b7e2a6c9586c02bff45d956717f4a19dd948b8b8b8b604051610bbe9493929190612460565b60405180910390a25050505050505050505050565b610bdb611fcd565b5060008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518351808501855286815285018690528552603684528285208351808501909452805484529091015492820192909252909190610c808382611804565b915050915091565b60606000805160206127dc833981519152610ca28161166d565b826000819003610cc557604051634ec4810560e11b815260040160405180910390fd5b806001600160401b03811115610cdd57610cdd6123d9565b604051908082528060200260200182016040528015610d06578160200160208202803683370190505b506035549093506001600160a01b03167fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6886301e1338060005b84811015610e3757836001600160a01b0316630570891f848b8b85818110610d6957610d696123ef565b9050602002810190610d7b9190612492565b600030886040518763ffffffff1660e01b8152600401610da0969594939291906124d8565b60408051808303816000875af1158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de29190612534565b9050878281518110610df657610df66123ef565b602002602001018181525050610e2f878281518110610e1757610e176123ef565b6020026020010151603a61185c90919063ffffffff16565b600101610d3f565b50505050505092915050565b6000610e4e8161166d565b81610e5881611885565b83610e62816117b7565b60008581526036602090815260409091208535815590850135600182015550847fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051610eb1919061256e565b60405180910390a25050505050565b6000828152600260205260408120610ed890836118ca565b9392505050565b60606000805160206127dc833981519152610ef98161166d565b858414610f1957604051634ec4810560e11b815260040160405180910390fd5b6000610f31426301e133806001600160401b0361171c565b9050846001600160401b03811115610f4b57610f4b6123d9565b604051908082528060200260200182016040528015610f74578160200160208202803683370190505b506035549093506001600160a01b0316610f8c611fcd565b6000805b888110156111c157898982818110610faa57610faa6123ef565b6020908102929092013560008181526037845260409081902081516060808201845282548252600183015482880152835160808101855260028401546001600160a01b0390811682526003850154988201989098526004840154818601526005909301549083015291820181905251909650909450909116905061119857600082815260376020526040808220828155600181018390556002810180546001600160a01b03191690556003810183905560048082018490556005909101929092555163fc284d1160e01b81529081018390526001600160401b03861660248201526001600160a01b0385169063fc284d1190604401600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b50505050836001600160a01b03166323b872dd308e8e858181106110f3576110f36123ef565b905060200201602081019061110891906123bc565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101859052606401600060405180830381600087803b15801561115757600080fd5b505af115801561116b573d6000803e3d6000fd5b505050506001878281518110611183576111836123ef565b911515602092830291909101909101526111b9565b876111b957604051631480ec2760e31b815260048101839052602401610730565b600101610f90565b50505050505095945050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518552603684528285208351808501909452805484529091015492820192909252909161128f8383611804565b905061129a826118d6565b6112b7576040516348c6117b60e11b815260040160405180910390fd5b803410156112d857604051632ca2f52b60e11b815260040160405180910390fd5b333281146112f8576040516259ca3d60e61b815260040160405180910390fd5b604084810151805160209182015160008981526037845284902034600382018190556002820180546001600160a01b0319166001600160a01b038981169182178355426004909501949094558b5188519384529683015295810183905290831660608201529193909290918991907f5934294f4724ea4bb71fee8511b9ccb8dd6d2249ac4d120a81ccfcbbd0ad905f9060800160405180910390a381156113a3576113a38383611752565b5050505050505050565b6000818152600260205260408120610693906118f1565b600082815260016020819052604090912001546113e08161166d565b6106bf838361169c565b6000806113f68161166d565b8261140081611885565b3384604051602001611413929190612585565b60408051808303601f1901815291815281516020928301206000818152603684529190912086358155918601356001830155935050827fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051611478919061256e565b60405180910390a25050919050565b600054610100900460ff16158080156114a75750600054600160ff909116105b806114c15750303b1580156114c1575060005460ff166001145b6115245760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610730565b6000805460ff191660011790558015611547576000805461ff0019166101001790555b611550836118fb565b611559826116be565b61156460008861196c565b846000805160206127dc83398151915260005b828110156115b7576115af828a8a84818110611595576115956123ef565b90506020020160208101906115aa91906123bc565b61196c565b600101611577565b5050603580546001600160a01b0319166001600160a01b03871617905550801561161b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061162f8161166d565b610743826118fb565b60006001600160e01b03198216637965db0b60e01b148061069357506301ffc9a760e01b6001600160e01b0319831614610693565b6116778133611976565b50565b61168482826119a9565b60008281526002602052604090206106bf9082611a14565b6116a68282611a29565b60008281526002602052604090206106bf9082611a90565b6127108111156116e15760405163220f1a1560e01b815260040160405180910390fd5b60398190556040518181527f846b33625d74f443855144a5f2aef4dda303cda3dfb1c704cb58ab70671823429060200160405180910390a150565b60008184118061172b57508183115b15611737575080610ed8565b6117418484611aa5565b905081811115610ed8575092915050565b600061175e8383611ab9565b9050806106bf57611777836001600160a01b0316611b2f565b61178083611b45565b6040516020016117919291906125d0565b60408051601f198184030181529082905262461bcd60e51b82526107309160040161264e565b60008181526036602090815260409182902082518084019093528054835260010154908201526117e79051421090565b6116775760405163028e4e9760e51b815260040160405180910390fd5b600061181c8360200151846040015160200151611b5c565b905082604001516020015160001415801561183a5750602082015142105b15610693576118528360200151603954612710611b72565b610ed8908261241b565b600881901c600090815260209290925260409091208054600160ff9093169290921b9091179055565b60208101358135111580156118ad57506118ad6118a736839003830183612681565b51421090565b611677576040516302ef0c7360e21b815260040160405180910390fd5b6000610ed88383611c5c565b60004282600001511115801561069357505060200151421090565b6000610693825490565b6001600160a01b038116611922576040516362daafb160e11b815260040160405180910390fd5b603880546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b610743828261167a565b61198082826111d0565b6107435761198d81611b2f565b611998836020611c86565b6040516020016117919291906126dd565b6119b382826111d0565b6107435760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610ed8836001600160a01b038416611e21565b611a3382826111d0565b156107435760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ed8836001600160a01b038416611e70565b818101828110156106935750600019610693565b604080516000808252602082019092526001600160a01b038416908390604051611ae39190612752565b60006040518083038185875af1925050503d8060008114611b20576040519150601f19603f3d011682016040523d82523d6000602084013e611b25565b606091505b5090949350505050565b60606106936001600160a01b0383166014611c86565b606061069382611b5484611f63565b600101611c86565b6000818311611b6b5781610ed8565b5090919050565b6000808060001985870985870292508281108382030391505080600003611bac57838281611ba257611ba261276e565b0492505050610ed8565b808411611bf35760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610730565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000826000018281548110611c7357611c736123ef565b9060005260206000200154905092915050565b60606000611c95836002612784565b611ca090600261241b565b6001600160401b03811115611cb757611cb76123d9565b6040519080825280601f01601f191660200182016040528015611ce1576020820181803683370190505b509050600360fc1b81600081518110611cfc57611cfc6123ef565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611d2b57611d2b6123ef565b60200101906001600160f81b031916908160001a9053506000611d4f846002612784565b611d5a90600161241b565b90505b6001811115611dd2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d8e57611d8e6123ef565b1a60f81b828281518110611da457611da46123ef565b60200101906001600160f81b031916908160001a90535060049490941c93611dcb8161279b565b9050611d5d565b508315610ed85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610730565b6000818152600183016020526040812054611e6857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610693565b506000610693565b60008181526001830160205260408120548015611f59576000611e946001836127b2565b8554909150600090611ea8906001906127b2565b9050818114611f0d576000866000018281548110611ec857611ec86123ef565b9060005260206000200154905080876000018481548110611eeb57611eeb6123ef565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611f1e57611f1e6127c5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610693565b6000915050610693565b600080608083901c15611f7b5760809290921c916010015b604083901c15611f905760409290921c916008015b602083901c15611fa55760209290921c916004015b601083901c15611fba5760109290921c916002015b600883901c156106935760010192915050565b6040518060600160405280600080191681526020016000815260200161201d604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b905290565b60006020828403121561203457600080fd5b81356001600160e01b031981168114610ed857600080fd5b60006020828403121561205e57600080fd5b5035919050565b6001600160a01b038116811461167757600080fd5b6000806040838503121561208d57600080fd5b82359150602083013561209f81612065565b809150509250929050565b60008083601f8401126120bc57600080fd5b5081356001600160401b038111156120d357600080fd5b6020830191508360208260051b85010111156120ee57600080fd5b9250929050565b6000806020838503121561210857600080fd5b82356001600160401b0381111561211e57600080fd5b61212a858286016120aa565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561216e57835183529284019291840191600101612152565b50909695505050505050565b60008060008060006060868803121561219257600080fd5b8535945060208601356001600160401b03808211156121b057600080fd5b6121bc89838a016120aa565b909650945060408801359150808211156121d557600080fd5b506121e2888289016120aa565b969995985093965092949392505050565b60006040828403121561220557600080fd5b50919050565b6000806060838503121561221e57600080fd5b8235915061222f84602085016121f3565b90509250929050565b6000806040838503121561224b57600080fd5b50508035926020909101359150565b60008060008060006060868803121561227257600080fd5b85356001600160401b038082111561228957600080fd5b61229589838a016120aa565b909750955060208801359150808211156122ae57600080fd5b506122bb888289016120aa565b909450925050604086013580151581146122d457600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b8181101561216e5783511515835292840192918401916001016122fe565b60006040828403121561232e57600080fd5b610ed883836121f3565b60008060008060008060a0878903121561235157600080fd5b863561235c81612065565b955060208701356001600160401b0381111561237757600080fd5b61238389828a016120aa565b909650945050604087013561239781612065565b925060608701356123a781612065565b80925050608087013590509295509295509295565b6000602082840312156123ce57600080fd5b8135610ed881612065565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561069357610693612405565b81835260006001600160fb1b0383111561244757600080fd5b8260051b80836020870137939093016020019392505050565b60408152600061247460408301868861242e565b828103602084015261248781858761242e565b979650505050505050565b6000808335601e198436030181126124a957600080fd5b8301803591506001600160401b038211156124c357600080fd5b6020019150368190038213156120ee57600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b0394851660408301529290931660608401526001600160401b03166080830152601f909201601f1916010192915050565b6000806040838503121561254757600080fd5b82516001600160401b038116811461255e57600080fd5b6020939093015192949293505050565b813581526020808301359082015260408101610693565b6001600160a01b038316815260608101610ed8602083018480358252602090810135910152565b60005b838110156125c75781810151838201526020016125af565b50506000910152565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b60208201526000835161261b81602a8501602088016125ac565b660103b30b63ab2960cd1b602a9184019182015283516126428160318401602088016125ac565b01603101949350505050565b602081526000825180602084015261266d8160408501602087016125ac565b601f01601f19169190910160400192915050565b60006040828403121561269357600080fd5b604051604081018181106001600160401b03821117156126c357634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516127158160178501602088016125ac565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516127468160288401602088016125ac565b01602801949350505050565b600082516127648184602087016125ac565b9190910192915050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761069357610693612405565b6000816127aa576127aa612405565b506000190190565b8181038181111561069357610693612405565b634e487b7160e01b600052603160045260246000fdfe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a2646970667358221220885ebec3d0dabb62ac47daf2f9d99eaeb14286e2e2cd36f2870522b082386b5b64736f6c63430008150033", "chainId": 2021, "contractName": "RNSAuction", - "deployedBytecode": "0x6080604052600436106101c25760003560e01c8063791a26b4116100f7578063a282d4ae11610095578063db5e1ec611610064578063db5e1ec6146105b4578063ec14cf37146105d4578063f0f44260146105f4578063f5b541a61461061457600080fd5b8063a282d4ae14610544578063b967169014610559578063ca15c87314610574578063d547741f1461059457600080fd5b80639010d07c116100d15780639010d07c146104dc57806391d14854146104fc5780639979ef451461051c578063a217fddf1461052f57600080fd5b8063791a26b41461047e57806381bec1b31461049e5780638c843314146104be57600080fd5b80633b19e84a1161016457806360223b441161013e57806360223b44146103a15780636e7d60f2146103c1578063777b0a18146103ee57806378bd79351461040e57600080fd5b80633b19e84a146103395780634c255c971461036b57806353f9195e1461038157600080fd5b806319a3ee40116101a057806319a3ee40146102a0578063248a9ca3146102b85780632f2ff15d146102f757806336568abe1461031957600080fd5b806301ffc9a7146101c75780630afe1bb3146101fc57806315a291621461022c575b600080fd5b3480156101d357600080fd5b506101e76101e2366004611cf6565b610636565b60405190151581526020015b60405180910390f35b34801561020857600080fd5b506102146305a39a8081565b6040516001600160401b0390911681526020016101f3565b34801561023857600080fd5b50610285610247366004611d20565b604080518082019091526000808252602082015250600090815260366020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016101f3565b3480156102ac57600080fd5b506102146301e1338081565b3480156102c457600080fd5b506102e96102d3366004611d20565b6000908152600160208190526040909120015490565b6040519081526020016101f3565b34801561030357600080fd5b50610317610312366004611d4e565b610661565b005b34801561032557600080fd5b50610317610334366004611d4e565b61068c565b34801561034557600080fd5b506038546001600160a01b03165b6040516001600160a01b0390911681526020016101f3565b34801561037757600080fd5b506102e961271081565b34801561038d57600080fd5b506101e761039c366004611d20565b61070f565b3480156103ad57600080fd5b506103176103bc366004611d20565b610732565b3480156103cd57600080fd5b506103e16103dc366004611dc9565b610746565b6040516101f39190611e0a565b3480156103fa57600080fd5b50610317610409366004611e4e565b610a35565b34801561041a57600080fd5b5061042e610429366004611d20565b610b98565b6040805183518152602080850151818301529382015180516001600160a01b0316828401529384015160608083019190915291840151608082015292015160a083015260c082015260e0016101f3565b34801561048a57600080fd5b506103e1610499366004611dc9565b610c4d565b3480156104aa57600080fd5b506103176104b9366004611edf565b610e08565b3480156104ca57600080fd5b506035546001600160a01b0316610353565b3480156104e857600080fd5b506103536104f7366004611f0c565b610e85565b34801561050857600080fd5b506101e7610517366004611d4e565b610ea4565b61031761052a366004611d20565b610ecf565b34801561053b57600080fd5b506102e9600081565b34801561055057600080fd5b506039546102e9565b34801561056557600080fd5b506102146001600160401b0381565b34801561058057600080fd5b506102e961058f366004611d20565b611081565b3480156105a057600080fd5b506103176105af366004611d4e565b611098565b3480156105c057600080fd5b506102e96105cf366004611f2e565b6110be565b3480156105e057600080fd5b506103176105ef366004611f4a565b61115b565b34801561060057600080fd5b5061031761060f366004611fce565b6112f8565b34801561062057600080fd5b506102e96000805160206123ee83398151915281565b60006001600160e01b03198216635a05180f60e01b148061065b575061065b8261130c565b92915050565b6000828152600160208190526040909120015461067d81611341565b610687838361134e565b505050565b6001600160a01b03811633146107015760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61070b8282611370565b5050565b600881901c6000908152603a6020526040812054600160ff84161b16151561065b565b600061073d81611341565b61070b82611392565b6060600080610768604051806040016040528060008152602001600081525090565b610770611ca1565b85806001600160401b0381111561078957610789611feb565b6040519080825280602002602001820160405280156107b2578160200160208202803683370190505b506035549096506001600160a01b031660006107da426301e133806001600160401b036113f0565b905060005b83811015610a11578a8a828181106107f9576107f9612001565b60209081029290920135600081815260378452604080822081516060808201845282548252600180840154838a0152845160808101865260028501546001600160a01b031681526003850154818b0152600485015481870152600590940154848301528285019384528251865260368952848620855180870190965280548652015497840197909752905190950151929c5099509297509091039050610a095760208601514210156108be576040516372d1250d60e01b815260040160405180910390fd5b8460400151604001516000036108e7576040516323bbcc0160e01b815260040160405180910390fd5b6040850151602001516108fa908861202d565b60405163fc284d1160e01b8152600481018a90526001600160401b03841660248201529097506001600160a01b0384169063fc284d1190604401600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b505050506040858101515190516323b872dd60e01b81523060048201526001600160a01b039182166024820152604481018a9052908416906323b872dd90606401600060405180830381600087803b1580156109bd57600080fd5b505af11580156109d1573d6000803e3d6000fd5b50505050428982815181106109e8576109e8612001565b602090810291909101810182905260008a8152603790915260409020600501555b6001016107df565b50603854610a28906001600160a01b031687611426565b5050505050505092915050565b6000805160206123ee833981519152610a4d81611341565b85610a578161148b565b84801580610a655750808414155b15610a8357604051634ec4810560e11b815260040160405180910390fd5b6000806000805b84811015610b4c578a8a82818110610aa457610aa4612001565b905060200201359350610ab68461070f565b610ad357604051637d6fe8d760e11b815260040160405180910390fd5b6000848152603760205260409020805493509150821580610af357508b83145b80610b0057506004820154155b610b1d57604051631dc8374160e01b815260040160405180910390fd5b8b8255888882818110610b3257610b32612001565b905060200201358260010181905550806001019050610a8a565b508a7f9a845a1c4235343a450f5e39d4179b7e2a6c9586c02bff45d956717f4a19dd948b8b8b8b604051610b839493929190612072565b60405180910390a25050505050505050505050565b610ba0611ca1565b5060008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518351808501855286815285018690528552603684528285208351808501909452805484529091015492820192909252909190610c4583826114d8565b915050915091565b60606000805160206123ee833981519152610c6781611341565b826000819003610c8a57604051634ec4810560e11b815260040160405180910390fd5b806001600160401b03811115610ca257610ca2611feb565b604051908082528060200260200182016040528015610ccb578160200160208202803683370190505b506035549093506001600160a01b03167fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6886301e1338060005b84811015610dfc57836001600160a01b0316630570891f848b8b85818110610d2e57610d2e612001565b9050602002810190610d4091906120a4565b600030886040518763ffffffff1660e01b8152600401610d65969594939291906120ea565b60408051808303816000875af1158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da79190612146565b9050878281518110610dbb57610dbb612001565b602002602001018181525050610df4878281518110610ddc57610ddc612001565b6020026020010151603a61153090919063ffffffff16565b600101610d04565b50505050505092915050565b6000610e1381611341565b81610e1d81611559565b83610e278161148b565b60008581526036602090815260409091208535815590850135600182015550847fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051610e769190612180565b60405180910390a25050505050565b6000828152600260205260408120610e9d908361159e565b9392505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b031681526003850154818801526004850154818701526005909401549184019190915281840192909252805185526036845282852083518085019094528054845290910154928201929092529091610f6383836114d8565b9050610f6e826115aa565b610f8b576040516348c6117b60e11b815260040160405180910390fd5b80341015610fac57604051632ca2f52b60e11b815260040160405180910390fd5b33328114610fcc576040516259ca3d60e61b815260040160405180910390fd5b604084810151805160209182015160008981526037845284902034600382018190556002820180546001600160a01b0319166001600160a01b038981169182178355426004909501949094558b5188519384529683015295810183905290831660608201529193909290918991907f5934294f4724ea4bb71fee8511b9ccb8dd6d2249ac4d120a81ccfcbbd0ad905f9060800160405180910390a38115611077576110778383611426565b5050505050505050565b600081815260026020526040812061065b906115c5565b600082815260016020819052604090912001546110b481611341565b6106878383611370565b6000806110ca81611341565b826110d481611559565b33846040516020016110e7929190612197565b60408051808303601f1901815291815281516020928301206000818152603684529190912086358155918601356001830155935050827fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b8560405161114c9190612180565b60405180910390a25050919050565b600054610100900460ff161580801561117b5750600054600160ff909116105b806111955750303b158015611195575060005460ff166001145b6111f85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106f8565b6000805460ff19166001179055801561121b576000805461ff0019166101001790555b611224836115cf565b61122d82611392565b611238600088611640565b846000805160206123ee83398151915260005b8281101561128b57611283828a8a8481811061126957611269612001565b905060200201602081019061127e9190611fce565b611640565b60010161124b565b5050603580546001600160a01b0319166001600160a01b0387161790555080156112ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061130381611341565b61070b826115cf565b60006001600160e01b03198216637965db0b60e01b148061065b57506301ffc9a760e01b6001600160e01b031983161461065b565b61134b813361164a565b50565b611358828261167d565b600082815260026020526040902061068790826116e8565b61137a82826116fd565b60008281526002602052604090206106879082611764565b6127108111156113b55760405163220f1a1560e01b815260040160405180910390fd5b60398190556040518181527f846b33625d74f443855144a5f2aef4dda303cda3dfb1c704cb58ab70671823429060200160405180910390a150565b6000818411806113ff57508183115b1561140b575080610e9d565b6114158484611779565b905081811115610e9d575092915050565b6000611432838361178d565b9050806106875761144b836001600160a01b0316611803565b61145483611819565b6040516020016114659291906121e2565b60408051601f198184030181529082905262461bcd60e51b82526106f891600401612260565b60008181526036602090815260409182902082518084019093528054835260010154908201526114bb9051421090565b61134b5760405163028e4e9760e51b815260040160405180910390fd5b60006114f08360200151846040015160200151611830565b905082604001516020015160001415801561150e5750602082015142105b1561065b576115268360200151603954612710611846565b610e9d908261202d565b600881901c600090815260209290925260409091208054600160ff9093169290921b9091179055565b6020810135813511158015611581575061158161157b36839003830183612293565b51421090565b61134b576040516302ef0c7360e21b815260040160405180910390fd5b6000610e9d8383611930565b60004282600001511115801561065b57505060200151421090565b600061065b825490565b6001600160a01b0381166115f6576040516362daafb160e11b815260040160405180910390fd5b603880546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b61070b828261134e565b6116548282610ea4565b61070b5761166181611803565b61166c83602061195a565b6040516020016114659291906122ef565b6116878282610ea4565b61070b5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610e9d836001600160a01b038416611af5565b6117078282610ea4565b1561070b5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e9d836001600160a01b038416611b44565b8181018281101561065b575060001961065b565b604080516000808252602082019092526001600160a01b0384169083906040516117b79190612364565b60006040518083038185875af1925050503d80600081146117f4576040519150601f19603f3d011682016040523d82523d6000602084013e6117f9565b606091505b5090949350505050565b606061065b6001600160a01b038316601461195a565b606061065b8261182884611c37565b60010161195a565b600081831161183f5781610e9d565b5090919050565b60008080600019858709858702925082811083820303915050806000036118805783828161187657611876612380565b0492505050610e9d565b8084116118c75760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016106f8565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b600082600001828154811061194757611947612001565b9060005260206000200154905092915050565b60606000611969836002612396565b61197490600261202d565b6001600160401b0381111561198b5761198b611feb565b6040519080825280601f01601f1916602001820160405280156119b5576020820181803683370190505b509050600360fc1b816000815181106119d0576119d0612001565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106119ff576119ff612001565b60200101906001600160f81b031916908160001a9053506000611a23846002612396565b611a2e90600161202d565b90505b6001811115611aa6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611a6257611a62612001565b1a60f81b828281518110611a7857611a78612001565b60200101906001600160f81b031916908160001a90535060049490941c93611a9f816123ad565b9050611a31565b508315610e9d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106f8565b6000818152600183016020526040812054611b3c5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561065b565b50600061065b565b60008181526001830160205260408120548015611c2d576000611b686001836123c4565b8554909150600090611b7c906001906123c4565b9050818114611be1576000866000018281548110611b9c57611b9c612001565b9060005260206000200154905080876000018481548110611bbf57611bbf612001565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611bf257611bf26123d7565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061065b565b600091505061065b565b600080608083901c15611c4f5760809290921c916010015b604083901c15611c645760409290921c916008015b602083901c15611c795760209290921c916004015b601083901c15611c8e5760109290921c916002015b600883901c1561065b5760010192915050565b60405180606001604052806000801916815260200160008152602001611cf1604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b905290565b600060208284031215611d0857600080fd5b81356001600160e01b031981168114610e9d57600080fd5b600060208284031215611d3257600080fd5b5035919050565b6001600160a01b038116811461134b57600080fd5b60008060408385031215611d6157600080fd5b823591506020830135611d7381611d39565b809150509250929050565b60008083601f840112611d9057600080fd5b5081356001600160401b03811115611da757600080fd5b6020830191508360208260051b8501011115611dc257600080fd5b9250929050565b60008060208385031215611ddc57600080fd5b82356001600160401b03811115611df257600080fd5b611dfe85828601611d7e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015611e4257835183529284019291840191600101611e26565b50909695505050505050565b600080600080600060608688031215611e6657600080fd5b8535945060208601356001600160401b0380821115611e8457600080fd5b611e9089838a01611d7e565b90965094506040880135915080821115611ea957600080fd5b50611eb688828901611d7e565b969995985093965092949392505050565b600060408284031215611ed957600080fd5b50919050565b60008060608385031215611ef257600080fd5b82359150611f038460208501611ec7565b90509250929050565b60008060408385031215611f1f57600080fd5b50508035926020909101359150565b600060408284031215611f4057600080fd5b610e9d8383611ec7565b60008060008060008060a08789031215611f6357600080fd5b8635611f6e81611d39565b955060208701356001600160401b03811115611f8957600080fd5b611f9589828a01611d7e565b9096509450506040870135611fa981611d39565b92506060870135611fb981611d39565b80925050608087013590509295509295509295565b600060208284031215611fe057600080fd5b8135610e9d81611d39565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561065b5761065b612017565b81835260006001600160fb1b0383111561205957600080fd5b8260051b80836020870137939093016020019392505050565b604081526000612086604083018688612040565b8281036020840152612099818587612040565b979650505050505050565b6000808335601e198436030181126120bb57600080fd5b8301803591506001600160401b038211156120d557600080fd5b602001915036819003821315611dc257600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b0394851660408301529290931660608401526001600160401b03166080830152601f909201601f1916010192915050565b6000806040838503121561215957600080fd5b82516001600160401b038116811461217057600080fd5b6020939093015192949293505050565b81358152602080830135908201526040810161065b565b6001600160a01b038316815260608101610e9d602083018480358252602090810135910152565b60005b838110156121d95781810151838201526020016121c1565b50506000910152565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b60208201526000835161222d81602a8501602088016121be565b660103b30b63ab2960cd1b602a9184019182015283516122548160318401602088016121be565b01603101949350505050565b602081526000825180602084015261227f8160408501602087016121be565b601f01601f19169190910160400192915050565b6000604082840312156122a557600080fd5b604051604081018181106001600160401b03821117156122d557634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123278160178501602088016121be565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516123588160288401602088016121be565b01602801949350505050565b600082516123768184602087016121be565b9190910192915050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761065b5761065b612017565b6000816123bc576123bc612017565b506000190190565b8181038181111561065b5761065b612017565b634e487b7160e01b600052603160045260246000fdfe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a2646970667358221220af269df2a00739b1d11f4b9dfe6c9748aae7893d5be6658d7c88083e147efb3764736f6c63430008150033", + "deployedBytecode": "0x6080604052600436106101cd5760003560e01c806381bec1b3116100f7578063a282d4ae11610095578063db5e1ec611610064578063db5e1ec6146105ec578063ec14cf371461060c578063f0f442601461062c578063f5b541a61461064c57600080fd5b8063a282d4ae1461057c578063b967169014610591578063ca15c873146105ac578063d547741f146105cc57600080fd5b806391a3823f116100d157806391a3823f1461050757806391d14854146105345780639979ef4514610554578063a217fddf1461056757600080fd5b806381bec1b3146104a95780638c843314146104c95780639010d07c146104e757600080fd5b80633b19e84a1161016f5780636e7d60f21161013e5780636e7d60f2146103cc578063777b0a18146103f957806378bd793514610419578063791a26b41461048957600080fd5b80633b19e84a146103445780634c255c971461037657806353f9195e1461038c57806360223b44146103ac57600080fd5b806319a3ee40116101ab57806319a3ee40146102ab578063248a9ca3146102c35780632f2ff15d1461030257806336568abe1461032457600080fd5b806301ffc9a7146101d25780630afe1bb31461020757806315a2916214610237575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612022565b61066e565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5061021f6305a39a8081565b6040516001600160401b0390911681526020016101fe565b34801561024357600080fd5b5061029061025236600461204c565b604080518082019091526000808252602082015250600090815260366020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016101fe565b3480156102b757600080fd5b5061021f6301e1338081565b3480156102cf57600080fd5b506102f46102de36600461204c565b6000908152600160208190526040909120015490565b6040519081526020016101fe565b34801561030e57600080fd5b5061032261031d36600461207a565b610699565b005b34801561033057600080fd5b5061032261033f36600461207a565b6106c4565b34801561035057600080fd5b506038546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b34801561038257600080fd5b506102f461271081565b34801561039857600080fd5b506101f26103a736600461204c565b610747565b3480156103b857600080fd5b506103226103c736600461204c565b61076a565b3480156103d857600080fd5b506103ec6103e73660046120f5565b61077e565b6040516101fe9190612136565b34801561040557600080fd5b5061032261041436600461217a565b610a6d565b34801561042557600080fd5b5061043961043436600461204c565b610bd3565b6040805183518152602080850151818301529382015180516001600160a01b0316828401529384015160608083019190915291840151608082015292015160a083015260c082015260e0016101fe565b34801561049557600080fd5b506103ec6104a43660046120f5565b610c88565b3480156104b557600080fd5b506103226104c436600461220b565b610e43565b3480156104d557600080fd5b506035546001600160a01b031661035e565b3480156104f357600080fd5b5061035e610502366004612238565b610ec0565b34801561051357600080fd5b5061052761052236600461225a565b610edf565b6040516101fe91906122e2565b34801561054057600080fd5b506101f261054f36600461207a565b6111d0565b61032261056236600461204c565b6111fb565b34801561057357600080fd5b506102f4600081565b34801561058857600080fd5b506039546102f4565b34801561059d57600080fd5b5061021f6001600160401b0381565b3480156105b857600080fd5b506102f46105c736600461204c565b6113ad565b3480156105d857600080fd5b506103226105e736600461207a565b6113c4565b3480156105f857600080fd5b506102f461060736600461231c565b6113ea565b34801561061857600080fd5b50610322610627366004612338565b611487565b34801561063857600080fd5b506103226106473660046123bc565b611624565b34801561065857600080fd5b506102f46000805160206127dc83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610693575061069382611638565b92915050565b600082815260016020819052604090912001546106b58161166d565b6106bf838361167a565b505050565b6001600160a01b03811633146107395760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610743828261169c565b5050565b600881901c6000908152603a6020526040812054600160ff84161b161515610693565b60006107758161166d565b610743826116be565b60606000806107a0604051806040016040528060008152602001600081525090565b6107a8611fcd565b85806001600160401b038111156107c1576107c16123d9565b6040519080825280602002602001820160405280156107ea578160200160208202803683370190505b506035549096506001600160a01b03166000610812426301e133806001600160401b0361171c565b905060005b83811015610a49578a8a82818110610831576108316123ef565b60209081029290920135600081815260378452604080822081516060808201845282548252600180840154838a0152845160808101865260028501546001600160a01b031681526003850154818b0152600485015481870152600590940154848301528285019384528251865260368952848620855180870190965280548652015497840197909752905190950151929c5099509297509091039050610a415760208601514210156108f6576040516372d1250d60e01b815260040160405180910390fd5b84604001516040015160000361091f576040516323bbcc0160e01b815260040160405180910390fd5b604085015160200151610932908861241b565b60405163fc284d1160e01b8152600481018a90526001600160401b03841660248201529097506001600160a01b0384169063fc284d1190604401600060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040858101515190516323b872dd60e01b81523060048201526001600160a01b039182166024820152604481018a9052908416906323b872dd90606401600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b5050505042898281518110610a2057610a206123ef565b602090810291909101810182905260008a8152603790915260409020600501555b600101610817565b50603854610a60906001600160a01b031687611752565b5050505050505092915050565b6000805160206127dc833981519152610a858161166d565b85610a8f816117b7565b84801580610a9d5750808414155b15610abb57604051634ec4810560e11b815260040160405180910390fd5b6000806000805b84811015610b87578a8a82818110610adc57610adc6123ef565b905060200201359350610aee84610747565b610b0b57604051637d6fe8d760e11b815260040160405180910390fd5b6000848152603760205260409020805493509150821580610b2b57508b83145b80610b3857506004820154155b610b5857604051631480ec2760e31b815260048101859052602401610730565b8b8255888882818110610b6d57610b6d6123ef565b905060200201358260010181905550806001019050610ac2565b508a7f9a845a1c4235343a450f5e39d4179b7e2a6c9586c02bff45d956717f4a19dd948b8b8b8b604051610bbe9493929190612460565b60405180910390a25050505050505050505050565b610bdb611fcd565b5060008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518351808501855286815285018690528552603684528285208351808501909452805484529091015492820192909252909190610c808382611804565b915050915091565b60606000805160206127dc833981519152610ca28161166d565b826000819003610cc557604051634ec4810560e11b815260040160405180910390fd5b806001600160401b03811115610cdd57610cdd6123d9565b604051908082528060200260200182016040528015610d06578160200160208202803683370190505b506035549093506001600160a01b03167fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6886301e1338060005b84811015610e3757836001600160a01b0316630570891f848b8b85818110610d6957610d696123ef565b9050602002810190610d7b9190612492565b600030886040518763ffffffff1660e01b8152600401610da0969594939291906124d8565b60408051808303816000875af1158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de29190612534565b9050878281518110610df657610df66123ef565b602002602001018181525050610e2f878281518110610e1757610e176123ef565b6020026020010151603a61185c90919063ffffffff16565b600101610d3f565b50505050505092915050565b6000610e4e8161166d565b81610e5881611885565b83610e62816117b7565b60008581526036602090815260409091208535815590850135600182015550847fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051610eb1919061256e565b60405180910390a25050505050565b6000828152600260205260408120610ed890836118ca565b9392505050565b60606000805160206127dc833981519152610ef98161166d565b858414610f1957604051634ec4810560e11b815260040160405180910390fd5b6000610f31426301e133806001600160401b0361171c565b9050846001600160401b03811115610f4b57610f4b6123d9565b604051908082528060200260200182016040528015610f74578160200160208202803683370190505b506035549093506001600160a01b0316610f8c611fcd565b6000805b888110156111c157898982818110610faa57610faa6123ef565b6020908102929092013560008181526037845260409081902081516060808201845282548252600183015482880152835160808101855260028401546001600160a01b0390811682526003850154988201989098526004840154818601526005909301549083015291820181905251909650909450909116905061119857600082815260376020526040808220828155600181018390556002810180546001600160a01b03191690556003810183905560048082018490556005909101929092555163fc284d1160e01b81529081018390526001600160401b03861660248201526001600160a01b0385169063fc284d1190604401600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b50505050836001600160a01b03166323b872dd308e8e858181106110f3576110f36123ef565b905060200201602081019061110891906123bc565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101859052606401600060405180830381600087803b15801561115757600080fd5b505af115801561116b573d6000803e3d6000fd5b505050506001878281518110611183576111836123ef565b911515602092830291909101909101526111b9565b876111b957604051631480ec2760e31b815260048101839052602401610730565b600101610f90565b50505050505095945050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008181526037602090815260408083208151606080820184528254825260018084015483870152845160808101865260028501546001600160a01b03168152600385015481880152600485015481870152600590940154918401919091528184019290925280518552603684528285208351808501909452805484529091015492820192909252909161128f8383611804565b905061129a826118d6565b6112b7576040516348c6117b60e11b815260040160405180910390fd5b803410156112d857604051632ca2f52b60e11b815260040160405180910390fd5b333281146112f8576040516259ca3d60e61b815260040160405180910390fd5b604084810151805160209182015160008981526037845284902034600382018190556002820180546001600160a01b0319166001600160a01b038981169182178355426004909501949094558b5188519384529683015295810183905290831660608201529193909290918991907f5934294f4724ea4bb71fee8511b9ccb8dd6d2249ac4d120a81ccfcbbd0ad905f9060800160405180910390a381156113a3576113a38383611752565b5050505050505050565b6000818152600260205260408120610693906118f1565b600082815260016020819052604090912001546113e08161166d565b6106bf838361169c565b6000806113f68161166d565b8261140081611885565b3384604051602001611413929190612585565b60408051808303601f1901815291815281516020928301206000818152603684529190912086358155918601356001830155935050827fd8960c7efc6464cdd8dd07f4dc149b0a33bf7f60bf357838722d5b80f988fb1b85604051611478919061256e565b60405180910390a25050919050565b600054610100900460ff16158080156114a75750600054600160ff909116105b806114c15750303b1580156114c1575060005460ff166001145b6115245760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610730565b6000805460ff191660011790558015611547576000805461ff0019166101001790555b611550836118fb565b611559826116be565b61156460008861196c565b846000805160206127dc83398151915260005b828110156115b7576115af828a8a84818110611595576115956123ef565b90506020020160208101906115aa91906123bc565b61196c565b600101611577565b5050603580546001600160a01b0319166001600160a01b03871617905550801561161b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061162f8161166d565b610743826118fb565b60006001600160e01b03198216637965db0b60e01b148061069357506301ffc9a760e01b6001600160e01b0319831614610693565b6116778133611976565b50565b61168482826119a9565b60008281526002602052604090206106bf9082611a14565b6116a68282611a29565b60008281526002602052604090206106bf9082611a90565b6127108111156116e15760405163220f1a1560e01b815260040160405180910390fd5b60398190556040518181527f846b33625d74f443855144a5f2aef4dda303cda3dfb1c704cb58ab70671823429060200160405180910390a150565b60008184118061172b57508183115b15611737575080610ed8565b6117418484611aa5565b905081811115610ed8575092915050565b600061175e8383611ab9565b9050806106bf57611777836001600160a01b0316611b2f565b61178083611b45565b6040516020016117919291906125d0565b60408051601f198184030181529082905262461bcd60e51b82526107309160040161264e565b60008181526036602090815260409182902082518084019093528054835260010154908201526117e79051421090565b6116775760405163028e4e9760e51b815260040160405180910390fd5b600061181c8360200151846040015160200151611b5c565b905082604001516020015160001415801561183a5750602082015142105b15610693576118528360200151603954612710611b72565b610ed8908261241b565b600881901c600090815260209290925260409091208054600160ff9093169290921b9091179055565b60208101358135111580156118ad57506118ad6118a736839003830183612681565b51421090565b611677576040516302ef0c7360e21b815260040160405180910390fd5b6000610ed88383611c5c565b60004282600001511115801561069357505060200151421090565b6000610693825490565b6001600160a01b038116611922576040516362daafb160e11b815260040160405180910390fd5b603880546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b610743828261167a565b61198082826111d0565b6107435761198d81611b2f565b611998836020611c86565b6040516020016117919291906126dd565b6119b382826111d0565b6107435760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610ed8836001600160a01b038416611e21565b611a3382826111d0565b156107435760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ed8836001600160a01b038416611e70565b818101828110156106935750600019610693565b604080516000808252602082019092526001600160a01b038416908390604051611ae39190612752565b60006040518083038185875af1925050503d8060008114611b20576040519150601f19603f3d011682016040523d82523d6000602084013e611b25565b606091505b5090949350505050565b60606106936001600160a01b0383166014611c86565b606061069382611b5484611f63565b600101611c86565b6000818311611b6b5781610ed8565b5090919050565b6000808060001985870985870292508281108382030391505080600003611bac57838281611ba257611ba261276e565b0492505050610ed8565b808411611bf35760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610730565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000826000018281548110611c7357611c736123ef565b9060005260206000200154905092915050565b60606000611c95836002612784565b611ca090600261241b565b6001600160401b03811115611cb757611cb76123d9565b6040519080825280601f01601f191660200182016040528015611ce1576020820181803683370190505b509050600360fc1b81600081518110611cfc57611cfc6123ef565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611d2b57611d2b6123ef565b60200101906001600160f81b031916908160001a9053506000611d4f846002612784565b611d5a90600161241b565b90505b6001811115611dd2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d8e57611d8e6123ef565b1a60f81b828281518110611da457611da46123ef565b60200101906001600160f81b031916908160001a90535060049490941c93611dcb8161279b565b9050611d5d565b508315610ed85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610730565b6000818152600183016020526040812054611e6857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610693565b506000610693565b60008181526001830160205260408120548015611f59576000611e946001836127b2565b8554909150600090611ea8906001906127b2565b9050818114611f0d576000866000018281548110611ec857611ec86123ef565b9060005260206000200154905080876000018481548110611eeb57611eeb6123ef565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611f1e57611f1e6127c5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610693565b6000915050610693565b600080608083901c15611f7b5760809290921c916010015b604083901c15611f905760409290921c916008015b602083901c15611fa55760209290921c916004015b601083901c15611fba5760109290921c916002015b600883901c156106935760010192915050565b6040518060600160405280600080191681526020016000815260200161201d604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b905290565b60006020828403121561203457600080fd5b81356001600160e01b031981168114610ed857600080fd5b60006020828403121561205e57600080fd5b5035919050565b6001600160a01b038116811461167757600080fd5b6000806040838503121561208d57600080fd5b82359150602083013561209f81612065565b809150509250929050565b60008083601f8401126120bc57600080fd5b5081356001600160401b038111156120d357600080fd5b6020830191508360208260051b85010111156120ee57600080fd5b9250929050565b6000806020838503121561210857600080fd5b82356001600160401b0381111561211e57600080fd5b61212a858286016120aa565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561216e57835183529284019291840191600101612152565b50909695505050505050565b60008060008060006060868803121561219257600080fd5b8535945060208601356001600160401b03808211156121b057600080fd5b6121bc89838a016120aa565b909650945060408801359150808211156121d557600080fd5b506121e2888289016120aa565b969995985093965092949392505050565b60006040828403121561220557600080fd5b50919050565b6000806060838503121561221e57600080fd5b8235915061222f84602085016121f3565b90509250929050565b6000806040838503121561224b57600080fd5b50508035926020909101359150565b60008060008060006060868803121561227257600080fd5b85356001600160401b038082111561228957600080fd5b61229589838a016120aa565b909750955060208801359150808211156122ae57600080fd5b506122bb888289016120aa565b909450925050604086013580151581146122d457600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b8181101561216e5783511515835292840192918401916001016122fe565b60006040828403121561232e57600080fd5b610ed883836121f3565b60008060008060008060a0878903121561235157600080fd5b863561235c81612065565b955060208701356001600160401b0381111561237757600080fd5b61238389828a016120aa565b909650945050604087013561239781612065565b925060608701356123a781612065565b80925050608087013590509295509295509295565b6000602082840312156123ce57600080fd5b8135610ed881612065565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561069357610693612405565b81835260006001600160fb1b0383111561244757600080fd5b8260051b80836020870137939093016020019392505050565b60408152600061247460408301868861242e565b828103602084015261248781858761242e565b979650505050505050565b6000808335601e198436030181126124a957600080fd5b8301803591506001600160401b038211156124c357600080fd5b6020019150368190038213156120ee57600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b0394851660408301529290931660608401526001600160401b03166080830152601f909201601f1916010192915050565b6000806040838503121561254757600080fd5b82516001600160401b038116811461255e57600080fd5b6020939093015192949293505050565b813581526020808301359082015260408101610693565b6001600160a01b038316815260608101610ed8602083018480358252602090810135910152565b60005b838110156125c75781810151838201526020016125af565b50506000910152565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b60208201526000835161261b81602a8501602088016125ac565b660103b30b63ab2960cd1b602a9184019182015283516126428160318401602088016125ac565b01603101949350505050565b602081526000825180602084015261266d8160408501602087016125ac565b601f01601f19169190910160400192915050565b60006040828403121561269357600080fd5b604051604081018181106001600160401b03821117156126c357634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516127158160178501602088016125ac565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516127468160288401602088016125ac565b01602801949350505050565b600082516127648184602087016125ac565b9190910192915050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761069357610693612405565b6000816127aa576127aa612405565b506000190190565b8181038181111561069357610693612405565b634e487b7160e01b600052603160045260246000fdfe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a2646970667358221220885ebec3d0dabb62ac47daf2f9d99eaeb14286e2e2cd36f2870522b082386b5b64736f6c63430008150033", "deployer": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", "devdoc": { "version": 1, @@ -13104,6 +14816,17 @@ "ids": "The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'" } }, + "bulkClaimUnbiddedNames(address[],uint256[],bool)": { + "details": "Claim unbidded names and transfer them to the specified addresses. Requirements: - The method caller must be contract operator.", + "params": { + "allowFailure": "Flag to indicate whether to allow failure if a domain is already being bid on.", + "ids": "The id corresponding for namehash of domain names.", + "tos": "The array of addresses to transfer domain names to." + }, + "returns": { + "claimeds": "An array indicating whether each domain name was successfully claimed." + } + }, "bulkRegister(string[])": { "details": "Claims domain names for auction. Requirements: - The method caller must be contract operator.", "params": { @@ -13220,13 +14943,13 @@ } }, "isFoundry": true, - "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBidding\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ContractBidderIsForbidden\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EventIsNotCreatedOrAlreadyStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEventRange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NameNotReserved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoOneBidded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotYetEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullAssignment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueryIsNotInPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RatioIsTooLarge\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endedAt\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct EventRange\",\"name\":\"range\",\"type\":\"tuple\"}],\"name\":\"AuctionEventSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"}],\"name\":\"BidGapRatioUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"bidder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousBidder\",\"type\":\"address\"}],\"name\":\"BidPlaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"startingPrices\",\"type\":\"uint256[]\"}],\"name\":\"LabelsListed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_EXPIRY_DURATION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_AUCTION_DOMAIN_EXPIRY\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_EXPIRY\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_PERCENTAGE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"bulkClaimBidNames\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"claimedAts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"labels\",\"type\":\"string[]\"}],\"name\":\"bulkRegister\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct EventRange\",\"name\":\"range\",\"type\":\"tuple\"}],\"name\":\"createAuctionEvent\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getAuction\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"bidder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct INSAuction.Bid\",\"name\":\"bid\",\"type\":\"tuple\"}],\"internalType\":\"struct INSAuction.DomainAuction\",\"name\":\"auction\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"beatPrice\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"}],\"name\":\"getAuctionEvent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct EventRange\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBidGapRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRNSUnified\",\"outputs\":[{\"internalType\":\"contract INSUnified\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"contract INSUnified\",\"name\":\"rnsUnified\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bidGapRatio\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"startingPrices\",\"type\":\"uint256[]\"}],\"name\":\"listNamesForAuction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"placeBid\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"reserved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct EventRange\",\"name\":\"range\",\"type\":\"tuple\"}],\"name\":\"setAuctionEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"}],\"name\":\"setBidGapRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AuctionEventSet(bytes32,(uint256,uint256))\":{\"details\":\"Emitted when an auction is set.\"},\"BidGapRatioUpdated(uint256)\":{\"details\":\"Emitted when bid gap ratio is updated.\"},\"BidPlaced(bytes32,uint256,uint256,address,uint256,address)\":{\"details\":\"Emitted when a bid is placed for a name.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"LabelsListed(bytes32,uint256[],uint256[])\":{\"details\":\"Emitted when the labels are listed for auction.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"TreasuryUpdated(address)\":{\"details\":\"Emitted when the treasury is updated.\"}},\"kind\":\"dev\",\"methods\":{\"bulkClaimBidNames(uint256[])\":{\"details\":\"Bulk claims the bid name. Requirements: - Must be called after ended time. - The method caller can be anyone.\",\"params\":{\"ids\":\"The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"bulkRegister(string[])\":{\"details\":\"Claims domain names for auction. Requirements: - The method caller must be contract operator.\",\"params\":{\"labels\":\"The domain names. Eg, ['foo'] for 'foo.ron'\"},\"returns\":{\"ids\":\"The id corresponding for namehash of domain names.\"}},\"createAuctionEvent((uint256,uint256))\":{\"details\":\"Creates a new auction to sale with a specific time period. Requirements: - The method caller must be admin. Emits an event {AuctionEventSet}.\",\"returns\":{\"auctionId\":\"The auction id\"}},\"getAuction(uint256)\":{\"details\":\"Returns the highest bid and address of the bidder.\",\"params\":{\"id\":\"The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"getAuctionEvent(bytes32)\":{\"details\":\"Returns the event range of an auction.\"},\"getBidGapRatio()\":{\"details\":\"Returns the gap ratio between 2 bids with the starting price. Value in range [0;100_00] is 0%-100%.\"},\"getRNSUnified()\":{\"details\":\"Returns RNSUnified contract.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTreasury()\":{\"details\":\"Returns the treasury.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"listNamesForAuction(bytes32,uint256[],uint256[])\":{\"details\":\"Lists reserved names to sale in a specified auction. Requirements: - The method caller must be contract operator. - Array length are matched and larger than 0. - Only allow to set when the domain is: + Not in any auction. + Or, in the current auction. + Or, this name is not bided. Emits an event {LabelsListed}. Note: If the name is already listed, this method replaces with a new input value.\",\"params\":{\"ids\":\"The namehashes id of domain names. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"placeBid(uint256)\":{\"details\":\"Places a bid for a domain name. Requirements: - The name is listed, or the auction is happening. - The msg.value is larger than the current bid price or the auction starting price. Emits an event {BidPlaced}.\",\"params\":{\"id\":\"The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"reserved(uint256)\":{\"details\":\"Checks whether a domain name is currently reserved for auction or not.\",\"params\":{\"id\":\"The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setAuctionEvent(bytes32,(uint256,uint256))\":{\"details\":\"Updates the auction details. Requirements: - The method caller must be admin. Emits an event {AuctionEventSet}.\"},\"setBidGapRatio(uint256)\":{\"details\":\"Sets commission ratio. Value in range [0;100_00] is 0%-100%. Requirements: - The method caller must be admin Emits an event {BidGapRatioUpdated}.\"},\"setTreasury(address)\":{\"details\":\"Sets the treasury. Requirements: - The method caller must be admin Emits an event {TreasuryUpdated}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"DOMAIN_EXPIRY_DURATION\":{\"details\":\"The expiry duration of a domain after transferring to bidder.\"},\"MAX_AUCTION_DOMAIN_EXPIRY\":{\"details\":\"The maximum expiry duration of a domain after transferring to bidder.\"},\"MAX_EXPIRY\":{\"details\":\"The maximum expiry duration\"},\"MAX_PERCENTAGE\":{\"details\":\"Max percentage 100%. Values [0; 100_00] reflexes [0; 100%]\"},\"OPERATOR_ROLE\":{\"details\":\"Returns the operator role.\"},\"____gap\":{\"details\":\"Gap for upgradeability.\"},\"_auctionRange\":{\"details\":\"Mapping from auction Id => event range\"},\"_bidGapRatio\":{\"details\":\"The gap ratio between 2 bids with the starting price.\"},\"_domainAuction\":{\"details\":\"Mapping from id of domain names => auction detail.\"},\"_reserved\":{\"details\":\"Mapping from id => bool reserved status\"},\"_rnsUnified\":{\"details\":\"The RNSUnified contract.\"},\"_treasury\":{\"details\":\"The treasury.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createAuctionEvent((uint256,uint256))\":{\"notice\":\"Please use the method `setAuctionNames` to list all the reserved names.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/RNSAuction.sol\":\"RNSAuction\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/buffer/=lib/buffer/\",\":@ensdomains/ens-contracts/=lib/ens-contracts/contracts/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":@pythnetwork/=lib/pyth-sdk-solidity/\",\":@rns-contracts/=src/\",\":buffer/=lib/buffer/contracts/\",\":contract-template/=lib/contract-template/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":ens-contracts/=lib/ens-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":foundry-deployment-kit/=lib/foundry-deployment-kit/script/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pyth-sdk-solidity/=lib/pyth-sdk-solidity/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```solidity\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```solidity\\n * function foo() public {\\n * require(hasRole(MY_ROLE, msg.sender));\\n * ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\\n * to enforce additional security measures for this role.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n struct RoleData {\\n mapping(address => bool) members;\\n bytes32 adminRole;\\n }\\n\\n mapping(bytes32 => RoleData) private _roles;\\n\\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n /**\\n * @dev Modifier that checks that an account has a specific role. Reverts\\n * with a standardized message including the required role.\\n *\\n * The format of the revert reason is given by the following regular expression:\\n *\\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n *\\n * _Available since v4.1._\\n */\\n modifier onlyRole(bytes32 role) {\\n _checkRole(role);\\n _;\\n }\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n return _roles[role].members[account];\\n }\\n\\n /**\\n * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n * Overriding this function changes the behavior of the {onlyRole} modifier.\\n *\\n * Format of the revert message is described in {_checkRole}.\\n *\\n * _Available since v4.6._\\n */\\n function _checkRole(bytes32 role) internal view virtual {\\n _checkRole(role, _msgSender());\\n }\\n\\n /**\\n * @dev Revert with a standard message if `account` is missing `role`.\\n *\\n * The format of the revert reason is given by the following regular expression:\\n *\\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n */\\n function _checkRole(bytes32 role, address account) internal view virtual {\\n if (!hasRole(role, account)) {\\n revert(\\n string(\\n abi.encodePacked(\\n \\\"AccessControl: account \\\",\\n Strings.toHexString(account),\\n \\\" is missing role \\\",\\n Strings.toHexString(uint256(role), 32)\\n )\\n )\\n );\\n }\\n }\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n return _roles[role].adminRole;\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n *\\n * May emit a {RoleGranted} event.\\n */\\n function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n _grantRole(role, account);\\n }\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n _revokeRole(role, account);\\n }\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function renounceRole(bytes32 role, address account) public virtual override {\\n require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n _revokeRole(role, account);\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event. Note that unlike {grantRole}, this function doesn't perform any\\n * checks on the calling account.\\n *\\n * May emit a {RoleGranted} event.\\n *\\n * [WARNING]\\n * ====\\n * This function should only be called from the constructor when setting\\n * up the initial roles for the system.\\n *\\n * Using this function in any other way is effectively circumventing the admin\\n * system imposed by {AccessControl}.\\n * ====\\n *\\n * NOTE: This function is deprecated in favor of {_grantRole}.\\n */\\n function _setupRole(bytes32 role, address account) internal virtual {\\n _grantRole(role, account);\\n }\\n\\n /**\\n * @dev Sets `adminRole` as ``role``'s admin role.\\n *\\n * Emits a {RoleAdminChanged} event.\\n */\\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n bytes32 previousAdminRole = getRoleAdmin(role);\\n _roles[role].adminRole = adminRole;\\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * Internal function without access restriction.\\n *\\n * May emit a {RoleGranted} event.\\n */\\n function _grantRole(bytes32 role, address account) internal virtual {\\n if (!hasRole(role, account)) {\\n _roles[role].members[account] = true;\\n emit RoleGranted(role, account, _msgSender());\\n }\\n }\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * Internal function without access restriction.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function _revokeRole(bytes32 role, address account) internal virtual {\\n if (hasRole(role, account)) {\\n _roles[role].members[account] = false;\\n emit RoleRevoked(role, account, _msgSender());\\n }\\n }\\n}\\n\",\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControlEnumerable.sol\\\";\\nimport \\\"./AccessControl.sol\\\";\\nimport \\\"../utils/structs/EnumerableSet.sol\\\";\\n\\n/**\\n * @dev Extension of {AccessControl} that allows enumerating the members of each role.\\n */\\nabstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {\\n using EnumerableSet for EnumerableSet.AddressSet;\\n\\n mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev Returns one of the accounts that have `role`. `index` must be a\\n * value between 0 and {getRoleMemberCount}, non-inclusive.\\n *\\n * Role bearers are not sorted in any particular way, and their ordering may\\n * change at any point.\\n *\\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\\n * you perform all queries on the same block. See the following\\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\\n * for more information.\\n */\\n function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) {\\n return _roleMembers[role].at(index);\\n }\\n\\n /**\\n * @dev Returns the number of accounts that have `role`. Can be used\\n * together with {getRoleMember} to enumerate all bearers of a role.\\n */\\n function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) {\\n return _roleMembers[role].length();\\n }\\n\\n /**\\n * @dev Overload {_grantRole} to track enumerable memberships\\n */\\n function _grantRole(bytes32 role, address account) internal virtual override {\\n super._grantRole(role, account);\\n _roleMembers[role].add(account);\\n }\\n\\n /**\\n * @dev Overload {_revokeRole} to track enumerable memberships\\n */\\n function _revokeRole(bytes32 role, address account) internal virtual override {\\n super._revokeRole(role, account);\\n _roleMembers[role].remove(account);\\n }\\n}\\n\",\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n /**\\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n *\\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n * {RoleAdminChanged} not being emitted signaling this.\\n *\\n * _Available since v3.1._\\n */\\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n /**\\n * @dev Emitted when `account` is granted `role`.\\n *\\n * `sender` is the account that originated the contract call, an admin role\\n * bearer except when using {AccessControl-_setupRole}.\\n */\\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Emitted when `account` is revoked `role`.\\n *\\n * `sender` is the account that originated the contract call:\\n * - if using `revokeRole`, it is the admin role bearer\\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n */\\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function grantRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function revokeRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been granted `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n */\\n function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\n\\n/**\\n * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.\\n */\\ninterface IAccessControlEnumerable is IAccessControl {\\n /**\\n * @dev Returns one of the accounts that have `role`. `index` must be a\\n * value between 0 and {getRoleMemberCount}, non-inclusive.\\n *\\n * Role bearers are not sorted in any particular way, and their ordering may\\n * change at any point.\\n *\\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\\n * you perform all queries on the same block. See the following\\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\\n * for more information.\\n */\\n function getRoleMember(bytes32 role, uint256 index) external view returns (address);\\n\\n /**\\n * @dev Returns the number of accounts that have `role`. Can be used\\n * together with {getRoleMember} to enumerate all bearers of a role.\\n */\\n function getRoleMemberCount(bytes32 role) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/Address.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!Address.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the caller.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC721.sol\\\";\\n\\n/**\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\n */\\ninterface IERC721Metadata is IERC721 {\\n /**\\n * @dev Returns the token collection name.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the token collection symbol.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\\n */\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n */\\n function toString(int256 value) internal pure returns (string memory) {\\n return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\n buffer[i] = _SYMBOLS[value & 0xf];\\n value >>= 4;\\n }\\n require(value == 0, \\\"Strings: hex length insufficient\\\");\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n }\\n\\n /**\\n * @dev Returns true if the two strings are equal.\\n */\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\n return keccak256(bytes(a)) == keccak256(bytes(b));\\n }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n enum Rounding {\\n Down, // Toward negative infinity\\n Up, // Toward infinity\\n Zero // Toward zero\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a & b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds up instead\\n * of rounding down.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n * with further edits by Uniswap Labs also under MIT license.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod0 := mul(x, y)\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n // The surrounding unchecked block does not change this fact.\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n // See https://cs.stackexchange.com/q/138556/92363.\\n\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\n uint256 twos = denominator & (~denominator + 1);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n // in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 << (log2(a) >> 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 128;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 64;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 32;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 16;\\n }\\n if (value >> 8 > 0) {\\n value >>= 8;\\n result += 8;\\n }\\n if (value >> 4 > 0) {\\n value >>= 4;\\n result += 4;\\n }\\n if (value >> 2 > 0) {\\n value >>= 2;\\n result += 2;\\n }\\n if (value >> 1 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >= 10 ** 64) {\\n value /= 10 ** 64;\\n result += 64;\\n }\\n if (value >= 10 ** 32) {\\n value /= 10 ** 32;\\n result += 32;\\n }\\n if (value >= 10 ** 16) {\\n value /= 10 ** 16;\\n result += 16;\\n }\\n if (value >= 10 ** 8) {\\n value /= 10 ** 8;\\n result += 8;\\n }\\n if (value >= 10 ** 4) {\\n value /= 10 ** 4;\\n result += 4;\\n }\\n if (value >= 10 ** 2) {\\n value /= 10 ** 2;\\n result += 2;\\n }\\n if (value >= 10 ** 1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 16;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 8;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 4;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 2;\\n }\\n if (value >> 8 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n }\\n }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n /**\\n * @dev Returns the largest of two signed numbers.\\n */\\n function max(int256 a, int256 b) internal pure returns (int256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two signed numbers.\\n */\\n function min(int256 a, int256 b) internal pure returns (int256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two signed numbers without overflow.\\n * The result is rounded towards zero.\\n */\\n function average(int256 a, int256 b) internal pure returns (int256) {\\n // Formula from the book \\\"Hacker's Delight\\\"\\n int256 x = (a & b) + ((a ^ b) >> 1);\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\n }\\n\\n /**\\n * @dev Returns the absolute unsigned value of a signed value.\\n */\\n function abs(int256 n) internal pure returns (uint256) {\\n unchecked {\\n // must be unchecked in order to support `n = type(int256).min`\\n return uint256(n >= 0 ? n : -n);\\n }\\n }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/BitMaps.sol)\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for managing uint256 to bool mapping in a compact and efficient way, providing the keys are sequential.\\n * Largely inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor].\\n */\\nlibrary BitMaps {\\n struct BitMap {\\n mapping(uint256 => uint256) _data;\\n }\\n\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap storage bitmap, uint256 index) internal view returns (bool) {\\n uint256 bucket = index >> 8;\\n uint256 mask = 1 << (index & 0xff);\\n return bitmap._data[bucket] & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index` to the boolean `value`.\\n */\\n function setTo(BitMap storage bitmap, uint256 index, bool value) internal {\\n if (value) {\\n set(bitmap, index);\\n } else {\\n unset(bitmap, index);\\n }\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap storage bitmap, uint256 index) internal {\\n uint256 bucket = index >> 8;\\n uint256 mask = 1 << (index & 0xff);\\n bitmap._data[bucket] |= mask;\\n }\\n\\n /**\\n * @dev Unsets the bit at `index`.\\n */\\n function unset(BitMap storage bitmap, uint256 index) internal {\\n uint256 bucket = index >> 8;\\n uint256 mask = 1 << (index & 0xff);\\n bitmap._data[bucket] &= ~mask;\\n }\\n}\\n\",\"keccak256\":\"0xac946730f979a447732a5bed58aa30c995ae666c3e1663b312ab5fd11dbe3eb6\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/EnumerableSet.sol)\\n// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for managing\\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\\n * types.\\n *\\n * Sets have the following properties:\\n *\\n * - Elements are added, removed, and checked for existence in constant time\\n * (O(1)).\\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\\n *\\n * ```solidity\\n * contract Example {\\n * // Add the library methods\\n * using EnumerableSet for EnumerableSet.AddressSet;\\n *\\n * // Declare a set state variable\\n * EnumerableSet.AddressSet private mySet;\\n * }\\n * ```\\n *\\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\\n * and `uint256` (`UintSet`) are supported.\\n *\\n * [WARNING]\\n * ====\\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\\n * unusable.\\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\\n *\\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\\n * array of EnumerableSet.\\n * ====\\n */\\nlibrary EnumerableSet {\\n // To implement this library for multiple types with as little code\\n // repetition as possible, we write it in terms of a generic Set type with\\n // bytes32 values.\\n // The Set implementation uses private functions, and user-facing\\n // implementations (such as AddressSet) are just wrappers around the\\n // underlying Set.\\n // This means that we can only create new EnumerableSets for types that fit\\n // in bytes32.\\n\\n struct Set {\\n // Storage of set values\\n bytes32[] _values;\\n // Position of the value in the `values` array, plus 1 because index 0\\n // means a value is not in the set.\\n mapping(bytes32 => uint256) _indexes;\\n }\\n\\n /**\\n * @dev Add a value to a set. O(1).\\n *\\n * Returns true if the value was added to the set, that is if it was not\\n * already present.\\n */\\n function _add(Set storage set, bytes32 value) private returns (bool) {\\n if (!_contains(set, value)) {\\n set._values.push(value);\\n // The value is stored at length-1, but we add 1 to all indexes\\n // and use 0 as a sentinel value\\n set._indexes[value] = set._values.length;\\n return true;\\n } else {\\n return false;\\n }\\n }\\n\\n /**\\n * @dev Removes a value from a set. O(1).\\n *\\n * Returns true if the value was removed from the set, that is if it was\\n * present.\\n */\\n function _remove(Set storage set, bytes32 value) private returns (bool) {\\n // We read and store the value's index to prevent multiple reads from the same storage slot\\n uint256 valueIndex = set._indexes[value];\\n\\n if (valueIndex != 0) {\\n // Equivalent to contains(set, value)\\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\\n // the array, and then remove the last element (sometimes called as 'swap and pop').\\n // This modifies the order of the array, as noted in {at}.\\n\\n uint256 toDeleteIndex = valueIndex - 1;\\n uint256 lastIndex = set._values.length - 1;\\n\\n if (lastIndex != toDeleteIndex) {\\n bytes32 lastValue = set._values[lastIndex];\\n\\n // Move the last value to the index where the value to delete is\\n set._values[toDeleteIndex] = lastValue;\\n // Update the index for the moved value\\n set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex\\n }\\n\\n // Delete the slot where the moved value was stored\\n set._values.pop();\\n\\n // Delete the index for the deleted slot\\n delete set._indexes[value];\\n\\n return true;\\n } else {\\n return false;\\n }\\n }\\n\\n /**\\n * @dev Returns true if the value is in the set. O(1).\\n */\\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\\n return set._indexes[value] != 0;\\n }\\n\\n /**\\n * @dev Returns the number of values on the set. O(1).\\n */\\n function _length(Set storage set) private view returns (uint256) {\\n return set._values.length;\\n }\\n\\n /**\\n * @dev Returns the value stored at position `index` in the set. O(1).\\n *\\n * Note that there are no guarantees on the ordering of values inside the\\n * array, and it may change when more values are added or removed.\\n *\\n * Requirements:\\n *\\n * - `index` must be strictly less than {length}.\\n */\\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\\n return set._values[index];\\n }\\n\\n /**\\n * @dev Return the entire set in an array\\n *\\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\\n */\\n function _values(Set storage set) private view returns (bytes32[] memory) {\\n return set._values;\\n }\\n\\n // Bytes32Set\\n\\n struct Bytes32Set {\\n Set _inner;\\n }\\n\\n /**\\n * @dev Add a value to a set. O(1).\\n *\\n * Returns true if the value was added to the set, that is if it was not\\n * already present.\\n */\\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\\n return _add(set._inner, value);\\n }\\n\\n /**\\n * @dev Removes a value from a set. O(1).\\n *\\n * Returns true if the value was removed from the set, that is if it was\\n * present.\\n */\\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\\n return _remove(set._inner, value);\\n }\\n\\n /**\\n * @dev Returns true if the value is in the set. O(1).\\n */\\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\\n return _contains(set._inner, value);\\n }\\n\\n /**\\n * @dev Returns the number of values in the set. O(1).\\n */\\n function length(Bytes32Set storage set) internal view returns (uint256) {\\n return _length(set._inner);\\n }\\n\\n /**\\n * @dev Returns the value stored at position `index` in the set. O(1).\\n *\\n * Note that there are no guarantees on the ordering of values inside the\\n * array, and it may change when more values are added or removed.\\n *\\n * Requirements:\\n *\\n * - `index` must be strictly less than {length}.\\n */\\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\\n return _at(set._inner, index);\\n }\\n\\n /**\\n * @dev Return the entire set in an array\\n *\\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\\n */\\n function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\\n bytes32[] memory store = _values(set._inner);\\n bytes32[] memory result;\\n\\n /// @solidity memory-safe-assembly\\n assembly {\\n result := store\\n }\\n\\n return result;\\n }\\n\\n // AddressSet\\n\\n struct AddressSet {\\n Set _inner;\\n }\\n\\n /**\\n * @dev Add a value to a set. O(1).\\n *\\n * Returns true if the value was added to the set, that is if it was not\\n * already present.\\n */\\n function add(AddressSet storage set, address value) internal returns (bool) {\\n return _add(set._inner, bytes32(uint256(uint160(value))));\\n }\\n\\n /**\\n * @dev Removes a value from a set. O(1).\\n *\\n * Returns true if the value was removed from the set, that is if it was\\n * present.\\n */\\n function remove(AddressSet storage set, address value) internal returns (bool) {\\n return _remove(set._inner, bytes32(uint256(uint160(value))));\\n }\\n\\n /**\\n * @dev Returns true if the value is in the set. O(1).\\n */\\n function contains(AddressSet storage set, address value) internal view returns (bool) {\\n return _contains(set._inner, bytes32(uint256(uint160(value))));\\n }\\n\\n /**\\n * @dev Returns the number of values in the set. O(1).\\n */\\n function length(AddressSet storage set) internal view returns (uint256) {\\n return _length(set._inner);\\n }\\n\\n /**\\n * @dev Returns the value stored at position `index` in the set. O(1).\\n *\\n * Note that there are no guarantees on the ordering of values inside the\\n * array, and it may change when more values are added or removed.\\n *\\n * Requirements:\\n *\\n * - `index` must be strictly less than {length}.\\n */\\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\\n return address(uint160(uint256(_at(set._inner, index))));\\n }\\n\\n /**\\n * @dev Return the entire set in an array\\n *\\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\\n */\\n function values(AddressSet storage set) internal view returns (address[] memory) {\\n bytes32[] memory store = _values(set._inner);\\n address[] memory result;\\n\\n /// @solidity memory-safe-assembly\\n assembly {\\n result := store\\n }\\n\\n return result;\\n }\\n\\n // UintSet\\n\\n struct UintSet {\\n Set _inner;\\n }\\n\\n /**\\n * @dev Add a value to a set. O(1).\\n *\\n * Returns true if the value was added to the set, that is if it was not\\n * already present.\\n */\\n function add(UintSet storage set, uint256 value) internal returns (bool) {\\n return _add(set._inner, bytes32(value));\\n }\\n\\n /**\\n * @dev Removes a value from a set. O(1).\\n *\\n * Returns true if the value was removed from the set, that is if it was\\n * present.\\n */\\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\\n return _remove(set._inner, bytes32(value));\\n }\\n\\n /**\\n * @dev Returns true if the value is in the set. O(1).\\n */\\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\\n return _contains(set._inner, bytes32(value));\\n }\\n\\n /**\\n * @dev Returns the number of values in the set. O(1).\\n */\\n function length(UintSet storage set) internal view returns (uint256) {\\n return _length(set._inner);\\n }\\n\\n /**\\n * @dev Returns the value stored at position `index` in the set. O(1).\\n *\\n * Note that there are no guarantees on the ordering of values inside the\\n * array, and it may change when more values are added or removed.\\n *\\n * Requirements:\\n *\\n * - `index` must be strictly less than {length}.\\n */\\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\\n return uint256(_at(set._inner, index));\\n }\\n\\n /**\\n * @dev Return the entire set in an array\\n *\\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\\n */\\n function values(UintSet storage set) internal view returns (uint256[] memory) {\\n bytes32[] memory store = _values(set._inner);\\n uint256[] memory result;\\n\\n /// @solidity memory-safe-assembly\\n assembly {\\n result := store\\n }\\n\\n return result;\\n }\\n}\\n\",\"keccak256\":\"0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514\",\"license\":\"MIT\"},\"src/RNSAuction.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { Initializable } from \\\"@openzeppelin/contracts/proxy/utils/Initializable.sol\\\";\\nimport { AccessControlEnumerable } from \\\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\\\";\\nimport { Math } from \\\"@openzeppelin/contracts/utils/math/Math.sol\\\";\\nimport { BitMaps } from \\\"@openzeppelin/contracts/utils/structs/BitMaps.sol\\\";\\nimport { INSUnified, INSAuction } from \\\"./interfaces/INSAuction.sol\\\";\\nimport { LibSafeRange } from \\\"./libraries/math/LibSafeRange.sol\\\";\\nimport { LibRNSDomain } from \\\"./libraries/LibRNSDomain.sol\\\";\\nimport { LibEventRange, EventRange } from \\\"./libraries/LibEventRange.sol\\\";\\nimport { RONTransferHelper } from \\\"./libraries/transfers/RONTransferHelper.sol\\\";\\n\\ncontract RNSAuction is Initializable, AccessControlEnumerable, INSAuction {\\n using LibSafeRange for uint256;\\n using BitMaps for BitMaps.BitMap;\\n using LibEventRange for EventRange;\\n\\n /// @inheritdoc INSAuction\\n uint64 public constant MAX_EXPIRY = type(uint64).max;\\n /// @inheritdoc INSAuction\\n uint256 public constant MAX_PERCENTAGE = 100_00;\\n /// @inheritdoc INSAuction\\n uint64 public constant DOMAIN_EXPIRY_DURATION = 365 days;\\n /// @inheritdoc INSAuction\\n uint64 public constant MAX_AUCTION_DOMAIN_EXPIRY = 365 days * 3;\\n /// @inheritdoc INSAuction\\n bytes32 public constant OPERATOR_ROLE = keccak256(\\\"OPERATOR_ROLE\\\");\\n\\n /// @dev Gap for upgradeability.\\n uint256[50] private ____gap;\\n /// @dev The RNSUnified contract.\\n INSUnified internal _rnsUnified;\\n /// @dev Mapping from auction Id => event range\\n mapping(bytes32 auctionId => EventRange) internal _auctionRange;\\n /// @dev Mapping from id of domain names => auction detail.\\n mapping(uint256 id => DomainAuction) internal _domainAuction;\\n\\n /// @dev The treasury.\\n address payable internal _treasury;\\n /// @dev The gap ratio between 2 bids with the starting price.\\n uint256 internal _bidGapRatio;\\n /// @dev Mapping from id => bool reserved status\\n BitMaps.BitMap internal _reserved;\\n\\n modifier whenNotStarted(bytes32 auctionId) {\\n _requireNotStarted(auctionId);\\n _;\\n }\\n\\n modifier onlyValidEventRange(EventRange calldata range) {\\n _requireValidEventRange(range);\\n _;\\n }\\n\\n constructor() payable {\\n _disableInitializers();\\n }\\n\\n function initialize(\\n address admin,\\n address[] calldata operators,\\n INSUnified rnsUnified,\\n address payable treasury,\\n uint256 bidGapRatio\\n ) external initializer {\\n _setTreasury(treasury);\\n _setBidGapRatio(bidGapRatio);\\n _setupRole(DEFAULT_ADMIN_ROLE, admin);\\n\\n uint256 length = operators.length;\\n bytes32 operatorRole = OPERATOR_ROLE;\\n\\n for (uint256 i; i < length;) {\\n _setupRole(operatorRole, operators[i]);\\n\\n unchecked {\\n ++i;\\n }\\n }\\n\\n _rnsUnified = rnsUnified;\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function bulkRegister(string[] calldata labels) external onlyRole(OPERATOR_ROLE) returns (uint256[] memory ids) {\\n uint256 length = labels.length;\\n if (length == 0) revert InvalidArrayLength();\\n ids = new uint256[](length);\\n INSUnified rnsUnified = _rnsUnified;\\n uint256 parentId = LibRNSDomain.RON_ID;\\n uint64 domainExpiryDuration = DOMAIN_EXPIRY_DURATION;\\n\\n for (uint256 i; i < length;) {\\n (, ids[i]) = rnsUnified.mint(parentId, labels[i], address(0x0), address(this), domainExpiryDuration);\\n _reserved.set(ids[i]);\\n\\n unchecked {\\n ++i;\\n }\\n }\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function reserved(uint256 id) public view returns (bool) {\\n return _reserved.get(id);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function createAuctionEvent(EventRange calldata range)\\n external\\n onlyRole(DEFAULT_ADMIN_ROLE)\\n onlyValidEventRange(range)\\n returns (bytes32 auctionId)\\n {\\n auctionId = keccak256(abi.encode(_msgSender(), range));\\n _auctionRange[auctionId] = range;\\n emit AuctionEventSet(auctionId, range);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function setAuctionEvent(bytes32 auctionId, EventRange calldata range)\\n external\\n onlyRole(DEFAULT_ADMIN_ROLE)\\n onlyValidEventRange(range)\\n whenNotStarted(auctionId)\\n {\\n _auctionRange[auctionId] = range;\\n emit AuctionEventSet(auctionId, range);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getAuctionEvent(bytes32 auctionId) public view returns (EventRange memory) {\\n return _auctionRange[auctionId];\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function listNamesForAuction(bytes32 auctionId, uint256[] calldata ids, uint256[] calldata startingPrices)\\n external\\n onlyRole(OPERATOR_ROLE)\\n whenNotStarted(auctionId)\\n {\\n uint256 length = ids.length;\\n if (length == 0 || length != startingPrices.length) revert InvalidArrayLength();\\n uint256 id;\\n bytes32 mAuctionId;\\n DomainAuction storage sAuction;\\n\\n for (uint256 i; i < length;) {\\n id = ids[i];\\n if (!reserved(id)) revert NameNotReserved();\\n\\n sAuction = _domainAuction[id];\\n mAuctionId = sAuction.auctionId;\\n if (!(mAuctionId == 0 || mAuctionId == auctionId || sAuction.bid.timestamp == 0)) {\\n revert AlreadyBidding();\\n }\\n\\n sAuction.auctionId = auctionId;\\n sAuction.startingPrice = startingPrices[i];\\n\\n unchecked {\\n ++i;\\n }\\n }\\n\\n emit LabelsListed(auctionId, ids, startingPrices);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function placeBid(uint256 id) external payable {\\n DomainAuction memory auction = _domainAuction[id];\\n EventRange memory range = _auctionRange[auction.auctionId];\\n uint256 beatPrice = _getBeatPrice(auction, range);\\n\\n if (!range.isInPeriod()) revert QueryIsNotInPeriod();\\n if (msg.value < beatPrice) revert InsufficientAmount();\\n address payable bidder = payable(_msgSender());\\n // check whether the bidder can receive RON\\n if (bidder != tx.origin) revert ContractBidderIsForbidden();\\n address payable prvBidder = auction.bid.bidder;\\n uint256 prvPrice = auction.bid.price;\\n\\n Bid storage sBid = _domainAuction[id].bid;\\n sBid.price = msg.value;\\n sBid.bidder = bidder;\\n sBid.timestamp = block.timestamp;\\n emit BidPlaced(auction.auctionId, id, msg.value, bidder, prvPrice, prvBidder);\\n\\n // refund for previous bidder\\n if (prvPrice != 0) RONTransferHelper.safeTransfer(prvBidder, prvPrice);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function bulkClaimBidNames(uint256[] calldata ids) external returns (uint256[] memory claimedAts) {\\n uint256 id;\\n uint256 accumulatedRON;\\n EventRange memory range;\\n DomainAuction memory auction;\\n uint256 length = ids.length;\\n claimedAts = new uint256[](length);\\n INSUnified rnsUnified = _rnsUnified;\\n uint64 expiry = uint64(block.timestamp.addWithUpperbound(DOMAIN_EXPIRY_DURATION, MAX_EXPIRY));\\n\\n for (uint256 i; i < length;) {\\n id = ids[i];\\n auction = _domainAuction[id];\\n range = _auctionRange[auction.auctionId];\\n\\n if (auction.bid.claimedAt == 0) {\\n if (!range.isEnded()) revert NotYetEnded();\\n if (auction.bid.timestamp == 0) revert NoOneBidded();\\n\\n accumulatedRON += auction.bid.price;\\n rnsUnified.setExpiry(id, expiry);\\n rnsUnified.transferFrom(address(this), auction.bid.bidder, id);\\n\\n _domainAuction[id].bid.claimedAt = claimedAts[i] = block.timestamp;\\n }\\n\\n unchecked {\\n ++i;\\n }\\n }\\n\\n RONTransferHelper.safeTransfer(_treasury, accumulatedRON);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getRNSUnified() external view returns (INSUnified) {\\n return _rnsUnified;\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getTreasury() external view returns (address) {\\n return _treasury;\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getBidGapRatio() external view returns (uint256) {\\n return _bidGapRatio;\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function setTreasury(address payable addr) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setTreasury(addr);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n\\n function setBidGapRatio(uint256 ratio) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setBidGapRatio(ratio);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getAuction(uint256 id) public view returns (DomainAuction memory auction, uint256 beatPrice) {\\n auction = _domainAuction[id];\\n EventRange memory range = getAuctionEvent(auction.auctionId);\\n beatPrice = _getBeatPrice(auction, range);\\n }\\n\\n /**\\n * @dev Helper method to set treasury.\\n *\\n * Emits an event {TreasuryUpdated}.\\n */\\n function _setTreasury(address payable addr) internal {\\n if (addr == address(0)) revert NullAssignment();\\n _treasury = addr;\\n emit TreasuryUpdated(addr);\\n }\\n\\n /**\\n * @dev Helper method to set bid gap ratio.\\n *\\n * Emits an event {BidGapRatioUpdated}.\\n */\\n function _setBidGapRatio(uint256 ratio) internal {\\n if (ratio > MAX_PERCENTAGE) revert RatioIsTooLarge();\\n _bidGapRatio = ratio;\\n emit BidGapRatioUpdated(ratio);\\n }\\n\\n /**\\n * @dev Helper method to get beat price.\\n */\\n function _getBeatPrice(DomainAuction memory auction, EventRange memory range)\\n internal\\n view\\n returns (uint256 beatPrice)\\n {\\n beatPrice = Math.max(auction.startingPrice, auction.bid.price);\\n // Beats price increases if domain is already bided and the event is not yet ended.\\n if (auction.bid.price != 0 && !range.isEnded()) {\\n beatPrice += Math.mulDiv(auction.startingPrice, _bidGapRatio, MAX_PERCENTAGE);\\n }\\n }\\n\\n /**\\n * @dev Helper method to ensure event range is valid.\\n */\\n function _requireValidEventRange(EventRange calldata range) internal view {\\n if (!(range.valid() && range.isNotYetStarted())) revert InvalidEventRange();\\n }\\n\\n /**\\n * @dev Helper method to ensure the auction is not yet started or not created.\\n */\\n function _requireNotStarted(bytes32 auctionId) internal view {\\n if (!_auctionRange[auctionId].isNotYetStarted()) revert EventIsNotCreatedOrAlreadyStarted();\\n }\\n}\\n\",\"keccak256\":\"0x965d6b3e075fa6a7398c343195416f551fca830c7e4b731554dc73aa8bafa427\",\"license\":\"MIT\"},\"src/interfaces/INSAuction.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { INSUnified } from \\\"./INSUnified.sol\\\";\\nimport { EventRange } from \\\"../libraries/LibEventRange.sol\\\";\\n\\ninterface INSAuction {\\n error NotYetEnded();\\n error NoOneBidded();\\n error NullAssignment();\\n error AlreadyBidding();\\n error RatioIsTooLarge();\\n error NameNotReserved();\\n error InvalidEventRange();\\n error QueryIsNotInPeriod();\\n error InsufficientAmount();\\n error InvalidArrayLength();\\n error ContractBidderIsForbidden();\\n error EventIsNotCreatedOrAlreadyStarted();\\n\\n struct Bid {\\n address payable bidder;\\n uint256 price;\\n uint256 timestamp;\\n uint256 claimedAt;\\n }\\n\\n struct DomainAuction {\\n bytes32 auctionId;\\n uint256 startingPrice;\\n Bid bid;\\n }\\n\\n /// @dev Emitted when an auction is set.\\n event AuctionEventSet(bytes32 indexed auctionId, EventRange range);\\n /// @dev Emitted when the labels are listed for auction.\\n event LabelsListed(bytes32 indexed auctionId, uint256[] ids, uint256[] startingPrices);\\n /// @dev Emitted when a bid is placed for a name.\\n event BidPlaced(\\n bytes32 indexed auctionId,\\n uint256 indexed id,\\n uint256 price,\\n address payable bidder,\\n uint256 previousPrice,\\n address previousBidder\\n );\\n /// @dev Emitted when the treasury is updated.\\n event TreasuryUpdated(address indexed addr);\\n /// @dev Emitted when bid gap ratio is updated.\\n event BidGapRatioUpdated(uint256 ratio);\\n\\n /**\\n * @dev The maximum expiry duration\\n */\\n function MAX_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev The maximum expiry duration of a domain after transferring to bidder.\\n */\\n function MAX_AUCTION_DOMAIN_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev Returns the operator role.\\n */\\n function OPERATOR_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Max percentage 100%. Values [0; 100_00] reflexes [0; 100%]\\n */\\n function MAX_PERCENTAGE() external pure returns (uint256);\\n\\n /**\\n * @dev The expiry duration of a domain after transferring to bidder.\\n */\\n function DOMAIN_EXPIRY_DURATION() external pure returns (uint64);\\n\\n /**\\n * @dev Claims domain names for auction.\\n *\\n * Requirements:\\n * - The method caller must be contract operator.\\n *\\n * @param labels The domain names. Eg, ['foo'] for 'foo.ron'\\n * @return ids The id corresponding for namehash of domain names.\\n */\\n function bulkRegister(string[] calldata labels) external returns (uint256[] memory ids);\\n\\n /**\\n * @dev Checks whether a domain name is currently reserved for auction or not.\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function reserved(uint256 id) external view returns (bool);\\n\\n /**\\n * @dev Creates a new auction to sale with a specific time period.\\n *\\n * Requirements:\\n * - The method caller must be admin.\\n *\\n * Emits an event {AuctionEventSet}.\\n *\\n * @return auctionId The auction id\\n * @notice Please use the method `setAuctionNames` to list all the reserved names.\\n */\\n function createAuctionEvent(EventRange calldata range) external returns (bytes32 auctionId);\\n\\n /**\\n * @dev Updates the auction details.\\n *\\n * Requirements:\\n * - The method caller must be admin.\\n *\\n * Emits an event {AuctionEventSet}.\\n */\\n function setAuctionEvent(bytes32 auctionId, EventRange calldata range) external;\\n\\n /**\\n * @dev Returns the event range of an auction.\\n */\\n function getAuctionEvent(bytes32 auctionId) external view returns (EventRange memory);\\n\\n /**\\n * @dev Lists reserved names to sale in a specified auction.\\n *\\n * Requirements:\\n * - The method caller must be contract operator.\\n * - Array length are matched and larger than 0.\\n * - Only allow to set when the domain is:\\n * + Not in any auction.\\n * + Or, in the current auction.\\n * + Or, this name is not bided.\\n *\\n * Emits an event {LabelsListed}.\\n *\\n * Note: If the name is already listed, this method replaces with a new input value.\\n *\\n * @param ids The namehashes id of domain names. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function listNamesForAuction(bytes32 auctionId, uint256[] calldata ids, uint256[] calldata startingPrices) external;\\n\\n /**\\n * @dev Places a bid for a domain name.\\n *\\n * Requirements:\\n * - The name is listed, or the auction is happening.\\n * - The msg.value is larger than the current bid price or the auction starting price.\\n *\\n * Emits an event {BidPlaced}.\\n *\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function placeBid(uint256 id) external payable;\\n\\n /**\\n * @dev Returns the highest bid and address of the bidder.\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function getAuction(uint256 id) external view returns (DomainAuction memory, uint256 beatPrice);\\n\\n /**\\n * @dev Bulk claims the bid name.\\n *\\n * Requirements:\\n * - Must be called after ended time.\\n * - The method caller can be anyone.\\n *\\n * @param ids The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function bulkClaimBidNames(uint256[] calldata ids) external returns (uint256[] memory claimedAts);\\n\\n /**\\n * @dev Returns the treasury.\\n */\\n function getTreasury() external view returns (address);\\n\\n /**\\n * @dev Returns the gap ratio between 2 bids with the starting price. Value in range [0;100_00] is 0%-100%.\\n */\\n function getBidGapRatio() external view returns (uint256);\\n\\n /**\\n * @dev Sets the treasury.\\n *\\n * Requirements:\\n * - The method caller must be admin\\n *\\n * Emits an event {TreasuryUpdated}.\\n */\\n function setTreasury(address payable) external;\\n\\n /**\\n * @dev Sets commission ratio. Value in range [0;100_00] is 0%-100%.\\n *\\n * Requirements:\\n * - The method caller must be admin\\n *\\n * Emits an event {BidGapRatioUpdated}.\\n */\\n function setBidGapRatio(uint256) external;\\n\\n /**\\n * @dev Returns RNSUnified contract.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n}\\n\",\"keccak256\":\"0x451e7a2f2e5c1c62e1b14ed011a879639a748e24fde0c1fcf27f691bb7946660\",\"license\":\"MIT\"},\"src/interfaces/INSUnified.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { IERC721Metadata } from \\\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\\";\\nimport { IAccessControlEnumerable } from \\\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\\\";\\nimport { ModifyingIndicator } from \\\"../types/ModifyingIndicator.sol\\\";\\n\\ninterface INSUnified is IAccessControlEnumerable, IERC721Metadata {\\n /// @dev Error: The provided token id is expired.\\n error Expired();\\n /// @dev Error: The provided token id is unexists.\\n error Unexists();\\n /// @dev Error: The provided id expiry is greater than parent id expiry.\\n error ExceedParentExpiry();\\n /// @dev Error: The provided name is unavailable for registration.\\n error Unavailable();\\n /// @dev Error: The sender lacks the necessary permissions.\\n error Unauthorized();\\n /// @dev Error: Missing controller role required for modification.\\n error MissingControllerRole();\\n /// @dev Error: Attempting to set an immutable field, which cannot be modified.\\n error CannotSetImmutableField();\\n /// @dev Error: Missing protected settler role required for modification.\\n error MissingProtectedSettlerRole();\\n /// @dev Error: Attempting to set an expiry time that is not larger than the previous one.\\n error ExpiryTimeMustBeLargerThanTheOldOne();\\n /// @dev Error: The provided name must be registered or is in a grace period.\\n error NameMustBeRegisteredOrInGracePeriod();\\n\\n /**\\n * | Fields\\\\Idc | Modifying Indicator |\\n * | ---------- | ------------------- |\\n * | depth | 0b00000001 |\\n * | parentId | 0b00000010 |\\n * | label | 0b00000100 |\\n */\\n struct ImmutableRecord {\\n // The level-th of a domain.\\n uint8 depth;\\n // The node of parent token. Eg, parent node of vip.duke.ron equals to namehash('duke.ron')\\n uint256 parentId;\\n // The label of a domain. Eg, label is vip for domain vip.duke.ron\\n string label;\\n }\\n\\n /**\\n * | Fields\\\\Idc,Roles | Modifying Indicator | Controller | Protected setter | (Parent) Owner/Spender |\\n * | ---------------- | ------------------- | ---------- | ---------------- | ---------------------- |\\n * | resolver | 0b00001000 | x | | x |\\n * | owner | 0b00010000 | x | | x |\\n * | expiry | 0b00100000 | x | | |\\n * | protected | 0b01000000 | | x | |\\n * Note: (Parent) Owner/Spender means parent owner or current owner or current token spender.\\n */\\n struct MutableRecord {\\n // The resolver address.\\n address resolver;\\n // The record owner. This field must equal to the owner of token.\\n address owner;\\n // Expiry timestamp.\\n uint64 expiry;\\n // Flag indicating whether the token is protected or not.\\n bool protected;\\n }\\n\\n struct Record {\\n ImmutableRecord immut;\\n MutableRecord mut;\\n }\\n\\n /// @dev Emitted when a base URI is updated.\\n event BaseURIUpdated(address indexed operator, string newURI);\\n /// @dev Emitted when the grace period for all domain is updated.\\n event GracePeriodUpdated(address indexed operator, uint64 newGracePeriod);\\n\\n /**\\n * @dev Emitted when the record of node is updated.\\n * @param indicator The binary index of updated fields. Eg, 0b10101011 means fields at position 1, 2, 4, 6, 8 (right\\n * to left) needs to be updated.\\n * @param record The updated fields.\\n */\\n event RecordUpdated(uint256 indexed node, ModifyingIndicator indicator, Record record);\\n\\n /**\\n * @dev Returns the controller role.\\n * @notice Can set all fields {Record.mut} in token record, excepting {Record.mut.protected}.\\n */\\n function CONTROLLER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the protected setter role.\\n * @notice Can set field {Record.mut.protected} in token record by using method `bulkSetProtected`.\\n */\\n function PROTECTED_SETTLER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the reservation role.\\n * @notice Never expire for token owner has this role.\\n */\\n function RESERVATION_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the max expiry value.\\n */\\n function MAX_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev Returns the name hash output of a domain.\\n */\\n function namehash(string memory domain) external pure returns (bytes32 node);\\n\\n /**\\n * @dev Returns true if the specified name is available for registration.\\n * Note: Only available after passing the grace period.\\n */\\n function available(uint256 id) external view returns (bool);\\n\\n /**\\n * @dev Returns the grace period in second(s).\\n * Note: This period affects the availability of the domain.\\n */\\n function getGracePeriod() external view returns (uint64);\\n\\n /**\\n * @dev Returns the total minted ids.\\n * Note: Burning id will not affect `totalMinted`.\\n */\\n function totalMinted() external view returns (uint256);\\n\\n /**\\n * @dev Sets the grace period in second(s).\\n *\\n * Requirements:\\n * - The method caller must have controller role.\\n *\\n * Note: This period affects the availability of the domain.\\n */\\n function setGracePeriod(uint64) external;\\n\\n /**\\n * @dev Sets the base uri.\\n *\\n * Requirements:\\n * - The method caller must be contract owner.\\n *\\n */\\n function setBaseURI(string calldata baseTokenURI) external;\\n\\n /**\\n * @dev Mints token for subnode.\\n *\\n * Requirements:\\n * - The token must be available.\\n * - The method caller must be (parent) owner or approved spender. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n *\\n * @param parentId The parent node to mint or create subnode.\\n * @param label The domain label. Eg, label is duke for domain duke.ron.\\n * @param resolver The resolver address.\\n * @param owner The token owner.\\n * @param duration Duration in second(s) to expire. Leave 0 to set as parent.\\n */\\n function mint(uint256 parentId, string calldata label, address resolver, address owner, uint64 duration)\\n external\\n returns (uint64 expiryTime, uint256 id);\\n\\n /**\\n * @dev Returns all record of a domain.\\n * Reverts if the token is non existent.\\n */\\n function getRecord(uint256 id) external view returns (Record memory record);\\n\\n /**\\n * @dev Returns the domain name of id.\\n */\\n function getDomain(uint256 id) external view returns (string memory domain);\\n\\n /**\\n * @dev Returns whether the requester is able to modify the record based on the updated index.\\n * Note: This method strictly follows the permission of struct {MutableRecord}.\\n */\\n function canSetRecord(address requester, uint256 id, ModifyingIndicator indicator)\\n external\\n view\\n returns (bool, bytes4 error);\\n\\n /**\\n * @dev Sets record of existing token. Update operation for {Record.mut}.\\n *\\n * Requirements:\\n * - The method caller must have role based on the corresponding `indicator`. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function setRecord(uint256 id, ModifyingIndicator indicator, MutableRecord calldata record) external;\\n\\n /**\\n * @dev Reclaims ownership. Update operation for {Record.mut.owner}.\\n *\\n * Requirements:\\n * - The method caller should have controller role.\\n * - The method caller should be (parent) owner or approved spender. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function reclaim(uint256 id, address owner) external;\\n\\n /**\\n * @dev Renews token. Update operation for {Record.mut.expiry}.\\n *\\n * Requirements:\\n * - The method caller should have controller role.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function renew(uint256 id, uint64 duration) external returns (uint64 expiry);\\n\\n /**\\n * @dev Sets expiry time for a token. Update operation for {Record.mut.expiry}.\\n *\\n * Requirements:\\n * - The method caller must have controller role.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function setExpiry(uint256 id, uint64 expiry) external;\\n\\n /**\\n * @dev Sets the protected status of a list of ids. Update operation for {Record.mut.protected}.\\n *\\n * Requirements:\\n * - The method caller must have protected setter role.\\n *\\n * Emits events {RecordUpdated}.\\n */\\n function bulkSetProtected(uint256[] calldata ids, bool protected) external;\\n}\\n\",\"keccak256\":\"0xaef1c58bb7c8688d6677a1c2739c0dc9e645ca5c64dd875be2f2b7a318a11406\",\"license\":\"MIT\"},\"src/libraries/LibEventRange.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nstruct EventRange {\\n uint256 startedAt;\\n uint256 endedAt;\\n}\\n\\nlibrary LibEventRange {\\n /**\\n * @dev Checks whether the event range is valid.\\n */\\n function valid(EventRange calldata range) internal pure returns (bool) {\\n return range.startedAt <= range.endedAt;\\n }\\n\\n /**\\n * @dev Returns whether the current range is not yet started.\\n */\\n function isNotYetStarted(EventRange memory range) internal view returns (bool) {\\n return block.timestamp < range.startedAt;\\n }\\n\\n /**\\n * @dev Returns whether the current range is ended or not.\\n */\\n function isEnded(EventRange memory range) internal view returns (bool) {\\n return range.endedAt <= block.timestamp;\\n }\\n\\n /**\\n * @dev Returns whether the current block is in period.\\n */\\n function isInPeriod(EventRange memory range) internal view returns (bool) {\\n return range.startedAt <= block.timestamp && block.timestamp < range.endedAt;\\n }\\n}\\n\",\"keccak256\":\"0x95bf015c4245919cbcbcd810dd597fdb23eb4e58b62df8ef74b1c8c60a969bea\",\"license\":\"MIT\"},\"src/libraries/LibRNSDomain.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nlibrary LibRNSDomain {\\n /// @dev Value equals to namehash('ron')\\n uint256 internal constant RON_ID = 0xba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688;\\n /// @dev Value equals to namehash('addr.reverse')\\n uint256 internal constant ADDR_REVERSE_ID = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2;\\n\\n /**\\n * @dev Calculate the corresponding id given parentId and label.\\n */\\n function toId(uint256 parentId, string memory label) internal pure returns (uint256 id) {\\n assembly (\\\"memory-safe\\\") {\\n mstore(0x0, parentId)\\n mstore(0x20, keccak256(add(label, 32), mload(label)))\\n id := keccak256(0x0, 64)\\n }\\n }\\n\\n /**\\n * @dev Calculates the hash of the label.\\n */\\n function hashLabel(string memory label) internal pure returns (bytes32 hashed) {\\n assembly (\\\"memory-safe\\\") {\\n hashed := keccak256(add(label, 32), mload(label))\\n }\\n }\\n\\n /**\\n * @dev Calculate the RNS namehash of a str.\\n */\\n function namehash(string memory str) internal pure returns (bytes32 hashed) {\\n // notice: this method is case-sensitive, ensure the string is lowercased before calling this method\\n assembly (\\\"memory-safe\\\") {\\n // load str length\\n let len := mload(str)\\n // returns bytes32(0x0) if length is zero\\n if iszero(iszero(len)) {\\n let hashedLen\\n // compute pointer to str[0]\\n let head := add(str, 32)\\n // compute pointer to str[length - 1]\\n let tail := add(head, sub(len, 1))\\n // cleanup dirty bytes if contains any\\n mstore(0x0, 0)\\n // loop backwards from `tail` to `head`\\n for { let i := tail } iszero(lt(i, head)) { i := sub(i, 1) } {\\n // check if `i` is `head`\\n let isHead := eq(i, head)\\n // check if `str[i-1]` is \\\".\\\"\\n // `0x2e` == bytes1(\\\".\\\")\\n let isDotNext := eq(shr(248, mload(sub(i, 1))), 0x2e)\\n if or(isHead, isDotNext) {\\n // size = distance(length, i) - hashedLength + 1\\n let size := add(sub(sub(tail, i), hashedLen), 1)\\n mstore(0x20, keccak256(i, size))\\n mstore(0x0, keccak256(0x0, 64))\\n // skip \\\".\\\" thereby + 1\\n hashedLen := add(hashedLen, add(size, 1))\\n }\\n }\\n }\\n hashed := mload(0x0)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x715029b2b420c6ec00bc1f939b837acf45d247fde8426089575b0e7b5e84518b\",\"license\":\"MIT\"},\"src/libraries/math/LibSafeRange.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nlibrary LibSafeRange {\\n function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\\n unchecked {\\n c = a + b;\\n if (c < a) return type(uint256).max;\\n }\\n }\\n\\n /**\\n * @dev Returns value of a + b; in case result is larger than upperbound, upperbound is returned.\\n */\\n function addWithUpperbound(uint256 a, uint256 b, uint256 ceil) internal pure returns (uint256 c) {\\n if (a > ceil || b > ceil) return ceil;\\n c = add(a, b);\\n if (c > ceil) return ceil;\\n }\\n}\\n\",\"keccak256\":\"0x12cf5f592a2d80b9c1b0ea11b8fe2b3ed42fc6d62303ba667edc56464baa8810\",\"license\":\"MIT\"},\"src/libraries/transfers/RONTransferHelper.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport { Strings } from \\\"@openzeppelin/contracts/utils/Strings.sol\\\";\\n\\n/**\\n * @title RONTransferHelper\\n */\\nlibrary RONTransferHelper {\\n using Strings for *;\\n\\n /**\\n * @dev Transfers RON and wraps result for the method caller to a recipient.\\n */\\n function safeTransfer(address payable _to, uint256 _value) internal {\\n bool _success = send(_to, _value);\\n if (!_success) {\\n revert(\\n string.concat(\\\"TransferHelper: could not transfer RON to \\\", _to.toHexString(), \\\" value \\\", _value.toHexString())\\n );\\n }\\n }\\n\\n /**\\n * @dev Returns whether the call was success.\\n * Note: this function should use with the `ReentrancyGuard`.\\n */\\n function send(address payable _to, uint256 _value) internal returns (bool _success) {\\n (_success,) = _to.call{ value: _value }(new bytes(0));\\n }\\n}\\n\",\"keccak256\":\"0x733e60374ee0a33d0da2ee24976b893ca6b6d9764243b175e1ac8025240394da\",\"license\":\"MIT\"},\"src/types/ModifyingIndicator.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\ntype ModifyingIndicator is uint256;\\n\\nusing { hasAny } for ModifyingIndicator global;\\nusing { or as | } for ModifyingIndicator global;\\nusing { and as & } for ModifyingIndicator global;\\nusing { eq as == } for ModifyingIndicator global;\\nusing { not as ~ } for ModifyingIndicator global;\\nusing { xor as ^ } for ModifyingIndicator global;\\nusing { neq as != } for ModifyingIndicator global;\\n\\n/// @dev Indicator for modifying immutable fields: Depth, ParentId, Label. See struct {INSUnified.ImmutableRecord}.\\nModifyingIndicator constant IMMUTABLE_FIELDS_INDICATOR = ModifyingIndicator.wrap(0x7);\\n\\n/// @dev Indicator for modifying user fields: Resolver, Owner. See struct {INSUnified.MutableRecord}.\\nModifyingIndicator constant USER_FIELDS_INDICATOR = ModifyingIndicator.wrap(0x18);\\n\\n/// @dev Indicator when modifying all of the fields in {ModifyingField}.\\nModifyingIndicator constant ALL_FIELDS_INDICATOR = ModifyingIndicator.wrap(type(uint256).max);\\n\\nfunction eq(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return ModifyingIndicator.unwrap(self) == ModifyingIndicator.unwrap(other);\\n}\\n\\nfunction neq(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return !eq(self, other);\\n}\\n\\nfunction xor(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) ^ ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction not(ModifyingIndicator self) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(~ModifyingIndicator.unwrap(self));\\n}\\n\\nfunction or(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) | ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction and(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) & ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction hasAny(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return self & other != ModifyingIndicator.wrap(0);\\n}\\n\",\"keccak256\":\"0x2e42fbba358c470ff6b57268367d248f0e2fcf8d7142d762688f7aef5efae7ee\",\"license\":\"MIT\"}},\"version\":1}", - "nonce": 182592, - "numDeployments": 3, + "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"AlreadyBidding\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ContractBidderIsForbidden\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EventIsNotCreatedOrAlreadyStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEventRange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NameNotReserved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoOneBidded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotYetEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullAssignment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueryIsNotInPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RatioIsTooLarge\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endedAt\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct EventRange\",\"name\":\"range\",\"type\":\"tuple\"}],\"name\":\"AuctionEventSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"}],\"name\":\"BidGapRatioUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"bidder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousBidder\",\"type\":\"address\"}],\"name\":\"BidPlaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"startingPrices\",\"type\":\"uint256[]\"}],\"name\":\"LabelsListed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_EXPIRY_DURATION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_AUCTION_DOMAIN_EXPIRY\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_EXPIRY\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_PERCENTAGE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"bulkClaimBidNames\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"claimedAts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tos\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"}],\"name\":\"bulkClaimUnbiddedNames\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"claimeds\",\"type\":\"bool[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"labels\",\"type\":\"string[]\"}],\"name\":\"bulkRegister\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct EventRange\",\"name\":\"range\",\"type\":\"tuple\"}],\"name\":\"createAuctionEvent\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getAuction\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"bidder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct INSAuction.Bid\",\"name\":\"bid\",\"type\":\"tuple\"}],\"internalType\":\"struct INSAuction.DomainAuction\",\"name\":\"auction\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"beatPrice\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"}],\"name\":\"getAuctionEvent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct EventRange\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBidGapRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRNSUnified\",\"outputs\":[{\"internalType\":\"contract INSUnified\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"contract INSUnified\",\"name\":\"rnsUnified\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bidGapRatio\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"startingPrices\",\"type\":\"uint256[]\"}],\"name\":\"listNamesForAuction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"placeBid\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"reserved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"auctionId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct EventRange\",\"name\":\"range\",\"type\":\"tuple\"}],\"name\":\"setAuctionEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"}],\"name\":\"setBidGapRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AuctionEventSet(bytes32,(uint256,uint256))\":{\"details\":\"Emitted when an auction is set.\"},\"BidGapRatioUpdated(uint256)\":{\"details\":\"Emitted when bid gap ratio is updated.\"},\"BidPlaced(bytes32,uint256,uint256,address,uint256,address)\":{\"details\":\"Emitted when a bid is placed for a name.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"LabelsListed(bytes32,uint256[],uint256[])\":{\"details\":\"Emitted when the labels are listed for auction.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"TreasuryUpdated(address)\":{\"details\":\"Emitted when the treasury is updated.\"}},\"kind\":\"dev\",\"methods\":{\"bulkClaimBidNames(uint256[])\":{\"details\":\"Bulk claims the bid name. Requirements: - Must be called after ended time. - The method caller can be anyone.\",\"params\":{\"ids\":\"The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"bulkClaimUnbiddedNames(address[],uint256[],bool)\":{\"details\":\"Claim unbidded names and transfer them to the specified addresses. Requirements: - The method caller must be contract operator.\",\"params\":{\"allowFailure\":\"Flag to indicate whether to allow failure if a domain is already being bid on.\",\"ids\":\"The id corresponding for namehash of domain names.\",\"tos\":\"The array of addresses to transfer domain names to.\"},\"returns\":{\"claimeds\":\"An array indicating whether each domain name was successfully claimed.\"}},\"bulkRegister(string[])\":{\"details\":\"Claims domain names for auction. Requirements: - The method caller must be contract operator.\",\"params\":{\"labels\":\"The domain names. Eg, ['foo'] for 'foo.ron'\"},\"returns\":{\"ids\":\"The id corresponding for namehash of domain names.\"}},\"createAuctionEvent((uint256,uint256))\":{\"details\":\"Creates a new auction to sale with a specific time period. Requirements: - The method caller must be admin. Emits an event {AuctionEventSet}.\",\"returns\":{\"auctionId\":\"The auction id\"}},\"getAuction(uint256)\":{\"details\":\"Returns the highest bid and address of the bidder.\",\"params\":{\"id\":\"The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"getAuctionEvent(bytes32)\":{\"details\":\"Returns the event range of an auction.\"},\"getBidGapRatio()\":{\"details\":\"Returns the gap ratio between 2 bids with the starting price. Value in range [0;100_00] is 0%-100%.\"},\"getRNSUnified()\":{\"details\":\"Returns RNSUnified contract.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTreasury()\":{\"details\":\"Returns the treasury.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"listNamesForAuction(bytes32,uint256[],uint256[])\":{\"details\":\"Lists reserved names to sale in a specified auction. Requirements: - The method caller must be contract operator. - Array length are matched and larger than 0. - Only allow to set when the domain is: + Not in any auction. + Or, in the current auction. + Or, this name is not bided. Emits an event {LabelsListed}. Note: If the name is already listed, this method replaces with a new input value.\",\"params\":{\"ids\":\"The namehashes id of domain names. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"placeBid(uint256)\":{\"details\":\"Places a bid for a domain name. Requirements: - The name is listed, or the auction is happening. - The msg.value is larger than the current bid price or the auction starting price. Emits an event {BidPlaced}.\",\"params\":{\"id\":\"The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"reserved(uint256)\":{\"details\":\"Checks whether a domain name is currently reserved for auction or not.\",\"params\":{\"id\":\"The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setAuctionEvent(bytes32,(uint256,uint256))\":{\"details\":\"Updates the auction details. Requirements: - The method caller must be admin. Emits an event {AuctionEventSet}.\"},\"setBidGapRatio(uint256)\":{\"details\":\"Sets commission ratio. Value in range [0;100_00] is 0%-100%. Requirements: - The method caller must be admin Emits an event {BidGapRatioUpdated}.\"},\"setTreasury(address)\":{\"details\":\"Sets the treasury. Requirements: - The method caller must be admin Emits an event {TreasuryUpdated}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"DOMAIN_EXPIRY_DURATION\":{\"details\":\"The expiry duration of a domain after transferring to bidder.\"},\"MAX_AUCTION_DOMAIN_EXPIRY\":{\"details\":\"The maximum expiry duration of a domain after transferring to bidder.\"},\"MAX_EXPIRY\":{\"details\":\"The maximum expiry duration\"},\"MAX_PERCENTAGE\":{\"details\":\"Max percentage 100%. Values [0; 100_00] reflexes [0; 100%]\"},\"OPERATOR_ROLE\":{\"details\":\"Returns the operator role.\"},\"____gap\":{\"details\":\"Gap for upgradeability.\"},\"_auctionRange\":{\"details\":\"Mapping from auction Id => event range\"},\"_bidGapRatio\":{\"details\":\"The gap ratio between 2 bids with the starting price.\"},\"_domainAuction\":{\"details\":\"Mapping from id of domain names => auction detail.\"},\"_reserved\":{\"details\":\"Mapping from id => bool reserved status\"},\"_rnsUnified\":{\"details\":\"The RNSUnified contract.\"},\"_treasury\":{\"details\":\"The treasury.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createAuctionEvent((uint256,uint256))\":{\"notice\":\"Please use the method `setAuctionNames` to list all the reserved names.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/RNSAuction.sol\":\"RNSAuction\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/buffer/=lib/buffer/\",\":@ensdomains/ens-contracts/=lib/ens-contracts/contracts/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":@pythnetwork/=lib/pyth-sdk-solidity/\",\":@rns-contracts/=src/\",\":buffer/=lib/buffer/contracts/\",\":contract-template/=lib/contract-template/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":ens-contracts/=lib/ens-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":foundry-deployment-kit/=lib/foundry-deployment-kit/script/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pyth-sdk-solidity/=lib/pyth-sdk-solidity/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```solidity\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```solidity\\n * function foo() public {\\n * require(hasRole(MY_ROLE, msg.sender));\\n * ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\\n * to enforce additional security measures for this role.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n struct RoleData {\\n mapping(address => bool) members;\\n bytes32 adminRole;\\n }\\n\\n mapping(bytes32 => RoleData) private _roles;\\n\\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n /**\\n * @dev Modifier that checks that an account has a specific role. Reverts\\n * with a standardized message including the required role.\\n *\\n * The format of the revert reason is given by the following regular expression:\\n *\\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n *\\n * _Available since v4.1._\\n */\\n modifier onlyRole(bytes32 role) {\\n _checkRole(role);\\n _;\\n }\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n return _roles[role].members[account];\\n }\\n\\n /**\\n * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n * Overriding this function changes the behavior of the {onlyRole} modifier.\\n *\\n * Format of the revert message is described in {_checkRole}.\\n *\\n * _Available since v4.6._\\n */\\n function _checkRole(bytes32 role) internal view virtual {\\n _checkRole(role, _msgSender());\\n }\\n\\n /**\\n * @dev Revert with a standard message if `account` is missing `role`.\\n *\\n * The format of the revert reason is given by the following regular expression:\\n *\\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n */\\n function _checkRole(bytes32 role, address account) internal view virtual {\\n if (!hasRole(role, account)) {\\n revert(\\n string(\\n abi.encodePacked(\\n \\\"AccessControl: account \\\",\\n Strings.toHexString(account),\\n \\\" is missing role \\\",\\n Strings.toHexString(uint256(role), 32)\\n )\\n )\\n );\\n }\\n }\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n return _roles[role].adminRole;\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n *\\n * May emit a {RoleGranted} event.\\n */\\n function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n _grantRole(role, account);\\n }\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n _revokeRole(role, account);\\n }\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function renounceRole(bytes32 role, address account) public virtual override {\\n require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n _revokeRole(role, account);\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event. Note that unlike {grantRole}, this function doesn't perform any\\n * checks on the calling account.\\n *\\n * May emit a {RoleGranted} event.\\n *\\n * [WARNING]\\n * ====\\n * This function should only be called from the constructor when setting\\n * up the initial roles for the system.\\n *\\n * Using this function in any other way is effectively circumventing the admin\\n * system imposed by {AccessControl}.\\n * ====\\n *\\n * NOTE: This function is deprecated in favor of {_grantRole}.\\n */\\n function _setupRole(bytes32 role, address account) internal virtual {\\n _grantRole(role, account);\\n }\\n\\n /**\\n * @dev Sets `adminRole` as ``role``'s admin role.\\n *\\n * Emits a {RoleAdminChanged} event.\\n */\\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n bytes32 previousAdminRole = getRoleAdmin(role);\\n _roles[role].adminRole = adminRole;\\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * Internal function without access restriction.\\n *\\n * May emit a {RoleGranted} event.\\n */\\n function _grantRole(bytes32 role, address account) internal virtual {\\n if (!hasRole(role, account)) {\\n _roles[role].members[account] = true;\\n emit RoleGranted(role, account, _msgSender());\\n }\\n }\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * Internal function without access restriction.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function _revokeRole(bytes32 role, address account) internal virtual {\\n if (hasRole(role, account)) {\\n _roles[role].members[account] = false;\\n emit RoleRevoked(role, account, _msgSender());\\n }\\n }\\n}\\n\",\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControlEnumerable.sol\\\";\\nimport \\\"./AccessControl.sol\\\";\\nimport \\\"../utils/structs/EnumerableSet.sol\\\";\\n\\n/**\\n * @dev Extension of {AccessControl} that allows enumerating the members of each role.\\n */\\nabstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {\\n using EnumerableSet for EnumerableSet.AddressSet;\\n\\n mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev Returns one of the accounts that have `role`. `index` must be a\\n * value between 0 and {getRoleMemberCount}, non-inclusive.\\n *\\n * Role bearers are not sorted in any particular way, and their ordering may\\n * change at any point.\\n *\\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\\n * you perform all queries on the same block. See the following\\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\\n * for more information.\\n */\\n function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) {\\n return _roleMembers[role].at(index);\\n }\\n\\n /**\\n * @dev Returns the number of accounts that have `role`. Can be used\\n * together with {getRoleMember} to enumerate all bearers of a role.\\n */\\n function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) {\\n return _roleMembers[role].length();\\n }\\n\\n /**\\n * @dev Overload {_grantRole} to track enumerable memberships\\n */\\n function _grantRole(bytes32 role, address account) internal virtual override {\\n super._grantRole(role, account);\\n _roleMembers[role].add(account);\\n }\\n\\n /**\\n * @dev Overload {_revokeRole} to track enumerable memberships\\n */\\n function _revokeRole(bytes32 role, address account) internal virtual override {\\n super._revokeRole(role, account);\\n _roleMembers[role].remove(account);\\n }\\n}\\n\",\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n /**\\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n *\\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n * {RoleAdminChanged} not being emitted signaling this.\\n *\\n * _Available since v3.1._\\n */\\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n /**\\n * @dev Emitted when `account` is granted `role`.\\n *\\n * `sender` is the account that originated the contract call, an admin role\\n * bearer except when using {AccessControl-_setupRole}.\\n */\\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Emitted when `account` is revoked `role`.\\n *\\n * `sender` is the account that originated the contract call:\\n * - if using `revokeRole`, it is the admin role bearer\\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n */\\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function grantRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function revokeRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been granted `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n */\\n function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\n\\n/**\\n * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.\\n */\\ninterface IAccessControlEnumerable is IAccessControl {\\n /**\\n * @dev Returns one of the accounts that have `role`. `index` must be a\\n * value between 0 and {getRoleMemberCount}, non-inclusive.\\n *\\n * Role bearers are not sorted in any particular way, and their ordering may\\n * change at any point.\\n *\\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\\n * you perform all queries on the same block. See the following\\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\\n * for more information.\\n */\\n function getRoleMember(bytes32 role, uint256 index) external view returns (address);\\n\\n /**\\n * @dev Returns the number of accounts that have `role`. Can be used\\n * together with {getRoleMember} to enumerate all bearers of a role.\\n */\\n function getRoleMemberCount(bytes32 role) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/Address.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n * function initialize() initializer public {\\n * __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n * }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n * function initializeV2() reinitializer(2) public {\\n * __ERC20Permit_init(\\\"MyToken\\\");\\n * }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n * _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n /**\\n * @dev Indicates that the contract has been initialized.\\n * @custom:oz-retyped-from bool\\n */\\n uint8 private _initialized;\\n\\n /**\\n * @dev Indicates that the contract is in the process of being initialized.\\n */\\n bool private _initializing;\\n\\n /**\\n * @dev Triggered when the contract has been initialized or reinitialized.\\n */\\n event Initialized(uint8 version);\\n\\n /**\\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n * `onlyInitializing` functions can be used to initialize parent contracts.\\n *\\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n * constructor.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier initializer() {\\n bool isTopLevelCall = !_initializing;\\n require(\\n (isTopLevelCall && _initialized < 1) || (!Address.isContract(address(this)) && _initialized == 1),\\n \\\"Initializable: contract is already initialized\\\"\\n );\\n _initialized = 1;\\n if (isTopLevelCall) {\\n _initializing = true;\\n }\\n _;\\n if (isTopLevelCall) {\\n _initializing = false;\\n emit Initialized(1);\\n }\\n }\\n\\n /**\\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n * used to initialize parent contracts.\\n *\\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n * are added through upgrades and that require initialization.\\n *\\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n * cannot be nested. If one is invoked in the context of another, execution will revert.\\n *\\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n * a contract, executing them in the right order is up to the developer or operator.\\n *\\n * WARNING: setting the version to 255 will prevent any future reinitialization.\\n *\\n * Emits an {Initialized} event.\\n */\\n modifier reinitializer(uint8 version) {\\n require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n _initialized = version;\\n _initializing = true;\\n _;\\n _initializing = false;\\n emit Initialized(version);\\n }\\n\\n /**\\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n */\\n modifier onlyInitializing() {\\n require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n _;\\n }\\n\\n /**\\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n * through proxies.\\n *\\n * Emits an {Initialized} event the first time it is successfully executed.\\n */\\n function _disableInitializers() internal virtual {\\n require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n if (_initialized != type(uint8).max) {\\n _initialized = type(uint8).max;\\n emit Initialized(type(uint8).max);\\n }\\n }\\n\\n /**\\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n */\\n function _getInitializedVersion() internal view returns (uint8) {\\n return _initialized;\\n }\\n\\n /**\\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n */\\n function _isInitializing() internal view returns (bool) {\\n return _initializing;\\n }\\n}\\n\",\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the caller.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC721.sol\\\";\\n\\n/**\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\n */\\ninterface IERC721Metadata is IERC721 {\\n /**\\n * @dev Returns the token collection name.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the token collection symbol.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\\n */\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n *\\n * Furthermore, `isContract` will also return true if the target contract within\\n * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n * which only has an effect at the end of a transaction.\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n *\\n * _Available since v4.8._\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n if (success) {\\n if (returndata.length == 0) {\\n // only check isContract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n }\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason or using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n _revert(returndata, errorMessage);\\n }\\n }\\n\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n */\\n function toString(int256 value) internal pure returns (string memory) {\\n return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\n buffer[i] = _SYMBOLS[value & 0xf];\\n value >>= 4;\\n }\\n require(value == 0, \\\"Strings: hex length insufficient\\\");\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n }\\n\\n /**\\n * @dev Returns true if the two strings are equal.\\n */\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\n return keccak256(bytes(a)) == keccak256(bytes(b));\\n }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n enum Rounding {\\n Down, // Toward negative infinity\\n Up, // Toward infinity\\n Zero // Toward zero\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a & b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds up instead\\n * of rounding down.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n * with further edits by Uniswap Labs also under MIT license.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod0 := mul(x, y)\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n // The surrounding unchecked block does not change this fact.\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n // See https://cs.stackexchange.com/q/138556/92363.\\n\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\n uint256 twos = denominator & (~denominator + 1);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n // in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 << (log2(a) >> 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 128;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 64;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 32;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 16;\\n }\\n if (value >> 8 > 0) {\\n value >>= 8;\\n result += 8;\\n }\\n if (value >> 4 > 0) {\\n value >>= 4;\\n result += 4;\\n }\\n if (value >> 2 > 0) {\\n value >>= 2;\\n result += 2;\\n }\\n if (value >> 1 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >= 10 ** 64) {\\n value /= 10 ** 64;\\n result += 64;\\n }\\n if (value >= 10 ** 32) {\\n value /= 10 ** 32;\\n result += 32;\\n }\\n if (value >= 10 ** 16) {\\n value /= 10 ** 16;\\n result += 16;\\n }\\n if (value >= 10 ** 8) {\\n value /= 10 ** 8;\\n result += 8;\\n }\\n if (value >= 10 ** 4) {\\n value /= 10 ** 4;\\n result += 4;\\n }\\n if (value >= 10 ** 2) {\\n value /= 10 ** 2;\\n result += 2;\\n }\\n if (value >= 10 ** 1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 16;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 8;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 4;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 2;\\n }\\n if (value >> 8 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n }\\n }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n /**\\n * @dev Returns the largest of two signed numbers.\\n */\\n function max(int256 a, int256 b) internal pure returns (int256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two signed numbers.\\n */\\n function min(int256 a, int256 b) internal pure returns (int256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two signed numbers without overflow.\\n * The result is rounded towards zero.\\n */\\n function average(int256 a, int256 b) internal pure returns (int256) {\\n // Formula from the book \\\"Hacker's Delight\\\"\\n int256 x = (a & b) + ((a ^ b) >> 1);\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\n }\\n\\n /**\\n * @dev Returns the absolute unsigned value of a signed value.\\n */\\n function abs(int256 n) internal pure returns (uint256) {\\n unchecked {\\n // must be unchecked in order to support `n = type(int256).min`\\n return uint256(n >= 0 ? n : -n);\\n }\\n }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/BitMaps.sol)\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for managing uint256 to bool mapping in a compact and efficient way, providing the keys are sequential.\\n * Largely inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor].\\n */\\nlibrary BitMaps {\\n struct BitMap {\\n mapping(uint256 => uint256) _data;\\n }\\n\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap storage bitmap, uint256 index) internal view returns (bool) {\\n uint256 bucket = index >> 8;\\n uint256 mask = 1 << (index & 0xff);\\n return bitmap._data[bucket] & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index` to the boolean `value`.\\n */\\n function setTo(BitMap storage bitmap, uint256 index, bool value) internal {\\n if (value) {\\n set(bitmap, index);\\n } else {\\n unset(bitmap, index);\\n }\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap storage bitmap, uint256 index) internal {\\n uint256 bucket = index >> 8;\\n uint256 mask = 1 << (index & 0xff);\\n bitmap._data[bucket] |= mask;\\n }\\n\\n /**\\n * @dev Unsets the bit at `index`.\\n */\\n function unset(BitMap storage bitmap, uint256 index) internal {\\n uint256 bucket = index >> 8;\\n uint256 mask = 1 << (index & 0xff);\\n bitmap._data[bucket] &= ~mask;\\n }\\n}\\n\",\"keccak256\":\"0xac946730f979a447732a5bed58aa30c995ae666c3e1663b312ab5fd11dbe3eb6\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/EnumerableSet.sol)\\n// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for managing\\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\\n * types.\\n *\\n * Sets have the following properties:\\n *\\n * - Elements are added, removed, and checked for existence in constant time\\n * (O(1)).\\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\\n *\\n * ```solidity\\n * contract Example {\\n * // Add the library methods\\n * using EnumerableSet for EnumerableSet.AddressSet;\\n *\\n * // Declare a set state variable\\n * EnumerableSet.AddressSet private mySet;\\n * }\\n * ```\\n *\\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\\n * and `uint256` (`UintSet`) are supported.\\n *\\n * [WARNING]\\n * ====\\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\\n * unusable.\\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\\n *\\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\\n * array of EnumerableSet.\\n * ====\\n */\\nlibrary EnumerableSet {\\n // To implement this library for multiple types with as little code\\n // repetition as possible, we write it in terms of a generic Set type with\\n // bytes32 values.\\n // The Set implementation uses private functions, and user-facing\\n // implementations (such as AddressSet) are just wrappers around the\\n // underlying Set.\\n // This means that we can only create new EnumerableSets for types that fit\\n // in bytes32.\\n\\n struct Set {\\n // Storage of set values\\n bytes32[] _values;\\n // Position of the value in the `values` array, plus 1 because index 0\\n // means a value is not in the set.\\n mapping(bytes32 => uint256) _indexes;\\n }\\n\\n /**\\n * @dev Add a value to a set. O(1).\\n *\\n * Returns true if the value was added to the set, that is if it was not\\n * already present.\\n */\\n function _add(Set storage set, bytes32 value) private returns (bool) {\\n if (!_contains(set, value)) {\\n set._values.push(value);\\n // The value is stored at length-1, but we add 1 to all indexes\\n // and use 0 as a sentinel value\\n set._indexes[value] = set._values.length;\\n return true;\\n } else {\\n return false;\\n }\\n }\\n\\n /**\\n * @dev Removes a value from a set. O(1).\\n *\\n * Returns true if the value was removed from the set, that is if it was\\n * present.\\n */\\n function _remove(Set storage set, bytes32 value) private returns (bool) {\\n // We read and store the value's index to prevent multiple reads from the same storage slot\\n uint256 valueIndex = set._indexes[value];\\n\\n if (valueIndex != 0) {\\n // Equivalent to contains(set, value)\\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\\n // the array, and then remove the last element (sometimes called as 'swap and pop').\\n // This modifies the order of the array, as noted in {at}.\\n\\n uint256 toDeleteIndex = valueIndex - 1;\\n uint256 lastIndex = set._values.length - 1;\\n\\n if (lastIndex != toDeleteIndex) {\\n bytes32 lastValue = set._values[lastIndex];\\n\\n // Move the last value to the index where the value to delete is\\n set._values[toDeleteIndex] = lastValue;\\n // Update the index for the moved value\\n set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex\\n }\\n\\n // Delete the slot where the moved value was stored\\n set._values.pop();\\n\\n // Delete the index for the deleted slot\\n delete set._indexes[value];\\n\\n return true;\\n } else {\\n return false;\\n }\\n }\\n\\n /**\\n * @dev Returns true if the value is in the set. O(1).\\n */\\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\\n return set._indexes[value] != 0;\\n }\\n\\n /**\\n * @dev Returns the number of values on the set. O(1).\\n */\\n function _length(Set storage set) private view returns (uint256) {\\n return set._values.length;\\n }\\n\\n /**\\n * @dev Returns the value stored at position `index` in the set. O(1).\\n *\\n * Note that there are no guarantees on the ordering of values inside the\\n * array, and it may change when more values are added or removed.\\n *\\n * Requirements:\\n *\\n * - `index` must be strictly less than {length}.\\n */\\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\\n return set._values[index];\\n }\\n\\n /**\\n * @dev Return the entire set in an array\\n *\\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\\n */\\n function _values(Set storage set) private view returns (bytes32[] memory) {\\n return set._values;\\n }\\n\\n // Bytes32Set\\n\\n struct Bytes32Set {\\n Set _inner;\\n }\\n\\n /**\\n * @dev Add a value to a set. O(1).\\n *\\n * Returns true if the value was added to the set, that is if it was not\\n * already present.\\n */\\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\\n return _add(set._inner, value);\\n }\\n\\n /**\\n * @dev Removes a value from a set. O(1).\\n *\\n * Returns true if the value was removed from the set, that is if it was\\n * present.\\n */\\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\\n return _remove(set._inner, value);\\n }\\n\\n /**\\n * @dev Returns true if the value is in the set. O(1).\\n */\\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\\n return _contains(set._inner, value);\\n }\\n\\n /**\\n * @dev Returns the number of values in the set. O(1).\\n */\\n function length(Bytes32Set storage set) internal view returns (uint256) {\\n return _length(set._inner);\\n }\\n\\n /**\\n * @dev Returns the value stored at position `index` in the set. O(1).\\n *\\n * Note that there are no guarantees on the ordering of values inside the\\n * array, and it may change when more values are added or removed.\\n *\\n * Requirements:\\n *\\n * - `index` must be strictly less than {length}.\\n */\\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\\n return _at(set._inner, index);\\n }\\n\\n /**\\n * @dev Return the entire set in an array\\n *\\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\\n */\\n function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\\n bytes32[] memory store = _values(set._inner);\\n bytes32[] memory result;\\n\\n /// @solidity memory-safe-assembly\\n assembly {\\n result := store\\n }\\n\\n return result;\\n }\\n\\n // AddressSet\\n\\n struct AddressSet {\\n Set _inner;\\n }\\n\\n /**\\n * @dev Add a value to a set. O(1).\\n *\\n * Returns true if the value was added to the set, that is if it was not\\n * already present.\\n */\\n function add(AddressSet storage set, address value) internal returns (bool) {\\n return _add(set._inner, bytes32(uint256(uint160(value))));\\n }\\n\\n /**\\n * @dev Removes a value from a set. O(1).\\n *\\n * Returns true if the value was removed from the set, that is if it was\\n * present.\\n */\\n function remove(AddressSet storage set, address value) internal returns (bool) {\\n return _remove(set._inner, bytes32(uint256(uint160(value))));\\n }\\n\\n /**\\n * @dev Returns true if the value is in the set. O(1).\\n */\\n function contains(AddressSet storage set, address value) internal view returns (bool) {\\n return _contains(set._inner, bytes32(uint256(uint160(value))));\\n }\\n\\n /**\\n * @dev Returns the number of values in the set. O(1).\\n */\\n function length(AddressSet storage set) internal view returns (uint256) {\\n return _length(set._inner);\\n }\\n\\n /**\\n * @dev Returns the value stored at position `index` in the set. O(1).\\n *\\n * Note that there are no guarantees on the ordering of values inside the\\n * array, and it may change when more values are added or removed.\\n *\\n * Requirements:\\n *\\n * - `index` must be strictly less than {length}.\\n */\\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\\n return address(uint160(uint256(_at(set._inner, index))));\\n }\\n\\n /**\\n * @dev Return the entire set in an array\\n *\\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\\n */\\n function values(AddressSet storage set) internal view returns (address[] memory) {\\n bytes32[] memory store = _values(set._inner);\\n address[] memory result;\\n\\n /// @solidity memory-safe-assembly\\n assembly {\\n result := store\\n }\\n\\n return result;\\n }\\n\\n // UintSet\\n\\n struct UintSet {\\n Set _inner;\\n }\\n\\n /**\\n * @dev Add a value to a set. O(1).\\n *\\n * Returns true if the value was added to the set, that is if it was not\\n * already present.\\n */\\n function add(UintSet storage set, uint256 value) internal returns (bool) {\\n return _add(set._inner, bytes32(value));\\n }\\n\\n /**\\n * @dev Removes a value from a set. O(1).\\n *\\n * Returns true if the value was removed from the set, that is if it was\\n * present.\\n */\\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\\n return _remove(set._inner, bytes32(value));\\n }\\n\\n /**\\n * @dev Returns true if the value is in the set. O(1).\\n */\\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\\n return _contains(set._inner, bytes32(value));\\n }\\n\\n /**\\n * @dev Returns the number of values in the set. O(1).\\n */\\n function length(UintSet storage set) internal view returns (uint256) {\\n return _length(set._inner);\\n }\\n\\n /**\\n * @dev Returns the value stored at position `index` in the set. O(1).\\n *\\n * Note that there are no guarantees on the ordering of values inside the\\n * array, and it may change when more values are added or removed.\\n *\\n * Requirements:\\n *\\n * - `index` must be strictly less than {length}.\\n */\\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\\n return uint256(_at(set._inner, index));\\n }\\n\\n /**\\n * @dev Return the entire set in an array\\n *\\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\\n */\\n function values(UintSet storage set) internal view returns (uint256[] memory) {\\n bytes32[] memory store = _values(set._inner);\\n uint256[] memory result;\\n\\n /// @solidity memory-safe-assembly\\n assembly {\\n result := store\\n }\\n\\n return result;\\n }\\n}\\n\",\"keccak256\":\"0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514\",\"license\":\"MIT\"},\"src/RNSAuction.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { Initializable } from \\\"@openzeppelin/contracts/proxy/utils/Initializable.sol\\\";\\nimport { AccessControlEnumerable } from \\\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\\\";\\nimport { Math } from \\\"@openzeppelin/contracts/utils/math/Math.sol\\\";\\nimport { BitMaps } from \\\"@openzeppelin/contracts/utils/structs/BitMaps.sol\\\";\\nimport { INSUnified, INSAuction } from \\\"./interfaces/INSAuction.sol\\\";\\nimport { LibSafeRange } from \\\"./libraries/math/LibSafeRange.sol\\\";\\nimport { LibRNSDomain } from \\\"./libraries/LibRNSDomain.sol\\\";\\nimport { LibEventRange, EventRange } from \\\"./libraries/LibEventRange.sol\\\";\\nimport { RONTransferHelper } from \\\"./libraries/transfers/RONTransferHelper.sol\\\";\\n\\ncontract RNSAuction is Initializable, AccessControlEnumerable, INSAuction {\\n using LibSafeRange for uint256;\\n using BitMaps for BitMaps.BitMap;\\n using LibEventRange for EventRange;\\n\\n /// @inheritdoc INSAuction\\n uint64 public constant MAX_EXPIRY = type(uint64).max;\\n /// @inheritdoc INSAuction\\n uint256 public constant MAX_PERCENTAGE = 100_00;\\n /// @inheritdoc INSAuction\\n uint64 public constant DOMAIN_EXPIRY_DURATION = 365 days;\\n /// @inheritdoc INSAuction\\n uint64 public constant MAX_AUCTION_DOMAIN_EXPIRY = 365 days * 3;\\n /// @inheritdoc INSAuction\\n bytes32 public constant OPERATOR_ROLE = keccak256(\\\"OPERATOR_ROLE\\\");\\n\\n /// @dev Gap for upgradeability.\\n uint256[50] private ____gap;\\n /// @dev The RNSUnified contract.\\n INSUnified internal _rnsUnified;\\n /// @dev Mapping from auction Id => event range\\n mapping(bytes32 auctionId => EventRange) internal _auctionRange;\\n /// @dev Mapping from id of domain names => auction detail.\\n mapping(uint256 id => DomainAuction) internal _domainAuction;\\n\\n /// @dev The treasury.\\n address payable internal _treasury;\\n /// @dev The gap ratio between 2 bids with the starting price.\\n uint256 internal _bidGapRatio;\\n /// @dev Mapping from id => bool reserved status\\n BitMaps.BitMap internal _reserved;\\n\\n modifier whenNotStarted(bytes32 auctionId) {\\n _requireNotStarted(auctionId);\\n _;\\n }\\n\\n modifier onlyValidEventRange(EventRange calldata range) {\\n _requireValidEventRange(range);\\n _;\\n }\\n\\n constructor() payable {\\n _disableInitializers();\\n }\\n\\n function initialize(\\n address admin,\\n address[] calldata operators,\\n INSUnified rnsUnified,\\n address payable treasury,\\n uint256 bidGapRatio\\n ) external initializer {\\n _setTreasury(treasury);\\n _setBidGapRatio(bidGapRatio);\\n _setupRole(DEFAULT_ADMIN_ROLE, admin);\\n\\n uint256 length = operators.length;\\n bytes32 operatorRole = OPERATOR_ROLE;\\n\\n for (uint256 i; i < length;) {\\n _setupRole(operatorRole, operators[i]);\\n\\n unchecked {\\n ++i;\\n }\\n }\\n\\n _rnsUnified = rnsUnified;\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function bulkRegister(string[] calldata labels) external onlyRole(OPERATOR_ROLE) returns (uint256[] memory ids) {\\n uint256 length = labels.length;\\n if (length == 0) revert InvalidArrayLength();\\n ids = new uint256[](length);\\n INSUnified rnsUnified = _rnsUnified;\\n uint256 parentId = LibRNSDomain.RON_ID;\\n uint64 domainExpiryDuration = DOMAIN_EXPIRY_DURATION;\\n\\n for (uint256 i; i < length;) {\\n (, ids[i]) = rnsUnified.mint(parentId, labels[i], address(0x0), address(this), domainExpiryDuration);\\n _reserved.set(ids[i]);\\n\\n unchecked {\\n ++i;\\n }\\n }\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function reserved(uint256 id) public view returns (bool) {\\n return _reserved.get(id);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function createAuctionEvent(EventRange calldata range)\\n external\\n onlyRole(DEFAULT_ADMIN_ROLE)\\n onlyValidEventRange(range)\\n returns (bytes32 auctionId)\\n {\\n auctionId = keccak256(abi.encode(_msgSender(), range));\\n _auctionRange[auctionId] = range;\\n emit AuctionEventSet(auctionId, range);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function setAuctionEvent(bytes32 auctionId, EventRange calldata range)\\n external\\n onlyRole(DEFAULT_ADMIN_ROLE)\\n onlyValidEventRange(range)\\n whenNotStarted(auctionId)\\n {\\n _auctionRange[auctionId] = range;\\n emit AuctionEventSet(auctionId, range);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getAuctionEvent(bytes32 auctionId) public view returns (EventRange memory) {\\n return _auctionRange[auctionId];\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function listNamesForAuction(bytes32 auctionId, uint256[] calldata ids, uint256[] calldata startingPrices)\\n external\\n onlyRole(OPERATOR_ROLE)\\n whenNotStarted(auctionId)\\n {\\n uint256 length = ids.length;\\n if (length == 0 || length != startingPrices.length) revert InvalidArrayLength();\\n uint256 id;\\n bytes32 mAuctionId;\\n DomainAuction storage sAuction;\\n\\n for (uint256 i; i < length;) {\\n id = ids[i];\\n if (!reserved(id)) revert NameNotReserved();\\n\\n sAuction = _domainAuction[id];\\n mAuctionId = sAuction.auctionId;\\n if (!(mAuctionId == 0 || mAuctionId == auctionId || sAuction.bid.timestamp == 0)) {\\n revert AlreadyBidding(id);\\n }\\n\\n sAuction.auctionId = auctionId;\\n sAuction.startingPrice = startingPrices[i];\\n\\n unchecked {\\n ++i;\\n }\\n }\\n\\n emit LabelsListed(auctionId, ids, startingPrices);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function placeBid(uint256 id) external payable {\\n DomainAuction memory auction = _domainAuction[id];\\n EventRange memory range = _auctionRange[auction.auctionId];\\n uint256 beatPrice = _getBeatPrice(auction, range);\\n\\n if (!range.isInPeriod()) revert QueryIsNotInPeriod();\\n if (msg.value < beatPrice) revert InsufficientAmount();\\n address payable bidder = payable(_msgSender());\\n // check whether the bidder can receive RON\\n if (bidder != tx.origin) revert ContractBidderIsForbidden();\\n address payable prvBidder = auction.bid.bidder;\\n uint256 prvPrice = auction.bid.price;\\n\\n Bid storage sBid = _domainAuction[id].bid;\\n sBid.price = msg.value;\\n sBid.bidder = bidder;\\n sBid.timestamp = block.timestamp;\\n emit BidPlaced(auction.auctionId, id, msg.value, bidder, prvPrice, prvBidder);\\n\\n // refund for previous bidder\\n if (prvPrice != 0) RONTransferHelper.safeTransfer(prvBidder, prvPrice);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function bulkClaimUnbiddedNames(address[] calldata tos, uint256[] calldata ids, bool allowFailure)\\n external\\n onlyRole(OPERATOR_ROLE)\\n returns (bool[] memory claimeds)\\n {\\n if (tos.length != ids.length) revert InvalidArrayLength();\\n\\n uint64 expiry = uint64(block.timestamp.addWithUpperbound(DOMAIN_EXPIRY_DURATION, MAX_EXPIRY));\\n claimeds = new bool[](ids.length);\\n INSUnified rnsUnified = _rnsUnified;\\n DomainAuction memory auction;\\n uint256 id;\\n\\n for (uint256 i; i < ids.length;) {\\n id = ids[i];\\n auction = _domainAuction[id];\\n\\n if (auction.bid.bidder == address(0x0)) {\\n // remove id from auction\\n delete _domainAuction[id];\\n rnsUnified.setExpiry(id, expiry);\\n rnsUnified.transferFrom(address(this), tos[i], id);\\n claimeds[i] = true;\\n } else if (!allowFailure) {\\n revert AlreadyBidding(id);\\n }\\n\\n unchecked {\\n ++i;\\n }\\n }\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function bulkClaimBidNames(uint256[] calldata ids) external returns (uint256[] memory claimedAts) {\\n uint256 id;\\n uint256 accumulatedRON;\\n EventRange memory range;\\n DomainAuction memory auction;\\n uint256 length = ids.length;\\n claimedAts = new uint256[](length);\\n INSUnified rnsUnified = _rnsUnified;\\n uint64 expiry = uint64(block.timestamp.addWithUpperbound(DOMAIN_EXPIRY_DURATION, MAX_EXPIRY));\\n\\n for (uint256 i; i < length;) {\\n id = ids[i];\\n auction = _domainAuction[id];\\n range = _auctionRange[auction.auctionId];\\n\\n if (auction.bid.claimedAt == 0) {\\n if (!range.isEnded()) revert NotYetEnded();\\n if (auction.bid.timestamp == 0) revert NoOneBidded();\\n\\n accumulatedRON += auction.bid.price;\\n rnsUnified.setExpiry(id, expiry);\\n rnsUnified.transferFrom(address(this), auction.bid.bidder, id);\\n\\n _domainAuction[id].bid.claimedAt = claimedAts[i] = block.timestamp;\\n }\\n\\n unchecked {\\n ++i;\\n }\\n }\\n\\n RONTransferHelper.safeTransfer(_treasury, accumulatedRON);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getRNSUnified() external view returns (INSUnified) {\\n return _rnsUnified;\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getTreasury() external view returns (address) {\\n return _treasury;\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getBidGapRatio() external view returns (uint256) {\\n return _bidGapRatio;\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function setTreasury(address payable addr) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setTreasury(addr);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n\\n function setBidGapRatio(uint256 ratio) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setBidGapRatio(ratio);\\n }\\n\\n /**\\n * @inheritdoc INSAuction\\n */\\n function getAuction(uint256 id) public view returns (DomainAuction memory auction, uint256 beatPrice) {\\n auction = _domainAuction[id];\\n EventRange memory range = getAuctionEvent(auction.auctionId);\\n beatPrice = _getBeatPrice(auction, range);\\n }\\n\\n /**\\n * @dev Helper method to set treasury.\\n *\\n * Emits an event {TreasuryUpdated}.\\n */\\n function _setTreasury(address payable addr) internal {\\n if (addr == address(0)) revert NullAssignment();\\n _treasury = addr;\\n emit TreasuryUpdated(addr);\\n }\\n\\n /**\\n * @dev Helper method to set bid gap ratio.\\n *\\n * Emits an event {BidGapRatioUpdated}.\\n */\\n function _setBidGapRatio(uint256 ratio) internal {\\n if (ratio > MAX_PERCENTAGE) revert RatioIsTooLarge();\\n _bidGapRatio = ratio;\\n emit BidGapRatioUpdated(ratio);\\n }\\n\\n /**\\n * @dev Helper method to get beat price.\\n */\\n function _getBeatPrice(DomainAuction memory auction, EventRange memory range)\\n internal\\n view\\n returns (uint256 beatPrice)\\n {\\n beatPrice = Math.max(auction.startingPrice, auction.bid.price);\\n // Beats price increases if domain is already bided and the event is not yet ended.\\n if (auction.bid.price != 0 && !range.isEnded()) {\\n beatPrice += Math.mulDiv(auction.startingPrice, _bidGapRatio, MAX_PERCENTAGE);\\n }\\n }\\n\\n /**\\n * @dev Helper method to ensure event range is valid.\\n */\\n function _requireValidEventRange(EventRange calldata range) internal view {\\n if (!(range.valid() && range.isNotYetStarted())) revert InvalidEventRange();\\n }\\n\\n /**\\n * @dev Helper method to ensure the auction is not yet started or not created.\\n */\\n function _requireNotStarted(bytes32 auctionId) internal view {\\n if (!_auctionRange[auctionId].isNotYetStarted()) revert EventIsNotCreatedOrAlreadyStarted();\\n }\\n}\\n\",\"keccak256\":\"0xaecfed718ee6063b0d818a931466b83dfe17489c40bf25dee5a6c888a494e692\",\"license\":\"MIT\"},\"src/interfaces/INSAuction.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { INSUnified } from \\\"./INSUnified.sol\\\";\\nimport { EventRange } from \\\"../libraries/LibEventRange.sol\\\";\\n\\ninterface INSAuction {\\n error NotYetEnded();\\n error NoOneBidded();\\n error NullAssignment();\\n error AlreadyBidding(uint256 id);\\n error RatioIsTooLarge();\\n error NameNotReserved();\\n error InvalidEventRange();\\n error QueryIsNotInPeriod();\\n error InsufficientAmount();\\n error InvalidArrayLength();\\n error ContractBidderIsForbidden();\\n error EventIsNotCreatedOrAlreadyStarted();\\n\\n struct Bid {\\n address payable bidder;\\n uint256 price;\\n uint256 timestamp;\\n uint256 claimedAt;\\n }\\n\\n struct DomainAuction {\\n bytes32 auctionId;\\n uint256 startingPrice;\\n Bid bid;\\n }\\n\\n /// @dev Emitted when an auction is set.\\n event AuctionEventSet(bytes32 indexed auctionId, EventRange range);\\n /// @dev Emitted when the labels are listed for auction.\\n event LabelsListed(bytes32 indexed auctionId, uint256[] ids, uint256[] startingPrices);\\n /// @dev Emitted when a bid is placed for a name.\\n event BidPlaced(\\n bytes32 indexed auctionId,\\n uint256 indexed id,\\n uint256 price,\\n address payable bidder,\\n uint256 previousPrice,\\n address previousBidder\\n );\\n /// @dev Emitted when the treasury is updated.\\n event TreasuryUpdated(address indexed addr);\\n /// @dev Emitted when bid gap ratio is updated.\\n event BidGapRatioUpdated(uint256 ratio);\\n\\n /**\\n * @dev The maximum expiry duration\\n */\\n function MAX_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev The maximum expiry duration of a domain after transferring to bidder.\\n */\\n function MAX_AUCTION_DOMAIN_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev Returns the operator role.\\n */\\n function OPERATOR_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Max percentage 100%. Values [0; 100_00] reflexes [0; 100%]\\n */\\n function MAX_PERCENTAGE() external pure returns (uint256);\\n\\n /**\\n * @dev The expiry duration of a domain after transferring to bidder.\\n */\\n function DOMAIN_EXPIRY_DURATION() external pure returns (uint64);\\n\\n /**\\n * @dev Claims domain names for auction.\\n *\\n * Requirements:\\n * - The method caller must be contract operator.\\n *\\n * @param labels The domain names. Eg, ['foo'] for 'foo.ron'\\n * @return ids The id corresponding for namehash of domain names.\\n */\\n function bulkRegister(string[] calldata labels) external returns (uint256[] memory ids);\\n\\n /**\\n * @dev Checks whether a domain name is currently reserved for auction or not.\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function reserved(uint256 id) external view returns (bool);\\n\\n /**\\n * @dev Claim unbidded names and transfer them to the specified addresses.\\n *\\n * Requirements:\\n * - The method caller must be contract operator.\\n *\\n * @param tos The array of addresses to transfer domain names to.\\n * @param ids The id corresponding for namehash of domain names.\\n * @param allowFailure Flag to indicate whether to allow failure if a domain is already being bid on.\\n * @return claimeds An array indicating whether each domain name was successfully claimed.\\n */\\n function bulkClaimUnbiddedNames(address[] calldata tos, uint256[] calldata ids, bool allowFailure)\\n external\\n returns (bool[] memory claimeds);\\n\\n /**\\n * @dev Creates a new auction to sale with a specific time period.\\n *\\n * Requirements:\\n * - The method caller must be admin.\\n *\\n * Emits an event {AuctionEventSet}.\\n *\\n * @return auctionId The auction id\\n * @notice Please use the method `setAuctionNames` to list all the reserved names.\\n */\\n function createAuctionEvent(EventRange calldata range) external returns (bytes32 auctionId);\\n\\n /**\\n * @dev Updates the auction details.\\n *\\n * Requirements:\\n * - The method caller must be admin.\\n *\\n * Emits an event {AuctionEventSet}.\\n */\\n function setAuctionEvent(bytes32 auctionId, EventRange calldata range) external;\\n\\n /**\\n * @dev Returns the event range of an auction.\\n */\\n function getAuctionEvent(bytes32 auctionId) external view returns (EventRange memory);\\n\\n /**\\n * @dev Lists reserved names to sale in a specified auction.\\n *\\n * Requirements:\\n * - The method caller must be contract operator.\\n * - Array length are matched and larger than 0.\\n * - Only allow to set when the domain is:\\n * + Not in any auction.\\n * + Or, in the current auction.\\n * + Or, this name is not bided.\\n *\\n * Emits an event {LabelsListed}.\\n *\\n * Note: If the name is already listed, this method replaces with a new input value.\\n *\\n * @param ids The namehashes id of domain names. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function listNamesForAuction(bytes32 auctionId, uint256[] calldata ids, uint256[] calldata startingPrices) external;\\n\\n /**\\n * @dev Places a bid for a domain name.\\n *\\n * Requirements:\\n * - The name is listed, or the auction is happening.\\n * - The msg.value is larger than the current bid price or the auction starting price.\\n *\\n * Emits an event {BidPlaced}.\\n *\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function placeBid(uint256 id) external payable;\\n\\n /**\\n * @dev Returns the highest bid and address of the bidder.\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function getAuction(uint256 id) external view returns (DomainAuction memory, uint256 beatPrice);\\n\\n /**\\n * @dev Bulk claims the bid name.\\n *\\n * Requirements:\\n * - Must be called after ended time.\\n * - The method caller can be anyone.\\n *\\n * @param ids The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function bulkClaimBidNames(uint256[] calldata ids) external returns (uint256[] memory claimedAts);\\n\\n /**\\n * @dev Returns the treasury.\\n */\\n function getTreasury() external view returns (address);\\n\\n /**\\n * @dev Returns the gap ratio between 2 bids with the starting price. Value in range [0;100_00] is 0%-100%.\\n */\\n function getBidGapRatio() external view returns (uint256);\\n\\n /**\\n * @dev Sets the treasury.\\n *\\n * Requirements:\\n * - The method caller must be admin\\n *\\n * Emits an event {TreasuryUpdated}.\\n */\\n function setTreasury(address payable) external;\\n\\n /**\\n * @dev Sets commission ratio. Value in range [0;100_00] is 0%-100%.\\n *\\n * Requirements:\\n * - The method caller must be admin\\n *\\n * Emits an event {BidGapRatioUpdated}.\\n */\\n function setBidGapRatio(uint256) external;\\n\\n /**\\n * @dev Returns RNSUnified contract.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n}\\n\",\"keccak256\":\"0x406d5d682af4652b6c9c26948a4d4e31b6b88c056177973bb5f7d32141ae658c\",\"license\":\"MIT\"},\"src/interfaces/INSUnified.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { IERC721Metadata } from \\\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\\";\\nimport { IAccessControlEnumerable } from \\\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\\\";\\nimport { ModifyingIndicator } from \\\"../types/ModifyingIndicator.sol\\\";\\n\\ninterface INSUnified is IAccessControlEnumerable, IERC721Metadata {\\n /// @dev Error: The provided token id is expired.\\n error Expired();\\n /// @dev Error: The provided token id is unexists.\\n error Unexists();\\n /// @dev Error: The provided token id's depth level is greater than 3.\\n error ThirdLevelDomainUnallowed();\\n /// @dev Error: The provided id expiry is greater than parent id expiry.\\n error ExceedParentExpiry();\\n /// @dev Error: The provided name is unavailable for registration.\\n error Unavailable();\\n /// @dev Error: The sender lacks the necessary permissions.\\n error Unauthorized();\\n /// @dev Error: Missing controller role required for modification.\\n error MissingControllerRole();\\n /// @dev Error: Attempting to set an immutable field, which cannot be modified.\\n error CannotSetImmutableField();\\n /// @dev Error: Missing protected settler role required for modification.\\n error MissingProtectedSettlerRole();\\n /// @dev Error: Attempting to set an expiry time that is not larger than the previous one.\\n error ExpiryTimeMustBeLargerThanTheOldOne();\\n /// @dev Error: The provided name must be registered or is in a grace period.\\n error NameMustBeRegisteredOrInGracePeriod();\\n\\n /**\\n * | Fields\\\\Idc | Modifying Indicator |\\n * | ---------- | ------------------- |\\n * | depth | 0b00000001 |\\n * | parentId | 0b00000010 |\\n * | label | 0b00000100 |\\n */\\n struct ImmutableRecord {\\n // The level-th of a domain.\\n uint8 depth;\\n // The node of parent token. Eg, parent node of vip.duke.ron equals to namehash('duke.ron')\\n uint256 parentId;\\n // The label of a domain. Eg, label is vip for domain vip.duke.ron\\n string label;\\n }\\n\\n /**\\n * | Fields\\\\Idc,Roles | Modifying Indicator | Controller | Protected setter | (Parent) Owner/Spender |\\n * | ---------------- | ------------------- | ---------- | ---------------- | ---------------------- |\\n * | resolver | 0b00001000 | x | | x |\\n * | owner | 0b00010000 | x | | x |\\n * | expiry | 0b00100000 | x | | |\\n * | protected | 0b01000000 | | x | |\\n * Note: (Parent) Owner/Spender means parent owner or current owner or current token spender.\\n */\\n struct MutableRecord {\\n // The resolver address.\\n address resolver;\\n // The record owner. This field must equal to the owner of token.\\n address owner;\\n // Expiry timestamp.\\n uint64 expiry;\\n // Flag indicating whether the token is protected or not.\\n bool protected;\\n }\\n\\n struct Record {\\n ImmutableRecord immut;\\n MutableRecord mut;\\n }\\n\\n /// @dev Emitted when a base URI is updated.\\n event BaseURIUpdated(address indexed operator, string newURI);\\n /// @dev Emitted when the grace period for all domain is updated.\\n event GracePeriodUpdated(address indexed operator, uint64 newGracePeriod);\\n\\n /**\\n * @dev Emitted when the record of node is updated.\\n * @param indicator The binary index of updated fields. Eg, 0b10101011 means fields at position 1, 2, 4, 6, 8 (right\\n * to left) needs to be updated.\\n * @param record The updated fields.\\n */\\n event RecordUpdated(uint256 indexed node, ModifyingIndicator indicator, Record record);\\n\\n /**\\n * @dev Returns the controller role.\\n * @notice Can set all fields {Record.mut} in token record, excepting {Record.mut.protected}.\\n */\\n function CONTROLLER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the protected setter role.\\n * @notice Can set field {Record.mut.protected} in token record by using method `bulkSetProtected`.\\n */\\n function PROTECTED_SETTLER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the reservation role.\\n * @notice Never expire for token owner has this role.\\n */\\n function RESERVATION_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the max expiry value.\\n */\\n function MAX_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev Returns the name hash output of a domain.\\n */\\n function namehash(string memory domain) external pure returns (bytes32 node);\\n\\n /**\\n * @dev Returns true if the specified name is available for registration.\\n * Note: Only available after passing the grace period.\\n */\\n function available(uint256 id) external view returns (bool);\\n\\n /**\\n * @dev Returns the grace period in second(s).\\n * Note: This period affects the availability of the domain.\\n */\\n function getGracePeriod() external view returns (uint64);\\n\\n /**\\n * @dev Returns the total minted ids.\\n * Note: Burning id will not affect `totalMinted`.\\n */\\n function totalMinted() external view returns (uint256);\\n\\n /**\\n * @dev Sets the grace period in second(s).\\n *\\n * Requirements:\\n * - The method caller must have controller role.\\n *\\n * Note: This period affects the availability of the domain.\\n */\\n function setGracePeriod(uint64) external;\\n\\n /**\\n * @dev Sets the base uri.\\n *\\n * Requirements:\\n * - The method caller must be contract owner.\\n *\\n */\\n function setBaseURI(string calldata baseTokenURI) external;\\n\\n /**\\n * @dev Mints token for subnode.\\n *\\n * Requirements:\\n * - The token must be available.\\n * - The method caller must be (parent) owner or approved spender. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n *\\n * @param parentId The parent node to mint or create subnode.\\n * @param label The domain label. Eg, label is duke for domain duke.ron.\\n * @param resolver The resolver address.\\n * @param owner The token owner.\\n * @param duration Duration in second(s) to expire. Leave 0 to set as parent.\\n */\\n function mint(uint256 parentId, string calldata label, address resolver, address owner, uint64 duration)\\n external\\n returns (uint64 expiryTime, uint256 id);\\n\\n /**\\n * @dev Returns all record of a domain.\\n * Reverts if the token is non existent.\\n */\\n function getRecord(uint256 id) external view returns (Record memory record);\\n\\n /**\\n * @dev Returns the domain name of id.\\n */\\n function getDomain(uint256 id) external view returns (string memory domain);\\n\\n /**\\n * @dev Returns whether the requester is able to modify the record based on the updated index.\\n * Note: This method strictly follows the permission of struct {MutableRecord}.\\n */\\n function canSetRecord(address requester, uint256 id, ModifyingIndicator indicator)\\n external\\n view\\n returns (bool, bytes4 error);\\n\\n /**\\n * @dev Sets record of existing token. Update operation for {Record.mut}.\\n *\\n * Requirements:\\n * - The method caller must have role based on the corresponding `indicator`. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function setRecord(uint256 id, ModifyingIndicator indicator, MutableRecord calldata record) external;\\n\\n /**\\n * @dev Reclaims ownership. Update operation for {Record.mut.owner}.\\n *\\n * Requirements:\\n * - The method caller should have controller role.\\n * - The method caller should be (parent) owner or approved spender. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function reclaim(uint256 id, address owner) external;\\n\\n /**\\n * @dev Renews token. Update operation for {Record.mut.expiry}.\\n *\\n * Requirements:\\n * - The method caller should have controller role.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function renew(uint256 id, uint64 duration) external returns (uint64 expiry);\\n\\n /**\\n * @dev Sets expiry time for a token. Update operation for {Record.mut.expiry}.\\n *\\n * Requirements:\\n * - The method caller must have controller role.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function setExpiry(uint256 id, uint64 expiry) external;\\n\\n /**\\n * @dev Sets the protected status of a list of ids. Update operation for {Record.mut.protected}.\\n *\\n * Requirements:\\n * - The method caller must have protected setter role.\\n *\\n * Emits events {RecordUpdated}.\\n */\\n function bulkSetProtected(uint256[] calldata ids, bool protected) external;\\n}\\n\",\"keccak256\":\"0x98e2e77490d7fd6d87a8e9800223bb2f60a33e7338e2f65f64a3aed4737c035c\",\"license\":\"MIT\"},\"src/libraries/LibEventRange.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nstruct EventRange {\\n uint256 startedAt;\\n uint256 endedAt;\\n}\\n\\nlibrary LibEventRange {\\n /**\\n * @dev Checks whether the event range is valid.\\n */\\n function valid(EventRange calldata range) internal pure returns (bool) {\\n return range.startedAt <= range.endedAt;\\n }\\n\\n /**\\n * @dev Returns whether the current range is not yet started.\\n */\\n function isNotYetStarted(EventRange memory range) internal view returns (bool) {\\n return block.timestamp < range.startedAt;\\n }\\n\\n /**\\n * @dev Returns whether the current range is ended or not.\\n */\\n function isEnded(EventRange memory range) internal view returns (bool) {\\n return range.endedAt <= block.timestamp;\\n }\\n\\n /**\\n * @dev Returns whether the current block is in period.\\n */\\n function isInPeriod(EventRange memory range) internal view returns (bool) {\\n return range.startedAt <= block.timestamp && block.timestamp < range.endedAt;\\n }\\n}\\n\",\"keccak256\":\"0x95bf015c4245919cbcbcd810dd597fdb23eb4e58b62df8ef74b1c8c60a969bea\",\"license\":\"MIT\"},\"src/libraries/LibRNSDomain.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nlibrary LibRNSDomain {\\n /// @dev Value equals to namehash('ron')\\n uint256 internal constant RON_ID = 0xba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688;\\n /// @dev Value equals to namehash('addr.reverse')\\n uint256 internal constant ADDR_REVERSE_ID = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2;\\n\\n /**\\n * @dev Calculate the corresponding id given parentId and label.\\n */\\n function toId(uint256 parentId, string memory label) internal pure returns (uint256 id) {\\n assembly (\\\"memory-safe\\\") {\\n mstore(0x0, parentId)\\n mstore(0x20, keccak256(add(label, 32), mload(label)))\\n id := keccak256(0x0, 64)\\n }\\n }\\n\\n /**\\n * @dev Calculates the hash of the label.\\n */\\n function hashLabel(string memory label) internal pure returns (bytes32 hashed) {\\n assembly (\\\"memory-safe\\\") {\\n hashed := keccak256(add(label, 32), mload(label))\\n }\\n }\\n\\n /**\\n * @dev Calculate the RNS namehash of a str.\\n */\\n function namehash(string memory str) internal pure returns (bytes32 hashed) {\\n // notice: this method is case-sensitive, ensure the string is lowercased before calling this method\\n assembly (\\\"memory-safe\\\") {\\n // load str length\\n let len := mload(str)\\n // returns bytes32(0x0) if length is zero\\n if iszero(iszero(len)) {\\n let hashedLen\\n // compute pointer to str[0]\\n let head := add(str, 32)\\n // compute pointer to str[length - 1]\\n let tail := add(head, sub(len, 1))\\n // cleanup dirty bytes if contains any\\n mstore(0x0, 0)\\n // loop backwards from `tail` to `head`\\n for { let i := tail } iszero(lt(i, head)) { i := sub(i, 1) } {\\n // check if `i` is `head`\\n let isHead := eq(i, head)\\n // check if `str[i-1]` is \\\".\\\"\\n // `0x2e` == bytes1(\\\".\\\")\\n let isDotNext := eq(shr(248, mload(sub(i, 1))), 0x2e)\\n if or(isHead, isDotNext) {\\n // size = distance(length, i) - hashedLength + 1\\n let size := add(sub(sub(tail, i), hashedLen), 1)\\n mstore(0x20, keccak256(i, size))\\n mstore(0x0, keccak256(0x0, 64))\\n // skip \\\".\\\" thereby + 1\\n hashedLen := add(hashedLen, add(size, 1))\\n }\\n }\\n }\\n hashed := mload(0x0)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x715029b2b420c6ec00bc1f939b837acf45d247fde8426089575b0e7b5e84518b\",\"license\":\"MIT\"},\"src/libraries/math/LibSafeRange.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nlibrary LibSafeRange {\\n function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\\n unchecked {\\n c = a + b;\\n if (c < a) return type(uint256).max;\\n }\\n }\\n\\n /**\\n * @dev Returns value of a + b; in case result is larger than upperbound, upperbound is returned.\\n */\\n function addWithUpperbound(uint256 a, uint256 b, uint256 ceil) internal pure returns (uint256 c) {\\n if (a > ceil || b > ceil) return ceil;\\n c = add(a, b);\\n if (c > ceil) return ceil;\\n }\\n}\\n\",\"keccak256\":\"0x12cf5f592a2d80b9c1b0ea11b8fe2b3ed42fc6d62303ba667edc56464baa8810\",\"license\":\"MIT\"},\"src/libraries/transfers/RONTransferHelper.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport { Strings } from \\\"@openzeppelin/contracts/utils/Strings.sol\\\";\\n\\n/**\\n * @title RONTransferHelper\\n */\\nlibrary RONTransferHelper {\\n using Strings for *;\\n\\n /**\\n * @dev Transfers RON and wraps result for the method caller to a recipient.\\n */\\n function safeTransfer(address payable _to, uint256 _value) internal {\\n bool _success = send(_to, _value);\\n if (!_success) {\\n revert(\\n string.concat(\\\"TransferHelper: could not transfer RON to \\\", _to.toHexString(), \\\" value \\\", _value.toHexString())\\n );\\n }\\n }\\n\\n /**\\n * @dev Returns whether the call was success.\\n * Note: this function should use with the `ReentrancyGuard`.\\n */\\n function send(address payable _to, uint256 _value) internal returns (bool _success) {\\n (_success,) = _to.call{ value: _value }(new bytes(0));\\n }\\n}\\n\",\"keccak256\":\"0x733e60374ee0a33d0da2ee24976b893ca6b6d9764243b175e1ac8025240394da\",\"license\":\"MIT\"},\"src/types/ModifyingIndicator.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\ntype ModifyingIndicator is uint256;\\n\\nusing { hasAny } for ModifyingIndicator global;\\nusing { or as | } for ModifyingIndicator global;\\nusing { and as & } for ModifyingIndicator global;\\nusing { eq as == } for ModifyingIndicator global;\\nusing { not as ~ } for ModifyingIndicator global;\\nusing { xor as ^ } for ModifyingIndicator global;\\nusing { neq as != } for ModifyingIndicator global;\\n\\n/// @dev Indicator for modifying immutable fields: Depth, ParentId, Label. See struct {INSUnified.ImmutableRecord}.\\nModifyingIndicator constant IMMUTABLE_FIELDS_INDICATOR = ModifyingIndicator.wrap(0x7);\\n\\n/// @dev Indicator for modifying user fields: Resolver, Owner. See struct {INSUnified.MutableRecord}.\\nModifyingIndicator constant USER_FIELDS_INDICATOR = ModifyingIndicator.wrap(0x18);\\n\\n/// @dev Indicator when modifying all of the fields in {ModifyingField}.\\nModifyingIndicator constant ALL_FIELDS_INDICATOR = ModifyingIndicator.wrap(type(uint256).max);\\n\\nfunction eq(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return ModifyingIndicator.unwrap(self) == ModifyingIndicator.unwrap(other);\\n}\\n\\nfunction neq(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return !eq(self, other);\\n}\\n\\nfunction xor(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) ^ ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction not(ModifyingIndicator self) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(~ModifyingIndicator.unwrap(self));\\n}\\n\\nfunction or(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) | ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction and(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) & ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction hasAny(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return self & other != ModifyingIndicator.wrap(0);\\n}\\n\",\"keccak256\":\"0x2e42fbba358c470ff6b57268367d248f0e2fcf8d7142d762688f7aef5efae7ee\",\"license\":\"MIT\"}},\"version\":1}", + "nonce": 185287, + "numDeployments": 5, "storageLayout": { "storage": [ { - "astId": 49702, + "astId": 50094, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_initialized", "offset": 0, @@ -13234,7 +14957,7 @@ "type": "t_uint8" }, { - "astId": 49705, + "astId": 50097, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_initializing", "offset": 1, @@ -13242,23 +14965,23 @@ "type": "t_bool" }, { - "astId": 48175, + "astId": 48567, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_roles", "offset": 0, "slot": "1", - "type": "t_mapping(t_bytes32,t_struct(RoleData)48170_storage)" + "type": "t_mapping(t_bytes32,t_struct(RoleData)48562_storage)" }, { - "astId": 48485, + "astId": 48877, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_roleMembers", "offset": 0, "slot": "2", - "type": "t_mapping(t_bytes32,t_struct(AddressSet)54054_storage)" + "type": "t_mapping(t_bytes32,t_struct(AddressSet)54446_storage)" }, { - "astId": 58721, + "astId": 62170, "contract": "src/RNSAuction.sol:RNSAuction", "label": "____gap", "offset": 0, @@ -13266,31 +14989,31 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 58725, + "astId": 62174, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_rnsUnified", "offset": 0, "slot": "53", - "type": "t_contract(INSUnified)65048" + "type": "t_contract(INSUnified)68718" }, { - "astId": 58731, + "astId": 62180, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_auctionRange", "offset": 0, "slot": "54", - "type": "t_mapping(t_bytes32,t_struct(EventRange)65968_storage)" + "type": "t_mapping(t_bytes32,t_struct(EventRange)69638_storage)" }, { - "astId": 58737, + "astId": 62186, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_domainAuction", "offset": 0, "slot": "55", - "type": "t_mapping(t_uint256,t_struct(DomainAuction)64221_storage)" + "type": "t_mapping(t_uint256,t_struct(DomainAuction)67867_storage)" }, { - "astId": 58740, + "astId": 62189, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_treasury", "offset": 0, @@ -13298,7 +15021,7 @@ "type": "t_address_payable" }, { - "astId": 58743, + "astId": 62192, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_bidGapRatio", "offset": 0, @@ -13306,12 +15029,12 @@ "type": "t_uint256" }, { - "astId": 58747, + "astId": 62196, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_reserved", "offset": 0, "slot": "58", - "type": "t_struct(BitMap)53598_storage" + "type": "t_struct(BitMap)53990_storage" } ], "types": { @@ -13347,7 +15070,7 @@ "label": "bytes32", "numberOfBytes": "32" }, - "t_contract(INSUnified)65048": { + "t_contract(INSUnified)68718": { "encoding": "inplace", "label": "contract INSUnified", "numberOfBytes": "20" @@ -13359,26 +15082,26 @@ "numberOfBytes": "32", "value": "t_bool" }, - "t_mapping(t_bytes32,t_struct(AddressSet)54054_storage)": { + "t_mapping(t_bytes32,t_struct(AddressSet)54446_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct EnumerableSet.AddressSet)", "numberOfBytes": "32", - "value": "t_struct(AddressSet)54054_storage" + "value": "t_struct(AddressSet)54446_storage" }, - "t_mapping(t_bytes32,t_struct(EventRange)65968_storage)": { + "t_mapping(t_bytes32,t_struct(EventRange)69638_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct EventRange)", "numberOfBytes": "32", - "value": "t_struct(EventRange)65968_storage" + "value": "t_struct(EventRange)69638_storage" }, - "t_mapping(t_bytes32,t_struct(RoleData)48170_storage)": { + "t_mapping(t_bytes32,t_struct(RoleData)48562_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct AccessControl.RoleData)", "numberOfBytes": "32", - "value": "t_struct(RoleData)48170_storage" + "value": "t_struct(RoleData)48562_storage" }, "t_mapping(t_bytes32,t_uint256)": { "encoding": "mapping", @@ -13387,12 +15110,12 @@ "numberOfBytes": "32", "value": "t_uint256" }, - "t_mapping(t_uint256,t_struct(DomainAuction)64221_storage)": { + "t_mapping(t_uint256,t_struct(DomainAuction)67867_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct INSAuction.DomainAuction)", "numberOfBytes": "32", - "value": "t_struct(DomainAuction)64221_storage" + "value": "t_struct(DomainAuction)67867_storage" }, "t_mapping(t_uint256,t_uint256)": { "encoding": "mapping", @@ -13401,28 +15124,28 @@ "numberOfBytes": "32", "value": "t_uint256" }, - "t_struct(AddressSet)54054_storage": { + "t_struct(AddressSet)54446_storage": { "encoding": "inplace", "label": "struct EnumerableSet.AddressSet", "numberOfBytes": "64", "members": [ { - "astId": 54053, + "astId": 54445, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_inner", "offset": 0, "slot": "0", - "type": "t_struct(Set)53739_storage" + "type": "t_struct(Set)54131_storage" } ] }, - "t_struct(Bid)64213_storage": { + "t_struct(Bid)67859_storage": { "encoding": "inplace", "label": "struct INSAuction.Bid", "numberOfBytes": "128", "members": [ { - "astId": 64206, + "astId": 67852, "contract": "src/RNSAuction.sol:RNSAuction", "label": "bidder", "offset": 0, @@ -13430,7 +15153,7 @@ "type": "t_address_payable" }, { - "astId": 64208, + "astId": 67854, "contract": "src/RNSAuction.sol:RNSAuction", "label": "price", "offset": 0, @@ -13438,7 +15161,7 @@ "type": "t_uint256" }, { - "astId": 64210, + "astId": 67856, "contract": "src/RNSAuction.sol:RNSAuction", "label": "timestamp", "offset": 0, @@ -13446,7 +15169,7 @@ "type": "t_uint256" }, { - "astId": 64212, + "astId": 67858, "contract": "src/RNSAuction.sol:RNSAuction", "label": "claimedAt", "offset": 0, @@ -13455,13 +15178,13 @@ } ] }, - "t_struct(BitMap)53598_storage": { + "t_struct(BitMap)53990_storage": { "encoding": "inplace", "label": "struct BitMaps.BitMap", "numberOfBytes": "32", "members": [ { - "astId": 53597, + "astId": 53989, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_data", "offset": 0, @@ -13470,13 +15193,13 @@ } ] }, - "t_struct(DomainAuction)64221_storage": { + "t_struct(DomainAuction)67867_storage": { "encoding": "inplace", "label": "struct INSAuction.DomainAuction", "numberOfBytes": "192", "members": [ { - "astId": 64215, + "astId": 67861, "contract": "src/RNSAuction.sol:RNSAuction", "label": "auctionId", "offset": 0, @@ -13484,7 +15207,7 @@ "type": "t_bytes32" }, { - "astId": 64217, + "astId": 67863, "contract": "src/RNSAuction.sol:RNSAuction", "label": "startingPrice", "offset": 0, @@ -13492,22 +15215,22 @@ "type": "t_uint256" }, { - "astId": 64220, + "astId": 67866, "contract": "src/RNSAuction.sol:RNSAuction", "label": "bid", "offset": 0, "slot": "2", - "type": "t_struct(Bid)64213_storage" + "type": "t_struct(Bid)67859_storage" } ] }, - "t_struct(EventRange)65968_storage": { + "t_struct(EventRange)69638_storage": { "encoding": "inplace", "label": "struct EventRange", "numberOfBytes": "64", "members": [ { - "astId": 65965, + "astId": 69635, "contract": "src/RNSAuction.sol:RNSAuction", "label": "startedAt", "offset": 0, @@ -13515,7 +15238,7 @@ "type": "t_uint256" }, { - "astId": 65967, + "astId": 69637, "contract": "src/RNSAuction.sol:RNSAuction", "label": "endedAt", "offset": 0, @@ -13524,13 +15247,13 @@ } ] }, - "t_struct(RoleData)48170_storage": { + "t_struct(RoleData)48562_storage": { "encoding": "inplace", "label": "struct AccessControl.RoleData", "numberOfBytes": "64", "members": [ { - "astId": 48167, + "astId": 48559, "contract": "src/RNSAuction.sol:RNSAuction", "label": "members", "offset": 0, @@ -13538,7 +15261,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 48169, + "astId": 48561, "contract": "src/RNSAuction.sol:RNSAuction", "label": "adminRole", "offset": 0, @@ -13547,13 +15270,13 @@ } ] }, - "t_struct(Set)53739_storage": { + "t_struct(Set)54131_storage": { "encoding": "inplace", "label": "struct EnumerableSet.Set", "numberOfBytes": "64", "members": [ { - "astId": 53734, + "astId": 54126, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_values", "offset": 0, @@ -13561,7 +15284,7 @@ "type": "t_array(t_bytes32)dyn_storage" }, { - "astId": 53738, + "astId": 54130, "contract": "src/RNSAuction.sol:RNSAuction", "label": "_indexes", "offset": 0, @@ -13582,7 +15305,7 @@ } } }, - "timestamp": 1698122937, + "timestamp": 1700810597, "userdoc": { "version": 1, "kind": "user", diff --git a/deployments/ronin-testnet/RNSOperation.json b/deployments/ronin-testnet/RNSOperation.json new file mode 100644 index 00000000..78903230 --- /dev/null +++ b/deployments/ronin-testnet/RNSOperation.json @@ -0,0 +1,2567 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "contract INSUnified", + "name": "rns_", + "type": "address" + }, + { + "internalType": "address", + "name": "resolver_", + "type": "address" + }, + { + "internalType": "contract INSAuction", + "name": "auction_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "auction", + "outputs": [ + { + "internalType": "contract INSAuction", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "tos", + "type": "address[]" + }, + { + "internalType": "string[]", + "name": "labels", + "type": "string[]" + }, + { + "internalType": "uint64", + "name": "duration", + "type": "uint64" + } + ], + "name": "bulkMint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "labels", + "type": "string[]" + }, + { + "internalType": "bool", + "name": "shouldProtect", + "type": "bool" + } + ], + "name": "bulkSetProtected", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "tos", + "type": "address[]" + }, + { + "internalType": "string[]", + "name": "labels", + "type": "string[]" + }, + { + "internalType": "bool", + "name": "allowFailure", + "type": "bool" + } + ], + "name": "reclaimUnbiddedNames", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resolver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rns", + "outputs": [ + { + "internalType": "contract INSUnified", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "labels", + "type": "string[]" + } + ], + "name": "toIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "address": "0x64cc51f89d337c7327E1351D7568b733517eB851", + "args": "0x000000000000000000000000f0c99c9677eda0d13291c093b27e6512e4acdf83000000000000000000000000803c459dcb8771e5354d1fc567ecc6885a9fd5e6000000000000000000000000b962edded164f55d136e491a3022246815e1b5a8", + "ast": { + "absolutePath": "src/utils/RNSOperation.sol", + "id": 60929, + "exportedSymbols": { + "INSAuction": [ + 58629 + ], + "INSUnified": [ + 59156 + ], + "LibRNSDomain": [ + 59310 + ], + "Ownable": [ + 46487 + ], + "RNSOperation": [ + 60928 + ] + }, + "nodeType": "SourceUnit", + "src": "32:2655:89", + "nodes": [ + { + "id": 60743, + "nodeType": "PragmaDirective", + "src": "32:24:89", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ] + }, + { + "id": 60745, + "nodeType": "ImportDirective", + "src": "58:69:89", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "nameLocation": "-1:-1:-1", + "scope": 60929, + "sourceUnit": 46488, + "symbolAliases": [ + { + "foreign": { + "id": 60744, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46487, + "src": "67:7:89", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 60747, + "nodeType": "ImportDirective", + "src": "128:58:89", + "nodes": [], + "absolutePath": "src/interfaces/INSUnified.sol", + "file": "../interfaces/INSUnified.sol", + "nameLocation": "-1:-1:-1", + "scope": 60929, + "sourceUnit": 59157, + "symbolAliases": [ + { + "foreign": { + "id": 60746, + "name": "INSUnified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59156, + "src": "137:10:89", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 60749, + "nodeType": "ImportDirective", + "src": "187:58:89", + "nodes": [], + "absolutePath": "src/interfaces/INSAuction.sol", + "file": "../interfaces/INSAuction.sol", + "nameLocation": "-1:-1:-1", + "scope": 60929, + "sourceUnit": 58630, + "symbolAliases": [ + { + "foreign": { + "id": 60748, + "name": "INSAuction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58629, + "src": "196:10:89", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 60751, + "nodeType": "ImportDirective", + "src": "246:61:89", + "nodes": [], + "absolutePath": "src/libraries/LibRNSDomain.sol", + "file": "../libraries/LibRNSDomain.sol", + "nameLocation": "-1:-1:-1", + "scope": 60929, + "sourceUnit": 59311, + "symbolAliases": [ + { + "foreign": { + "id": 60750, + "name": "LibRNSDomain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59310, + "src": "255:12:89", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 60928, + "nodeType": "ContractDefinition", + "src": "309:2377:89", + "nodes": [ + { + "id": 60756, + "nodeType": "VariableDeclaration", + "src": "346:31:89", + "nodes": [], + "constant": false, + "functionSelector": "663b44c5", + "mutability": "immutable", + "name": "rns", + "nameLocation": "374:3:89", + "scope": 60928, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + }, + "typeName": { + "id": 60755, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 60754, + "name": "INSUnified", + "nameLocations": [ + "346:10:89" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59156, + "src": "346:10:89" + }, + "referencedDeclaration": 59156, + "src": "346:10:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + } + }, + "visibility": "public" + }, + { + "id": 60758, + "nodeType": "VariableDeclaration", + "src": "381:33:89", + "nodes": [], + "constant": false, + "functionSelector": "04f3bcec", + "mutability": "immutable", + "name": "resolver", + "nameLocation": "406:8:89", + "scope": 60928, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "381:7:89", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 60761, + "nodeType": "VariableDeclaration", + "src": "418:35:89", + "nodes": [], + "constant": false, + "functionSelector": "7d9f6db5", + "mutability": "immutable", + "name": "auction", + "nameLocation": "446:7:89", + "scope": 60928, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSAuction_$58629", + "typeString": "contract INSAuction" + }, + "typeName": { + "id": 60760, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 60759, + "name": "INSAuction", + "nameLocations": [ + "418:10:89" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58629, + "src": "418:10:89" + }, + "referencedDeclaration": 58629, + "src": "418:10:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSAuction_$58629", + "typeString": "contract INSAuction" + } + }, + "visibility": "public" + }, + { + "id": 60785, + "nodeType": "FunctionDefinition", + "src": "458:140:89", + "nodes": [], + "body": { + "id": 60784, + "nodeType": "Block", + "src": "527:71:89", + "nodes": [], + "statements": [ + { + "expression": { + "id": 60774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 60772, + "name": "rns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60756, + "src": "533:3:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 60773, + "name": "rns_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60764, + "src": "539:4:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + } + }, + "src": "533:10:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + } + }, + "id": 60775, + "nodeType": "ExpressionStatement", + "src": "533:10:89" + }, + { + "expression": { + "id": 60778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 60776, + "name": "auction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60761, + "src": "549:7:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSAuction_$58629", + "typeString": "contract INSAuction" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 60777, + "name": "auction_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60769, + "src": "559:8:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSAuction_$58629", + "typeString": "contract INSAuction" + } + }, + "src": "549:18:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSAuction_$58629", + "typeString": "contract INSAuction" + } + }, + "id": 60779, + "nodeType": "ExpressionStatement", + "src": "549:18:89" + }, + { + "expression": { + "id": 60782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 60780, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60758, + "src": "573:8:89", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 60781, + "name": "resolver_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60766, + "src": "584:9:89", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "573:20:89", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 60783, + "nodeType": "ExpressionStatement", + "src": "573:20:89" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 60770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60764, + "mutability": "mutable", + "name": "rns_", + "nameLocation": "481:4:89", + "nodeType": "VariableDeclaration", + "scope": 60785, + "src": "470:15:89", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + }, + "typeName": { + "id": 60763, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 60762, + "name": "INSUnified", + "nameLocations": [ + "470:10:89" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59156, + "src": "470:10:89" + }, + "referencedDeclaration": 59156, + "src": "470:10:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60766, + "mutability": "mutable", + "name": "resolver_", + "nameLocation": "495:9:89", + "nodeType": "VariableDeclaration", + "scope": 60785, + "src": "487:17:89", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:89", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60769, + "mutability": "mutable", + "name": "auction_", + "nameLocation": "517:8:89", + "nodeType": "VariableDeclaration", + "scope": 60785, + "src": "506:19:89", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSAuction_$58629", + "typeString": "contract INSAuction" + }, + "typeName": { + "id": 60768, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 60767, + "name": "INSAuction", + "nameLocations": [ + "506:10:89" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58629, + "src": "506:10:89" + }, + "referencedDeclaration": 58629, + "src": "506:10:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSAuction_$58629", + "typeString": "contract INSAuction" + } + }, + "visibility": "internal" + } + ], + "src": "469:57:89" + }, + "returnParameters": { + "id": 60771, + "nodeType": "ParameterList", + "parameters": [], + "src": "527:0:89" + }, + "scope": 60928, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 60836, + "nodeType": "FunctionDefinition", + "src": "910:313:89", + "nodes": [], + "body": { + "id": 60835, + "nodeType": "Block", + "src": "1014:209:89", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 60804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 60800, + "name": "labels", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60792, + "src": "1028:6:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 60801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1035:6:89", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1028:13:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 60802, + "name": "tos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60789, + "src": "1045:3:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 60803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1049:6:89", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1045:10:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1028:27:89", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "524e534f7065726174696f6e3a206c656e677468206d69736d61746368", + "id": 60805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1057:31:89", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_afc2354994fd6a56a08b9d89fdfd3afd427bd8cb589de7d091fdaeb14d3048c3", + "typeString": "literal_string \"RNSOperation: length mismatch\"" + }, + "value": "RNSOperation: length mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_afc2354994fd6a56a08b9d89fdfd3afd427bd8cb589de7d091fdaeb14d3048c3", + "typeString": "literal_string \"RNSOperation: length mismatch\"" + } + ], + "id": 60799, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1020:7:89", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 60806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1020:69:89", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 60807, + "nodeType": "ExpressionStatement", + "src": "1020:69:89" + }, + { + "body": { + "id": 60833, + "nodeType": "Block", + "src": "1136:83:89", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 60821, + "name": "LibRNSDomain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59310, + "src": "1153:12:89", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibRNSDomain_$59310_$", + "typeString": "type(library LibRNSDomain)" + } + }, + "id": 60822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1166:6:89", + "memberName": "RON_ID", + "nodeType": "MemberAccess", + "referencedDeclaration": 59273, + "src": "1153:19:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 60823, + "name": "labels", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60792, + "src": "1174:6:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 60825, + "indexExpression": { + "id": 60824, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60809, + "src": "1181:1:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1174:9:89", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 60826, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60758, + "src": "1185:8:89", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 60827, + "name": "tos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60789, + "src": "1195:3:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 60829, + "indexExpression": { + "id": 60828, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60809, + "src": "1199:1:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1195:6:89", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 60830, + "name": "duration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60794, + "src": "1203:8:89", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 60818, + "name": "rns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60756, + "src": "1144:3:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + } + }, + "id": 60820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1148:4:89", + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 59076, + "src": "1144:8:89", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_address_$_t_uint64_$returns$_t_uint64_$_t_uint256_$", + "typeString": "function (uint256,string memory,address,address,uint64) external returns (uint64,uint256)" + } + }, + "id": 60831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1144:68:89", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", + "typeString": "tuple(uint64,uint256)" + } + }, + "id": 60832, + "nodeType": "ExpressionStatement", + "src": "1144:68:89" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 60814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 60811, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60809, + "src": "1112:1:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 60812, + "name": "labels", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60792, + "src": "1116:6:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 60813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1123:6:89", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1116:13:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1112:17:89", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 60834, + "initializationExpression": { + "assignments": [ + 60809 + ], + "declarations": [ + { + "constant": false, + "id": 60809, + "mutability": "mutable", + "name": "i", + "nameLocation": "1109:1:89", + "nodeType": "VariableDeclaration", + "scope": 60834, + "src": "1101:9:89", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1101:7:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 60810, + "nodeType": "VariableDeclarationStatement", + "src": "1101:9:89" + }, + "loopExpression": { + "expression": { + "id": 60816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "1131:3:89", + "subExpression": { + "id": 60815, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60809, + "src": "1133:1:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 60817, + "nodeType": "ExpressionStatement", + "src": "1131:3:89" + }, + "nodeType": "ForStatement", + "src": "1096:123:89" + } + ] + }, + "documentation": { + "id": 60786, + "nodeType": "StructuredDocumentation", + "src": "602:305:89", + "text": " @dev Allows the owner to mint RNS domains in bulk with specified labels and durations.\n @param tos The array of addresses to receive the minted domains.\n @param labels The array of labels for the minted domains.\n @param duration The duration for which the domains will be owned." + }, + "functionSelector": "38d73f63", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 60797, + "kind": "modifierInvocation", + "modifierName": { + "id": 60796, + "name": "onlyOwner", + "nameLocations": [ + "1004:9:89" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46406, + "src": "1004:9:89" + }, + "nodeType": "ModifierInvocation", + "src": "1004:9:89" + } + ], + "name": "bulkMint", + "nameLocation": "919:8:89", + "parameters": { + "id": 60795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60789, + "mutability": "mutable", + "name": "tos", + "nameLocation": "947:3:89", + "nodeType": "VariableDeclaration", + "scope": 60836, + "src": "928:22:89", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 60787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "928:7:89", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 60788, + "nodeType": "ArrayTypeName", + "src": "928:9:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60792, + "mutability": "mutable", + "name": "labels", + "nameLocation": "970:6:89", + "nodeType": "VariableDeclaration", + "scope": 60836, + "src": "952:24:89", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 60790, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "952:6:89", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 60791, + "nodeType": "ArrayTypeName", + "src": "952:8:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60794, + "mutability": "mutable", + "name": "duration", + "nameLocation": "985:8:89", + "nodeType": "VariableDeclaration", + "scope": 60836, + "src": "978:15:89", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 60793, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "978:6:89", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "927:67:89" + }, + "returnParameters": { + "id": 60798, + "nodeType": "ParameterList", + "parameters": [], + "src": "1014:0:89" + }, + "scope": 60928, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 60857, + "nodeType": "FunctionDefinition", + "src": "1486:152:89", + "nodes": [], + "body": { + "id": 60856, + "nodeType": "Block", + "src": "1577:61:89", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 60851, + "name": "labels", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60840, + "src": "1610:6:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + ], + "id": 60850, + "name": "toIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60927, + "src": "1604:5:89", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (string calldata[] calldata) pure returns (uint256[] memory)" + } + }, + "id": 60852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1604:13:89", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 60853, + "name": "shouldProtect", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60842, + "src": "1619:13:89", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 60847, + "name": "rns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60756, + "src": "1583:3:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSUnified_$59156", + "typeString": "contract INSUnified" + } + }, + "id": 60849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1587:16:89", + "memberName": "bulkSetProtected", + "nodeType": "MemberAccess", + "referencedDeclaration": 59155, + "src": "1583:20:89", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bool_$returns$__$", + "typeString": "function (uint256[] memory,bool) external" + } + }, + "id": 60854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1583:50:89", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 60855, + "nodeType": "ExpressionStatement", + "src": "1583:50:89" + } + ] + }, + "documentation": { + "id": 60837, + "nodeType": "StructuredDocumentation", + "src": "1227:256:89", + "text": " @dev Allows the owner to set the protection status of multiple RNS domains in bulk.\n @param labels The array of labels for the domains.\n @param shouldProtect A boolean indicating whether to protect or unprotect the specified domains." + }, + "functionSelector": "5ca03294", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 60845, + "kind": "modifierInvocation", + "modifierName": { + "id": 60844, + "name": "onlyOwner", + "nameLocations": [ + "1567:9:89" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46406, + "src": "1567:9:89" + }, + "nodeType": "ModifierInvocation", + "src": "1567:9:89" + } + ], + "name": "bulkSetProtected", + "nameLocation": "1495:16:89", + "parameters": { + "id": 60843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60840, + "mutability": "mutable", + "name": "labels", + "nameLocation": "1530:6:89", + "nodeType": "VariableDeclaration", + "scope": 60857, + "src": "1512:24:89", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 60838, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1512:6:89", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 60839, + "nodeType": "ArrayTypeName", + "src": "1512:8:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60842, + "mutability": "mutable", + "name": "shouldProtect", + "nameLocation": "1543:13:89", + "nodeType": "VariableDeclaration", + "scope": 60857, + "src": "1538:18:89", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 60841, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1538:4:89", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1511:46:89" + }, + "returnParameters": { + "id": 60846, + "nodeType": "ParameterList", + "parameters": [], + "src": "1577:0:89" + }, + "scope": 60928, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 60882, + "nodeType": "FunctionDefinition", + "src": "2035:193:89", + "nodes": [], + "body": { + "id": 60881, + "nodeType": "Block", + "src": "2153:75:89", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 60874, + "name": "tos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60861, + "src": "2190:3:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "arguments": [ + { + "id": 60876, + "name": "labels", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60864, + "src": "2201:6:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + ], + "id": 60875, + "name": "toIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60927, + "src": "2195:5:89", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (string calldata[] calldata) pure returns (uint256[] memory)" + } + }, + "id": 60877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2195:13:89", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 60878, + "name": "allowFailure", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60866, + "src": "2210:12:89", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 60871, + "name": "auction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60761, + "src": "2159:7:89", + "typeDescriptions": { + "typeIdentifier": "t_contract$_INSAuction_$58629", + "typeString": "contract INSAuction" + } + }, + "id": 60873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2167:22:89", + "memberName": "bulkClaimUnbiddedNames", + "nodeType": "MemberAccess", + "referencedDeclaration": 58531, + "src": "2159:30:89", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bool_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", + "typeString": "function (address[] memory,uint256[] memory,bool) external returns (bool[] memory)" + } + }, + "id": 60879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2159:64:89", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 60880, + "nodeType": "ExpressionStatement", + "src": "2159:64:89" + } + ] + }, + "documentation": { + "id": 60858, + "nodeType": "StructuredDocumentation", + "src": "1642:390:89", + "text": " @dev Allows the owner to reclaim unbidded RNS domain names and transfer them to specified addresses.\n @param tos The array of addresses to which the unbidded domains will be transferred.\n @param labels The array of labels for the unbidded domains to be reclaimed.\n @param allowFailure Flag to indicate whether to allow failure if a domain is already being bid on." + }, + "functionSelector": "19edebf2", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 60869, + "kind": "modifierInvocation", + "modifierName": { + "id": 60868, + "name": "onlyOwner", + "nameLocations": [ + "2143:9:89" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46406, + "src": "2143:9:89" + }, + "nodeType": "ModifierInvocation", + "src": "2143:9:89" + } + ], + "name": "reclaimUnbiddedNames", + "nameLocation": "2044:20:89", + "parameters": { + "id": 60867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60861, + "mutability": "mutable", + "name": "tos", + "nameLocation": "2084:3:89", + "nodeType": "VariableDeclaration", + "scope": 60882, + "src": "2065:22:89", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 60859, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2065:7:89", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 60860, + "nodeType": "ArrayTypeName", + "src": "2065:9:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60864, + "mutability": "mutable", + "name": "labels", + "nameLocation": "2107:6:89", + "nodeType": "VariableDeclaration", + "scope": 60882, + "src": "2089:24:89", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 60862, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2089:6:89", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 60863, + "nodeType": "ArrayTypeName", + "src": "2089:8:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60866, + "mutability": "mutable", + "name": "allowFailure", + "nameLocation": "2120:12:89", + "nodeType": "VariableDeclaration", + "scope": 60882, + "src": "2115:17:89", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 60865, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2115:4:89", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2064:69:89" + }, + "returnParameters": { + "id": 60870, + "nodeType": "ParameterList", + "parameters": [], + "src": "2153:0:89" + }, + "scope": 60928, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 60927, + "nodeType": "FunctionDefinition", + "src": "2436:248:89", + "nodes": [], + "body": { + "id": 60926, + "nodeType": "Block", + "src": "2520:164:89", + "nodes": [], + "statements": [ + { + "expression": { + "id": 60899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 60892, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60890, + "src": "2526:3:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 60896, + "name": "labels", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60886, + "src": "2546:6:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 60897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2553:6:89", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2546:13:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 60895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2532:13:89", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 60893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2536:7:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 60894, + "nodeType": "ArrayTypeName", + "src": "2536:9:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 60898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2532:28:89", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "2526:34:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 60900, + "nodeType": "ExpressionStatement", + "src": "2526:34:89" + }, + { + "body": { + "id": 60924, + "nodeType": "Block", + "src": "2607:73:89", + "statements": [ + { + "expression": { + "id": 60922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 60911, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60890, + "src": "2615:3:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 60913, + "indexExpression": { + "id": 60912, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60902, + "src": "2619:1:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2615:6:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 60916, + "name": "LibRNSDomain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59310, + "src": "2642:12:89", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibRNSDomain_$59310_$", + "typeString": "type(library LibRNSDomain)" + } + }, + "id": 60917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2655:6:89", + "memberName": "RON_ID", + "nodeType": "MemberAccess", + "referencedDeclaration": 59273, + "src": "2642:19:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 60918, + "name": "labels", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60886, + "src": "2663:6:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 60920, + "indexExpression": { + "id": 60919, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60902, + "src": "2670:1:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2663:9:89", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "expression": { + "id": 60914, + "name": "LibRNSDomain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59310, + "src": "2624:12:89", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibRNSDomain_$59310_$", + "typeString": "type(library LibRNSDomain)" + } + }, + "id": 60915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2637:4:89", + "memberName": "toId", + "nodeType": "MemberAccess", + "referencedDeclaration": 59289, + "src": "2624:17:89", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,string memory) pure returns (uint256)" + } + }, + "id": 60921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2624:49:89", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2615:58:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 60923, + "nodeType": "ExpressionStatement", + "src": "2615:58:89" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 60907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 60904, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60902, + "src": "2583:1:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 60905, + "name": "labels", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60886, + "src": "2587:6:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 60906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2594:6:89", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2587:13:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2583:17:89", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 60925, + "initializationExpression": { + "assignments": [ + 60902 + ], + "declarations": [ + { + "constant": false, + "id": 60902, + "mutability": "mutable", + "name": "i", + "nameLocation": "2580:1:89", + "nodeType": "VariableDeclaration", + "scope": 60925, + "src": "2572:9:89", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60901, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2572:7:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 60903, + "nodeType": "VariableDeclarationStatement", + "src": "2572:9:89" + }, + "loopExpression": { + "expression": { + "id": 60909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2602:3:89", + "subExpression": { + "id": 60908, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60902, + "src": "2604:1:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 60910, + "nodeType": "ExpressionStatement", + "src": "2602:3:89" + }, + "nodeType": "ForStatement", + "src": "2567:113:89" + } + ] + }, + "documentation": { + "id": 60883, + "nodeType": "StructuredDocumentation", + "src": "2232:201:89", + "text": " @dev Converts an array of labels to an array of corresponding RNS domain IDs.\n @param labels The array of labels to be converted to IDs.\n @return ids The array of RNS domain IDs." + }, + "functionSelector": "71e8704d", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toIds", + "nameLocation": "2445:5:89", + "parameters": { + "id": 60887, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60886, + "mutability": "mutable", + "name": "labels", + "nameLocation": "2469:6:89", + "nodeType": "VariableDeclaration", + "scope": 60927, + "src": "2451:24:89", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 60884, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2451:6:89", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 60885, + "nodeType": "ArrayTypeName", + "src": "2451:8:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "src": "2450:26:89" + }, + "returnParameters": { + "id": 60891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60890, + "mutability": "mutable", + "name": "ids", + "nameLocation": "2515:3:89", + "nodeType": "VariableDeclaration", + "scope": 60927, + "src": "2498:20:89", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 60888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2498:7:89", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 60889, + "nodeType": "ArrayTypeName", + "src": "2498:9:89", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2497:22:89" + }, + "scope": 60928, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 60752, + "name": "Ownable", + "nameLocations": [ + "334:7:89" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46487, + "src": "334:7:89" + }, + "id": 60753, + "nodeType": "InheritanceSpecifier", + "src": "334:7:89" + } + ], + "canonicalName": "RNSOperation", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 60928, + 46487, + 49552 + ], + "name": "RNSOperation", + "nameLocation": "318:12:89", + "scope": 60929, + "usedErrors": [], + "usedEvents": [ + 46388 + ] + } + ], + "license": "MIT" + }, + "blockNumber": 22371222, + "bytecode": "0x60e060405234801561001057600080fd5b50604051610d8d380380610d8d83398101604081905261002f916100bc565b61003833610054565b6001600160a01b03928316608052821660c0521660a052610109565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146100b957600080fd5b50565b6000806000606084860312156100d157600080fd5b83516100dc816100a4565b60208501519093506100ed816100a4565b60408501519092506100fe816100a4565b809150509250925092565b60805160a05160c051610c3a6101536000396000818161017601526101c601526000818160a8015261034b015260008181610127015281816102d701526104120152610c3a6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a61461014957806371e8704d146101515780637d9f6db5146101715780638da5cb5b14610198578063f2fde38b146101a957600080fd5b806304f3bcec146100a357806319edebf2146100e757806338d73f63146100fc5780635ca032941461010f578063663b44c514610122575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100fa6100f536600461074d565b6101bc565b005b6100fa61010a3660046107e7565b61026e565b6100fa61011d36600461085d565b610408565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6100fa61049e565b61016461015f3660046108b4565b6104b2565b6040516100de9190610931565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03166100ca565b6100fa6101b7366004610967565b6105ba565b6101c4610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391a3823f86866101ff87876104b2565b856040518563ffffffff1660e01b815260040161021f9493929190610982565b6000604051808303816000875af115801561023e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102669190810190610a0c565b505050505050565b610276610633565b8184146102ca5760405162461bcd60e51b815260206004820152601d60248201527f524e534f7065726174696f6e3a206c656e677468206d69736d6174636800000060448201526064015b60405180910390fd5b60005b82811015610266577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68886868581811061033757610337610ad1565b90506020028101906103499190610ae7565b7f00000000000000000000000000000000000000000000000000000000000000008b8b8881811061037c5761037c610ad1565b90506020020160208101906103919190610967565b886040518763ffffffff1660e01b81526004016103b396959493929190610b2e565b60408051808303816000875af11580156103d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190610b8b565b50508061040190610bb9565b90506102cd565b610410610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec63b01f61044985856104b2565b836040518363ffffffff1660e01b8152600401610467929190610be0565b600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b50505050505050565b6104a6610633565b6104b0600061068d565b565b60608167ffffffffffffffff8111156104cd576104cd6109eb565b6040519080825280602002602001820160405280156104f6578160200160208202803683370190505b50905060005b828110156105b3576105867fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68885858481811061053a5761053a610ad1565b905060200281019061054c9190610ae7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106dd92505050565b82828151811061059857610598610ad1565b60209081029190910101526105ac81610bb9565b90506104fc565b5092915050565b6105c2610633565b6001600160a01b0381166106275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c1565b6106308161068d565b50565b6000546001600160a01b031633146104b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000918252805160209182012090526040902090565b60008083601f84011261070557600080fd5b50813567ffffffffffffffff81111561071d57600080fd5b6020830191508360208260051b850101111561073857600080fd5b9250929050565b801515811461063057600080fd5b60008060008060006060868803121561076557600080fd5b853567ffffffffffffffff8082111561077d57600080fd5b61078989838a016106f3565b909750955060208801359150808211156107a257600080fd5b506107af888289016106f3565b90945092505060408601356107c38161073f565b809150509295509295909350565b67ffffffffffffffff8116811461063057600080fd5b6000806000806000606086880312156107ff57600080fd5b853567ffffffffffffffff8082111561081757600080fd5b61082389838a016106f3565b9097509550602088013591508082111561083c57600080fd5b50610849888289016106f3565b90945092505060408601356107c3816107d1565b60008060006040848603121561087257600080fd5b833567ffffffffffffffff81111561088957600080fd5b610895868287016106f3565b90945092505060208401356108a98161073f565b809150509250925092565b600080602083850312156108c757600080fd5b823567ffffffffffffffff8111156108de57600080fd5b6108ea858286016106f3565b90969095509350505050565b600081518084526020808501945080840160005b838110156109265781518752958201959082019060010161090a565b509495945050505050565b60208152600061094460208301846108f6565b9392505050565b80356001600160a01b038116811461096257600080fd5b919050565b60006020828403121561097957600080fd5b6109448261094b565b6060808252810184905260008560808301825b878110156109c3576001600160a01b036109ae8461094b565b16825260209283019290910190600101610995565b5083810360208501526109d681876108f6565b92505050821515604083015295945050505050565b634e487b7160e01b600052604160045260246000fd5b80516109628161073f565b60006020808385031215610a1f57600080fd5b825167ffffffffffffffff80821115610a3757600080fd5b818501915085601f830112610a4b57600080fd5b815181811115610a5d57610a5d6109eb565b8060051b604051601f19603f83011681018181108582111715610a8257610a826109eb565b604052918252848201925083810185019188831115610aa057600080fd5b938501935b82851015610ac557610ab685610a01565b84529385019392850192610aa5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610afe57600080fd5b83018035915067ffffffffffffffff821115610b1957600080fd5b60200191503681900382131561073857600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b03948516604083015292909316606084015267ffffffffffffffff166080830152601f909201601f1916010192915050565b60008060408385031215610b9e57600080fd5b8251610ba9816107d1565b6020939093015192949293505050565b600060018201610bd957634e487b7160e01b600052601160045260246000fd5b5060010190565b604081526000610bf360408301856108f6565b90508215156020830152939250505056fea2646970667358221220740b9574a3a60d51c9153c3c1fc4d37b014870c53a5b57950a6a050a94f9d1ba64736f6c63430008150033", + "chainId": 2021, + "contractName": "RNSOperation", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a61461014957806371e8704d146101515780637d9f6db5146101715780638da5cb5b14610198578063f2fde38b146101a957600080fd5b806304f3bcec146100a357806319edebf2146100e757806338d73f63146100fc5780635ca032941461010f578063663b44c514610122575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100fa6100f536600461074d565b6101bc565b005b6100fa61010a3660046107e7565b61026e565b6100fa61011d36600461085d565b610408565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6100fa61049e565b61016461015f3660046108b4565b6104b2565b6040516100de9190610931565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03166100ca565b6100fa6101b7366004610967565b6105ba565b6101c4610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391a3823f86866101ff87876104b2565b856040518563ffffffff1660e01b815260040161021f9493929190610982565b6000604051808303816000875af115801561023e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102669190810190610a0c565b505050505050565b610276610633565b8184146102ca5760405162461bcd60e51b815260206004820152601d60248201527f524e534f7065726174696f6e3a206c656e677468206d69736d6174636800000060448201526064015b60405180910390fd5b60005b82811015610266577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68886868581811061033757610337610ad1565b90506020028101906103499190610ae7565b7f00000000000000000000000000000000000000000000000000000000000000008b8b8881811061037c5761037c610ad1565b90506020020160208101906103919190610967565b886040518763ffffffff1660e01b81526004016103b396959493929190610b2e565b60408051808303816000875af11580156103d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190610b8b565b50508061040190610bb9565b90506102cd565b610410610633565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec63b01f61044985856104b2565b836040518363ffffffff1660e01b8152600401610467929190610be0565b600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b50505050505050565b6104a6610633565b6104b0600061068d565b565b60608167ffffffffffffffff8111156104cd576104cd6109eb565b6040519080825280602002602001820160405280156104f6578160200160208202803683370190505b50905060005b828110156105b3576105867fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d68885858481811061053a5761053a610ad1565b905060200281019061054c9190610ae7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106dd92505050565b82828151811061059857610598610ad1565b60209081029190910101526105ac81610bb9565b90506104fc565b5092915050565b6105c2610633565b6001600160a01b0381166106275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c1565b6106308161068d565b50565b6000546001600160a01b031633146104b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000918252805160209182012090526040902090565b60008083601f84011261070557600080fd5b50813567ffffffffffffffff81111561071d57600080fd5b6020830191508360208260051b850101111561073857600080fd5b9250929050565b801515811461063057600080fd5b60008060008060006060868803121561076557600080fd5b853567ffffffffffffffff8082111561077d57600080fd5b61078989838a016106f3565b909750955060208801359150808211156107a257600080fd5b506107af888289016106f3565b90945092505060408601356107c38161073f565b809150509295509295909350565b67ffffffffffffffff8116811461063057600080fd5b6000806000806000606086880312156107ff57600080fd5b853567ffffffffffffffff8082111561081757600080fd5b61082389838a016106f3565b9097509550602088013591508082111561083c57600080fd5b50610849888289016106f3565b90945092505060408601356107c3816107d1565b60008060006040848603121561087257600080fd5b833567ffffffffffffffff81111561088957600080fd5b610895868287016106f3565b90945092505060208401356108a98161073f565b809150509250925092565b600080602083850312156108c757600080fd5b823567ffffffffffffffff8111156108de57600080fd5b6108ea858286016106f3565b90969095509350505050565b600081518084526020808501945080840160005b838110156109265781518752958201959082019060010161090a565b509495945050505050565b60208152600061094460208301846108f6565b9392505050565b80356001600160a01b038116811461096257600080fd5b919050565b60006020828403121561097957600080fd5b6109448261094b565b6060808252810184905260008560808301825b878110156109c3576001600160a01b036109ae8461094b565b16825260209283019290910190600101610995565b5083810360208501526109d681876108f6565b92505050821515604083015295945050505050565b634e487b7160e01b600052604160045260246000fd5b80516109628161073f565b60006020808385031215610a1f57600080fd5b825167ffffffffffffffff80821115610a3757600080fd5b818501915085601f830112610a4b57600080fd5b815181811115610a5d57610a5d6109eb565b8060051b604051601f19603f83011681018181108582111715610a8257610a826109eb565b604052918252848201925083810185019188831115610aa057600080fd5b938501935b82851015610ac557610ab685610a01565b84529385019392850192610aa5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610afe57600080fd5b83018035915067ffffffffffffffff821115610b1957600080fd5b60200191503681900382131561073857600080fd5b86815260a060208201528460a0820152848660c0830137600060c08683018101919091526001600160a01b03948516604083015292909316606084015267ffffffffffffffff166080830152601f909201601f1916010192915050565b60008060408385031215610b9e57600080fd5b8251610ba9816107d1565b6020939093015192949293505050565b600060018201610bd957634e487b7160e01b600052601160045260246000fd5b5060010190565b604081526000610bf360408301856108f6565b90508215156020830152939250505056fea2646970667358221220740b9574a3a60d51c9153c3c1fc4d37b014870c53a5b57950a6a050a94f9d1ba64736f6c63430008150033", + "deployer": "0x968D0Cd7343f711216817E617d3f92a23dC91c07", + "devdoc": { + "version": 1, + "kind": "dev", + "methods": { + "bulkMint(address[],string[],uint64)": { + "details": "Allows the owner to mint RNS domains in bulk with specified labels and durations.", + "params": { + "duration": "The duration for which the domains will be owned.", + "labels": "The array of labels for the minted domains.", + "tos": "The array of addresses to receive the minted domains." + } + }, + "bulkSetProtected(string[],bool)": { + "details": "Allows the owner to set the protection status of multiple RNS domains in bulk.", + "params": { + "labels": "The array of labels for the domains.", + "shouldProtect": "A boolean indicating whether to protect or unprotect the specified domains." + } + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "reclaimUnbiddedNames(address[],string[],bool)": { + "details": "Allows the owner to reclaim unbidded RNS domain names and transfer them to specified addresses.", + "params": { + "allowFailure": "Flag to indicate whether to allow failure if a domain is already being bid on.", + "labels": "The array of labels for the unbidded domains to be reclaimed.", + "tos": "The array of addresses to which the unbidded domains will be transferred." + } + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner." + }, + "toIds(string[])": { + "details": "Converts an array of labels to an array of corresponding RNS domain IDs.", + "params": { + "labels": "The array of labels to be converted to IDs." + }, + "returns": { + "ids": "The array of RNS domain IDs." + } + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + } + }, + "isFoundry": true, + "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract INSUnified\",\"name\":\"rns_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"contract INSAuction\",\"name\":\"auction_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"auction\",\"outputs\":[{\"internalType\":\"contract INSAuction\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tos\",\"type\":\"address[]\"},{\"internalType\":\"string[]\",\"name\":\"labels\",\"type\":\"string[]\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"}],\"name\":\"bulkMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"labels\",\"type\":\"string[]\"},{\"internalType\":\"bool\",\"name\":\"shouldProtect\",\"type\":\"bool\"}],\"name\":\"bulkSetProtected\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tos\",\"type\":\"address[]\"},{\"internalType\":\"string[]\",\"name\":\"labels\",\"type\":\"string[]\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"}],\"name\":\"reclaimUnbiddedNames\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rns\",\"outputs\":[{\"internalType\":\"contract INSUnified\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"labels\",\"type\":\"string[]\"}],\"name\":\"toIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bulkMint(address[],string[],uint64)\":{\"details\":\"Allows the owner to mint RNS domains in bulk with specified labels and durations.\",\"params\":{\"duration\":\"The duration for which the domains will be owned.\",\"labels\":\"The array of labels for the minted domains.\",\"tos\":\"The array of addresses to receive the minted domains.\"}},\"bulkSetProtected(string[],bool)\":{\"details\":\"Allows the owner to set the protection status of multiple RNS domains in bulk.\",\"params\":{\"labels\":\"The array of labels for the domains.\",\"shouldProtect\":\"A boolean indicating whether to protect or unprotect the specified domains.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"reclaimUnbiddedNames(address[],string[],bool)\":{\"details\":\"Allows the owner to reclaim unbidded RNS domain names and transfer them to specified addresses.\",\"params\":{\"allowFailure\":\"Flag to indicate whether to allow failure if a domain is already being bid on.\",\"labels\":\"The array of labels for the unbidded domains to be reclaimed.\",\"tos\":\"The array of addresses to which the unbidded domains will be transferred.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"toIds(string[])\":{\"details\":\"Converts an array of labels to an array of corresponding RNS domain IDs.\",\"params\":{\"labels\":\"The array of labels to be converted to IDs.\"},\"returns\":{\"ids\":\"The array of RNS domain IDs.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/utils/RNSOperation.sol\":\"RNSOperation\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/buffer/=lib/buffer/\",\":@ensdomains/ens-contracts/=lib/ens-contracts/contracts/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":@pythnetwork/=lib/pyth-sdk-solidity/\",\":@rns-contracts/=src/\",\":buffer/=lib/buffer/contracts/\",\":contract-template/=lib/contract-template/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":ens-contracts/=lib/ens-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":foundry-deployment-kit/=lib/foundry-deployment-kit/script/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pyth-sdk-solidity/=lib/pyth-sdk-solidity/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n /**\\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n *\\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n * {RoleAdminChanged} not being emitted signaling this.\\n *\\n * _Available since v3.1._\\n */\\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n /**\\n * @dev Emitted when `account` is granted `role`.\\n *\\n * `sender` is the account that originated the contract call, an admin role\\n * bearer except when using {AccessControl-_setupRole}.\\n */\\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Emitted when `account` is revoked `role`.\\n *\\n * `sender` is the account that originated the contract call:\\n * - if using `revokeRole`, it is the admin role bearer\\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n */\\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function grantRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function revokeRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been granted `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n */\\n function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\n\\n/**\\n * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.\\n */\\ninterface IAccessControlEnumerable is IAccessControl {\\n /**\\n * @dev Returns one of the accounts that have `role`. `index` must be a\\n * value between 0 and {getRoleMemberCount}, non-inclusive.\\n *\\n * Role bearers are not sorted in any particular way, and their ordering may\\n * change at any point.\\n *\\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\\n * you perform all queries on the same block. See the following\\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\\n * for more information.\\n */\\n function getRoleMember(bytes32 role, uint256 index) external view returns (address);\\n\\n /**\\n * @dev Returns the number of accounts that have `role`. Can be used\\n * together with {getRoleMember} to enumerate all bearers of a role.\\n */\\n function getRoleMemberCount(bytes32 role) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the caller.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC721.sol\\\";\\n\\n/**\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\n */\\ninterface IERC721Metadata is IERC721 {\\n /**\\n * @dev Returns the token collection name.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the token collection symbol.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\\n */\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"src/interfaces/INSAuction.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { INSUnified } from \\\"./INSUnified.sol\\\";\\nimport { EventRange } from \\\"../libraries/LibEventRange.sol\\\";\\n\\ninterface INSAuction {\\n error NotYetEnded();\\n error NoOneBidded();\\n error NullAssignment();\\n error AlreadyBidding(uint256 id);\\n error RatioIsTooLarge();\\n error NameNotReserved();\\n error InvalidEventRange();\\n error QueryIsNotInPeriod();\\n error InsufficientAmount();\\n error InvalidArrayLength();\\n error ContractBidderIsForbidden();\\n error EventIsNotCreatedOrAlreadyStarted();\\n\\n struct Bid {\\n address payable bidder;\\n uint256 price;\\n uint256 timestamp;\\n uint256 claimedAt;\\n }\\n\\n struct DomainAuction {\\n bytes32 auctionId;\\n uint256 startingPrice;\\n Bid bid;\\n }\\n\\n /// @dev Emitted when an auction is set.\\n event AuctionEventSet(bytes32 indexed auctionId, EventRange range);\\n /// @dev Emitted when the labels are listed for auction.\\n event LabelsListed(bytes32 indexed auctionId, uint256[] ids, uint256[] startingPrices);\\n /// @dev Emitted when a bid is placed for a name.\\n event BidPlaced(\\n bytes32 indexed auctionId,\\n uint256 indexed id,\\n uint256 price,\\n address payable bidder,\\n uint256 previousPrice,\\n address previousBidder\\n );\\n /// @dev Emitted when the treasury is updated.\\n event TreasuryUpdated(address indexed addr);\\n /// @dev Emitted when bid gap ratio is updated.\\n event BidGapRatioUpdated(uint256 ratio);\\n\\n /**\\n * @dev The maximum expiry duration\\n */\\n function MAX_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev The maximum expiry duration of a domain after transferring to bidder.\\n */\\n function MAX_AUCTION_DOMAIN_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev Returns the operator role.\\n */\\n function OPERATOR_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Max percentage 100%. Values [0; 100_00] reflexes [0; 100%]\\n */\\n function MAX_PERCENTAGE() external pure returns (uint256);\\n\\n /**\\n * @dev The expiry duration of a domain after transferring to bidder.\\n */\\n function DOMAIN_EXPIRY_DURATION() external pure returns (uint64);\\n\\n /**\\n * @dev Claims domain names for auction.\\n *\\n * Requirements:\\n * - The method caller must be contract operator.\\n *\\n * @param labels The domain names. Eg, ['foo'] for 'foo.ron'\\n * @return ids The id corresponding for namehash of domain names.\\n */\\n function bulkRegister(string[] calldata labels) external returns (uint256[] memory ids);\\n\\n /**\\n * @dev Checks whether a domain name is currently reserved for auction or not.\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function reserved(uint256 id) external view returns (bool);\\n\\n /**\\n * @dev Claim unbidded names and transfer them to the specified addresses.\\n *\\n * Requirements:\\n * - The method caller must be contract operator.\\n *\\n * @param tos The array of addresses to transfer domain names to.\\n * @param ids The id corresponding for namehash of domain names.\\n * @param allowFailure Flag to indicate whether to allow failure if a domain is already being bid on.\\n * @return claimeds An array indicating whether each domain name was successfully claimed.\\n */\\n function bulkClaimUnbiddedNames(address[] calldata tos, uint256[] calldata ids, bool allowFailure)\\n external\\n returns (bool[] memory claimeds);\\n\\n /**\\n * @dev Creates a new auction to sale with a specific time period.\\n *\\n * Requirements:\\n * - The method caller must be admin.\\n *\\n * Emits an event {AuctionEventSet}.\\n *\\n * @return auctionId The auction id\\n * @notice Please use the method `setAuctionNames` to list all the reserved names.\\n */\\n function createAuctionEvent(EventRange calldata range) external returns (bytes32 auctionId);\\n\\n /**\\n * @dev Updates the auction details.\\n *\\n * Requirements:\\n * - The method caller must be admin.\\n *\\n * Emits an event {AuctionEventSet}.\\n */\\n function setAuctionEvent(bytes32 auctionId, EventRange calldata range) external;\\n\\n /**\\n * @dev Returns the event range of an auction.\\n */\\n function getAuctionEvent(bytes32 auctionId) external view returns (EventRange memory);\\n\\n /**\\n * @dev Lists reserved names to sale in a specified auction.\\n *\\n * Requirements:\\n * - The method caller must be contract operator.\\n * - Array length are matched and larger than 0.\\n * - Only allow to set when the domain is:\\n * + Not in any auction.\\n * + Or, in the current auction.\\n * + Or, this name is not bided.\\n *\\n * Emits an event {LabelsListed}.\\n *\\n * Note: If the name is already listed, this method replaces with a new input value.\\n *\\n * @param ids The namehashes id of domain names. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function listNamesForAuction(bytes32 auctionId, uint256[] calldata ids, uint256[] calldata startingPrices) external;\\n\\n /**\\n * @dev Places a bid for a domain name.\\n *\\n * Requirements:\\n * - The name is listed, or the auction is happening.\\n * - The msg.value is larger than the current bid price or the auction starting price.\\n *\\n * Emits an event {BidPlaced}.\\n *\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function placeBid(uint256 id) external payable;\\n\\n /**\\n * @dev Returns the highest bid and address of the bidder.\\n * @param id The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function getAuction(uint256 id) external view returns (DomainAuction memory, uint256 beatPrice);\\n\\n /**\\n * @dev Bulk claims the bid name.\\n *\\n * Requirements:\\n * - Must be called after ended time.\\n * - The method caller can be anyone.\\n *\\n * @param ids The namehash id of domain name. Eg, namehash('foo.ron') for 'foo.ron'\\n */\\n function bulkClaimBidNames(uint256[] calldata ids) external returns (uint256[] memory claimedAts);\\n\\n /**\\n * @dev Returns the treasury.\\n */\\n function getTreasury() external view returns (address);\\n\\n /**\\n * @dev Returns the gap ratio between 2 bids with the starting price. Value in range [0;100_00] is 0%-100%.\\n */\\n function getBidGapRatio() external view returns (uint256);\\n\\n /**\\n * @dev Sets the treasury.\\n *\\n * Requirements:\\n * - The method caller must be admin\\n *\\n * Emits an event {TreasuryUpdated}.\\n */\\n function setTreasury(address payable) external;\\n\\n /**\\n * @dev Sets commission ratio. Value in range [0;100_00] is 0%-100%.\\n *\\n * Requirements:\\n * - The method caller must be admin\\n *\\n * Emits an event {BidGapRatioUpdated}.\\n */\\n function setBidGapRatio(uint256) external;\\n\\n /**\\n * @dev Returns RNSUnified contract.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n}\\n\",\"keccak256\":\"0x406d5d682af4652b6c9c26948a4d4e31b6b88c056177973bb5f7d32141ae658c\",\"license\":\"MIT\"},\"src/interfaces/INSUnified.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { IERC721Metadata } from \\\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\\";\\nimport { IAccessControlEnumerable } from \\\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\\\";\\nimport { ModifyingIndicator } from \\\"../types/ModifyingIndicator.sol\\\";\\n\\ninterface INSUnified is IAccessControlEnumerable, IERC721Metadata {\\n /// @dev Error: The provided token id is expired.\\n error Expired();\\n /// @dev Error: The provided token id is unexists.\\n error Unexists();\\n /// @dev Error: The provided token id's depth level is greater than 3.\\n error ThirdLevelDomainUnallowed();\\n /// @dev Error: The provided id expiry is greater than parent id expiry.\\n error ExceedParentExpiry();\\n /// @dev Error: The provided name is unavailable for registration.\\n error Unavailable();\\n /// @dev Error: The sender lacks the necessary permissions.\\n error Unauthorized();\\n /// @dev Error: Missing controller role required for modification.\\n error MissingControllerRole();\\n /// @dev Error: Attempting to set an immutable field, which cannot be modified.\\n error CannotSetImmutableField();\\n /// @dev Error: Missing protected settler role required for modification.\\n error MissingProtectedSettlerRole();\\n /// @dev Error: Attempting to set an expiry time that is not larger than the previous one.\\n error ExpiryTimeMustBeLargerThanTheOldOne();\\n /// @dev Error: The provided name must be registered or is in a grace period.\\n error NameMustBeRegisteredOrInGracePeriod();\\n\\n /**\\n * | Fields\\\\Idc | Modifying Indicator |\\n * | ---------- | ------------------- |\\n * | depth | 0b00000001 |\\n * | parentId | 0b00000010 |\\n * | label | 0b00000100 |\\n */\\n struct ImmutableRecord {\\n // The level-th of a domain.\\n uint8 depth;\\n // The node of parent token. Eg, parent node of vip.duke.ron equals to namehash('duke.ron')\\n uint256 parentId;\\n // The label of a domain. Eg, label is vip for domain vip.duke.ron\\n string label;\\n }\\n\\n /**\\n * | Fields\\\\Idc,Roles | Modifying Indicator | Controller | Protected setter | (Parent) Owner/Spender |\\n * | ---------------- | ------------------- | ---------- | ---------------- | ---------------------- |\\n * | resolver | 0b00001000 | x | | x |\\n * | owner | 0b00010000 | x | | x |\\n * | expiry | 0b00100000 | x | | |\\n * | protected | 0b01000000 | | x | |\\n * Note: (Parent) Owner/Spender means parent owner or current owner or current token spender.\\n */\\n struct MutableRecord {\\n // The resolver address.\\n address resolver;\\n // The record owner. This field must equal to the owner of token.\\n address owner;\\n // Expiry timestamp.\\n uint64 expiry;\\n // Flag indicating whether the token is protected or not.\\n bool protected;\\n }\\n\\n struct Record {\\n ImmutableRecord immut;\\n MutableRecord mut;\\n }\\n\\n /// @dev Emitted when a base URI is updated.\\n event BaseURIUpdated(address indexed operator, string newURI);\\n /// @dev Emitted when the grace period for all domain is updated.\\n event GracePeriodUpdated(address indexed operator, uint64 newGracePeriod);\\n\\n /**\\n * @dev Emitted when the record of node is updated.\\n * @param indicator The binary index of updated fields. Eg, 0b10101011 means fields at position 1, 2, 4, 6, 8 (right\\n * to left) needs to be updated.\\n * @param record The updated fields.\\n */\\n event RecordUpdated(uint256 indexed node, ModifyingIndicator indicator, Record record);\\n\\n /**\\n * @dev Returns the controller role.\\n * @notice Can set all fields {Record.mut} in token record, excepting {Record.mut.protected}.\\n */\\n function CONTROLLER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the protected setter role.\\n * @notice Can set field {Record.mut.protected} in token record by using method `bulkSetProtected`.\\n */\\n function PROTECTED_SETTLER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the reservation role.\\n * @notice Never expire for token owner has this role.\\n */\\n function RESERVATION_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the max expiry value.\\n */\\n function MAX_EXPIRY() external pure returns (uint64);\\n\\n /**\\n * @dev Returns the name hash output of a domain.\\n */\\n function namehash(string memory domain) external pure returns (bytes32 node);\\n\\n /**\\n * @dev Returns true if the specified name is available for registration.\\n * Note: Only available after passing the grace period.\\n */\\n function available(uint256 id) external view returns (bool);\\n\\n /**\\n * @dev Returns the grace period in second(s).\\n * Note: This period affects the availability of the domain.\\n */\\n function getGracePeriod() external view returns (uint64);\\n\\n /**\\n * @dev Returns the total minted ids.\\n * Note: Burning id will not affect `totalMinted`.\\n */\\n function totalMinted() external view returns (uint256);\\n\\n /**\\n * @dev Sets the grace period in second(s).\\n *\\n * Requirements:\\n * - The method caller must have controller role.\\n *\\n * Note: This period affects the availability of the domain.\\n */\\n function setGracePeriod(uint64) external;\\n\\n /**\\n * @dev Sets the base uri.\\n *\\n * Requirements:\\n * - The method caller must be contract owner.\\n *\\n */\\n function setBaseURI(string calldata baseTokenURI) external;\\n\\n /**\\n * @dev Mints token for subnode.\\n *\\n * Requirements:\\n * - The token must be available.\\n * - The method caller must be (parent) owner or approved spender. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n *\\n * @param parentId The parent node to mint or create subnode.\\n * @param label The domain label. Eg, label is duke for domain duke.ron.\\n * @param resolver The resolver address.\\n * @param owner The token owner.\\n * @param duration Duration in second(s) to expire. Leave 0 to set as parent.\\n */\\n function mint(uint256 parentId, string calldata label, address resolver, address owner, uint64 duration)\\n external\\n returns (uint64 expiryTime, uint256 id);\\n\\n /**\\n * @dev Returns all record of a domain.\\n * Reverts if the token is non existent.\\n */\\n function getRecord(uint256 id) external view returns (Record memory record);\\n\\n /**\\n * @dev Returns the domain name of id.\\n */\\n function getDomain(uint256 id) external view returns (string memory domain);\\n\\n /**\\n * @dev Returns whether the requester is able to modify the record based on the updated index.\\n * Note: This method strictly follows the permission of struct {MutableRecord}.\\n */\\n function canSetRecord(address requester, uint256 id, ModifyingIndicator indicator)\\n external\\n view\\n returns (bool, bytes4 error);\\n\\n /**\\n * @dev Sets record of existing token. Update operation for {Record.mut}.\\n *\\n * Requirements:\\n * - The method caller must have role based on the corresponding `indicator`. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function setRecord(uint256 id, ModifyingIndicator indicator, MutableRecord calldata record) external;\\n\\n /**\\n * @dev Reclaims ownership. Update operation for {Record.mut.owner}.\\n *\\n * Requirements:\\n * - The method caller should have controller role.\\n * - The method caller should be (parent) owner or approved spender. See struct {MutableRecord}.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function reclaim(uint256 id, address owner) external;\\n\\n /**\\n * @dev Renews token. Update operation for {Record.mut.expiry}.\\n *\\n * Requirements:\\n * - The method caller should have controller role.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function renew(uint256 id, uint64 duration) external returns (uint64 expiry);\\n\\n /**\\n * @dev Sets expiry time for a token. Update operation for {Record.mut.expiry}.\\n *\\n * Requirements:\\n * - The method caller must have controller role.\\n *\\n * Emits an event {RecordUpdated}.\\n */\\n function setExpiry(uint256 id, uint64 expiry) external;\\n\\n /**\\n * @dev Sets the protected status of a list of ids. Update operation for {Record.mut.protected}.\\n *\\n * Requirements:\\n * - The method caller must have protected setter role.\\n *\\n * Emits events {RecordUpdated}.\\n */\\n function bulkSetProtected(uint256[] calldata ids, bool protected) external;\\n}\\n\",\"keccak256\":\"0x98e2e77490d7fd6d87a8e9800223bb2f60a33e7338e2f65f64a3aed4737c035c\",\"license\":\"MIT\"},\"src/libraries/LibEventRange.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nstruct EventRange {\\n uint256 startedAt;\\n uint256 endedAt;\\n}\\n\\nlibrary LibEventRange {\\n /**\\n * @dev Checks whether the event range is valid.\\n */\\n function valid(EventRange calldata range) internal pure returns (bool) {\\n return range.startedAt <= range.endedAt;\\n }\\n\\n /**\\n * @dev Returns whether the current range is not yet started.\\n */\\n function isNotYetStarted(EventRange memory range) internal view returns (bool) {\\n return block.timestamp < range.startedAt;\\n }\\n\\n /**\\n * @dev Returns whether the current range is ended or not.\\n */\\n function isEnded(EventRange memory range) internal view returns (bool) {\\n return range.endedAt <= block.timestamp;\\n }\\n\\n /**\\n * @dev Returns whether the current block is in period.\\n */\\n function isInPeriod(EventRange memory range) internal view returns (bool) {\\n return range.startedAt <= block.timestamp && block.timestamp < range.endedAt;\\n }\\n}\\n\",\"keccak256\":\"0x95bf015c4245919cbcbcd810dd597fdb23eb4e58b62df8ef74b1c8c60a969bea\",\"license\":\"MIT\"},\"src/libraries/LibRNSDomain.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nlibrary LibRNSDomain {\\n /// @dev Value equals to namehash('ron')\\n uint256 internal constant RON_ID = 0xba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688;\\n /// @dev Value equals to namehash('addr.reverse')\\n uint256 internal constant ADDR_REVERSE_ID = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2;\\n\\n /**\\n * @dev Calculate the corresponding id given parentId and label.\\n */\\n function toId(uint256 parentId, string memory label) internal pure returns (uint256 id) {\\n assembly (\\\"memory-safe\\\") {\\n mstore(0x0, parentId)\\n mstore(0x20, keccak256(add(label, 32), mload(label)))\\n id := keccak256(0x0, 64)\\n }\\n }\\n\\n /**\\n * @dev Calculates the hash of the label.\\n */\\n function hashLabel(string memory label) internal pure returns (bytes32 hashed) {\\n assembly (\\\"memory-safe\\\") {\\n hashed := keccak256(add(label, 32), mload(label))\\n }\\n }\\n\\n /**\\n * @dev Calculate the RNS namehash of a str.\\n */\\n function namehash(string memory str) internal pure returns (bytes32 hashed) {\\n // notice: this method is case-sensitive, ensure the string is lowercased before calling this method\\n assembly (\\\"memory-safe\\\") {\\n // load str length\\n let len := mload(str)\\n // returns bytes32(0x0) if length is zero\\n if iszero(iszero(len)) {\\n let hashedLen\\n // compute pointer to str[0]\\n let head := add(str, 32)\\n // compute pointer to str[length - 1]\\n let tail := add(head, sub(len, 1))\\n // cleanup dirty bytes if contains any\\n mstore(0x0, 0)\\n // loop backwards from `tail` to `head`\\n for { let i := tail } iszero(lt(i, head)) { i := sub(i, 1) } {\\n // check if `i` is `head`\\n let isHead := eq(i, head)\\n // check if `str[i-1]` is \\\".\\\"\\n // `0x2e` == bytes1(\\\".\\\")\\n let isDotNext := eq(shr(248, mload(sub(i, 1))), 0x2e)\\n if or(isHead, isDotNext) {\\n // size = distance(length, i) - hashedLength + 1\\n let size := add(sub(sub(tail, i), hashedLen), 1)\\n mstore(0x20, keccak256(i, size))\\n mstore(0x0, keccak256(0x0, 64))\\n // skip \\\".\\\" thereby + 1\\n hashedLen := add(hashedLen, add(size, 1))\\n }\\n }\\n }\\n hashed := mload(0x0)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x715029b2b420c6ec00bc1f939b837acf45d247fde8426089575b0e7b5e84518b\",\"license\":\"MIT\"},\"src/types/ModifyingIndicator.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\ntype ModifyingIndicator is uint256;\\n\\nusing { hasAny } for ModifyingIndicator global;\\nusing { or as | } for ModifyingIndicator global;\\nusing { and as & } for ModifyingIndicator global;\\nusing { eq as == } for ModifyingIndicator global;\\nusing { not as ~ } for ModifyingIndicator global;\\nusing { xor as ^ } for ModifyingIndicator global;\\nusing { neq as != } for ModifyingIndicator global;\\n\\n/// @dev Indicator for modifying immutable fields: Depth, ParentId, Label. See struct {INSUnified.ImmutableRecord}.\\nModifyingIndicator constant IMMUTABLE_FIELDS_INDICATOR = ModifyingIndicator.wrap(0x7);\\n\\n/// @dev Indicator for modifying user fields: Resolver, Owner. See struct {INSUnified.MutableRecord}.\\nModifyingIndicator constant USER_FIELDS_INDICATOR = ModifyingIndicator.wrap(0x18);\\n\\n/// @dev Indicator when modifying all of the fields in {ModifyingField}.\\nModifyingIndicator constant ALL_FIELDS_INDICATOR = ModifyingIndicator.wrap(type(uint256).max);\\n\\nfunction eq(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return ModifyingIndicator.unwrap(self) == ModifyingIndicator.unwrap(other);\\n}\\n\\nfunction neq(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return !eq(self, other);\\n}\\n\\nfunction xor(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) ^ ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction not(ModifyingIndicator self) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(~ModifyingIndicator.unwrap(self));\\n}\\n\\nfunction or(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) | ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction and(ModifyingIndicator self, ModifyingIndicator other) pure returns (ModifyingIndicator) {\\n return ModifyingIndicator.wrap(ModifyingIndicator.unwrap(self) & ModifyingIndicator.unwrap(other));\\n}\\n\\nfunction hasAny(ModifyingIndicator self, ModifyingIndicator other) pure returns (bool) {\\n return self & other != ModifyingIndicator.wrap(0);\\n}\\n\",\"keccak256\":\"0x2e42fbba358c470ff6b57268367d248f0e2fcf8d7142d762688f7aef5efae7ee\",\"license\":\"MIT\"},\"src/utils/RNSOperation.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { INSUnified } from \\\"../interfaces/INSUnified.sol\\\";\\nimport { INSAuction } from \\\"../interfaces/INSAuction.sol\\\";\\nimport { LibRNSDomain } from \\\"../libraries/LibRNSDomain.sol\\\";\\n\\ncontract RNSOperation is Ownable {\\n INSUnified public immutable rns;\\n address public immutable resolver;\\n INSAuction public immutable auction;\\n\\n constructor(INSUnified rns_, address resolver_, INSAuction auction_) {\\n rns = rns_;\\n auction = auction_;\\n resolver = resolver_;\\n }\\n\\n /**\\n * @dev Allows the owner to mint RNS domains in bulk with specified labels and durations.\\n * @param tos The array of addresses to receive the minted domains.\\n * @param labels The array of labels for the minted domains.\\n * @param duration The duration for which the domains will be owned.\\n */\\n function bulkMint(address[] calldata tos, string[] calldata labels, uint64 duration) external onlyOwner {\\n require(labels.length == tos.length, \\\"RNSOperation: length mismatch\\\");\\n\\n for (uint256 i; i < labels.length; ++i) {\\n rns.mint(LibRNSDomain.RON_ID, labels[i], resolver, tos[i], duration);\\n }\\n }\\n\\n /**\\n * @dev Allows the owner to set the protection status of multiple RNS domains in bulk.\\n * @param labels The array of labels for the domains.\\n * @param shouldProtect A boolean indicating whether to protect or unprotect the specified domains.\\n */\\n function bulkSetProtected(string[] calldata labels, bool shouldProtect) external onlyOwner {\\n rns.bulkSetProtected(toIds(labels), shouldProtect);\\n }\\n\\n /**\\n * @dev Allows the owner to reclaim unbidded RNS domain names and transfer them to specified addresses.\\n * @param tos The array of addresses to which the unbidded domains will be transferred.\\n * @param labels The array of labels for the unbidded domains to be reclaimed.\\n * @param allowFailure Flag to indicate whether to allow failure if a domain is already being bid on.\\n */\\n function reclaimUnbiddedNames(address[] calldata tos, string[] calldata labels, bool allowFailure) external onlyOwner {\\n auction.bulkClaimUnbiddedNames(tos, toIds(labels), allowFailure);\\n }\\n\\n /**\\n * @dev Converts an array of labels to an array of corresponding RNS domain IDs.\\n * @param labels The array of labels to be converted to IDs.\\n * @return ids The array of RNS domain IDs.\\n */\\n function toIds(string[] calldata labels) public pure returns (uint256[] memory ids) {\\n ids = new uint256[](labels.length);\\n\\n for (uint256 i; i < labels.length; ++i) {\\n ids[i] = LibRNSDomain.toId(LibRNSDomain.RON_ID, labels[i]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0xff7a3cf6152d93c3d3f9b1c8a596f902b5314efa5a15aafcfd51c19b8170ba35\",\"license\":\"MIT\"}},\"version\":1}", + "nonce": 185289, + "numDeployments": 2, + "storageLayout": { + "storage": [ + { + "astId": 46382, + "contract": "src/utils/RNSOperation.sol:RNSOperation", + "label": "_owner", + "offset": 0, + "slot": "0", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + } + } + }, + "timestamp": 1700813759, + "userdoc": { + "version": 1, + "kind": "user" + } +} \ No newline at end of file diff --git a/script/20231123-upgrade-auction-claim-unbidded-names/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol b/script/20231123-upgrade-auction-claim-unbidded-names/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol index 7d7d81cf..ef1b5605 100644 --- a/script/20231123-upgrade-auction-claim-unbidded-names/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol +++ b/script/20231123-upgrade-auction-claim-unbidded-names/20231123_UpgradeAuctionClaimUnbiddedNames.s.sol @@ -10,7 +10,7 @@ import { INSAuction, RNSAuction } from "@rns-contracts/RNSAuction.sol"; contract Migration__20231123_UpgradeAuctionClaimeUnbiddedNames is RNSDeploy { function run() public trySetUp { _upgradeProxy(ContractKey.RNSAuction, EMPTY_ARGS); - _validataBulkClaimUnbiddedNames({ size: 50 }); + _validataBulkClaimUnbiddedNames({ size: 20 }); } function _validataBulkClaimUnbiddedNames(uint256 size) internal logFn("_validataBulkClaimUnbiddedNames") { diff --git a/script/20231124-deploy-rns-operation/20231124_DeployRNSOperation.s.sol b/script/20231124-deploy-rns-operation/20231124_DeployRNSOperation.s.sol new file mode 100644 index 00000000..ffe7effa --- /dev/null +++ b/script/20231124-deploy-rns-operation/20231124_DeployRNSOperation.s.sol @@ -0,0 +1,109 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import { console2 as console } from "forge-std/console2.sol"; +import { ContractKey } from "foundry-deployment-kit/configs/ContractConfig.sol"; +import { RNSDeploy } from "script/RNSDeploy.s.sol"; +import { RNSUnified } from "@rns-contracts/RNSUnified.sol"; +import { INSAuction, RNSAuction } from "@rns-contracts/RNSAuction.sol"; +import { LibRNSDomain } from "@rns-contracts/libraries/LibRNSDomain.sol"; +import { RNSOperation, RNSOperationDeploy } from "script/contracts/RNSOperationDeploy.s.sol"; + +contract Migration__20231124_DeployRNSOperation is RNSDeploy { + using LibRNSDomain for string; + + function run() public trySetUp { + RNSOperation rnsOperation = new RNSOperationDeploy().run(); + + RNSUnified rns = RNSUnified(_config.getAddressFromCurrentNetwork(ContractKey.RNSUnified)); + RNSAuction auction = RNSAuction(_config.getAddressFromCurrentNetwork(ContractKey.RNSAuction)); + + address admin = rns.ownerOf(LibRNSDomain.RON_ID); + + vm.broadcast(rnsOperation.owner()); + rnsOperation.transferOwnership(admin); + + vm.startBroadcast(admin); + rns.setApprovalForAll(address(rnsOperation), true); + auction.grantRole(auction.OPERATOR_ROLE(), address(rnsOperation)); + rns.grantRole(rns.PROTECTED_SETTLER_ROLE(), address(rnsOperation)); + vm.stopBroadcast(); + + _validateBulkMint(rns, rnsOperation); + _validateBulkSetProtected(rns, rnsOperation); + _validateReclaimAuctionNames({ rns: rns, auction: auction, rnsOperation: rnsOperation, searchSize: 20 }); + } + + function _validateReclaimAuctionNames( + RNSUnified rns, + RNSAuction auction, + RNSOperation rnsOperation, + uint256 searchSize + ) internal logFn("_validateReclaimAuctionNames") { + INSAuction.DomainAuction[] memory domainAuctions = new INSAuction.DomainAuction[](searchSize); + uint256[] memory reservedIds = new uint256[](searchSize); + for (uint256 i; i < searchSize; ++i) { + reservedIds[i] = rns.tokenOfOwnerByIndex(address(auction), i); + (domainAuctions[i],) = auction.getAuction(reservedIds[i]); + } + + uint256 reclaimableAuctionNameId; + for (uint256 i; i < searchSize; ++i) { + if (domainAuctions[i].bid.bidder == address(0x0)) { + reclaimableAuctionNameId = reservedIds[i]; + break; + } + } + + address to = makeAddr("to"); + address[] memory tos = new address[](1); + tos[0] = to; + string memory label = rns.getRecord(reclaimableAuctionNameId).immut.label; + console.log("reclaimable auction label", label); + string[] memory labels = new string[](1); + labels[0] = label; + + vm.prank(rnsOperation.owner()); + rnsOperation.reclaimUnbiddedNames({tos: tos, labels: labels, allowFailure: false}); + + assertEq(rns.ownerOf(reclaimableAuctionNameId), to); + } + + function _validateBulkMint(RNSUnified rns, RNSOperation rnsOperation) internal logFn("_validateBulkMint") { + address to = makeAddr("to"); + address[] memory tos = new address[](1); + tos[0] = to; + string[] memory labels = new string[](1); + labels[0] = "tudo-provip-maximum-utra"; + uint64 duration = uint64(3 days); + + vm.prank(rnsOperation.owner()); + rnsOperation.bulkMint(tos, labels, duration); + + uint256 id = uint256(string.concat(labels[0], ".ron").namehash()); + assertEq(rns.ownerOf(id), to); + } + + function _validateBulkSetProtected(RNSUnified rns, RNSOperation rnsOperation) + internal + logFn("_validateBulkSetProtected") + { + string[] memory labels = new string[](1); + labels[0] = "tudo-provip-maximum-utra"; + + bool shouldProtect = true; + + vm.prank(rnsOperation.owner()); + rnsOperation.bulkSetProtected(labels, shouldProtect); + + uint256 id = uint256(string.concat(labels[0], ".ron").namehash()); + assertTrue(rns.getRecord(id).mut.protected); + + shouldProtect = false; + + vm.prank(rnsOperation.owner()); + rnsOperation.bulkSetProtected(labels, shouldProtect); + + assertFalse(rns.getRecord(id).mut.protected); + } +} diff --git a/script/contracts/RNSOperationDeploy.s.sol b/script/contracts/RNSOperationDeploy.s.sol new file mode 100644 index 00000000..5bb76ad4 --- /dev/null +++ b/script/contracts/RNSOperationDeploy.s.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import { ContractKey } from "foundry-deployment-kit/BaseDeploy.s.sol"; +import { RNSOperation } from "@rns-contracts/utils/RNSOperation.sol"; +import { RNSDeploy } from "../RNSDeploy.s.sol"; + +contract RNSOperationDeploy is RNSDeploy { + function _defaultArguments() internal virtual override returns (bytes memory args) { + args = abi.encode( + _config.getAddressFromCurrentNetwork(ContractKey.RNSUnified), + _config.getAddressFromCurrentNetwork(ContractKey.PublicResolver), + _config.getAddressFromCurrentNetwork(ContractKey.RNSAuction) + ); + } + + function run() public virtual trySetUp returns (RNSOperation) { + return RNSOperation(_deployImmutable(ContractKey.RNSOperation)); + } +} diff --git a/src/utils/RNSOperation.sol b/src/utils/RNSOperation.sol new file mode 100644 index 00000000..95a2c2ff --- /dev/null +++ b/src/utils/RNSOperation.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; +import { INSUnified } from "../interfaces/INSUnified.sol"; +import { INSAuction } from "../interfaces/INSAuction.sol"; +import { LibRNSDomain } from "../libraries/LibRNSDomain.sol"; + +contract RNSOperation is Ownable { + INSUnified public immutable rns; + address public immutable resolver; + INSAuction public immutable auction; + + constructor(INSUnified rns_, address resolver_, INSAuction auction_) { + rns = rns_; + auction = auction_; + resolver = resolver_; + } + + /** + * @dev Allows the owner to mint RNS domains in bulk with specified labels and durations. + * @param tos The array of addresses to receive the minted domains. + * @param labels The array of labels for the minted domains. + * @param duration The duration for which the domains will be owned. + */ + function bulkMint(address[] calldata tos, string[] calldata labels, uint64 duration) external onlyOwner { + require(labels.length == tos.length, "RNSOperation: length mismatch"); + + for (uint256 i; i < labels.length; ++i) { + rns.mint(LibRNSDomain.RON_ID, labels[i], resolver, tos[i], duration); + } + } + + /** + * @dev Allows the owner to set the protection status of multiple RNS domains in bulk. + * @param labels The array of labels for the domains. + * @param shouldProtect A boolean indicating whether to protect or unprotect the specified domains. + */ + function bulkSetProtected(string[] calldata labels, bool shouldProtect) external onlyOwner { + rns.bulkSetProtected(toIds(labels), shouldProtect); + } + + /** + * @dev Allows the owner to reclaim unbidded RNS domain names and transfer them to specified addresses. + * @param tos The array of addresses to which the unbidded domains will be transferred. + * @param labels The array of labels for the unbidded domains to be reclaimed. + * @param allowFailure Flag to indicate whether to allow failure if a domain is already being bid on. + */ + function reclaimUnbiddedNames(address[] calldata tos, string[] calldata labels, bool allowFailure) external onlyOwner { + auction.bulkClaimUnbiddedNames(tos, toIds(labels), allowFailure); + } + + /** + * @dev Converts an array of labels to an array of corresponding RNS domain IDs. + * @param labels The array of labels to be converted to IDs. + * @return ids The array of RNS domain IDs. + */ + function toIds(string[] calldata labels) public pure returns (uint256[] memory ids) { + ids = new uint256[](labels.length); + + for (uint256 i; i < labels.length; ++i) { + ids[i] = LibRNSDomain.toId(LibRNSDomain.RON_ID, labels[i]); + } + } +}